素人によるCUDAのお勉強。3
blockサイズをhost側から制御する方法。
include <cuda_runtime.h> #include <stdio.h> int main(int argc, char **argv){ int nElem = 1024; dim3 block (1024); dim3 grid ((nElem+block.x-1)/block.x); printf("grid.x %d block.x %d \n",grid.x,block.x); block.x = 512; grid.x = (nElem+block.x-1)/block.x; printf("grid.x %d block.x %d \n",grid.x,block.x); block.x = 256; grid.x = (nElem+block.x-1)/block.x; printf("grid.x %d block.x %d \n",grid.x,block.x); block.x = 128; grid.x = (nElem+block.x-1)/block.x; printf("grid.x %d block.x %d \n",grid.x,block.x); cudaDeviceReset(); return(0); }
実行結果
grid.x 1 block.x 1024 grid.x 2 block.x 512 grid.x 4 block.x 256 grid.x 8 block.x 128
前回の記事。oimokihujin.hatenablog.com
Professional CUDA C Programming
- 作者: John Cheng,Max Grossman,Ty McKercher
- 出版社/メーカー: Wrox
- 発売日: 2014/09/08
- メディア: Kindle版
- この商品を含むブログを見る