夜行録 - 酔歩.net

日暮れて道遠し さらに夜道を行く もって夜行録と名付く

cuda 進展

ここ1ヶ月くらい頓挫していた cuda のコード。CPUコード的には正しく動くものを block と thread で並列化考えて実装してみたんだがどうも駄目。というより、問題は、なにがどう駄目かよく判らんこと…。

アルゴリズム的には正しいはずが、リソースが足んないとか言われたり。そのたびにデータ構造からいじる羽目になったり。
で、並列性が綺麗じゃないのか、こんなエラーが出ててずっと悩んでいて、いやしかし、計算量少くするとちゃんと終了するし…しかし減らしちゃ全くプログラムに意味なくなるし…と悩んでいたが…。

cuda calc all done : the launch timed out and was terminated

ふと、検索してみると(覚書/未分類/CUDAのタイムアウト時間 - PukiWikiCUDAの10秒制限はどうなっているのだろうか? ? Satoshi OHSHIMA’s website)、そのものずばりで kernel の計算って時間制限あったのか?!

以下のような変なコード書いたらちゃんと動くようになった…。でも遅い…。つーか、答え合ってない……。

  1. for (unsigned int i=0;i<N;++i){
  2. cudaCalcAll<<<_grid, _blck, chunksize>>>(cuda_lattice, cuda_igr, i, N,MPnum, num_b, num_b2, brmax2, rmax2, rstep, half1, half2);
  3. cudaThreadSynchronize();
  4. }

なんの計算かは秘密。……、つーか引数多くね?

2010年06月21日 (Mon) - 01:29:03 - その他雑記 - 157x - permalink
Karma points: -1. Do you like this article? [yes/no]