NVSHMEM配置

环境说明
- Debian
- 单机两卡两个NUMA节点
- 我大部分使用的是源码编译,一开始没有给我分配sudo权限,后来必须要安装一个驱动,因此后面具有了sudo权限
依赖项:GDRCopy
- 从源码安装
1
2
3
4
5`sudo apt install nvidia-dkms-<your-nvidia-driver-version>`
make prefix=<install-to-this-location> CUDA=<cuda-install-top-dir> all install
比如make prefix=$HOME/gdrcopy CUDA=/usr/local/cuda all install
sudo ./insmod.sh
insmod.sh用于加载内核模块,会把gdrdrv驱动先删掉再重新加载
依赖项:Hydra process manager
- 在nvshmem_src里面有一个脚本install_hydra.sh
1
2
3./install_hydra.sh <download_path> <install_path>
比如 ./install_hydra.sh /home/cyu/hydra_src /home/cyu/hydra
export HYDRA_HOME=<install_path>
NVSHMEM安装配置
- 使用cmake
- 进入nvshmem_src目录
1
2mkdir build
cd build - 进行cmake configure,把要设置的环境变量写到-D后面
1
cmake -S .. -B . -DNVSHMEM_USE_GDRCOPY=1 -DNVSHMEM_MPI_SUPPORT=1 -DGDRCOPY_HOME=$HOME/gdrcopy -DMPI_HOME=/usr/mpi/gcc/openmpi-4.1.7rc1 -DMPI_INCLUDE_DIR=/usr/mpi/gcc/openmpi-4.1.7rc1/include -DMPI_LIBRARY=/usr/mpi/gcc/openmpi-4.1.7rc1/lib/libmpi.so -DNVSHMEM_IBGDA_SUPPORT=1 -DNVSHMEM_IBRC_SUPPORT=0
- 编译
1
make -j (nproc)
- 测试,留在nvshmem_src/build目录,下面展示测试shmem_put_bw
1
HYDRA_HOME/bin/nvshmrun -n 2 -ppn 2 ./perftest/device/pt-to-pt/shmem_put_bw -b 8 -e 8388608 -c 256