NVIDIA Multi-Instance GPU
https://www.nvidia.com/en-us/technologies/multi-instance-gpu/
好像是:把一个硬件分为多个虚拟的硬件(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 |