2013-03-17 120 views
2

CUDA 5最近发布,我一直在使用CUDA 4。所以我想知道如果我安装CUDA 5,我在CUDA 4中编写的代码是否仍会运行?CUDA 5与CUDA 4兼容

它是完全兼容还是部分?像gpuocelot这样需要CUDA 4的开源项目能否与CUDA 5一起工作?

由于

+2

您正在使用哪种操作系统?你不能同时安装CUDA 4.0和5.0并测试它们吗?至于差异,这取决于你实施的东西的种类。例如,CUDA 5.0中已经删除了CUTIL,所以如果您依赖它,则必须修改代码。我相信gpuocelot不支持所有新功能(它可能仍然是实验性的),而且它们的常见问题解答根本不涉及CUDA 5.0。如果这对你来说是一个很大的限制,你应该发送一封电子邮件到他们的邮件列表中。 – BenC 2013-03-17 14:12:19

+3

一般而言,它应该“只是工作”。请注意,虽然CUTIL被删除,但它从来不是CUDA的一部分,并且清楚地表明它仅仅是为了保持示例程序清洁和紧密,而不是让人们将其纳入自己的应用程序。一个需要注意的是,CUDA 5.0删除了某些基于字符串的API。这通常会影响cudaMemcpyToSymbol()调用。您可以在这里查看CUDA 5.0发行说明:http://developer.download.nvidia.com/compute/cuda/5_0/rel/docs/CUDA_Toolkit_Release_Notes_And_Errata.txt – njuffa 2013-03-17 20:35:16

回答

2

没有CUDA 4和CUDA 5.

之间100%的兼容性要选择只是一个例子,在CUDA 5,它是no longer permissible使用字符串来指示设备的符号,这在CUDA 4中可能具有某些API函数 。相反,符号应直接使用 。

也有人指出,示例代码的结构发生了显着变化,如果您使用示例代码的元素,这可能会影响您的代码。但在我看来,这不是一个真正的兼容性问题。

将cuda代码从CUDA 4移动到CUDA 5所需的更改可能很小(如果有的话)。

仿真器通常依赖于未发布的CUDA运行时特性,并且通常只能用于特定的CUDA版本。检查您选择的模拟器以了解有关所需运行时间的任何声明。