ubuntu 22.04使用L40显卡显存仅有46068 MiB

L40标称显存为48G,为何ubuntu装完驱动之后使用nvidia-smi查看仅显示46068 MiB,这里看到ECC为0,实际是开启了。

原因就出自L40默认开启了ECC纠错,ECC纠错会导致额外占用显存3%-5%

# 执行查看ECC是否开启的命令
nvidia-smi -q | grep 'ECC Mode' -A 2
    ECC Mode
        Current                           : Enabled
        Pending                           : Enabled
--
    ECC Mode
        Current                           : Enabled
        Pending                           : Enabled

# 执行关闭ECC纠错
nvidia-smi -e 0
Disabled ECC support for GPU 00000000:01:00.0.
Disabled ECC support for GPU 00000000:02:00.0.
All done.

# 再次查看
nvidia-smi -q | grep 'ECC Mode' -A 2
    ECC Mode
        Current                           : Enabled
        Pending                           : Disabled
--
    ECC Mode
        Current                           : Enabled
        Pending                           : Disabled

# 执行重启
reboot

关闭ECC纠错后务必重启服务器,待服务器重启之后观察nvidia-smi,可以看到ECC为off,显存大小也正常显示

# 通过命令行查看
nvidia-smi -q | grep 'ECC Mode' -A 2
    ECC Mode
        Current                           : Disabled
        Pending                           : Disabled
--
    ECC Mode
        Current                           : Disabled
        Pending                           : Disabled

执行ECC纠错关闭后重启,发现ECC没有正常关闭,这是什么原因呢?答案就是显卡驱动是通过apt安装的,对于ubuntu server可能存在某些不兼容问题,这里建议通过官网下载.run的驱动进行安装

# 卸载老驱动
apt-get --purge remove nvidia*

# 关闭nouveau显卡驱动,在blacklist.conf中添加
vi /etc/modprobe.d/blacklist.conf
blacklist nouveau
options nouveau modeset=0

# 更新系统
update-initramfs -u

# 执行重启
reboot

# 验证,无输出则为成功
lsmod | grep nouveau

# 安装依赖
sudo apt install dkms build-essential linux-headers-$(uname -r) gcc make -y

# 执行驱动安装(无人值守模型,建议全新安装时使用)
./NVIDIA-Linux-x86_64-550.144.03.run --ui=none --disable-nouveau --no-install-libglvnd --dkms --no-cc-version-check --no-opengl-files -s
 

永久开启 NVIDIA GPU 的持久模式

# 创建用户
sudo useradd -r nvidia-persistenced

# 创建systemd启动文件
sudo vi /etc/systemd/system/nvidia-persistenced.service
[Unit]
Description=NVIDIA Persistence Daemon
After=syslog.target systemd-modules-load.service

[Service]
Type=forking
ExecStart=/usr/bin/nvidia-persistenced --user nvidia-persistenced
ExecStop=/usr/bin/nvidia-persistenced --kill
Restart=always

[Install]
WantedBy=multi-user.target

# 执行启动并开机启动
sudo systemctl daemon-reload
sudo systemctl enable nvidia-persistenced.service  # 开机自启
sudo systemctl start nvidia-persistenced.service   # 立即启动
此条目发表在AI大模型分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注