Bar*_*art 40
不,你不能使用CUDA.CUDA仅限于NVIDIA硬件.OpenCL将是最好的选择.
Khronos本身有一份资源清单.一样的StreamComputing.eu网站.对于您的AMD特定资源,您可能需要查看AMD的APP SDK页面.
请注意,目前有几种方法可以将CUDA转换/交叉编译为不同的语言和API.一个这样的例子是HIP.但请注意,这仍然不意味着CUDA在AMD GPU上运行.
Hug*_*ins 11
您可以使用Coriander在Mac上运行NVIDIA®CUDA™代码,实际上也可以在OpenCL 1.2 GPU上运行.披露:我是作者.用法示例:
cocl cuda_sample.cu
./cuda_sample
Run Code Online (Sandbox Code Playgroud)
您不能将CUDA用于GPU编程,因为仅NVIDIA设备支持CUDA.如果你想学习GPU计算,我建议你同时启动CUDA和OpenCL.这对你非常有益.谈到CUDA,你可以使用mCUDA.它不需要NVIDIA的GPU ..
对.:)你可以使用Hipify将CUDA代码很容易地转换为HIP代码,可以在AMD和nVidia硬件上运行编译.这是一些链接
GPU打开非常酷的AMD网站,它有大量的工具和软件库来帮助GPU计算的不同方面,其中很多都可以在这两个平台上运行
小智 5
正如其他人已经指出的,CUDA 只能直接在 NVIDIA GPU 上运行。如前所述,现有的 CUDA 代码可以进行hipify编辑,它本质上运行一个sed脚本,将已知的 CUDA API 调用更改为 HIP API 调用。然后,HIP 代码可以在 NVIDIA(CUDA 后端)或 AMD(ROCm 后端)GPU 上编译和运行。
我想提供的新信息是,如果有人不想要hipify他们现有的 CUDA 代码(即,将所有 CUDA API 调用更改为 HIP API 调用),还有另一个选项可以使用;只需添加(并包含)一个头文件,将 CUDA 调用重新定义为 HIP 调用。例如,简单的向量加法代码可能使用以下头文件:
#include "hip/hip_runtime.h"
#define cudaMalloc hipMalloc
#define cudaMemcpy hipMemcpy
#define cudaMemcpyHostToDevice hipMemcpyHostToDevice
#define cudaMemcpyDeviceToHost hipMemcpyDeviceToHost
#define cudaFree hipFree
Run Code Online (Sandbox Code Playgroud)
...主程序将包含头文件:
#include "/path/to/header/file"
int main(){
...
}
Run Code Online (Sandbox Code Playgroud)
当然,编译需要nvcc(照常)在 NVIDIA GPU 和hipccAMD GPU 上使用。
关于从哪里开始 GPU 计算(一般来说),我建议从 CUDA 开始,因为它拥有最多的文档、示例代码和可通过 Google 搜索获得的用户体验。好消息是,一旦您知道如何在 CUDA 中编程,您基本上就已经知道如何在 HIP 中编程了:)
| 归档时间: |
|
| 查看次数: |
106374 次 |
| 最近记录: |