无法打开输入文件

wts_net 2009-07-02 10:03:27
CUDA 在DEBUG的时候出现LINK : fatal error LNK1181: 无法打开输入文件“.\Debug\template.obj”,各位大虾有谁知道这是什么问题呢?跪求解决办法,渴望得到快速回答!
...全文
462 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wts_net 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 l7331014 的回复:]
__global__ void chromCost(Chrom chr,....
整个结构作为参数传送啊?太大了吧.copy到gmem上,只把gmem的地址作为指针传入.
[/Quote]
哦,好的,谢谢大虾指点.
wts_net 2009-07-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 l7331014 的回复:]
引用 6 楼 wts_net 的回复:
能给个建议怎么修正吗?局部参数太多太大是指的什么局部?



给出你的chromCost5Chrom函数.
[/Quote]
struct Gene
{
int num;
float x;
float y;
}city[CityNumber];

//染色体定义(到各城市顺序的一种组合)
struct Chrom
{
Gene chrom_gene[CityNumber]; //染色体(到各城市去的顺序)
float varible; //路程总开销
//float fitness; //个体适应度
};
这是求一条路径的长度
__global__ void chromCost(Chrom chr,
float* g_distance,
float *d_fortest
//float *d_Length,
)
{
/*__shared__ float sdata[];

unsigned int tid = threadIdx.x;
unsigned int i = blockIdx.x * blockDim.x + threadIdx.x ;
sdata[tid] = */
__shared__ Gene s_curtour[256];
__shared__ float s_length[256];
Gene temp = {0,0.0f,0.0f};

//int i = 0, j = 0;
int u, v, offset;
float length, dis;

if(threadIdx.x < 225)
{
CUT_BANK_CHECKER(s_curtour, threadIdx.x) = chr.chrom_gene[blockIdx.x * CityNumber + threadIdx.x];
}
else
{
CUT_BANK_CHECKER(s_curtour, threadIdx.x) = temp;
}
__syncthreads();

if(threadIdx.x < CityNumber){
u = s_curtour[threadIdx.x].num;
v = s_curtour[(threadIdx.x + 1)%CityNumber].num;

dis =g_distance[u*CityNumber + v];
s_length[threadIdx.x] = dis;
}
else{
s_length[threadIdx.x] = 0.0f;
}

__syncthreads();

d_fortest[blockIdx.x*CityNumber + threadIdx.x] = s_length[threadIdx.x];
offset = 1;

for(int d = 256>>1; d>0; d>>=1)
{
__syncthreads();
if(threadIdx.x<d)
{
int ai = offset*(2*threadIdx.x+1)-1;
int bi = offset*(2*threadIdx.x+2)-1;
s_length[bi] += s_length[ai];
}
offset *= 2;
}
__syncthreads();

length = s_length[255];
__syncthreads();
if(threadIdx.x == 0)
{
chr.varible = length;

}

}
  • 打赏
  • 举报
回复
__global__ void chromCost(Chrom chr,....
整个结构作为参数传送啊?太大了吧.copy到gmem上,只把gmem的地址作为指针传入.
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wts_net 的回复:]
能给个建议怎么修正吗?局部参数太多太大是指的什么局部?
[/Quote]

给出你的chromCost5Chrom函数.
wts_net 2009-07-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 l7331014 的回复:]
引用 2 楼 wts_net 的回复:
补充:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/tmpxft_00001b4c_00000000-9_template.cpp3.i(0): Error: Formal parameter space overflowed in function _Z9chromCost5ChromPfS0_ 编译之后出现这样的提示.



局部参数太多太大了.
[/Quote]
能给个建议怎么修正吗?局部参数太多太大是指的什么局部?
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wts_net 的回复:]
引用 1 楼 l7331014 的回复:
编译参数中加-keep, 检查“.\Debug\template.obj实际存在吗?


不太明白你的意思,能说明白点吗?
[/Quote]

项目->属性->cuda-command line,中,加上参数-keep.
就是告诉nvcc,在编译时,还要用上-keep参数.
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wts_net 的回复:]
补充:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/tmpxft_00001b4c_00000000-9_template.cpp3.i(0): Error: Formal parameter space overflowed in function _Z9chromCost5ChromPfS0_ 编译之后出现这样的提示.
[/Quote]

局部参数太多太大了.
wts_net 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 l7331014 的回复:]
编译参数中加-keep, 检查“.\Debug\template.obj实际存在吗?
[/Quote]
不太明白你的意思,能说明白点吗?
wts_net 2009-07-02
  • 打赏
  • 举报
回复
补充:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/tmpxft_00001b4c_00000000-9_template.cpp3.i(0): Error: Formal parameter space overflowed in function _Z9chromCost5ChromPfS0_ 编译之后出现这样的提示.
  • 打赏
  • 举报
回复
编译参数中加-keep, 检查“.\Debug\template.obj实际存在吗?

579

社区成员

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

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