【问题标题】:Is it possible to run CUDA on AMD GPUs?是否可以在 AMD GPU 上运行 CUDA?
【发布时间】:2012-10-01 10:49:35
【问题描述】:

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

我目前在家用电脑上使用 AMD HD 7870 显卡。我可以为此编写 CUDA 代码吗? (我的直觉是否定的,但由于 Nvidia 发布了编译器二进制文件,我可能错了)。

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

【问题讨论】:

标签: cuda gpu gpgpu nvidia amd


【解决方案1】:

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

Khronos 本身有一个list of resourcesthe StreamComputing.eu website 也是如此。对于您的 AMD 特定资源,您可能需要查看AMD's APP SDK page

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

【讨论】:

  • 就像我想象的那样。有什么建议可以从哪里开始使用 openCL 进行 GPGPU 编程?
  • 查看OpenCL Programming Guide。关于 OpenCL 与 CUDA 最棒的事情之一是 much better tooling support
  • 虽然以前不可能。现在可以在 AMD 硬件上运行 cuda 代码。概念是将其转换为 HIP 语言。请参阅下面的答案以检查链接。
  • 这并不意味着您在 AMD 设备上运行 CUDA。这仅仅意味着您将 CUDA 代码转换为使用 HIP API 的 C++ 代码。它也不支持所有功能。我不会将此归类为 AMD 设备的 CUDA 工作流程。
  • @Bart 我认为评论中提到您需要将其转换为中间语言。关于功能,请提及不支持哪些广泛的功能,我认为其中大多数是。但是,如果您需要额外的性能,则需要进行一些与特定平台相关的调整。文档中说性能等于任何非优化/原生 CUDA 代码。
【解决方案2】:

您不能将 CUDA 用于 GPU 编程,因为 CUDA 仅受 NVIDIA 设备支持。 如果你想学习 GPU 计算,我建议你同时开始 CUDA 和 OpenCL。这对你很有好处。。 说到CUDA,可以用mCUDA。它不需要NVIDIA的GPU..

【讨论】:

    【解决方案3】:

    我认为 AMD FirePro GPU 很快就会实现,请参阅新闻稿here,但对开发工具的支持将在 2016 年第一季度推出:

    计划在 2016 年第一季度推出“玻尔兹曼倡议”工具的早期访问计划。

    【讨论】:

    • 看起来该新闻稿是在谈论 hcc(粗略地说,AMD 的 nvcc 类似物)和 HIP(它定义并实现了用于 AMD 和 nVidia 硬件的通用 API,基本上作为标题 - CUDA 之上的唯一库和 hcc 的整个运行时库)。 this other answer 中有一个相关的链接农场。
    【解决方案4】:

    是的。 :) 您可以使用 Hipify 将 CUDA 代码非常轻松地转换为 HIP 代码,该代码可以在 AMD 和 nVidia 硬件上很好地编译运行。这里有一些链接

    GPUOpen very cool site by AMD that has tons of tools and software libraries to help with different aspects of GPU computing many of which work on both platforms

    HIP Github Repository that shows the process to hipify

    HIP GPUOpen Blog

    2021 年更新:AMD 更改网站链接转到 ROCm 网站

    https://rocmdocs.amd.com/en/latest/

    【讨论】:

      【解决方案5】:

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

      cocl cuda_sample.cu
      ./cuda_sample
      

      结果:

      【讨论】:

        【解决方案6】:

        截至 2019_10_10 我还没有测试过,但是有“GPU Ocelot”项目

        http://gpuocelot.gatech.edu/

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

        【讨论】:

        • 如果您在您发布的链接上阅读更多内容,您会发现 Ocelot 的开发在 2012 年停止,并且 AMD 后端从未真正完成。这在 2019 年绝不是一个可行的选择(2011 年几乎没有)
        【解决方案7】:

        这些是我能找到的一些基本细节。

        Linux

        ROCm 支持 TensorFlow 和 PyTorch 等主要 ML 框架,并持续开发以增强和优化工作负载加速。

        好像只支持Linux系统。(https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html)

        ROCm supports TensorFlow 和 PyTorch 等主要 ML 框架,正在进行开发以增强和优化工作负载加速。 基于HIP

        用于可移植性的异构计算接口 (HIP) 是一种 C++ 方言,旨在简化将 CUDA 应用程序转换为可移植 C++ 代码的过程。它提供了 C 风格的 API 和 C++ 内核语言。 C++ 接口可以跨主机/内核边界使用模板和类。 HIPify 工具通过执行从 CUDA 到 HIP 的源到源转换来自动化大部分转换工作。 HIP 代码可以在 AMD 硬件(通过 HCC 编译器)或 NVIDIA 硬件(通过 NVCC 编译器)上运行,与原始 CUDA 代码相比没有性能损失。

        Tensorflow ROCm 端口是 https://github.com/ROCmSoftwarePlatform/tensorflow-upstream 和他们的 Docker 容器是https://hub.docker.com/r/rocm/tensorflow

        苹果机

        This 支持 macOS 12.0+(根据他们的声明)

        Apple 于 2020 年 10 月和 11 月使用量产的 3.2GHz 16 核基于 Intel Xeon W 的 Mac Pro 系统、32GB RAM、AMD Radeon Pro Vega II Duo 显卡、64GB HBM2 和 256GB 进行了测试固态硬盘。

        您现在可以在 TensorFlow v2.5 中利用 Apple 的 tensorflow-metal PluggableDevice 直接使用 Metal 在 Mac GPU 上进行加速训练。

        【讨论】:

          猜你喜欢
          • 2011-05-19
          • 1970-01-01
          • 2018-06-11
          • 2019-10-06
          • 2018-12-05
          • 2019-01-14
          • 2015-12-15
          • 2021-08-21
          • 1970-01-01
          相关资源
          最近更新 更多