Post

CUDA メモ その0

CUDA プログラミング

cuda コーディングを学習する際のメモです。

Hallo, world!

まずは、プログラム学習の定番である、”Hello, Wrold !”の出力を通して、GPUでの実行を練習します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cuda_runtime.h>
#include <stdio.h>


__global__ void print_hello(){
  printf("Hello, World!\n");
}


int main(void){

  print_hello<<<1,1,0>>>();

  cudaDeviceSynchronize();
  cudaDeviceReset();

}

上のコードは, Hello, world!を出力する関数をGPU上で実行するというものです。 print_helloという関数の前の__global__という接頭文字は、GPU上で実行する関数につけるものであり、その関数の戻り値はvoidである必要があります。

今後、CPU側をホスト, GPU側をデバイスと呼ぶことにします。 ホストからデバイス上で, print_helloという関数を実行するには、C言語系統の通常の関数呼び出しと比べて、関数名と引数の間に<<<1,1,0>>>を挟むことで呼び出すことできます(数字の意味は下で解説します)。

This post is licensed under CC BY 4.0 by the author.