Z项目H800 NVL 基础环境配置(Ubuntu20.04 )
操作系统基础安装
配置源
本操作在Ubuntu 20.04下完成, 所有命令都以root身份执行,更新系统安装源为清华源
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
# source code mirrors are disabled by default to improve update speed
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse# prelease packages source
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
禁用系统自动更新
systemctl stop apt-daily.timer apt-daily.service apt-daily-upgrade.timer apt-daily-upgrade.service
systemctl mask apt-daily.service apt-daily-upgrade.service
systemctl disable apt-daily.service apt-daily-upgrade.service
systemctl disable apt-daily.timer apt-daily-upgrade.timer
systemctl daemon-reload
systemctl mask unattended-upgrades.service
systemctl stop unattended-upgrades.service
安装基础工具包
apt update
apt install -y build-essential bzip2 gcc g++ cmake python3-pip
pip3 install nvitop
apt upgrade
配置CPUPOWER
apt install -y linux-tools-common linux-tools-`uname -r`
apt install -y cpupower
cpupower frequency-set -g performance
禁用nouveau
#创建一个blacklist文件
bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"#在里面添加几行内容禁用nouveau
bash -c "echo blacklist lbm-nouveau >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
bash -c "echo options alias nouveau off >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
bash -c "echo alias lbm-nouveau off >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"bash -c "echo options nouveau modeset=0 > /etc/modprobe.d/nouveau-kms.conf"#更新initramfs, 以保重启后该驱动不会启动
update-initramfs -u#重启
reboot
加NVIDIA安装源
- 导入NVIDIA的源,在线安装时使用
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
dpkg -i cuda-keyring_1.0-1_all.deb
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"#下面的fabric manager和dcgm的安装依赖这一步
#在这里添加的这个地址网页可以直接打开,你可以把所有相关包都下载下来进行离线安装https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/,ubuntu22.04把url中的2004变成22.04即可
:::
在有些文档里面你也可以看到用这个方法来添加源的,效果是一样的,上面这个更简洁,把KEY和源URL一起处理了。
wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
下面这个key在每个发行版本的目录里面都查得到文件名
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
还有个https://7fa2af80.pub, 这是一个2020年的老key,对于ubuntu 22.04,你要去https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ 下面查一下对应的.pub文件名
add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
:::
:::
如果你想要添加特定的驱动版本,你可以在/etc/apt/source.list.d/cuda-ubuntu2004-x86_64.list
中的URL最后指定版本号,例如:
deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/11.6.0-1 /
:::
安装方法的概述
有两种安装方法“
-
配置源然后apt install, 这样对于指定非常小版本的驱动是无效的,比如nvidia driver就指定不了小版本~
-
下载deb文件,然后直接装
其实还有第3种方法,是用ubuntu-driver去管理,我们这里不提。
接下来文档的描述我们两种方法都有,按顺序装,先装驱动再装上层应用,本质上讲,Nvidia-driver和Fabric Manager算是驱动, cuda是应用程序。安装cuda的时候,cuda的run包里面会集成驱动, cuda 和nvcc,没有特殊的要求要以一把装起来。
我司的生产环境中,所使用的PyTorch要求cuda版本是12.1。
在生产环境的物理机中,其实只要装Nvidia驱动和Fabric Manager即可,但是为了验证功能,即你装的是不是正确的,所以还是要装一下CUDA和DCGM。
安装NVIDIA Driver
本地安装
下载驱动
535.129.03
地址:https://www.nvidia.com/Download/Find.aspx?lang=en-us
安装驱动
下载的是个run文件,chmod+x 后直接执行安装
wget https://us.download.nvidia.cn/tesla/535.129.03/NVIDIA-Linux-x86_64-535.129.03.run
chmod +x NVIDIA-Linux-x86_64-535.129.03.run
#wget https://us.download.nvidia.cn/tesla/535.161.08/NVIDIA-Linux-x86_64-535.161.08.run
./NVIDIA-Linux-x86_64-535.129.03.run
:::
要是你一直就想用最新版本的,可以直接使用下面的链接,随时下载的都是当前最新的
下载地址:https://www.nvidia.com/download/index.aspx?lang=en-us
:::
在线安装
#这三步在上面已经做过了,不用再做了
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
dpkg -i cuda-keyring_1.0-1_all.deb
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"version=535.129.03
main_version=$(echo $version | awk -F '.' '{print $1}')
apt-get update
apt-get -y install nvidia-driver-${main_version}#在线安装ubuntu会推荐你装535.161 ~ ,所以如果你查指定版本,还是用run文件下载的方式进行
FabricManager
本地安装
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/nvidia-fabricmanager-535_535.129.03-1_amd64.deb
dpkg -i nvidia-fabricmanager-535_535.129.03-1_amd64.deb
#这里的版本要和nVidia的版本保持一致,否则会导致服务无法启动
在线安装
#这三步在上面已经做过了,不用再做了
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
dpkg -i cuda-keyring_1.0-1_all.deb
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"#已经安装的驱动版本
version=535.129.03
main_version=$(echo $version | awk -F '.' '{print $1}')
apt-get update
apt-get -y install nvidia-fabricmanager-${main_version}=${version}-*#确定fabricmanager是自启动的
systemctl enable nvidia-fabricmanager
CUDA
本地安装
用下载RUN文件的方式安装
地址https://developer.nvidia.com/cuda-12-1-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=runfile_local
以12.1为例,选择操作系统版本,runfile后,下方有针对该系统的安装提示。
选deb(local)会有不同的提示,下载deb包再安装的过程。
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
sh cuda_12.1.0_530.30.02_linux.run
#安装过程不要勾选驱动程序,因为驱动程序在前面已经装过了, cuda的版本会自带一个固定的驱动,如果你无所谓驱动版本,前面驱动的安装步骤也可以不操作,和cuda安装的时候一把装完,然后再装fabric manager
在线安装
cuda安装指定版本似乎没有在线安装的方式, 上面那个官方文档的图里面,如果你选择"deb(network)"的方式去装,装的就是最新的12.4
cuda-samples
git clone https://github.com/NVIDIA/cuda-samples.git
cd cuda-samples
make -j 100 #这里视有多少CPU核心计, 中间如果有缺失的库要补一下
DCGM
NVIDIA数据中心GPU管理器(DCGM)是一套用于在集群环境中管理和监控NVIDIA数据中心GPU的工具。它包括主动运行状况监测、全面诊断、系统警报和治理策略,包括电源和时钟管理。它可以由基础设施团队独立使用,并可以轻松集成到NVIDIA合作伙伴的集群管理工具、资源调度和监控产品中。
DCGM简化了数据中心的GPU管理,提高了资源可靠性和正常运行时间,自动化了管理任务,并有助于提高整体基础设施的效率。DCGM支持x86_64、Arm和POWER(ppc64le)平台上的Linux操作系统。安装程序包包括库、二进制文件、NVIDIA验证套件(NVVS)和用于使用API的源代码示例(C、Python和Go)。
DCGM还使用DCGM Exporter集成到Kubernetes生态系统中,以在容器化环境中提供丰富的GPU遥测。
本地安装
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/datacenter-gpu-manager_3.3.5_amd64.deb
dpkg -i datacenter-gpu-manager_3.3.5_amd64.deb
在线安装
#在线安装比较方便,驱动已经安装好了,DCGM只是一个应用
#这三步在上面已经做过了,不用再做了
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
dpkg -i cuda-keyring_1.0-1_all.deb
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"#直接安装即可
apt update && apt install -y datacenter-gpu-manager#用下面的命令进行一次全面的测试
dcgmi diag -r 4
#测试结束后,截屏
#测试结束后, 运行nvdia-smi -q 导出结果为log文件,检查其中有没有错误