社区
CUDA
帖子详情
Microsoft C++ 异常: 内存位置 0x0012f278 处的 cudaError
wts_net
2009-06-16 10:23:41
如题,我的程序出现了如上的问题,这是那里出错了呢?有知道的大虾请不吝赐教!
...全文
572
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
打赏
举报
回复
一般是访问了不该访问的地方
VS+Opencv出现:xxx
处
有未经
处
理的
异常
:
Microsoft
C++
异常
: cv::Exception,位于
内存
位置
xxx
处
。
本文主要讲述了opencv配置运行时出现的报错,错误提示为
Microsoft
C++
异常
。给出了相应解决方法,包括路径出错时手动录入或从文件夹目录复制路径;属性方面,Debug版和Release版的库文件要分开;还提到程序、图片、Mat等可能出错的情况及
处
理办法。
Microsoft
C++
异常
:
内存
位置
0x00dde3e0
处
的
cuda
Error
_enum
博客指出
内存
位置
0x00dde3e0
处
出现
cuda
Error
_enum
异常
,原因是
CUDA
版本与 GPU 版本不兼容。建议去 nvidia 官网查询当前 GPU 兼容的
CUDA
版本,以解决该
异常
问题。
SURF角点检测出现错误:SURF.exe 中的 0x756ad36f
处
未
处
理的
异常
:
Microsoft
C++
异常
:
内存
位置
0x003fcaf0
处
的 cv::Exception。
在使用SURF角点检测时遇到0x756ad36f
处
的未
处
理
异常
,原因是图片加载失败导致的cv::Exception。通过在代码中检查图片是否加载成功,如果为空则输出错误信息并返回-1,从而解决了
内存
异常
问题。
有未经
处
理的
异常
:
Microsoft
C++
异常
: cv::Exception,位于
内存
位置
0x0000006A6311F318
处
。
博客讲述了相同代码在不同项目配置下的运行情况,在lvbo下提示错误,tc1下可正常显示。给出三种解决思路,一是点击箭头提示不明;二是将图片路径改为绝对路径且用双斜杠后成功;三是发现tc1里图片
位置
正确,更改project1图片路径,不使用绝对路径也能成功。
VS+Opencv出现:位于 OpenCVTest.exe 中有未经
处
理的
异常
:
Microsoft
C++
异常
: std::bad_alloc,位于
内存
位置
0x0000003898FBEC70
处
本文讲述了在OpenCVTest.exe中遇到std::bad_alloc
异常
的具体解决步骤,包括路径问题和opencv_world460.lib配置调整。路径问题涉及正确使用斜杠和绝对路径,而库文件配置需确保Debug和X64模式下使用对应版本的lib。
CUDA
591
社区成员
2,925
社区内容
发帖
与我相关
我的任务
CUDA
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
复制链接
扫一扫
分享
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章