较高版本的 CUDA 对计算能力较低的设备的好处
Benefit of higher version of CUDA for devices with lower Compute Capability
我在 Tesla K20X (C.C.3.5) 上使用 CUDA 7.0。更新到更高版本的 CUDA 有什么好处,比如 8.0。将更高版本的 CUDA 与具有(低得多)C.C 的设备一起使用是否存在任何兼容性或稳定性风险?
(Nvidia 网站上各种可用的 CUDA 版本让我怀疑哪个是真正好的)
关于优势,较新的 CUDA 工具包版本通常比以前的 CUDA 工具包版本提供功能优势(新功能、and/or 增强的性能)。但是,偶尔也会出现性能下降。无法给出具体细节 - 它可能会根据您的确切代码而有所不同。然而,每个新的 CUDA 工具包版本通常都有摘要博客文章,例如 here is the one for CUDA 8 and here 是 CUDA 9 的一篇,描述了可用的新功能。
关于兼容性,无论您的设备的计算能力如何,只要您的设备受支持,转移到更高的 CUDA 版本应该没有风险。 7-9 范围内的所有当前 CUDA 版本都支持您的 cc3.5 GPU。
关于稳定性,较新的CUDA版本可能存在错误,但也有可能您现有的CUDA版本中的错误可能会在较新的版本中得到修复。这里不能保证;软件几乎总是有错误。但是,通常建议使用与您的 GPU 兼容的最新 CUDA 版本(在没有其他考虑的情况下),因为这可以让您访问最新的功能,并且至少让您最有可能解决历史上已知的问题。
我怀疑这些陈词滥调与您使用的软件堆栈(例如编译器、工具框架等)无关。我不认为这些考虑因素是 CUDA 特有或独有的。
I'm using CUDA 7.0 on a Tesla K20X (C.C. 3.5). Is there any benefit to update to a higher version of CUDA, say 8.0 ?
你在开玩笑吗?有 巨大的 好处。这是一个 world 的不同!看看 CUDA 8 feature descriptions(Parallel4All 博客条目)。具体来说,
CUDA 8.0 允许您使用 GCC 5.x 而不是 4.x
进行编译
这不仅可以让您免于构建自己的 GCC 的痛苦 - 因为现代发行版通常根本不打包它,而且它不是系统的默认编译器。此外,GCC 5.x 具有 lots of improvements,其中最重要的是对主机端代码的完整 C++14 支持。
CUDA 8 允许您在设备代码中使用 C++11 lambdas
(实际上,CUDA 7.5 允许您这样做,并且在 CUDA 8 中四舍五入)
NVCC 内部改进
我不能列出这些,但希望 NVIDIA 继续致力于其编译器,为其配备更好的优化逻辑。
编译速度更快
NVCC 使用 CUDA 8 显着 更快。它可能高达 2 倍,但即使它只是 1.5 倍 - 这确实提高了您作为开发人员的生活质量。 .
我要继续吗? ...无论您的计算能力如何,以上所有内容都适用。无论如何,CC 3.5 或 3.7 都没什么好打喷嚏的。
我在 Tesla K20X (C.C.3.5) 上使用 CUDA 7.0。更新到更高版本的 CUDA 有什么好处,比如 8.0。将更高版本的 CUDA 与具有(低得多)C.C 的设备一起使用是否存在任何兼容性或稳定性风险?
(Nvidia 网站上各种可用的 CUDA 版本让我怀疑哪个是真正好的)
关于优势,较新的 CUDA 工具包版本通常比以前的 CUDA 工具包版本提供功能优势(新功能、and/or 增强的性能)。但是,偶尔也会出现性能下降。无法给出具体细节 - 它可能会根据您的确切代码而有所不同。然而,每个新的 CUDA 工具包版本通常都有摘要博客文章,例如 here is the one for CUDA 8 and here 是 CUDA 9 的一篇,描述了可用的新功能。
关于兼容性,无论您的设备的计算能力如何,只要您的设备受支持,转移到更高的 CUDA 版本应该没有风险。 7-9 范围内的所有当前 CUDA 版本都支持您的 cc3.5 GPU。
关于稳定性,较新的CUDA版本可能存在错误,但也有可能您现有的CUDA版本中的错误可能会在较新的版本中得到修复。这里不能保证;软件几乎总是有错误。但是,通常建议使用与您的 GPU 兼容的最新 CUDA 版本(在没有其他考虑的情况下),因为这可以让您访问最新的功能,并且至少让您最有可能解决历史上已知的问题。
我怀疑这些陈词滥调与您使用的软件堆栈(例如编译器、工具框架等)无关。我不认为这些考虑因素是 CUDA 特有或独有的。
I'm using CUDA 7.0 on a Tesla K20X (C.C. 3.5). Is there any benefit to update to a higher version of CUDA, say 8.0 ?
你在开玩笑吗?有 巨大的 好处。这是一个 world 的不同!看看 CUDA 8 feature descriptions(Parallel4All 博客条目)。具体来说,
CUDA 8.0 允许您使用 GCC 5.x 而不是 4.x
进行编译这不仅可以让您免于构建自己的 GCC 的痛苦 - 因为现代发行版通常根本不打包它,而且它不是系统的默认编译器。此外,GCC 5.x 具有 lots of improvements,其中最重要的是对主机端代码的完整 C++14 支持。
CUDA 8 允许您在设备代码中使用 C++11 lambdas
(实际上,CUDA 7.5 允许您这样做,并且在 CUDA 8 中四舍五入)
NVCC 内部改进
我不能列出这些,但希望 NVIDIA 继续致力于其编译器,为其配备更好的优化逻辑。
编译速度更快
NVCC 使用 CUDA 8 显着 更快。它可能高达 2 倍,但即使它只是 1.5 倍 - 这确实提高了您作为开发人员的生活质量。 .
我要继续吗? ...无论您的计算能力如何,以上所有内容都适用。无论如何,CC 3.5 或 3.7 都没什么好打喷嚏的。