是否可以在AMD GPU上运行CUDA?


76

我想将自己的技能扩展到GPU计算中。我熟悉光线跟踪和实时图形(OpenGL),但是下一代图形和高性能计算似乎是在GPU计算或类似的技术中。

我目前在家用计算机上使用AMD HD 7870显卡。我可以为此编写CUDA代码吗?(我的直觉不是,但是自从Nvidia发布编译器二进制文件以来,我可能是错的)。

第二个更普遍的问题是,我从哪里开始进行GPU计算?我敢肯定这是一个经常被问到的问题,但是我所看到的最好的是从08'开始的,我认为从那以后该领域已经发生了很大变化。



Answers:


58

不,您不能为此使用CUDA。CUDA仅限于NVIDIA硬件。OpenCL将是最好的选择。

Khronos本身有一份资源清单。就像StreamComputing.eu网站一样。对于特定于AMD的资源,您可能需要查看AMD的APP SDK页面

请注意,目前有一些举措可以将CUDA转换/交叉编译为不同的语言和API。HIP就是这样一个例子。但是请注意,这仍然并不意味着CUDA可以在AMD GPU上运行。


就像我想的那样。关于从哪里开始使用openCL进行GPGPU编程的任何建议?
李·雅各布斯

3
查阅《OpenCL编程指南》。关于OpenCL与CUDA的令人敬畏的事情之一是更好的工具支持
Callum Rogers

尽管以前不可能。现在可以在AMD硬件上运行cuda代码。概念是将其转换为HIP语言。请参阅下面的我的答案以检查链接。
Yeasin Ar Rahman

1
这仍然并不意味着您正在AMD设备上运行CUDA。这仅意味着您将CUDA代码转换为使用HIP API的C ++代码。它还不支持所有功能。我不会将其归类为AMD设备的CUDA工作流程。
巴特

@Bart我认为注释中提到您需要将其转换为中间语言。关于功能,请提及不支持哪个广泛功能,我认为其中大多数功能都受支持。但是,如果需要额外的性能,则需要进行一些与平台相关的特定调整。在文档中说,性能等于任何未优化/本机CUDA代码。
Yeasin Ar Rahman

14

您可以使用Coriander在Mac上以及实际上在一般的OpenCL 1.2 GPU上运行NVIDIA®CUDA™代码。披露:我是作者。用法示例:

cocl cuda_sample.cu
./cuda_sample

结果: 在此处输入图片说明


8

您不能将CUDA用于GPU编程,因为CUDA仅受NVIDIA设备支持。如果您想学习GPU计算,建议您同时启动CUDA和OpenCL。这将对您非常有益。关于CUDA,您可以使用mCUDA。它不需要NVIDIA的GPU。



6

我认为AMD FirePro GPU很快将有可能,请参见此处的新闻稿但开发工具的支持将于2016年第一季度发布:

计划于2016年第一季度针对“玻尔兹曼计划”工具进行早期访问。


看起来该新闻稿谈论的是hcc(大致来说是AMD的nvcc的类似物)和HIP(定义并实现了可在AMD和nVidia硬件上使用的通用API),基本上是作为CUDA和hcc的整个运行时库)。在另一个答案中有一个相关的链接场。
SamB

-3

截至2019_10_10,我尚未测试过,但是有一个“ GPU Ocelot”项目

http://gpuocelot.gatech.edu/

根据其广告,它试图为各种目标(包括AMD GPU)编译CUDA代码。


5
如果您在发布的链接上阅读了更多内容,您会看到Ocelot的开发在2012年停止,并且AMD后端从未真正完成。这绝对不是在2019年可行的选择(而在2011年几乎没有)
talonmies
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.