CUDAIntro
11/21 ホストとデバイス(1/3)

【テロップ】
※各テロップ文字をクリックすると該当の場所がピンポイントで閲覧できます。



【ノート】
クーダによるGPUの計算では、ホストとデバイスという用語が使われます。すなわち、CPUを用いて計算する部分をホストといい、GPUを用いて計算する部分をデバイスと言います。また、ホストで用いられるメモリとデバイスで用いられるメモリは別のハードウエアです。なお、両者のメモリを一体化する場合もありますが、ここでは別のハードウエアの場合で考えます。 上記のプログラムをホストだけで実行する場合は、 メモリ上に割り当てられた配列を用いて、 ホストのCPUとメモリ間で実行を進めて、実行を完了します。 デバイスのGPUを用いた実行の場合は、手順が少し複雑になります。 まず、デバイスのメモリ上に計算に使用する配列の領域が確保されます。 これをマロックといいます。 次に、ホスト上のyとzの配列の内容を、デバイス上の配列にコピーします。 これを、ホストからデバイスへのメモリコピーもしくはメムコピーといいます。 ここで、デバイス上で並列計算が行われます。 これをカーネル実行といいます。 その後、計算結果が書かれたデバイス上の配列xを ホストの配列にメモリコピーします。 最後に、デバイス上に割り当てられた配列を解放します。 これをフリーといいます。 以上のように、GPU上での計算以外に、デバイス上のメモリに対して、マロック、メモリーコピー、フリーを行うことが必要になります。これらのことを行う関数を次に見ていきます。