cuda内存拷贝失败

qingbeiwang 2023-04-20 21:20:07

前段时间因为工作需要写了一个png图片处理的功能,由于需要逐像素的处理,所有上了cuda。之前运行一直都是正常的,处理过的最大图像最大差不多是8k。今天突然接到反馈说图像处理失败了,排查了一下午,结果发现问题本身非常奇怪。
总体而言就是只对特定数据量的图片有问题,目前出问题的图片像素大小都是1536*2048的整数倍,除了原始的这个尺寸外,3072*1024,3072*4096都会出问题,而其他的比如1500*2000,1535*2048,1536*2000等尺寸都不会有问题。

 

这里是写的测试函数,21.png是一张3072*1024的图片 

 

这个是调用的核函数
检查发现出错的地方是result2那里,cudaMemcpy拷贝失败,这里返回错误码是700,对应的错误是
/**
* The device encountered a load or store instruction on an invalid memory address.
* This leaves the process in an inconsistent state and any further CUDA work
* will return the same error. To continue using CUDA, the process must be terminated
* and relaunched.
*/
cudaErrorIllegalAddress = 700。
检查核函数,只要访问dataIn里的内容,就会出现上述错误,即使不对内容做任何操作(比如给t1赋值就无法正常拷贝,去掉这句就正常)。而且这个错误只发生在上述所说的对应尺寸图片上。
另外还有个诡异的地方在于,当我想用Nsight调试时,启动next-gen调试模式吧,这个问题就不会出现,图片就能正常被处理。
哪位大佬能给出个解释,这情况实在有点摸不着头脑。

...全文
1346 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕“基于超局部模型与自抗扰ESO观测器的无模型预测电流控制改进策略”展开研究,提出一种结合超局部模型(ULM)与扩张状态观测器(ESO)的无模型预测电流控制(MFPCC)改进方法,旨在提升永磁同步电机(PMSM)电流环的动态响应性能与抗干扰能力。该策略利用超局部模型对系统行为进行局部逼近,避免依赖精确数学模型,同时引入自抗扰控制中的ESO实时观测并补偿系统内外部扰动,有效抑制参数摄动、负载变化及模型不确定性带来的影响。研究通过Simulink搭建完整的控制系统仿真模型,对传统MFPCC与所提改进策略进行对比分析,验证了新方法在电流跟踪精度、响应速度和鲁棒性方面的优越性。; 适合人群:具备电机控制、现代控制理论及Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高性能电机驱动系统中电流环控制器的设计与优化;②为无模型控制与自抗扰控制的融合应用提供技术参考;③支撑相关课题的仿真验证、论文复现与创新方法研究。; 阅读建议:建议读者结合Simulink仿真模型深入理解控制结构与参数整定过程,重点关注ESO的观测性能与扰动补偿机制,并可通过改变负载条件、参数偏差等工况进行鲁棒性测试,进一步掌握该改进策略的核心优势与适用边界。

591

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧