HCCL Test工具依赖MPI启动多个进程,所以需要先安装MPI软件,再进行HCCL Test工具的编译。
[object Object]
如果通信网卡仅使用IPv4协议:
[object Object]- 针对Ascend 950PR/Ascend 950DT,请安装版本或者版本。[object Object][object Object]
- 针对Atlas A3 训练系列产品/Atlas A3 推理系列产品,请安装版本或者版本。[object Object][object Object]
- 针对Atlas A2 训练系列产品/Atlas A2 推理系列产品,请安装版本或者版本。[object Object][object Object]
- 针对Atlas 训练系列产品,请安装版本或者版本。[object Object][object Object]
- 针对Atlas 推理系列产品,请安装版本或者版本。[object Object]
下面分别介绍MPICH与Open MPI的安装配置流程。
安装MPICH软件包。
下载并解压MPICH软件包。
获取到mpich-${version}.tar.gz后,执行如下命令解压缩软件包。
[object Object]${version}为MPICH的版本号。
进入MPICH解压后路径,并配置编译选项。
[object Object]- --disable-fortran:禁用Fortran语言支持。
- --prefix:指定的MPI安装路径,用户可自定义。
- --with-device:指定通信协议,不添加该参数则默认使用OFI协议,配置为ch3:nemesis时,指定使用TCP协议。需注意,MPICH 4.1.3版本下,必须使用TCP协议。
编译并安装MPICH。
[object Object]以上命令执行完成后MPICH会安装在“/usr/local/mpich”路径下。
[object Object]
配置网络节点信息。
将运行环境的IP地址加入到“/etc/hosts”文件中,格式为“IP地址 主机名”,示例如下:
[object Object]其中“node3”为主机名,可通过执行“ hostname”命令获取。
注意如果是Euler OS操作系统,需要执行如下命令使更新后的“/etc/hosts”文件生效:
[object Object]配置当前操作节点到集群通信节点的SSH信任关系,以支持集群通信节点远程SSH登录。
以下仅为操作示例:
在当前操作节点生成密钥信息(如若环境中存在,可不重复执行):
[object Object]例如密钥信息生成后,存储在“$HOME/.ssh/id_rsa.pub”文件中。
将操作节点的公钥文件复制到集群通信其他节点,实现SSH密钥登录远程主机。
示例如下,其中${node_X__ip_address}是需要与操作节点通信的节点IP地址。
[object Object]SSH登录上文中已设置好信任关系的节点,确认是否可以直接登录。
下载并解压Open MPI软件包。
参见下载4.1.5版本的软件包,例如:openmpi-4.1.5.tar.gz,然后执行如下命令解压缩软件包。
[object Object]解压缩后Open MPI源码存储在openmpi-4.1.5路径下。
编辑Open MPI源码相关配置文件,修改Open MPI支持的最大Host数量。
进入Open MPI源码存储路径。
[object Object]修改“orte/mca/routed/radix/routed_radix_component.c”配置文件。
[object Object]修改配置参数“mca_routed_radix_component.radix”的值为“集群中总卡数/单Server中卡数”,例如:
[object Object]保存退出。
修改“orte/mca/plm/rsh/plm_rsh_component.c”配置文件。
[object Object]修改配置参数“mca_plm_rsh_component.num_concurrent”的值为“集群中总卡数/单Server中卡数”,例如:
[object Object]保存退出。
配置编译选项。
[object Object]- --disable-fortran:禁用Fortran语言支持。
- --enable-ipv6:启用IPv6支持。
- --prefix:配置的Open MPI的安装路径,用户可自定义。
编译并安装Open MPI。
[object Object]以上命令执行完成后Open MPI会安装在“/usr/local/openmpi”路径下。
[object Object]
配置网络节点信息。
将运行环境的主机信息加入到“/etc/hosts”文件中,格式为“IP地址 主机名”(主机名可通过执行“ hostname”命令获取),示例如下:
[object Object]注意如果是Euler OS操作系统,需要执行如下命令使更新后的“/etc/hosts”文件生效:
[object Object]配置当前操作节点到集群通信节点的SSH信任关系,以支持集群通信节点远程SSH登录。
以下仅为操作示例:
在当前操作节点生成密钥信息(如若环境中存在,可不重复执行):
[object Object]例如密钥信息生成后,存储在“$HOME/.ssh/id_rsa.pub”文件中。
将操作节点公钥复制到集群通信其他节点,实现SSH密钥登录远程主机。
如果通信网卡使用IPv4地址,公钥复制命令如下:
[object Object]例如:
[object Object]如果通信网卡使用IPv6地址,公钥复制命令如下:
[object Object]例如:
[object Object]
SSH登录到配置信任关系的节点,确认是否可以直接登录。
配置Open MPI启动参数,此步骤仅在通信网卡使用IPv6协议时进行,若使用IPv4协议,跳过即可。
[object Object]
安装完MPI软件后,需要进行HCCL Test性能测试工具的编译。
配置编译依赖环境变量。
安装MPICH的场景:
[object Object]安装Open MPI的场景:
[object Object]
“INSTALL_DIR”是CANN软件安装后文件存储路径,其中“/usr/local/Ascend/cann”为root用户的默认安装路径,如果使用普通用户安装,或指定路径安装,请自行替换。
“/usr/local/mpich”以及“/usr/local/openmpi”为MPI安装路径,请根据实际情况替换。
进入HCCL性能测试工具源码存放路径。
[object Object]编译HCCL性能测试工具。
安装MPICH的场景:
[object Object]安装Open MPI的场景:
[object Object]
其中“MPI_HOME”为MPI安装路径,“ASCEND_DIR”为CANN软件安装后文件存储路径。
编译成功后,会在${INSTALL_DIR}/tools/hccl_test/bin目录下生成集合通信性能测试工具的可执行文件,例如:
all_gather_test、all_reduce_test等,每一个可执行文件对应一个集合通信算子。