Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:cuda:mig

Table of Contents

MIG

基础理解

好像是:把一个硬件分为多个虚拟的硬件(GPU Instance),就是GPU版本的虚拟化

AI:它允许将一块物理 GPU 划分为多个隔离的 GPU 实例(称为 GPU 实例或 MIG 实例),每个实例都有独立的:计算核心(CUDA cores)、内存带宽、L2 cache、NVDEC/NVENC(某些功能)。每个 MIG 实例表现得就像一块独立的小型 GPU,可以被单独调度和分配给容器、用户或进程。

硬件资源的分配是需要手动指定

MIG 实例在 CUDA 程序中表现为一块 独立的 GPU,CUDA 应用程序无需修改代码,直接使用即可。

在最新的架构上才可以使用,而且需要是专业显卡的架构,比如Ampere 系列(如 A100、A30),Hopper 系列(如 H100),游戏显卡一般不支持

基础使用

# 一些基础命令,尚未测试

# 查看显卡是否支持MIG
nvidia-smi -q
# 在输出中找到「MIG Mode」

# 查看支持的 MIG 实例配置
nvidia-smi mig -cgi

# 创建命令的格式
# -C表示执行创建(C = Create)
sudo nvidia-smi mig -cgi <config-gpu-instance-id>,<count> -C
# 创建 2 个 1g.10gb 实例(配置 ID 为 0)
sudo nvidia-smi mig -cgi 0,2 -C

# 查看创建结果
nvidia-smi

# 删除
# -dci:删除所有 Compute Instances
sudo nvidia-smi mig -dci
# -dgi:删除所有 GPU Instances(必须先删除 Compute)
sudo nvidia-smi mig -dgi
角色 操作 工具
管理员 启用 MIG、划分实例 nvidia-smi, nvidia-mig, NVML
开发者 编写 CUDA 程序、选择实例 CUDA API(无需变更)
容器部署 指定 MIG 实例资源 NVIDIA Container Toolkit, K8s Device Plugin
/var/www/DokuWikiStick/dokuwiki/data/pages/程序/cuda/mig.txt · Last modified: 2025/08/09 15:36 by zhonghui