gem5-gpu 01:跑起来
系统:cpu:AMD64。
系统:
Ubuntu 20.04
cpu:AMD64
1. 安装环境ubuntu 20.04
1.1. 编译依赖
ubuntu 20.04
sudo apt install build-essential git m4 scons zlib1g zlib1g-dev \
libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \
python3-dev python-is-python3 libboost-all-dev pkg-config gcc-10 g++-10 \
python3-tk clang-format-18
sudo apt install libhdf5-dev libhdf5-cpp-* libhdf5-serial-dev
sudo apt install libcapstone-dev
配置 format:
# Configure clang-format-18 and git-clang-format-18 as the system defaults.
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-18 180 \
--slave /usr/bin/clang-format-diff clang-format-diff /usr/bin/clang-format-diff-18 \
--slave /usr/bin/git-clang-format git-clang-format /usr/bin/git-clang-format-18
# [Optional] Add other alternative versions, and select version 18 as the default version.
sudo update-alternatives --config clang-format
1.2. KVM 部分
sudo apt-get update
sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
添加到正确的组:
sudo adduser `id -un` libvirt
sudo adduser `id -un` kvm
重新链接 ssh 终端。
$ groups
2.下载编译
2.1. 下载代码
mkdir workspace/
cd workspace/
git clone https://github.com/gem5/gem5.git
cd gem5/
git checkout v24.0.0.1
git clone https://github.com/gem5/gem5-resources.git
cd gem5-resources/
git checkout v24.0.0.1
这里两个项目的文件目录关系:
workspace/gem5/gem5-resources/
2.2. buildGem5 gpu:
pip install -r ./requirements.txt
scons build/VEGA_X86/gem5.debug -j 32
##or opt for fast
scons build/VEGA_X86/gem5.opt -j 32

2.3. 下载packer
脚本中 wget 自动下载packer 非常慢,故,这里用浏览器下载。
浏览器地址栏输入:
https://releases.hashicorp.com/packer/1.10.0
点击 下载:
scp 传输给构建机器并解压:
scp packer_1.10.0_linux_amd64.zip hanmeimei@12.34.56.78:/home/hanmeimei/
cp packer_1.10.0_linux_amd64.zip workspace/gem5-resources/src/x86-ubuntu-gpu-ml/
unzip packer_1.10.0_linux_amd64.zip
可以得到 packer 文件。
2.4. buidle disk image
$ cd ..
$ cd gem5-resources/src/x86-ubuntu-gpu-ml
$ ./build.sh
3. 编译应用程序
3.1. 拉取 rocm 开发环境 docker image
假设系统中已经安装过 docker 套件,这里可以直接使用:
sudo docker pull ghcr.io/gem5/gpu-fs
3.2. 编译
cd gem5-resources/src/gpu/square
sudo docker run --rm -u $UID:$GID -v $PWD:$PWD -w $PWD ghcr.io/gem5/gpu-fs make -f Makefile.default
显示如下信息:
/opt/rocm/bin/hipcc -O3 -Wno-unused-result --offload-arch=gfx900,gfx90a,gfx942 square.cpp -o ./bin.default/square.default
查看编译结果:
ls ./bin.default/square.default
4. 运行应用程序
这里使用 mi300 gpu 的配置:
build/VEGA_X86/gem5.debug configs/example/gpufs/mi300.py --disk-image gem5-resources/src/x86-ubuntu-gpu-ml/disk-image/x86-ubuntu-gpu-ml --kernel gem5-resources/src/x86-ubuntu-gpu-ml/vmlinux-gpu-ml --app gem5-resources/src/gpu/square/bin.default/square.default
大概十几分钟后结束模拟:

中间过程输出的一些警告,可以忽略:
src/arch/x86/kvm/x86_cpu.cc:1688: warn: kvm-x86: MSR (0x48) unsupported by gem5. Skipping.
src/arch/x86/kvm/x86_cpu.cc:1688: warn: kvm-x86: MSR (0xc0010200) unsupported by gem5. Skipping.
。。。。
src/dev/amdgpu/pm4_packet_processor.cc:346: warn: PM4 packet opcode 0xa0 not supported.
src/dev/amdgpu/pm4_packet_processor.cc:346: warn: PM4 packet opcode 0x58 not supported.
。。。。
src/dev/amdgpu/sdma_engine.cc:973: warn: SDMA poll reg is not implemented. If this is required for correctness, an SRBM model needs to be implemented.
src/gpu-compute/gpu_command_processor.cc:653: warn: Ignoring vendor packet
查看输出信息:
$ cat m5out/system.pc.com_1.device
显示 PASSED!

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)