执行摘要
- 一句话:限制 ROCm 上 HiCache MGSM 评估并发
- 推荐动作:值得快速浏览,作为针对特定硬件环境的测试参数调整示例。关注点:使用条件属性覆盖默认值,保持非 HIP 行为不变,最小化改动。无需深入精读。
功能与动机
ROCm 7.2.4 MI300 的 CI 任务 stage-b-test-1-gpu-small-amd-rocm720 (4) 中,TestHiCacheMLA.test_mgsm_en 重试后得分分别为 0.564 和 0.612,低于 0.8 的阈值。PR 说明指出,MGSM 英文包含 250 个示例,而 MGSMEnMixin 默认使用 1024 个客户端线程,导致整个评估并发提交,失败任务达到 250 个运行中请求。这是一个 HiCache 准确率集成测试而非最大并发压力测试,因此本 PR 旨在限制 AMD 测试负载,而不降低准确率要求。
实现拆解
- 修改测试类配置:在
test/registered/hicache/test_hicache_variants.py 的 TestHiCacheMLA 类中,新增条件属性定义:当 _is_hip 为真时,设置 mgsm_en_num_threads = 32;非 HIP 环境不定义该属性,从而继承 MGSMEnMixin 的默认值(1024)。
- 保持准确率逻辑不变:未修改
mgsm_en_score_threshold(仍为 0.8),也未调整其他测试逻辑,仅通过降低并发线程数来减少同时运行的请求数,从而避免因并发过高导致的准确率下降。
- 验证:在受影响的 ROCm 7.2.4 MI300 part 4 任务中验证通过,得分 0.872(阈值 0.8),最大 decode 批次从 250 降至 32,完整测试文件耗时 1961 秒,低于 2400 秒超时。
关键文件:
test/registered/hicache/test_hicache_variants.py(模块 测试配置;类别 test;类型 test-coverage): 唯一的变更文件,在 TestHiCacheMLA 类中为 HIP 环境添加 mgsm_en_num_threads=32,以限制并发线程数,解决 ROCm 测试准确率不达标问题。
关键符号:未识别
关键源码片段
test/registered/hicache/test_hicache_variants.py
唯一的变更文件,在 TestHiCacheMLA 类中为 HIP 环境添加 mgsm_en_num_threads=32,以限制并发线程数,解决 ROCm 测试准确率不达标问题。
class TestHiCacheMLA(HiCacheBaseServer, MMLUMixin, MGSMEnMixin):
"""HiCache with MLA model tests"""
model_name = DEFAULT_MLA_MODEL_NAME_FOR_TEST
hicache_args = [
"--trust-remote-code",
"--enable-hierarchical-cache",
] + (["--hicache-size", 200] if _is_hip else ["--hicache-ratio", 2])
mmlu_score_threshold = 0.54
mmlu_num_examples = 256
mmlu_num_threads = 32
mgsm_en_score_threshold = 0.8
# 仅 HIP 环境限制 MGSM 评估的客户端线程数,降低并发压力,
# 避免因并发过高导致准确率下降。非 HIP 环境继承默认值。
if _is_hip:
mgsm_en_num_threads = 32
评论区精华
无 review 评论。审核人 HaiShaw 直接批准(APPROVED)。
风险与影响
- 风险:风险较低。改动仅限测试文件,不涉及生产代码。主要风险是降低并发可能影响测试对高并发场景的覆盖,但该测试定位为准确率集成测试而非压力测试。此外,如果 ROCm 环境(如 MI300)的并发限制值 32 在其他模型或配置下不适用,可能导致测试通过但未覆盖真实负载,但影响有限。
- 影响:影响范围限于 CI 测试:ROCm 上的 HiCache MLA 测试并发度降低,可能减少偶发失败,提高 CI 稳定性。对生产代码无影响。对团队而言,减少了 ROCm CI 的 flaky 失败,节省排查时间。
- 风险标记:仅测试变更,风险低
关联脉络
- PR #35931 [HiCache] Reject load-back specs that claim nodes pinned by an in-flight load-back: 同为 HiCache 相关稳定性修复,针对调度器崩溃,与本 PR 同在 HiCache 测试域。
- PR #36227 [HiCache] Retry L3 storage prefetch after a missed attempt: 同为 HiCache 相关优化,调整调度器预取逻辑,可能影响测试行为。
- PR #36705 [HiCache] Stop populating host-pool mmaps twice (-13% allocation time): 同为 HiCache 性能修复,涉及内存分配器,可能与并发测试相关。
参与讨论