2016-02-09から1日間の記事一覧

【CUDA】初学者の勉強の仕方

CUDAを本格的に勉強し始めて(1ヶ月くらい?),気づいたこととして, 日本語資料の少なさがあります. 特に最新の情報はほとんど手に入りません.自分の思う最高効率の勉強は,CUDA by Example www.amazon.co.jpを一通り見て,概要を掴んで, 次は,CUDA Too…

【CUDA】__shfl_xorによるbutterfly exchange

warp shuffleの関数の中で一番直観的でないのが, このint __shfl_xor(int value, int laneMask)です. https://people.maths.ox.ac.uk/gilesm/cuda/lecs/lec4.pdfより引用がわかりやすくて,指定されたlaneMaskが,どのlaneIDのビットをflipさせるかを決め…

【CUDA】__shflによるwrap内の要素ずらし

__shfl_upや__shfl_downでは,端の値を循環させることが出来ない. そこで,__shflを使えば,端の値を循環させることができる. #include <stdio.h> __global__ void shfl_wrap(int *out_dev, int *in_dev, int const offset){ int value = in_dev[threadIdx.x]; valu</stdio.h>…

【CUDA】Warp shuffleの__shfl()_down, __shfl()_upサンプル

warp shuffleの__shfl_up()や__shfl_down()は、指定オフセット分だけずれたスレッドから値を読み出します。 #include <stdio.h> __global__ void shfl_test(int arg){ int laneId = threadIdx.x & 0x1f; int value; if(laneId == 3){ value = arg; }else{ value = 0; </stdio.h>…