CUDA-CODE2-分配内存

来源:互联网 发布:部落冲突11本升级数据 编辑:程序博客网 时间:2024/05/21 12:43
#include "cuda_runtime.h"#include "device_launch_parameters.h"#include <stdio.h>#include <iostream>__global__ void add(int a, int b , int* c){*c =a + b;}int main(){int c;int* dev_c;//为变量分配内存,任何设备上执行的有用的操作都需要分配内存,例如将计算值返回给主机//该函数返回的是void*,一定不能在主机代码中对该函数返回的指针进行解引用,绝对不可以使用这个指针来读取或者写内存。要执行这些操作都要在设备代码中//可以将主机指针传递给设备代码,但是如果要用这个指针来访问设备内存一样会出问题cudaMalloc( (void**)&dev_c, sizeof(int) );//传递参数给核函数,就像C一样add<<<1,1>>>(2,7,dev_c);//第一个参数是主机指针//第二个参数是设备指针//第四个参数是用来指出哪个是主机指针哪个是设备指针 cudaMemcpy(&c,dev_c,sizeof( int ),cudaMemcpyDeviceToHost);printf("2 + 7 = %d\n", c);cudaFree( dev_c );//不能使用C的free来释放内存,必须使用cudaFree函数getchar();return 0;}

0 0
原创粉丝点击