现在国产GPU比较重视AI,大都对Pytorch和TensorFlow做了移植。但是像Numpy,cupy这些科学计算库也非常重要,数据分析和处理也是一个非常大的需求。
Cupy对AMD的Rocm的支持目前还是实验性的,只支持4.3和5.0两个版本。海光DCU与 Rocm同源,dtk23.10是基于5.2的分支,所以理论上具备可行性。
直接按照官方文档pip安装不行,只能从源代码编译安装
首先要设置相关环境变量
export CUPY_INSTALL_USE_HIP=1
export ROCM_HOME=/opt/dtk-23.10
export HCC_AMDGPU_TARGET=gfx906
另外还要设置
export LIBRARY_PATH=/opt/dtk-23.10/roctracer/lib:$LIBRARY_PATH
之后再pip安装即可,新版本13不行,缺少libamdhip64.so.5,降级到12即可
pip install cupy==12.*
跑了官网测试代码还行
>>> import cupy as cp
>>> x = cp.arange(6, dtype='f').reshape(2, 3)
>>> y = cp.arange(3, dtype='f')
>>> kernel = cp.ElementwiseKernel(
... 'float32 x, float32 y', 'float32 z',
... '''
... if (x - 2 > y) {
... z = x * y;
... } else {
... z = x + y;
... }
... ''', 'my_kernel')
>>> kernel(x, y)
array([[ 0., 2., 4.],[ 0., 4., 10.]], dtype=float32)