一、向量加法程序
Radeon Open Compute (ROCm) 是一个开源平台,用于加速高性能计算 (HPC) 和机器学习应用程序。它支持包括GPUs在内的多种硬件,并提供HIP (Heterogeneous-compute Interface for Portability) 作为CUDA代码的便捷转换工具。为了提供一个使用ROCm的实例,假设已经在符合要求的硬件上安装了ROCm环境。下面的例子是一个简单的向量加法程序,使用了ROCm的HIP API。
首先,需要编写 HIP 源代码,该代码之后可以被编译运行在 AMD GPU 上。可以创建一个名为 vector_add.cpp
的文件:
#include <hip/hip_runtime.h>
#include <iostream>
#define N 50000
__global__ void vector_add(float *out, float *a, float *b, int n) {
int index = threadIdx.x + blockIdx.x * blockDim.x;
if (index < n) {
out[index] = a[index] + b[index];
}
}
int main() {
float *a, *b, *out;
float *d_a, *d_b, *d_out;
// 分配host内存