yuuho.wiki

カオスの欠片を集めて知恵の泉を作る

ユーザ用ツール

サイト用ツール


tips:cuda:start

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
tips:cuda:start [2021/09/17 09:02] yuuhotips:cuda:start [2022/04/27 04:10] (現在) yuuho
行 65: 行 65:
   * ''cudaMemcpy'' はカーネル処理の終了がされたことを保証する。   * ''cudaMemcpy'' はカーネル処理の終了がされたことを保証する。
   * カーネルを連続して実行した場合、thread内では順序が保証されていそう。   * カーネルを連続して実行した場合、thread内では順序が保証されていそう。
 +
 +=== 実行コンフィグレーション(execution configuration) ===
 +  * 参考 [[https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#execution-configuration|doc]]
 +  * ''%%<%%<%%<%% %%>%%>%%>%%'' のこと。カーネル実行時の設定
 +  * ''%%_%%_global%%_%%_'' 関数をよぶものはすべて実行コンフィグを指定する必要がある。
 +  * グリッドとブロックの次数を定義。
 +  * 正式な文法
 +    * ''%%<%%<%%<%% Dg, Db, Ns, S %%>%%>%%>%%''
 +    * 省略された引数は 1 で初期化?
 +    * ''Dg'' ブロックの数。 Dg.x と Dg.y を指定。\\  Dg.z は予約されているけど使われていない?(歴史的経緯で、昔は二次元のみだったので,環境によってうまく有効化されないことがある[[https://stackoverflow.com/questions/36843432/why-is-z-always-zero-in-cuda-kernel|stackoverflow]])
 +    * ''Db'' スレッドの数。 ブロックあたりのスレッド数と Db.x * Db.y * Db.z が同じになる必要がある
 +    * ''Ns'' シェアードメモリのバイトサイズ。デフォルト0のオプション引数
 +    * ''S'' ストリーム。デフォルト0 のオプション引数。
 +  * シェアードメモリのバイトサイズを指定するような状況とは、実行するまで必要なサイズがわからない場合。
 +    * カーネル呼び出し側で指定したサイズが作成される。
 +    * 動的な確保の場合はカーネル内で ''extern %%_%%_shared%%_%%_'' として宣言しなければいけない。
 +
 +=== Warp とは ===
 +スレッドを複数まとめたもの。実行の同期がとられる一単位。
 +同じ Warp 内にあるスレッドは while 文など実行すると、他のスレッドの while が止まるまで待たなければいけない。
 +
 +
  
tips/cuda/start.1631869347.txt.gz · 最終更新: 2021/09/17 09:02 by yuuho