CUDAをやってみたくなった。
インストールがもの凄く簡単になっていて、Visual C++ 2017 Communityが入っているなら
https://developer.nvidia.com/cuda-downloads
からCUDA Toolkitをダウンロードしてインストールするだけで、VC++のプロジェクトにCUDAのプロジェクトが追加される。
以下、初めてのCUDAプログラム
#include "cuda_runtime.h" #include "device_launch_parameters.h" #include <stdio.h> #include <cstring> __global__ void hello(char *c) { c[0] = 'h'; c[1] = 'e'; c[2] = 'l'; c[3] = 'l'; c[4] = 'o'; c[5] = '\0'; } int main(void) { const size_t LEN = strlen("hello") + 1;//(CPU側) char c_cpu[LEN];//(CPU側) char *c_gpu;//(CPU側) cudaMalloc( (void**)&c_gpu, LEN);//GPU側にメモリを確保 hello <<<1, 1 >>>( c_gpu );//GPU側の関数を呼出 cudaMemcpy(&c_cpu, c_gpu, LEN, cudaMemcpyDeviceToHost);//GPU側から実行結果を取得 cudaFree(c_gpu);//GPU側のメモリを解放 puts(c_cpu);//(CPU側) getchar();//(CPU側) return 0; }
cudaMalloc
GPU側のメモリを確保するための関数。
関数名 | cudaMalloc | ||||||
戻り値 | cudaError_t | ||||||
引数 |
|
参考URI:
cudaFree
cudaMallocで確保したメモリを開放する
関数名 | cudaFree | |||
戻り値 | cudaError_t | |||
|
参考URI