样例编译运行
配置环境变量
配置样例编译时依赖的环境变量:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
export INSTALL_DIR=/usr/local/Ascend/ascend-toolkit/latest
export PATH=/usr/local/mpich-3.2.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/mpich-3.2.1/lib:${INSTALL_DIR}:$LD_LIBRARY_PATH
- “INSTALL_DIR”是CANN软件安装后文件存储路径,其中“/usr/local/Ascend”为root用户的默认安装路径,如果使用普通用户安装,或指定路径安装,请自行替换。
- “/usr/local/mpich-3.2.1/lib”为安装后MPI的库文件所在路径,请根据实际情况替换。
配置Makefile文件
Makefile文件示例如下:
#
#loading path
#--------------------------------------------------------------------------------------------------------------------------------------------------
CXXFLAGS := -std=c++11\
-Werror\
-fstack-protector-strong\
-fPIE -pie\
-O2\
-s\
-Wl,-z,relro\
-Wl,-z,now\
-Wl,-z,noexecstack\
-Wl,--copy-dt-needed-entries
Common_DIR = ./src
Common_SRC = $(wildcard ${Common_DIR}/*.cc)
HCCL_INC_DIR = ${ASCEND_DIR}/include
HCCL_LIB_DIR = ${ASCEND_DIR}/lib64
ACL_INC_DIR = ${ASCEND_DIR}/include
ACL_LIB_DIR = ${ASCEND_DIR}/lib64
MPI_INC_DIR = ${MPI_HOME}/include
MPI_LIB_DIR = ${MPI_HOME}/lib
LIST = CommInitTest
#
#library flags
#--------------------------------------------------------------------------------------------------------------------------------------------------
LIBS = -L$(HCCL_LIB_DIR) -lhccl\
-L$(ACL_LIB_DIR) -lascendcl\
-L$(MPI_LIB_DIR) -lmpi
INCLUDEDIRS = -I$(HCCL_INC_DIR)\
-I$(ACL_INC_DIR)\
-I$(MPI_INC_DIR)\
-I$(Common_DIR)
#
#make
#--------------------------------------------------------------------------------------------------------------------------------------------------
all:
@mkdir -p bin
g++ $(CXXFLAGS) $(Common_SRC) $(INCLUDEDIRS) -o CommInitTest $(LIBS)
@printf "\033[0;32;32mCommInitTest compile completed\n\033[m"
mv $(LIST) ./bin
.PHONY: clean
clean:
rm -rf ./bin/*Test
编译样例
执行如下命令编译样例:
1 | make MPI_HOME=/usr/local/mpich-3.2.1/ ASCEND_DIR=/usr/local/Ascend/ascend-toolkit/latest |
编译成功后,会在执行编译命令的bin/目录下生成CommInitTest可执行文件。
执行样例
该样例通过获取ranktable的方式进行初始化,所以在执行该样例时需准备一份ranktable文件供后续调用接口时使用。
编译完成后,通过以下指令启动:
1 | mpirun -n <npu_num> ./bin/CommInitTest |
其中“-n”是需要启动的NPU总数。
父主题: 代码样例