11
34
运行时
hipfort使用问题
2022-09-11 22:39:24
152

问题的背景是我们要移植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的提示信息,以及提交脚本如下

全部评论(7)
只看楼主
C
cooper_peng
楼主
1楼
补充解释:安装hipfort 第五点"export PATH=/tmp/hipfort/bin:$PATH"写错了,我是修改的bashrc文件,检查过,路径没有错。另外安装hipfort时,cmake的显示输出里有关于fortran的报错,请看图片中的ERROR,我加上了图片上提示的flag(CMAKE_Fortran_FLAGS)后仍然会报同样的错。
2022/9/12
T
tianlh
回复 @cooper_peng

您好,gcc版本hipfort安装使用步骤如下:

##加载环境

module switch compiler/rocm/dtk-22.04.2

module load compiler/cmake/3.22.0-rc1

##安装

git clone https://github.com/ROCmSoftwarePlatform/hipfort

cd hipfort

git checkout release/rocm-rel-5.0

mkdir build ; cd build

cmake -DHIPFORT_INSTALL_DIR=/install/path -DCMAKE_C_COMPILER=gcc -DCMAKE_Fortran_COMPILER=gfortran ..

make install

##使用

export PATH=/install/path/bin:$PATH

cd ../test/f2003/vecadd

hipfc -v hip_implementation.cpp main.f03

#若在登录节点使用hipfc,需提前export HIPFORT_GPU=gfx906

./a.out
2022/9/13
T
tianlh
回复 @cooper_peng
hipfc之前再加一句 export HIPFORT_COMPILER=gfortran
2022/9/13
C
cooper_peng
回复 @cooper_peng

编译出现问题:如下图。环境如下:已经执行了“export HIPFORT_GPU=gfx906”。请帮忙继续解决。

2022/9/13
全部6条回复
没有更多内容了
--
楼主
Level.6
0 帖子
楼主热帖
暂无数据