CUDA Hello World
#include <iomanip>
#include <iostream>
#include <stdio.h>
#include <cuda_runtime.h>
#include <device_launch_parameters.h>
using namespace std;
//检测GPU
bool CheckCUDA(void){
int count = 0;
int i = 0;
cudaGetDeviceCount(&count);
if (count == 0) {
printf("找不到支持CUDA的设备!\n");
return false;
}
cudaDeviceProp prop;
for (i = 0; i < count; i++) {
if (cudaGetDeviceProperties(&prop, i) == cudaSuccess) {
if (prop.major >= 1) {
break;
}
}
}
if (i == count) {
printf("找不到支持CUDA的设备!\n");
return false;
}
cudaGetDeviceProperties(&prop, 0);
printf("GPU is: %s\n", prop.name);
cudaSetDevice(0);
printf("CUDA initialized success.\n");
return true;
}
__global__ void kernel(void){
}
int main(){
// 检测 GPU
if (!CheckCUDA()){
std::cout << "NO CUDA deveice ..." << std::endl;
return 0;
}
kernel <<< 1, 1>>>();
printf("Hello,World!\n");
return 0;
}
- 一个空函数 kernel(),并且带有修饰符
__global__
- 对这个控空函数调用,并且带有修饰字符
<<<1,1,>>>
.
CUDA
C
为标准 C
增加的 __global__
修饰符,告诉编辑器函数应该编译在设备而不是主机上运行.