GPU显存不共享

验证:

import torch
a=torch.rand(2)
a=a.to("cuda:0")
b=a.to("cuda:1")
print(b)
# tensor([0.0, 0.0], device='cuda:1')
print(a)
# tensor([0.9285, 0.3294], device='cuda:0')

如果出现以上情况,就证明2张显卡之间内存没有共享,在跑大模型时,计算会出错。

解决方案:

一、禁用IOMMU

在Linux系统中,要禁用IOMMU(Input-Output Memory Management Unit),你需要在系统引导时修改内核参数。IOMMU用于虚拟化和硬件设备管理,因此禁用它可能会影响系统的一些功能,所以请谨慎操作,并确保你了解操作的影响。
下面是在Linux中禁用IOMMU的步骤:

1、编辑引导配置文件(GRUB或其他引导加载程序):
打开终端并以超级用户(root)或具有sudo权限的用户身份登录。
找到你的引导加载程序配置文件。对于大多数Linux系统,这是GRUB引导加载程序。
你可以编辑GRUB配置文件,通常位于/etc/default/grub中。使用文本编辑器打开它,例如:

vim /etc/default/grub

在GRUB配置文件中,找到GRUB_CMDLINE_LINUX或类似的行,它包含了内核参数。添加intel_iommu=off或amd_iommu=off,具体取决于你的硬件供应商。这样,该行可能会像这样:

GRUB_CMDLINE_LINUX="intel_iommu=off"
GRUB_CMDLINE_LINUX="amd_iommu=off"
GRUB_CMDLINE_LINUX="iommu=pt"

2、更新引导配置:

sudo update-grub

3、重启系统:

sudo reboot

二、更新驱动

在这里插入图片描述
可以看到最新版的驱动已经修复了这个问题
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46398647/article/details/133309013
今日推荐