CUDA:尝试创建CUDASW++;

CUDA:尝试创建CUDASW++;,cuda,Cuda,我不断得到: nvcc fatal : Value 'sm_20' is not defined for option 'gpu-name' 我的GPU是GTX 590,实际上是2.0版,所以这不是问题所在。我切换到了较低的版本(sm_20),在.h文件中出现了大量错误 有什么想法可以试试吗?我正在使用cuda 5.0。您可以尝试compute\u 20而不是sm\u 20 查看CUDA 5.0中的nvcc文档,没有提到--gpu name命令行选项。我想这是一个旧选项,您可能应该改用-a

我不断得到:

nvcc fatal   : Value 'sm_20' is not defined for option 'gpu-name'
我的GPU是GTX 590,实际上是2.0版,所以这不是问题所在。我切换到了较低的版本(sm_20),在.h文件中出现了大量错误


有什么想法可以试试吗?我正在使用cuda 5.0。

您可以尝试
compute\u 20
而不是
sm\u 20


查看CUDA 5.0中的nvcc文档,没有提到
--gpu name
命令行选项。我想这是一个旧选项,您可能应该改用
-arch
和/或
-code
选项。

sm_20
很好,但nvcc选项名称已更改。非常旧版本的nvcc在编译器选项
-arch
中使用了长名称
--gpu name
。在较新的版本中,
-arch
的长名称已改为
-gpu架构
(我想大约是从CUDA 3.0开始)。另请参阅NVCC文档。您确定正在使用cuda 5.0吗?我不认为cuda 5中的nvcc认可这个选项。如果您认为正在使用cuda 5.0(
nvcc--version
),我会得到类似于
nvcc致命:未知选项“gpu名称”
)的响应然后仔细检查makefile正在使用的路径,看看是否有旧版本的nvcc挂在某处。@Robert Crovella:看来此应用程序的makefile是使用旧版本的nvcc编写的,其中选项
-arch
的长名称是
--gpu name
(我相信这是CUDA 3.0之前的情况;在CUDA的早期版本中,它肯定有这么长的名字)。此后,
-arch
编译器选项的长名称已更改为
--gpu架构
,应用程序的生成文件将必须相应调整。@njuffa同意。但海报上说他们已经安装了cuda 5。如果我将
--gpu名称
作为选项传递(可能是旧的生成文件正在执行此操作)对于cuda 5 nvcc,我没有收到海报上显示的错误消息。该错误消息表明nvcc包含
--gpu name
选项,但不包含参数
sm_20
,这将与实际的nvcc版本2.1或类似版本一致。cuda 5中的nvcc无法生成特定的消息ge,我不这么认为。我同意makefile仍然是一团糟。我试图指出可能有两个问题。@Robert Crovella感谢您的澄清。我错过了更精彩的一点,可能不是一个而是两个不同的问题结合在一起。