gem5 的定位:性能仿真

gem5 在本项目中负责 MI300X 的性能仿真。它不运行客户机内核,而是构建一个只包含 GPU 模型与 Ruby 内存层次的最小系统,通过 vfio-user 接收来自 host QEMU 的 PCI 访问。

运行形态

  • 构建目标是 VEGA_X86,产物为原生可执行的 build/gem5/<native>/VEGA_X86/gem5.opt。

  • 配置脚本 third_party/gem5/configs/example/gpufs/mi300_cosim.py创建最小 System、占位 AtomicSimpleCPU和 StubWorkload,因此 gem5 侧不需要 x86 内核。

  • GPU 缓存与内存层次使用 Disjoint_VIPER协议;QEMU 与 gem5 共享同一份客户机内存与 VRAM 文件。

  • YAML 适配器每个进程只启动一个 GPU;单进程多 GPU 与 XGMI 只存在于直接调用 gem5 的路径,见 多 GPU、XGMI 与 SST。

本章内容

推荐阅读路径