その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

CUDA

CUDA で 2 枚以上の GPU を使って cufft する時は FFT Plan を各々の device に乗せる必要がある

以下は間違い. cudaSetDevice(devices[0]); cufftHandle fft_plan; cufftPlan1d(fft_plan, SIZE, CUFFT_C2C, BATCH); // ここで作られる FFT Plan は device 0 にしか確保されない cufftComplex *ffted_data[2], *orig_data[2]; cudaSetDevice(devices[0]);…

CUDAのエラーチェックを楽にする

CUDAの組み込み関数はほとんどcudaError_tというエラーコードのenumの値を返してくるので,これを適宜見てエラー処理をする必要があります.最近ではそこまででもないですが,CUDAの組み込み関数はカジュアルにエラーを吐くのでちゃんと見てやらなければなら…

CUDAで特定の条件に合致したGPUのIDを持ってきたい

CUDAで,特にマルチGPUプログラミングなどをやっておりますと,特定の条件に合致したGPUのIDを持ってきたいという要求に高確率でぶち当たる事となると存じます.俺はぶち当たる. GPUがマザーボードに5枚刺さっていて,そのうち4枚は映像のアウトプット端子…

nvcc の最適化オプションについて

nvcc の最適化オプションについて、不正確な情報をしばしば耳にするのでそのことについて書いておきます。 nvcc の最適化オプションとは $ nvcc foo.cu -O2の'-O2' のような、'O' というスタイルのオプションです。 gcc とかで見覚えがある事と思います。 nv…

CUDA 初学者は「効率的なプログラミング」を一旦忘れた方が良いと思った話

ある事情でCUDA 初学者が集まる勉強会で (恐れ多くも) TA をやってきて、その時に色々と思うところがあったので書きます。 「CUDA を始める動機」が与える影響 CUDA (GPGPU プログラミング)を始めるにあたっての動機の大半は「処理を高速化したいから」だと…