Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CUDA ptxas错误“;函数使用了太多的共享数据”; 我以前从未使用过CUDA或C++,但是我尝试从运行中获得RAMSES GPU。 由于autogen.sh中的一个错误,我使用了./configure并使其正常工作。 因此,生成的makefile包含以下NVCC标志 NVCCFLAGS = -gencode=arch=compute_10,code=sm_10 -gencode=arch=compute_11,code=sm_11 -gencode=arch=compute_13,code=sm_13 -gencode=arch=compute_20,code=sm_20 -gencode=arch=compute_20,code=compute_20 -use_fast_math -O3_C++_Cuda_Ptxas - Fatal编程技术网

CUDA ptxas错误“;函数使用了太多的共享数据”; 我以前从未使用过CUDA或C++,但是我尝试从运行中获得RAMSES GPU。 由于autogen.sh中的一个错误,我使用了./configure并使其正常工作。 因此,生成的makefile包含以下NVCC标志 NVCCFLAGS = -gencode=arch=compute_10,code=sm_10 -gencode=arch=compute_11,code=sm_11 -gencode=arch=compute_13,code=sm_13 -gencode=arch=compute_20,code=sm_20 -gencode=arch=compute_20,code=compute_20 -use_fast_math -O3

CUDA ptxas错误“;函数使用了太多的共享数据”; 我以前从未使用过CUDA或C++,但是我尝试从运行中获得RAMSES GPU。 由于autogen.sh中的一个错误,我使用了./configure并使其正常工作。 因此,生成的makefile包含以下NVCC标志 NVCCFLAGS = -gencode=arch=compute_10,code=sm_10 -gencode=arch=compute_11,code=sm_11 -gencode=arch=compute_13,code=sm_13 -gencode=arch=compute_20,code=sm_20 -gencode=arch=compute_20,code=compute_20 -use_fast_math -O3,c++,cuda,ptxas,C++,Cuda,Ptxas,我试图在Linux上用内核2.6和CUDA 4.2编译这段代码(我在大学里尝试过,他们没有定期升级)。在两个NVIDIDA C1060上。我尝试用sm_20替换sm_10、sm_11和sm_13,(我在这里看到了这个修复:),但这并没有解决我的问题。 你有什么建议吗?如果你需要的话,我可以上传Makefile和其他所有东西。 感谢您的帮助!您正在编译的代码要求每个块静态分配28880字节(0x70d0)的共享内存。对于compute capability 2.x和更新的GPU,这没有问题,因为它

我试图在Linux上用内核2.6和CUDA 4.2编译这段代码(我在大学里尝试过,他们没有定期升级)。在两个NVIDIDA C1060上。我尝试用sm_20替换sm_10、sm_11和sm_13,(我在这里看到了这个修复:),但这并没有解决我的问题。 你有什么建议吗?如果你需要的话,我可以上传Makefile和其他所有东西。
感谢您的帮助!

您正在编译的代码要求每个块静态分配28880字节(0x70d0)的共享内存。对于compute capability 2.x和更新的GPU,这没有问题,因为它们最多支持48kb的共享内存。但是,对于compute capability 1.x设备,共享内存限制为16kb(内核参数最多可以消耗256个字节)。因此,无法为compute 1.x设备编译代码,编译器会生成一个错误,告诉您这一点。因此,错误来自于向编译器指定
sm_13/compute_13
。您可以删除它,构建应该可以工作


然而,情况变得更糟。特斯拉C1060是一种计算能力为1.3的设备。因此,您将无法在GPU上编译和运行这些内核。除了从构建中删除这些内核(如果您不需要它们),没有其他解决方案,或者将代码向后移植到compute 1.x体系结构。我不知道这是否可行。或者找到更现代化的硬件来运行代码。

也许错误消息是正确的,您试图为已安装的GPU卡使用过多的共享内存?
Entry function '_Z30kernel_viscosity_forces_3d_oldPfS_S_S_iiiiiffff' uses too much    shared data (0x70d0 bytes + 0x10 bytes system, 0x4000 max)
Entry function '_Z26kernel_viscosity_forces_3dPfS_S_S_iiiiiffff' uses too much shared data (0x70d0 bytes + 0x10 bytes system, 0x4000 max)
Entry function '_Z32kernel_viscosity_forces_3d_zslabPfS_S_S_iiiiiffff9ZslabInfo' uses too much shared data (0x70e0 bytes + 0x10 bytes system, 0x4000 max)