CUDA

CUDA実行時の”unspecified launch failure.”について

CUDAでプログラミングしてるとたぶん一度はこのエラーを見ることがあると思う。 Cuda error in file 'utils/MemoryUtils.h' in line 28 : unspecified launch failure. このソースの28行目は CUDA_SAFE_CALL(cudaMemcpy(hostMemoryPointer.get(), deviceArra…

CUDAでスレッドやブロックの統一されたインデックスや全個数などを得る関数群

最近ブログをサボりがちなので、更新のためにCUDAで自分が普段使ってるソースを晒す。 #ifndef __KERNEL_UTILITY_H__ #define __KERNEL_UTILITY_H__ #include <cutil.h> // 一次元配列を二次元配列として扱うとき、二次元配列のarray[x][y]が一次元配列のどこにあたる</cutil.h>…

CUDAで最新のTOOLKITを使用するとCUTILライブラリがリンクできない問題

自宅のPCで念願のCUDA環境を手に入れたのだが、CUTILライブラリ(CUDA用便利ツール)のライブラリが発見できない。 /usr/bin/ld: cannot find -lcutil collect2: ld returned 1 exit status マニュアルどおりパスは通してある。TOOLKITのlibディレクトリを除…

EclipseでCUDAコードを書く方法とTips

EclipseでCUDAのコードを書きたくなったので、その方法を検索してみた。 eclipse cuda - Google 検索 その中で参考になりそうなページは以下。 Life of a Programmer Geek: Using Eclipse for CUDA Development プログラミング備忘録: eclipseでCUDA 後者の…

CUDAプログラミングでホストとデバイス両方で使用したい関数がある場合の__device__と__host__の付け方について

両方で使いたい関数があった場合どうするのかと思って調べてみたら、CUDAでAO bench - imHoのページに書かれているように両方を関数の頭に付けることができるらしい。なるほど。

CUDAハードウェア仕様のさまざまな定数

CUDAのアーキテクチャは複雑怪奇でその仕様にはさまざまな定数が乱舞している。 忘れがちなのは次のような仕様。かっこの中はC1060での数値となっている。 1ブロックはSM(ストリームマルチプロセッサ)一つにしか割り当てられない。つまり、SM数(C1060ではSM…

CUDAで実行時間を測る方法

今までCudaUtilsライブラリ?に含まれるcutCreateTimerなどのTimer系マクロを使用していたのだけれど、今日たまたまCUDA関連で検索してたらclock関数というので計測する方法もあることを知った。 Basic Topics ソースとコメントをチラッと見てみたのだけれど…