首次会话
本页用 vHost 选择 ubuntu/24.04/x86_64/rocm/7.0 的 single-gpu 机器启动第一次联合仿真
会话,连接客户机串口并正常关闭。
前置条件
启动命令
just run-topology resources/machines/single-gpu.yaml \
recipe 调用 Rust cosim launcher,加载拓扑与 vHost,检查本机输入文件,
然后按 会话执行流程 描述的顺序启动进程。launcher 会
先打印会话目录,例如 session: .cosim/1f0c3a4b5c6d。
会话做了什么
解析并校验 YAML:导入 host 与设备模板,展开机器列表;
结合本机页大小、
PATH与磁盘锁目录生成执行计划;创建会话目录,写入 manifest、plan 与 options;
创建共享内存池并预留容量,准备根磁盘的 qcow2 overlay;
启动 gem5 MI300X 设备进程,等待其 vfio-user socket 与监听标记;
启动 host QEMU,完成 QMP 握手,客户机从直接内核启动;
客户机启动后,
cosim-gpu-initialize.service约 40 秒完成 GPU 初始化。
备注
设备进程先于 host 启动,host 先于设备停止;会话在 host 以状态 0 退出时
结束。默认每个进程有 120 秒就绪时间,可用 --ready-timeout 调整。
连接客户机串口
host 把串口暴露为 Unix socket,同时写日志文件。用任意 Unix socket 客户端 连接,例如:
socat -,raw,echo=0 unix-connect:.cosim/<session>/m0/serial.sock
没有 socat 时可以使用 nc -U .cosim/<session>/m0/serial.sock。只想
查看输出时跟踪日志:
tail -f .cosim/<session>/m0/vhost/serial.log
客户机 root 串口自动登录,可以直接执行命令。首次登录后建议先确认 GPU 状态, 见 验证客户机。
会话产物
运行目录默认是 .cosim/<随机名>,可以用 --run-dir 指定固定路径:
路径 |
内容 |
|---|---|
|
解析后的执行计划与本次运行选项 |
|
会话资源清单与最终 verdict |
|
每台机器的内存池区域布局 |
|
客户机串口与串口日志 |
|
host 与各设备进程的输出日志 |
关闭会话
在客户机内执行
poweroff,host 正常退出后会话结束;或在启动 launcher 的终端按一次 Ctrl-C,触发有序关闭:先停 host,再停设备, 然后删除 socket、overlay 与内存池;
结束后 launcher 打印最后一行
[COSIM_VERDICT],包含状态与清理结果;launcher 被强行杀死后,用
just run-cli clean .cosim/<session>清理残留 资源,日志会保留。
小技巧
只在需要限时运行时使用 --run-for 60;它会在全部进程就绪后计时结束
会话。开发容器会设置标准输入生命线,客户端退出时会话自动结束。