You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PyTorch模型无法在Nvidia GTX 1650 GPU运行,转而使用Intel核显的解决咨询

嘿,这个问题我碰到过好几次了!明明CUDA显示可用,但GTX1650就是躺平,核显在那瞎忙活,咱们一步步把独显唤醒:

一、强制指定PyTorch使用NVIDIA GPU

系统里有两个GPU时,PyTorch可能默认选了核显(尤其是笔记本,核显负责显示,优先级可能更高),你可以主动指定使用独显:

  • 显式指定设备ID:先搞清楚你的GTX1650对应的设备ID,在代码里加这几行:
    import torch
    print(torch.cuda.device_count())  # 应该输出2
    print(torch.cuda.get_device_name(0))  # 看看哪个是GTX1650,假设是0
    device = torch.device("cuda:0")  # 直接指定用这个卡
    
    然后把模型和数据都移到这个device上。
  • 用环境变量屏蔽核显:在代码最开头加这两行,让PyTorch只能看到NVIDIA显卡:
    import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "0"  # 这里的0对应GTX1650的设备ID
    
二、别漏了把数据也移到GPU上!

很多人只记得把model.to(device),但输入数据还留在CPU上,这样模型就算在GPU,也得来回传数据,实际还是核显在干活。训练循环里一定要把输入和标签都移到GPU:

for x, y in train_loader:
    x = x.to(device)
    y = y.to(device)
    # 再做前向传播、计算损失这些操作
    outputs = model(x)
    loss = criterion(outputs, y)
三、检查PyTorch和CUDA版本是否匹配

虽然torch.cuda.is_available()返回True,但如果版本不兼容,独显也没法正常工作。你可以在终端或代码里输这两行看版本:

print(torch.__version__)
print(torch.version.cuda)

然后确认你的显卡驱动支持的CUDA版本,要是PyTorch的CUDA版本比驱动支持的高,就得升级驱动或者换对应版本的PyTorch。

四、调整系统显卡默认设置

笔记本经常会默认用核显跑轻量程序,你可以手动改:

  • 打开NVIDIA控制面板,找到「3D设置」→「管理3D设置」,在「全局设置」里把「首选图形处理器」改成「NVIDIA GTX 1650」,保存后重启程序试试。
  • 也可以右键点击你的Python IDE(比如PyCharm),选「用图形处理器运行」→「高性能NVIDIA处理器」,直接指定用独显跑这个程序。
五、验证GPU是否真的在工作

有时候任务管理器的GPU显示不准(核显负责桌面渲染,所以波动明显),你可以用更准确的方式确认:

  • 在训练代码里加两行打印:
    print("模型所在设备:", next(model.parameters()).device)
    print("输入数据所在设备:", x.device)
    
    如果输出都是cuda:0(或对应设备),说明已经在GPU上跑了。
  • 打开终端,输入nvidia-smi,实时查看GTX1650的显存占用和使用率,这个比任务管理器靠谱多了。

要是做完这些,GTX1650应该就能正常干活了,epoch耗时肯定会降下来的!

内容的提问来源于stack exchange,提问作者Aayush

火山引擎 最新活动