当前位置:网站首页>cudaMemcpy学习笔记
cudaMemcpy学习笔记
2022-07-31 01:46:00 【AI视觉网奇】
主机是电脑Host
Device是gpu设备。
cudaMemcpy用于在主机(Host)和设备(Device)之间往返的传递数据,用法如下:
主机到设备:cudaMemcpy(d_A,h_A,nBytes,cudaMemcpyHostToDevice)
设备到主机:cudaMemcpy(h_A,d_A,nBytes,cudaMemcpyDeviceToHost)
注意:该函数是同步执行函数,在未完成数据的转移操作之前会锁死并一直占有CPU进程的控制权,所以不用再添加cudaDeviceSynchronize()函数
示例:
void VectorReal_copyBuffer(realVecHandle* addr, float hostArr[],long buffer, bool tohost, int copyMode)
{
realVecHandle * native =addr;
float * host = hostArr;
if ( copyMode == 0 ) {
if (!tohost) {
cudaMemcpy( native->data,host, native->size, cudaMemcpyHostToDevice) ;
} else {
cudaMemcpy( host, native->data, native->size, cudaMemcpyDeviceToHost) ;
}
}
}//显存上分配空间
CUDA_SAFE_CALL(cudaMalloc((void**)&Dst_d,sizeof(float3) * totalPNum));
//显存上传输数据
CUDA_SAFE_CALL(cudaMemcpy(Dst_d, Srcdata0_h, sizeof(float3) * numdata0, cudaMemcpyHostToDevice));
CUDA_SAFE_CALL(cudaMemcpy(Dst_d + numpoint0, Srcdata1_d, sizeof(float3) * numdata1, cudaMemcpyDeviceToDevice));
CUDA_SAFE_CALL(cudaMemcpy(Dst_d + numpoint0 + numpoint1, Srcdata2_d, sizeof(float3) * numdata2, cudaMemcpyDeviceToDevice));
数据传输过程中,目的地址在源地址之前(地址可能有偏移计算,数据源不同目的相同时),对应后面参数,devicetohost 或者 hosttodevice.
原文链接:https://blog.csdn.net/xiaoheibaqi/article/details/44001273
边栏推荐
猜你喜欢
随机推荐
充电效果模拟
Google官方控件ShapeableImageView使用
uniapp使用第三方字体
I have been working in software testing for 3 years, how did I go from just getting started to automated testing?
关于Redis相关内容的基础学习
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
12张图带你彻底搞懂服务限流、熔断、降级、雪崩
Maximum monthly salary of 20K?The average salary is nearly 10,000... What is the experience of working in a Huawei subsidiary?
【网络安全】文件上传靶场通关(1-11关)
Installation problem corresponding to tensorflow and GPU version
C language _ structure pointer array function voting system
.NET 跨平台应用开发动手教程 |用 Uno Platform 构建一个 Kanban-style Todo App
Gateway routing configuration
勾股数元组 od js
最高月薪20K?平均薪资近万...在华为子公司工作是什么体验?
leetcode-399:除法求值
PDF 拆分/合并
第一学年课程期末考试
How to expose Prometheus metrics in go programs
简易表白小页面







![CV-Model [3]: MobileNet v2](/img/c7/1155a1f610110724c67a3b7557ef28.jpg)

