社区
CUDA
帖子详情
Microsoft C++ 异常: 内存位置 0x0012f278 处的 cudaError
wts_net
2009-06-16 10:23:41
如题,我的程序出现了如上的问题,这是那里出错了呢?有知道的大虾请不吝赐教!
...全文
539
8
打赏
收藏
Microsoft C++ 异常: 内存位置 0x0012f278 处的 cudaError
如题,我的程序出现了如上的问题,这是那里出错了呢?有知道的大虾请不吝赐教!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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。
简单了解
C++
常见编程问题解决方案
问题1:Unhandled exception at 0x00007FFDB39AA839 in TesseractLACadd1.exe:
Microsoft
C++
exception: boost::filesystem::filesystem_
error
at memory location 0x000000EAFABFEED0. 解决方案:我只能说,这个的...
C_
C++
资料文档解析大集合
6. **
C++
0x.rar**:
C++
0x是
C++
11标准的早期代号,这个压缩包可能包含了关于
C++
11新特性的详细介绍,如lambda表达式、右值引用、自动类型推断等。理解这些新特性对于现代
C++
编程至关重要。 7. **更多免费资源.url**...
微软高级讲师讲解vs2005
c++
【标题】"微软高级讲师讲解vs2005
c++
" 涵盖了
C++
编程语言在Visual Studio 2005(VS2005)开发环境下的使用技巧和高级概念。作为微软的高级讲师讲解的内容,这部分教程不仅适合初学者,也对有经验的开发者具有很高的...
c++
经典代码大全.pdf
根据提供的文件信息,“
c++
经典代码大全.pdf”这本书聚焦于
C++
编程语言的经典代码实例,为读者提供了深入理解和掌握
C++
编程技巧的机会。下面将基于这些信息,详细展开相关的
C++
知识点。 ###
C++
经典代码大全概述 #...
CUDA
590
社区成员
2,925
社区内容
发帖
与我相关
我的任务
CUDA
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
复制链接
扫一扫
分享
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章