CUDAIntro
13/21 ホストとデバイス(3/3)
【テロップ】
※各テロップ文字をクリックすると該当の場所がピンポイントで閲覧できます。
【ノート】
ここれは、先に紹介した関数を用いたプログラム例を示します。ここでは、ホスト上に3個の配列が宣言されているとし、デバイス上に3個の配列を新たに確保することになります。 新たに確保する方の配列は、分かり易くするために、先頭にディーアンダスコアが付けてあり、ポインタとして宣言されています。 デバイス上に配列を確保するために、クーダマロック関数を実行します。関数名のスペルや、おお文字小文字の区別、引数のポインタの書き方、サイズオブ関数を用いたサイズの書き方に注意してください。ホストの配列とサイズを合わせるため、サイズオブイントに256をかけたものがサイズに与えられています。 ホスト上の配列からデバイス上の配列にデータをメモリコピーします。送り先、送り元の順に、引き数が並べてあります。つまり、デバイスの配列名が先で、ホストの配列名が後になっています。また、よっつめの引き数で方向を指定し、ホストツーデバイス、になっていることに注意しましょう。サイズはマロックと同じものが使われています。 次に、デバイス上の配列からホスト上の配列にデータをメモリコピーします。送り先、送り元の順に、引き数が並べてあります。つまり、ホストの配列名が先で、デバイスの配列名が後になっており、先ほどと反対の順番になっています。また、よっつめの引き数で方向を指定し、デバイスツーホスト、になっていることに注意しましょう。 最後に、デバイス上の配列を解放します。 なお、実際には、この赤線の場所に、GPUでの計算を行うためのカーネル実行を記述します。これについては、のちほど、説明します。