/* 程序开始->cpu运行->将cpu数据copy到gpu->gpu运行->将gpu数据copy到cpu->cpu运行->结束 */
#include<stdio.h>
#include<stdlib.h>
#include<cuda_runtime.h>
#include<device_launch_parameters.h>
// 定义宏,主要功能是检测cuda函数的错误
#define CHECK(call) \
{
\
const cudaError_t err = call; \
if (err != cudaSuccess) \
{
\
fprintf(stderr, "Error: %s:%d, ", __FILE__, __LINE__); \
fprintf(stderr, "code: %d, reason: %s\n", err, \
cudaGetErrorString(err)); \
exit(1); \
} \
}
// 内核函数
__global__ void helloFromGPU()
{
printf("======================\n");
}
// 主函数
/*
* <<<grid, block>>>:三个尖括号是cuda特有,是核函数的执行配置,调用核函数必须用
* grid是网格,这个值代表调用多少个block;block是线程块,代表调用多少个线程
* cudaDeviceReset():显示地释放和清空当前进程gpu资源
*/
int main(int argc, char** argv)
{
printf("print from cpu\n");
helloFromGPU << <1, 10 >> > ();
CHECK(cudaDeviceReset
cuda编程
最新推荐文章于 2024-04-29 19:05:34 发布