Skip to content

关于 communication_time_predictor.py 中 ncclFlowModel_EndToEnd.csv 的生成来源与SimAI对应实现的疑问 #258

@sawnaudley

Description

@sawnaudley

问题描述:

在阅读 vidur 项目中的 communication_time_predictor.py 文件时,注意到通信时间预测依赖于 SimAI 生成的结果文件:

result_file = f"{self.simai_dir}/ncclFlowModel_EndToEnd_{command_identifier}.csv"

当文件不存在时,会调用 SimAI 执行如下命令生成:

command = f"AS_SEND_LAT=6 AS_NVLS_ENABLE=1 {self.simai_ns3_binary} -t {workload_file} -n {topo} -c {conf}"

随后将默认输出文件重命名为目标文件:

original_result_file = f"{self.simai_dir}/ncclFlowModel_EndToEnd.csv"
os.rename(original_result_file, result_file)

我的疑问:

ncclFlowModel_EndToEnd.csv 文件在 SimAI 中是由哪个模块/文件生成的?

是否是在 NS-3 仿真过程中由某个 specific application(如 NCCL flow model)输出?

是否对应某个 .cc 文件(例如 astra-sim / astra-network / ns3-interface 下的实现)?

该 CSV 文件的生成流程是怎样的?

是在哪个函数中触发写入?

数据来源是仿真中的 flow completion time / latency 统计吗?

文件内容字段(EndToEnd latency 等)是如何定义的?

是否有对应的数据结构或日志模块定义这些字段?

期望解答:

希望能够明确:

ncclFlowModel_EndToEnd.csv 的具体生成代码路径(文件 + 函数)

仿真过程中数据如何被收集并写入该 CSV

是否有相关文档或代码注释说明该输出格式

补充信息:

当前调用链大致为:

vidur/communication_time_predictor.py
→ 调用 simai_ns3_binary
→ 运行 NS-3 + AstraSim 网络仿真
→ 输出 ncclFlowModel_EndToEnd.csv

但在 SimAI 仓库中暂未快速定位该 CSV 的生成位置,因此提出该问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions