当前位置: 首页 > news >正文

CUDA Bug<三>当__global__函数出现里面所有输出的数组都随机赋值了

问题具体描述:

eg.

__global__ void Updata_HomJm(float* H,float *HJm,float* fr,float *gr,float* ur,float* urgrJm,float*wpd,float *w, float *wJm,int n)
{  int idx = blockIdx.x*blockDim.x + threadIdx.x;float t = 0.0;//H*zpint idx_Ai = idx*n;for (int j=0; j<n; j++){t += H[idx_Ai + j] * fr[j];//0	if((j==idx)||(abs(wpd[idx])==2&&abs(wpd[j])==2)){HJm[idx_Ai + j]=H[idx_Ai + j];}else{HJm[idx_Ai + j]=0;}}gr[idx]=t;if (abs(wpd[idx])==2){wJm[idx]=w[idx];urgrJm[idx]=-(ur[idx]+gr[idx]);}else{wJm[idx]=0.0;urgrJm[idx]=0.0;}}

这里gr,wJm,urgrJm都是计算后需要输出的值,这三个数组同时乱码,
第一个想法即使:代码有误
采取排除的方式,先将if判断都注释掉,发现还是有错;
再将wJm和urgrJm有关的都注释,发现gr计算结果正常,那么大概率不是__global__函数错误,将错误锁定在这两个数组身上,猜测可能是gr,wJm,urgrJm这三个数组size不同,则检查主函数,发现是wJm忘开辟空间。

解决办法

在主函数加入

	cudaMalloc((void**)&d_wJm, sizeof(float)*WS*1);
http://www.lryc.cn/news/135179.html

相关文章:

  • 甜椒叶病害识别(Python代码,pyTorch框架,深度卷积网络模型,很容易替换为其它模型,带有GUI识别界面)
  • Python爬虫——scrapy_日志信息以及日志级别
  • 微信小程序 echarts 画多个横向柱状图
  • 【二叉树】572. 另一棵树的子树
  • 220V转5V芯片三脚芯片-AH8652
  • windows系统丢失mfc120u.dll的解决方法
  • css 实现电梯导航
  • 【Spring Boot】Spring Retry减少1000 行代码讲解
  • 【数据结构OJ题】相交链表
  • 【华为OD机试】最小传输时延I【2023 B卷|200分】
  • Android13 网络 Adb 默认开启
  • Git分享-规范/建议/技巧
  • vue3文件下载功能
  • Python调用文心一言的API
  • 【计算机网络八股】计算机网络(一)
  • 记录一次arcgis engine开发版本引入问题
  • 2023年Java毕业设计怎样选题,有哪些注意事项,300道Java毕业设计题目
  • 算法-滑动窗口-串联所有单词的子串
  • 2023年7月京东美妆护肤品小样行业数据分析(京东数据挖掘)
  • 记录Taro巨坑,找不到sass类型定义文件
  • CS1988|C#无法在异步方法中使用ref,in,out类型的参数的问题
  • ubuntu开机失败——ACPI Error
  • 搭建开发环境-操作系统篇(一键搭建开发环境)
  • 人工智能AI绘画接入使用文档
  • 如何使用PyQt进行文件操作
  • 阿里云CDN加速器基本概念与购买开通
  • 2023河南萌新联赛第(六)场:河南理工大学-F 爱睡大觉的小C
  • [C++ 网络协议编程] 域名及网络地址
  • Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?
  • 使用U盘重装Windows10系统详细步骤及配图【官方纯净版】