首页 > 代码库 > CUDA编程学习(一)
CUDA编程学习(一)
/****c code****/#include<stdio.h>int main(){ printf("Hello world!\n); return 0;}/****CUDA code****/_global_ void mykernel(void){}int main(){ mykernel<<<1,1>>>(); printf("Hello world!\n"); return 0;}
1: _global_ 这个符号代表这个函数是在GPU里面跑的
2: mykernel<<<1,1>>>() Also called a "kernel launch"
/**** Add two integers****/_global_ void add(int *a, int *b, int *c);{ *c = *a + *b;}int main(){ int a, b, c; //host copies of a, b ,c int *d_a, *d_b, *d_c; //device copies of a, b, c int size = sizeof(int); //Allocate space for device copies of a, b, c cudaMalloc((void **)&d_a, size); cudaMalloc((void **)&d_b, size); cudaMalloc((void **)&d_c, size); //Setup input values a = 2; b = 7; //Cope inputs to device cudaMemcpy(d_a, &a, size, cudaMemcpyHostToDevice); cudaMemcpy(d_b, &b, size, cudaMemcpyHostToDevice); //Launch add() kernel on GPU add<<<1,1>>>(d_a, d_b, d_c); //Copy result back to host cudaMemcpy(&c, d_c, size, cudaMemcpyDeviceToHost); //Cleanup cudaFree(d_a); cudaFree(d_b); cudaFree(d_c); return 0;}
CUDA编程学习(一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。