博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cuda编程学习2——add
阅读量:6435 次
发布时间:2019-06-23

本文共 873 字,大约阅读时间需要 2 分钟。

cudaMalloc()分配的指针有使用限制,设备指针的使用限制总结如下:

1.可以将其传递给在设备上执行的函数

2.可以在设备代码中使用其进行内存的读写操作

3.可以将其传递给在主机上执行的函数

4.不能在主机代码中使用其进行内存的读写操作

总的来说就是主机指针只能访问主机代码中的内存,设备指针只能访问设备代码中的内存

这是两个数相加的cuda代码:

#include<iostream>

using namespace std;

__global__ void add(int a,int b,int *c)

{
*c=a+b;
}

int main(void)

{
int c;
int *dev_c;
cudaError_t error;
error=cudaMalloc((void**)&dev_c,sizeof(int));
if(error!= cudaSuccess)
{
cout<<"cudaMalloc d_A returned error"<<cudaGetErrorString(error)<<"code:"<<error<<" line"<<__LINE__<<endl;
exit(EXIT_FAILURE);
}
add<<<1,1>>>(2,7,dev_c);
error=cudaMemcpy(&c,dev_c,sizeof(int),cudaMemcpyDeviceToHost);
if(error!= cudaSuccess)
{
cout<<"cudaMemcpy returned error:"<<cudaGetErrorString(error)<<" code:"<<error<<" line:"<<__LINE__<<endl;
exit(EXIT_FAILURE);
}
cout<<"2+7="<<c<<endl;
cudaFree(dev_c);
return 0;
}

转载于:https://www.cnblogs.com/shrimp-can/p/5031116.html

你可能感兴趣的文章
前嗅ForeSpider教程:采集图片/视频/资源文件
查看>>
Linux下find参数-mtime n,-n,+n详解
查看>>
oracle数据库创建用户方法
查看>>
生成原始的依赖jar包运行的jar的执行命令
查看>>
zabbix agentd windows安装
查看>>
Hadoop基础入门学习笔记(基本概念)
查看>>
C++之RAII惯用法
查看>>
opencv学习02-播放视频,注意没有声音
查看>>
top命令 -b -n5 -d10
查看>>
LAMP的部署
查看>>
IntelliJ Community 14 使用简要 2015-3-17
查看>>
Hadoop tutorial - - windows开发环境搭建 2015-3-20
查看>>
深入理解Magento – 第七章 – 自定义Magento系统配置
查看>>
Xcode常用快捷键
查看>>
Android的按钮单击事件及监听器的实现方式
查看>>
Ofbiz初探
查看>>
maven创建工程
查看>>
MyEclipse中SVN用户名密码的切换
查看>>
Windows和Linux互相远程访问
查看>>
nginx添加新模块及第三方模块
查看>>