实验:相同工作负载下的性能测量
用 CSV 和分析脚本分别计算端到端与运行阶段指标。
先修知识已获得至少两种配置的正确性通过结果。
适用环境通用 RTL 方法;具体工具与器件选项以项目版本为准
验证状态官方资料对照与原创教学示例 · 板卡 / Palladium 步骤待设备验证
准备可比数据
每行记录 configuration、run_id、compile_s、load_s、run_s、post_s、cycles。使用相同工作负载、输入和检查点。附件 example.csv 是明确标记的演示数据,不代表任何设备的真实性能。
执行分析
运行 python3 analyze.py example.csv。脚本检查数字有效性、正运行时间及相同周期数,再按配置计算运行时间和总时间中位数,以及 cycles/run_s。多次重复用于观察波动;编译缓存和资源等待应单独说明。
解释结果与限制
总时间包含本表记录的编译、加载、运行和后处理,不包括排队。若某配置运行更快但编译更慢,需结合回归次数决定是否有收益。报告必须附版本、运行模式、波形配置和样本数量,不能从演示数据推导产品性能。
原理与信号关系
性能实验必须将工作量、正确性和测量口径绑定在一起。周期数除以运行秒数得到的只是该记录口径下的周期吞吐,不等于芯片目标频率;包含编译的端到端耗时与仅运行耗时也不能混比。实验包中的 CSV 是合成教学数据,用于验证统计脚本,不是任何产品的性能宣称。统计应保留原始样本,使用中位数降低单次抖动影响,并解释异常值。
动手步骤与预期结果
按下面的顺序执行,每一步都留下可复核的证据。若当前步骤的预期条件未满足,先停在该阶段定位原因;不要继续累积后续错误。涉及工具、板卡或专用硬件的步骤,需要使用本工程实际版本和配置,示例数值不能直接替代设备规格。
- 阅读 CSV 字段定义
预期与判定:确认秒、周期、配置名和运行标识;不要把毫秒填到秒字段。
- 先运行附带示例
预期与判定:按 README 命令执行 Python 统计脚本,核对输出与示例预期;明确数据是合成的。
- 采集真实基线与候选配置
预期与判定:每配置至少三次,记录资源争用、冷启动与探针设置,保持工作量一致。
- 检查拒绝错误数据
预期与判定:负时间、零运行时间、重复标识或不一致周期数应失败;不能静默丢弃导致偏差。
单位与吞吐校验示例,原创教学数据,Python 3 可直接运行。
cycles = 1_000_000
runtime_ms = 2500
runtime_s = runtime_ms / 1000
print("cycles/s:", cycles / runtime_s)
assert cycles / runtime_s == 400_000典型故障:从现象到复测
下面的案例是为说明定位方法而构造的教学场景,不代表真实客户事故或本平台设备实测。实践时先确认现象与证据相符,再采用相应修复;若证据不同,应回到前一步缩小范围,避免把同一种表象都归因于同一个问题。
unzip performance-measurement.zip
cd performance-measurement
python3 analyze.py example.csv完成检查
- 数据来自相同工作负载
- 分开汇报运行与总时间
- 演示数据不作为产品结论
延伸阅读与来源
本文为黄河电子原创教学说明。产品命令与支持范围请以实际安装版本的官方文档为准。
继续阅读
实验实验:FIFO 仿真与边界条件验证
运行原创同步 FIFO 自检,观察容量、顺序和同时读写语义。
实验:FPGA FIFO 上板与调试
把已自检的 FIFO 作为板级验证对象,规划约束与探针。
实验:最小 DUT 的硬件仿真实践
以同一个 FIFO 为基线,准备模式选择、编译运行和比对记录。
黄河电子