问题的背景是我们要移植fortran程序,所以需要用到hipfort库。问题本身简而言之就是,compiler/rocm/dtk-22.04.2其实是不包含hipfort,所以我要自己安装,根据官方github说明(https://github.com/ROCmSoftwarePlatform/hipfort)以及DCU教材4.2.3中的编译参数来安装以及测试,但测试任务(addvector)出现问题。安装如下,
1、git clone https://github.com/ROCmSoftwarePlatform/hipfort
2、mkdir build ; cd build
3、cmake -DHIPFORT_INSTALL_DIR=/public/home/ghfund2_a32/soft/hipfort-gnu7.3.1-install -DCMAKE_C_COMPILER=gcc -DCMAKE_Fortran_COMPILER=gfortran ..
4、make install
5、export PATH=/tmp/hipfort/bin:$PATH
顺利安装完,其中环境变量以及cmake配置过程中的显示提示如最后图片所附。然后按照github提示进行测试,
cd ../test/f2003/vecadd
hipfc -v hip_implementation.cpp main.f03
sbatch slurm.job
报错如下:
HIP ERROR: Error code = 3
其中,测试代码中的host代码部分可以正常执行,是从第一行device代码(call hipCheck(hipGetDeviceProperties(props,0)))就报错了。
估计问题有可能如下,请帮忙看看,
1、有可能是集群上的gfortran的版本不高所导致,因为hipfort安装提示gfortran最好高于7.5.0版本。但集群上最高的gfortran就是7.3.1版本(在compiler/devtoolset/7.3.1中),虽然gcc有很高的版本(compiler/gnu/11.2.0),但其中不包含gfortran,只有gcc。所以有可能的话,请集群管理者安装一个gfortran的最新版本。
2、按报错的信息,是device代码部分,估计最有可能是hipfort库的问题,所以可能是hipfort没有安装成功,这也与第一点有关。请集群管理者尽快帮忙安装一个hipfort的库,之前已经跟光和基金的田博士反馈过,但还没有解决。
希望得到帮助,任何有用的信息都非常感谢。或者有谁可以走一遍上面的流程(安装hipfort,然后测试f2003/vecadd的例子),就更好了。
安装hipfort以及测试时我在集群的环境以及安装hipfort时cmake的提示信息,以及提交脚本如下

暂无数据