跳到主要内容

GPU 训练配置

这个功能解决什么问题

CPU 训练跑大数据集要等很久。NVIDIA GPU 能把训练时间从几小时压到几十分钟,是生产环境的首选。训练创建对话框里专门给 GPU 留了一组配置:既能一键交给系统自动分配,也能手动指定哪几张卡、限制多少显存。本页讲清楚怎么选 GPU、怎么手动挑卡、显存不够时怎么排查。

前置条件

GPU 环境要求

使用 GPU 训练前,运行环境必须满足以下条件:

  • 已安装 NVIDIA 显卡驱动
  • 已安装 CUDA 工具包(推荐 CUDA 12.6 加 Python 3.12)
  • Docker 部署时,还需安装 NVIDIA Container Toolkit
  • 如果设备类型下拉里 GPU 显示「GPU(不可用)」并且选不了,说明上面的环境没就绪

驱动和 CUDA 的具体安装命令属于部署范畴,不在本文范围内。

设备选择

在训练创建对话框的「硬件配置」区,先选设备类型:

字段类型必填默认值说明
deviceType下拉必填cpu训练硬件。选择 GPU 来启用 GPU 加速。当前环境没有可用 CUDA 时,GPU 选项会显示「GPU(不可用)」并被禁用。
GPU 设备选择
图1:设备类型下拉选择 GPU

GPU 配置选项

选了 GPU 之后,下方会展开一组 GPU 专属配置:

字段类型必填默认值说明
autoSelectGPU开关可选自动选择 GPU。默认开启,由系统分配最优的 GPU 资源,不用手动挑卡。
memoryLimit数字可选4096显存限制(MB)。仅关闭「自动选择 GPU」时才显示。可参考每张卡的推荐显存来设置。
selectedGPUs多选可选手动选择要使用的 GPU 卡。仅关闭「自动选择 GPU」时才显示。

操作步骤

  1. 打开训练创建对话框

    在项目工作区点左侧「训练」,再点右上角「训练新模型」,弹出训练创建对话框。找到「硬件配置」区。

  2. 选择 GPU 设备

    把「设备类型」下拉选成 GPU。如果 GPU 选项带「(不可用)」并且选不了,说明当前环境没有可用 CUDA,请先按前置条件检查环境。

  3. 确认自动选择已开启

    选好 GPU 后,系统会自动检测可用 GPU 并拉取信息。默认「自动选择 GPU」是开启的,系统会直接分配最优 GPU,这时配置就完成了,可以点「开始训练」。

  4. (可选)关闭自动选择

    想固定用某几张卡时,关闭「自动选择 GPU」开关。

  5. 查看 GPU 卡列表

    关闭自动选择后,下方出现 GPU 卡多选网格。每张卡列出:显示名、已用 / 总计 / 可用显存、推荐显存。靠这些信息判断哪张卡还有足够空间。

  6. 勾选要使用的 GPU 卡

    在卡片网格里勾选要用的卡。可以勾一张,也可以勾多张做多卡训练。

  7. (可选)设置显存限制

    关闭自动选择后会出现「显存限制 (MB)」输入框,默认 4096。需要的话改大或改小,单位是 MB。

  8. 点击开始训练

    配置完成后点底部的「开始训练」,任务进入等待队列。

手动选择 GPU 卡列表
图2:关闭自动选择后的 GPU 卡多选列表

GPU 信息说明

GPU 信息展示

关闭「自动选择 GPU」后,每张 GPU 卡会显示这些信息:

  • 显示名:GPU 的型号名称
  • 已用显存 / 总计显存:这张卡目前已经吃了多少,总共多少
  • 可用显存:还能用多少
  • 推荐显存:系统按卡型给出的建议显存上限

挑卡时优先看可用显存,确保它大于你的训练预估占用。

多卡训练

勾选多张 GPU 卡就能做多卡训练。多卡能加速大数据集的训练,但总显存占用也会跟着涨。数据集不大时单卡通常就够,不一定非要上多卡。

显存不足排查

训练日志里报显存不足(CUDA out of memory)是常见情况,按下面顺序排查,优先级从高到低:

显存不足怎么办

显存不够时,按这个顺序尝试:

  1. 减小批次大小(batch size):最直接有效。把批次大小减半,显存占用会明显下降。
  2. 减小图像尺寸(image size):从 640 降到 512 或 416。
  3. 减少 GPU 卡数:多卡训练时如果某张卡被挤满,去掉一两张再试。

显存占用大致和「批次大小」成正比,和「图像尺寸的平方」成正比。调小图像尺寸的省显存效果比调小批次更猛。

如何确认 GPU 可用

判断 GPU 是否就绪

最快的办法:打开训练创建对话框,看「设备类型」下拉。

  • GPU 选项后面没有「(不可用)」字样,能正常选中,说明 GPU 可用。
  • GPU 选项显示「GPU(不可用)」并且选不了,说明环境没就绪。

不可用时,按顺序检查:NVIDIA 显卡驱动是否正常、CUDA 版本是否匹配(推荐 12.6)、Docker 部署是否装了 NVIDIA Container Toolkit。