首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >CUDA设备托管数据传输错误

CUDA设备托管数据传输错误
EN

Stack Overflow用户
提问于 2013-12-05 17:53:28
回答 1查看 1.5K关注 0票数 2

我在检索要托管的设备数据时遇到了问题。在下面的示例程序中。我在主机中创建了一个hostData数组,并为其提供了值。然后,我将hostData传递给deviceData变量,并再次将相同的数据传递给新的主机数据数组,即。hostDataFinal。当我打印存储在hostDataFinal中的值时,最多只有几个值,输出是ok,rest显示为垃圾值。所有值都应该与hostData数组中的值相同。请帮我一把。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <iostream>

int main()
{
int totalData = 20;
int *hostData;
hostData = new int[totalData];
std::cout<<std::endl<<std::endl<<"HostData Values : "<<std::endl;
for (int i=0; i<totalData ;i++)
{
    hostData[i]= i+1;
    std::cout<<hostData[i]<<" "; 
}

int *deviceData;
int *hostDataFinal;
cudaMalloc((void**)&deviceData,totalData*sizeof(int));
hostDataFinal = new int[totalData];

cudaMemcpy(deviceData,hostData,totalData,cudaMemcpyHostToDevice);
cudaMemcpy(hostDataFinal,deviceData,totalData,cudaMemcpyDeviceToHost);

std::cout<<std::endl<<std::endl<<"HostDataFinal After Device Transfer Values : "<<std::endl;
for (int i=0; i<totalData ;i++)
{
    std::cout<<hostDataFinal[i]<<" "; 
}

free(hostData);
free(hostDataFinal);
cudaFree(deviceData);
return 0;

}

该方案的产出:

HostData值:1 2 3 4 5 6 7 9 10 11 13 14 15 16 17 18 19 20

设备传输值后的HostDataFinal:

1 2 3 4 5 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451 -842150451-842150451-842150451

实际产出应是:

HostData值:1 2 3 4 5 6 7 9 10 11 13 14 15 16 17 18 19 20

设备传输值后的HostDataFinal:

1 2 3 4 5 6 7 8 10 11 12 14 15 16 17 18 19 20

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-05 18:04:33

你的问题就在这些线上。cudaMemcpy中的第三个参数是要复制的字节数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cudaMemcpy(deviceData,hostData,totalData,cudaMemcpyHostToDevice);
cudaMemcpy(hostDataFinal,deviceData,totalData,cudaMemcpyDeviceToHost);

应该是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cudaMemcpy(deviceData,hostData,totalData *sizeof(int),cudaMemcpyHostToDevice);
cudaMemcpy(hostDataFinal,deviceData,totalData*sizeof(int),cudaMemcpyDeviceToHost);

还要确保处理返回错误代码,如here所示

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20414505

复制
相关文章
1.2 cuda相关常见错误记录
并提示cudnn版本不对,需要更新cudnn的版本.例如tensorflow1.11版则需要cudnn7.21以后的版本.下载了7.3.0的版本并覆盖源文件,就好了. 可以需要重复1.中的步骤来重新建立软连接.
锦小年
2019/05/28
1.1K0
iOS逆向之iOS设备文件、数据传输
在分析iOS应用时,我们需要将装有iOS应用的设备通过网络或者usb数据线连接到Windows或者mac设备上,从而可以从电脑拷贝数据到iOS设备上,或者从iOS设备中传输数据到电脑中,方便分析操作。接下来,将分别讲通过网络将iOS设备连接到电脑上,及通过usb将iOS设备连接到电脑上。
用户4682003
2022/05/19
8280
iOS逆向之iOS设备文件、数据传输
CUDA中自动初始化显卡设备宏
每次为了减少初始化的工作量,可以写入下面的宏。 #define CUT_DEVICE_INIT(ARGC,ARGV){ \ int deviceCount; \ CUDA_SAFE_CALL_NO_SYNC(cudaGetDeviceCount(&deviceCount)); \ if(deviceCount == 0){ \ fprintf(stderr,"cutil error:no devices supporting CUDA.\n")
用户1154259
2018/01/17
5660
iOS逆向之iOS设备文件、数据传输方法
在分析iOS应用时,我们需要将装有iOS应用的设备通过网络或者usb数据线连接到Windows或者mac设备上,从而可以从电脑拷贝数据到iOS设备上,或者从iOS设备中传输数据到电脑中,方便分析操作。接下来,将分别讲通过网络将iOS设备连接到电脑上,及通过usb将iOS设备连接到电脑上。 一、网络连接 将电脑(我以mac电脑为例)及iOS设备连接到同一个wifi信号。 对iOS设备进行越狱,安装cydia后,打开cydia,搜索openssh,并安装(这样在iOS设备中会启动一个ssh服务从而让其他设备进
conanma
2021/11/04
1.4K0
MacBook 与其他设备的低成本高性能数据传输方案
本篇文章分享在不使用路由器的情况下,使用“数据线或网线”将 MacBook 与其他设备连接在一起,获得更高效率的数据交换性能。
soulteary
2023/01/01
6120
【CUDA】cuda安装 (windows版)[通俗易懂]
本次安装参考了网上许多教程,结合自己的需求与理解,写下此篇博客,仅做本人总结使用。。
全栈程序员站长
2022/09/06
10.7K0
【CUDA】cuda安装 (windows版)[通俗易懂]
IaaS、PaaS、SaaS和托管设备:了解云计算及其提供的内容
“迁移到云端”已成为近年来IT管理中最流行的短语之一。LogicMonitor公司预测,到2020年,83%的企业工作负载将在云端运行。企业将业务迁移到云端的原因有很多,从建立完整的环境以消除内部IT到利用虚拟环境,再到利用越来越多的SaaS解决方案来解决问题。
静一
2019/09/25
1.5K0
IaaS、PaaS、SaaS和托管设备:了解云计算及其提供的内容
CUDA编程注意(CUDA编程)
传给CUDA编译器编译的文件里不能包含boost的头文件,会报错。例如xxCUDA.cuh中最好不要包含boost的头文件。
全栈程序员站长
2022/08/01
1.3K0
centOS 7无显卡虚拟机安装dlib提示CUDA错误
dlib是一个强大的库,但是其默认是需要NVIDIA显卡的,其实也是需要N卡附带的CUDA环境。但偏偏我的虚拟机没有显卡,所以只能尝试无CUDA环境下安装dlib。
Cloudox
2021/11/23
8600
MacBook 与其他设备的低成本高性能数据传输方案
本篇文章分享在不使用路由器的情况下,使用“数据线或网线”将 MacBook 与其他设备连接在一起,获得更高效率的数据交换性能。
soulteary
2023/03/05
8810
MacBook 与其他设备的低成本高性能数据传输方案
CUDA 的卸载_cuda怎么安装
对于刚接触人工智能领域不久的我而言,装 CUDA 等一些跑模型需要用到的工具是一件痛苦的事,稍不注意就会导致版本依赖问题,最终可能会需要你把前面安装的东西都卸载掉并重新下载,故本文记录如何卸载 CUDA 使得卸载干净。
全栈程序员站长
2022/10/03
2.9K0
CUDA 的卸载_cuda怎么安装
CUDA学习笔记-硬件构架
https://github.com/ArchaeaSoftware/cudahandbook http://www.cudahandbook.com/ 这个是最近全新一版的书 这个是我目前看的书 代
云深无际
2021/02/23
7210
CUDA学习笔记-硬件构架
[转]托管代码与非托管代码
      托管代码是一microsoft的中间语言(IL),他主要的作用是在.NET   FRAMEWORK的公共语言运行库(CLR)执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段:       1.源代码编译为托管代码,(所以源代码可以有很多种,如VB,C#,J#)       2.托管代码编译为microsoft的平台专用语言。
莫问今朝
2019/02/25
4.7K0
DAY14:阅读CUDA C runtime之错误检查和Call stack
今天这个部分讲完后,下期将开始讲解 Texture and Surface Memory 3.2.9. Error Checking All runtime functions return an error code, but for an asynchronous function (see Asynchronous Concurrent Execution), this error code cannot possibly report any of the asynchronous errors
GPUS Lady
2018/06/22
1.3K0
错误 To use CUDA with multiprocessing, you must use the ‘spawn‘ start method 解决方案
在此种情景中为了保证 CUDA 进程的隔离仅能使用 spawn 模式运行多进程任务,如果没有使用则会报出上述错误
为为为什么
2022/08/09
2.1K0
CUDA入门教程(一)——CUDA安装
CUDA框架是NVIDIA发布的在GPU上的并行计算的平台和模型, 在2006年第一代CUDA发布,到现在已经是第9代CUDA。今天我将分享如何正确安装CUDA并调试样例。
医学处理分析专家
2020/06/29
2.5K0
CUDA入门教程(一)——CUDA安装
cuda教程[新手入门学编程]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说cuda教程[新手入门学编程],希望能够帮助大家进步!!!
Java架构师必看
2022/03/22
3K0
cuda教程[新手入门学编程]
CUDA installation
CUDA / Compute Unified Device Architecture / CUDA Toolkit / 工具包
vanguard
2021/04/29
1.4K0
CUDA 6中的统一内存模型
白嘉庆,西邮陈莉君教授门下研一学生。曾在华为西安研究所任C++开发一职,目前兴趣是学习Linux内核网络安全相关内容。
Linux阅码场
2020/07/02
2.9K0
windows cuda安装_虚拟机 cuda
到 https://developer.nvidia.com/cuda-downloads (旧:URL )去下载。在安装的时候一定要自定义安装,否则将会安装很多无用的东西。安装的选项,可以选择不更新驱动程序。
全栈程序员站长
2022/09/21
2.4K0
windows cuda安装_虚拟机 cuda

相似问题

CUDA无效设备符号错误

20

异步数据传输CUDA

12

CUDA cudaMemcpyFromSymbol“无效设备符号”错误?

11

RuntimeError: CUDA错误:设备序号无效

10

cuda文件错误“无效的设备功能”

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文