我有以下问题:
cudaStatus = cudaSetDevice(gpuNo); //GPU select
cudaDeviceProp prop;
cudaGetDeviceProperties(&prop, gpuNo);
int ileWatkow = 512;
int ileSM = prop.multiProcessorCount;
int ileBlokow;
cudaOccupancyMaxActiveBlocksPerMultiprocessor(&ileBlokow, KernelTransformataPET_optymalizacja2, ileWatkow, 0);
在1080Ti中返回ileBlokow=1,
,但是如果我在2080Ti中编译并运行,则返回ileBlokow=0
,
有时,如果我在1080Ti的新项目中复制粘贴内核,则会返回ileBlokow=0
。我不知道发生了什么事...
内核有点大...包含很多代码行...
1> ptxas info : Compiling entry function '_Z36KernelTransformataPET_optymalizacja2P6float2S0_S0_PfS1_S1_S1_PiS2_S2_' for 'sm_61'
1> ptxas info : Function properties for _Z36KernelTransformataPET_optymalizacja2P6float2S0_S0_PfS1_S1_S1_PiS2_S2_
1> 408 bytes stack frame, 490 bytes spill stores, 904 bytes spill loads
1> ptxas info : Used 255 registers, 424 bytes cumulative stack size, 16384 bytes smem, 400 bytes cmem[0]
1> ptxas info : Function properties for _ZnwyPv
1> 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
1> ptxas info : Function properties for __brev
1> 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
这是返回ptxas信息的原因。
如果我使用CC 6.1进行1080或7.5进行2080的编译,两者之间没有什么不同。
cuda工具包9.1或10.1之间没有什么不同,两者都是相同的问题
有人可以帮忙,给我一些提示或建议,我应该在哪里寻找问题?
平台:Windows + VS 2015
答案 0 :(得分:0)
我解决了这个问题。
有两件事:
->这是我的错误,也是我从1080i到最新卡的从主机到设备方法的cuda复制问题。
所以,我的问题解决了,谢谢大家的帮助:)特别感谢@Robert Crovella