超音波流体屋のプログラム備忘録
cuda3.2のあれこれ
最終更新:
usapfrog
-
view
実行中凍る
ディスプレイ兼用で長時間カーネルを走らせると凍るのは仕様。
計算用にもう一本GPUを用意するか、実行時間が少なくなるようカーネルを分割する。
計算用にもう一本GPUを用意するか、実行時間が少なくなるようカーネルを分割する。
unspecified launch failureについて
- cudaMemcpyとかの行に出現するけど、大半の原因は直前のカーネル実行。
- 大体2タイプあってsegmentation faultタイプとstack overflowタイプがある。
- そして区別がつかない。
- ひとまずカーネルで範囲外配列参照とかぬるぽとかしてないか前者の確認。
- 後者の対応はよく分からない。
- GPUサイドのスタックはCPUのスタックよりかなり小さい印象。
- ローカル変数とか関数呼び出しとかをできるだけ少なくするアルゴリズムにするぐらいか。
- __device__ staticで扱っていた定数を__constant__に切り替えると直ったり
MPI連携で外と繋ぐとき
CUDA部分とMPI部分を分割してコンパイルする。
MPI側から呼び出されるCUDA側の関数の前にextern "C"を書いとくのを忘れずに。
参考:
MPI and CUDA mixed programming - NVIDIA Forums
Omeg4 ブロ~具: MPI+CUDA テスト
MPI側から呼び出されるCUDA側の関数の前にextern "C"を書いとくのを忘れずに。
参考:
MPI and CUDA mixed programming - NVIDIA Forums
Omeg4 ブロ~具: MPI+CUDA テスト