社区
CUDA
帖子详情
Microsoft C++ 异常: 内存位置 0x0012f278 处的 cudaError
wts_net
2009-06-16 10:23:41
如题,我的程序出现了如上的问题,这是那里出错了呢?有知道的大虾请不吝赐教!
...全文
551
8
打赏
收藏
Microsoft C++ 异常: 内存位置 0x0012f278 处的 cudaError
如题,我的程序出现了如上的问题,这是那里出错了呢?有知道的大虾请不吝赐教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangwenjianqin
2010-04-20
打赏
举报
回复
我也出现了这个问题,你解决没?
zhao_wei2003zj
2010-01-06
打赏
举报
回复
是的防守对方
wts_net
2009-07-10
打赏
举报
回复
[Quote=引用 5 楼 l7331014 的回复:]
程序已经有错误了.无所谓结果不结果.
[/Quote]
请问能帮我看一下这个代码有什么错误吗?怎么每次输出newpop中的路径,总是只有前两条路径为非0,后面的为0.
struct Gene
{
int num;
float x;
float y;
};
struct Chrom
{
Gene chrom_gene[CityNumber]; //染色体(到各城市去的顺序)
float varible; //路程总开销
};
__global__ void immnueoperate(Chrom *mutationnewpop,
Chrom *newpop,
Chrom *stVac,
float *g_imp,
int *g_vacpos
)
{
unsigned int tid = threadIdx.x;
unsigned int index = blockIdx.x * blockDim.x + threadIdx.x;
__shared__ float s_imp[256];
__shared__ int s_vacpos[256];
__shared__ float s_accp[256];
CUT_BANK_CHECKER(s_imp , threadIdx.x) = g_imp[blockIdx.x * blockDim.x + threadIdx.x];
CUT_BANK_CHECKER(s_vacpos , threadIdx.x) = g_vacpos[blockIdx.x * blockDim.x + threadIdx.x];
float k = s_imp[threadIdx.x];
Chrom chr ;
Chrom chrtemp;
for(int i = 0; i < CityNumber ;i++)
{
chr.chrom_gene[i] = mutationnewpop[blockIdx.x * blockDim.x + threadIdx.x].chrom_gene[i];
chrtemp.chrom_gene[i] = mutationnewpop[blockIdx.x * blockDim.x + threadIdx.x].chrom_gene[i];
}
chr.varible = mutationnewpop[blockIdx.x * blockDim.x + threadIdx.x].varible;
chrtemp.varible = mutationnewpop[blockIdx.x * blockDim.x + threadIdx.x].varible;
if(k < pim)
{
Gene temp1[CityNumber];
int vacpos = s_vacpos[tid];
int gene1 = stVac[vacpos].chrom_gene[0].num;
int gene2 = stVac[vacpos].chrom_gene[1].num;
Gene gen = stVac[vacpos].chrom_gene[1];
int pick1 = 0,pick2 = 0;
int u = 0;//v,m,n,t,q,r,s,y,w;
float temp = chr.varible;
for(int j = 0 ;j < CityNumber ; j++)
{
if(gene1 == chr.chrom_gene[j].num )
{
pick1 = j;
}
if(gene2 == chr.chrom_gene[j].num )
{
pick2 = j;
}
}
__syncthreads();
if(pick1<pick2)
{
//after move elements
for(int i = pick2-1 ;i > pick1;i--)
{
chr.chrom_gene[i+1] = chr.chrom_gene[i];
}
chr.chrom_gene[pick1+1] = stVac[vacpos].chrom_gene[1];
}
else
{
//before move
for(int i = pick2 ; i < pick1 ; i++)
{
chr.chrom_gene[i] = chr.chrom_gene[i+1];
}
chr.chrom_gene[pick1] = stVac[vacpos].chrom_gene[1];
}
float sum =0;
for(int i =0;i< CityNumber-1;i++)
{
Gene cid = chr.chrom_gene[i];
Gene cnextid = chr.chrom_gene[i+1];
sum +=sqrt(pow((cid.x-cnextid.x),2)+pow((cid.y-cnextid.y),2));
}
Gene q,s;
q =chr.chrom_gene[0];
s =chr.chrom_gene[CityNumber-1];
sum += sqrt(pow((q.x-s.x),2)+pow((q.y-s.y),2));
chr.varible = sum;
if(chr.varible < chrtemp.varible)
{
for(int i = 0;i < CityNumber;i++)
{
newpop[index].chrom_gene[i] = chr.chrom_gene[i];
}
newpop[index].varible = chr.varible;
}
else
{
for(int i = 0;i < CityNumber;i++)
{
newpop[index].chrom_gene[i] = chrtemp.chrom_gene[i];
}
newpop[index].varible = chrtemp.varible;
//newpop[index].fitness = chrtemp.fitness;
}
}
else
{
for(int i = 0;i < CityNumber;i++)
{
newpop[index].chrom_gene[i] = chr.chrom_gene[i];
}
newpop[index].varible = chr.varible;
//newpop[index].fitness = chr.fitness;
}
__syncthreads();
}
无心人_过过小日子
2009-06-17
打赏
举报
回复
程序已经有错误了.无所谓结果不结果.
wts_net
2009-06-17
打赏
举报
回复
[Quote=引用 3 楼 l7331014 的回复:]
引用 1 楼 wts_net 的回复:
引用楼主 wts_net 的帖子:
如题,我的程序出现了如上的问题,这是那里出错了呢?有知道的大虾请不吝赐教!
补充一下问题:一开始把数据拷贝到device中然后进行运算,运算过程中没有报错,但是输出结果都为0,在下面的调试栏中出现了Microsoft C++ 异常: 内存位置 0x0012f278 处的 cudaError 这样的提示,有知道问题所在地的请指导一下!
HOST程序越界.单步跟踪吧.
[/Quote]
在host端输出结果中有几个结果不为0,但是大部分为0。
wts_net
2009-06-16
打赏
举报
回复
[Quote=引用楼主 wts_net 的帖子:]
如题,我的程序出现了如上的问题,这是那里出错了呢?有知道的大虾请不吝赐教!
[/Quote]
补充一下问题:一开始把数据拷贝到device中然后进行运算,运算过程中没有报错,但是输出结果都为0,在下面的调试栏中出现了Microsoft C++ 异常: 内存位置 0x0012f278 处的 cudaError 这样的提示,有知道问题所在地的请指导一下!
无心人_过过小日子
2009-06-16
打赏
举报
回复
[Quote=引用 1 楼 wts_net 的回复:]
引用楼主 wts_net 的帖子:
如题,我的程序出现了如上的问题,这是那里出错了呢?有知道的大虾请不吝赐教!
补充一下问题:一开始把数据拷贝到device中然后进行运算,运算过程中没有报错,但是输出结果都为0,在下面的调试栏中出现了Microsoft C++ 异常: 内存位置 0x0012f278 处的 cudaError 这样的提示,有知道问题所在地的请指导一下!
[/Quote]
HOST程序越界.单步跟踪吧.
darkstorm2111203
2009-06-16
打赏
举报
回复
一般是访问了不该访问的地方
工业相机图像二值
处
理
程序主要做了三点工作: 1. 遍历文件夹中的图片,依次载入相应的
处
理对象;...2.DefetionFlaw.exe 中的 0x759f812f
处
有未经
处
理的
异常
:
Microsoft
C++
异常
:
内存
位置
0x079be540
处
的 cv::Exception。
error
:
Microsoft
Visual
C++
14.0 or greater is required. BUG解决包!
在Windows操作系统中,开发C或
C++
程序时,可能会遇到“
error
:
Microsoft
Visual
C++
14.0 or greater is required”这样的错误信息。这个错误表明你的计算机上缺少微软的Visual
C++
编译器,它是
Microsoft
Visual ...
C~
C++
程序员实用大全
此外,
异常
处
理和单元测试也是
C++
程序员必须掌握的重要实践,它们可以确保代码的健壮性和可靠性。 为了帮助读者巩固理论知识,书中通常会包含大量实例和练习题。通过实际编程,读者可以掌握如何在不同场景下应用所...
C/
C++
指针的13份资料
1. **指针的概念**:指针是一种特殊的变量,它存储的是
内存
地址,即另一个变量的
内存
位置
。通过指针,我们可以直接操作存储在该地址上的数据。 2. **声明指针**:在C/
C++
中,我们使用星号(*)来声明指针,例如`int *...
V
C++
编程100例
**V
C++
编程100例**是一份专为初学者设计的资源集合,涵盖了
C++
编程的多个核心领域。这份资料通过100个具体的编程实例,帮助学习者深入理解和应用
C++
语言,特别是与系统相关类的使用。在本文中,我们将探讨其中可能...
CUDA
589
社区成员
2,925
社区内容
发帖
与我相关
我的任务
CUDA
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
复制链接
扫一扫
分享
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章