gpu-8 机器
概述
gpu-8 是单机多 GPU 板卡:一台 vhost-x86-rocm 主机带 8 个 gem5 MI300X 设备,每个设备 8 GiB VRAM,共享一个 96 GiB 内存池。它用来观察单机的设备进程扇出与内存池容量计算。
拓扑
# resources/machines/gpu-8.yaml
version: 1
imports:
- vhosts/qemu.yaml
- devices/gpu/mi300x.yaml
templates:
node8:
vhost:
use: vhost-x86-rocm
memory: 32G
cpus: 16
devices:
- use: mi300x
count: 8
memory_regions:
- {name: vram, size: 8G, align: 2M}
machines:
- {id: m0, use: node8}
机器数量:1(
m0);node8模板同时被集群样例复用,见 多机拓扑。count: 8把设备标识符展开为mi300x-0到mi300x-7。每个设备区域为 8 GiB、对齐 2 MiB;客户机 RAM 为 32 GiB。
硬件资源
资源 |
值 |
来源 |
|---|---|---|
机器 |
1 台( |
|
vHost 配置 |
|
|
客户机 RAM |
32 GiB |
|
设备 |
8 × |
|
内存池 |
96 GiB = 32 GiB RAM + 64 GiB VRAM |
|
区域偏移 |
|
声明顺序 |
进程 |
1 个主机进程 + 8 个 gem5 进程 |
会话计划 |
软件栈
层 |
组件 |
说明 |
|---|---|---|
客户机 OS |
Ubuntu 24.04.2 LTS,内核 6.8.0-124-generic |
|
GPU 驱动 |
|
|
设备模型 |
8 个独立 gem5 MI300X 进程 |
每个进程一个 GPU( |
客户机初始化 |
|
对每个模拟设备执行 ROM |
运行该机器
# 校验并预览 96 GiB 内存池的布局
just run-cli validate resources/machines/gpu-8.yaml --assets
just run-topology resources/machines/gpu-8.yaml --dry-run
# 启动会话
just run-topology resources/machines/gpu-8.yaml
内存池目录需要有 96 GiB 可用空间;Linux 上默认位于
/dev/shm下。关闭流程与单机相同:主机退出后设备依次停止;生命周期见 会话生命周期。
验证
计划输出中有 1 个主机进程与 8 个设备进程,内存池 96 GiB;
layout.json记录每个区域偏移。样例由 render 测试加载;模型与内存池另由
just test-gem5-mi300x检查。仓库内没有覆盖完整 8 进程客户机运行的 CI 作业;多 GPU 客户机行为以本地运行为准。
限制
96 GiB 内存池加上 8 个 gem5 进程占用较高,运行前先确认内存与
/dev/shm容量。YAML 适配器每个进程一个 GPU;YAML 中无法启用 gem5 的进程内多 GPU 模式。
8 个 GPU 之间没有 XGMI 或卡间 fabric 模型;多 GPU 与 XGMI 的事实边界见 多 GPU、XGMI 与 SST。
启动客户机需要 KVM;运行会话需要 Linux glibc 与
setpriv。
相关页面
单机拓扑与内存池算术:单机拓扑
vHost 配置:vHost 配置
设备目录:设备目录
vHost:拓扑 YAML schema
机器目录:机器目录
第 4 章:MI300X 性能模型,多 GPU、XGMI 与 SST
源码:
resources/machines/gpu-8.yaml、resources/devices/gpu/mi300x.yaml