Cuda nvcc 4.2“;ptxas错误:指令的操作数类型非法';ld'&引用;编译到sm_20时

Cuda nvcc 4.2“;ptxas错误:指令的操作数类型非法';ld'&引用;编译到sm_20时,cuda,Cuda,sm_13编译得很好,但sm_20多次出现此错误。不同编译选项之间的PTX文件完全不同。以下是PTX文件中有问题的行的示例: ld.global.u32 %r1, [cudaTextureLeftSource_3D_UI8]; 如果纯HLL代码(即没有内联PTX)出现这种情况,则可能是编译器前端(生成PTX代码的部分)中的错误,然后编译器后端的PTX解析器(使用中间PTX并将其编译为SASS机器代码)将错误的PTX标记为错误。此时,最简单的事情可能是尝试使用CUDA 5.0 RC编译器进行

sm_13编译得很好,但sm_20多次出现此错误。不同编译选项之间的PTX文件完全不同。以下是PTX文件中有问题的行的示例:

ld.global.u32   %r1, [cudaTextureLeftSource_3D_UI8];

如果纯HLL代码(即没有内联PTX)出现这种情况,则可能是编译器前端(生成PTX代码的部分)中的错误,然后编译器后端的PTX解析器(使用中间PTX并将其编译为SASS机器代码)将错误的PTX标记为错误。此时,最简单的事情可能是尝试使用CUDA 5.0 RC编译器进行编译,以查看问题是否仍然存在。如果是,请提交一个bug。PTX文件看起来完全不同,因为sm_1x使用不同的前端(Open64);其他目标使用NVVM前端。如果纯HLL代码(即没有内联PTX)出现这种情况,则可能是编译器前端(生成PTX代码的部分)中的错误,然后编译器后端的PTX解析器(使用中间PTX并将其编译成SASS机码)会将格式错误的PTX标记为错误。此时,最简单的事情可能是尝试使用CUDA 5.0 RC编译器进行编译,以查看问题是否仍然存在。如果是,请提交一个bug。PTX文件看起来完全不同,因为sm_1x使用不同的前端(Open64);其他目标使用NVVM前端。