1,下载源码
GitHub - ROCm/rocBLAS: Next generation BLAS implementation for ROCm platform
$ git clone --recursive https://github.com/ROCm/rocBLAS.git
2, 编译
2.1 不带Tensile的编译
如果是在conda环境中,需要deactive conda 环境;
conda deactivate
cd rocBLAS \
&& mkdir build_d_notensile \
&& cd build_d_notensile \
&& export CXX=/opt/rocm/bin/hipcc \
&& cmake -DCMAKE_INSTALL_PREFIX=../../../local_d_no_tensile/rocblas/ \
-DBUILD_CLIENTS_SAMPLES=ON \
-DBUILD_CLIENTS_TESTS=ON \
-DBUILD_CLIENTS_BENCHMARKS=ON \
-DBUILD_WITH_TENSILE=OFF \
-DCMAKE_BUILD_TYPE=Debug ../../
make -j
2.2 测试
3, 移植规范
在踢掉 Tensile 后,rocBLAS 只剩下与 hip 生态相关的代码;
将 hip 的元语替换成 cuda 的元语,例如 hipMalloc -> cudaMalloc
将 hipcc 换成 nvcc,
将 hip/hip_runtime.h 换成 cuda_runtime.h,
将 gpu arch 的 gfx906 换成 2080 的 Turing
将 warpSize 从64 换成 32
未完待续... ...