コードの初歩の初歩

  • CUDAサンプルソースこちらから、ダウンロード。基本的には、"hoge.h"と"hoge.cu"と"hoge_kernel.cu"とを見る。"hoge.h"が、条件設定のファイル。"hoge.cu"がホストを動かす部分で"Host code"と及ばれている。"hoge_kernel.cu"がGPUで並列処理する部分で"Device code"と呼ばれている。"hoge.h"(条件設定ファイル)を"Device code"でIncludeすることにするようだ。
  • CUDAのソースの拡張子は".cu"
  • CUDAのソースのコンパイラは"nvcc"
    • オプションが色々
  • 枠組みのソースとGPUに仕事をやらせるソースの組み合わせ
    • Host code 「枠組みソース(hoge.cu)」の構成
      • ホストのメモリ割り当て(入力データ・出力データ)
      • GPUのメモリ割り当て(入力データ・出力データ)
      • ホストメモリ上のデータをGPUメモリにコピー
      • GPU実行の条件設定
      • Device code「やらせるソース」の実行コマンド(GPUの入力・出力変数と、デバイス(GPU)情報と実行条件を渡す
      • GPUの出力データをホストの出力変数にコピー
      • 実行後の後始末
    • Device code「やらせるソース(hage_kernel.cu)」(_kernelをつけることになっている)の構成
      • GPUの入力・出力変数とデバイス情報を受け取る
      • 分担仕事が書いてある