b10666: tests : run test-save-load-state across all architectures (#27755)
llama.cpp 发布 b10666,将 test-save-load-state 测试扩展为支持 --models DIR 模式,可对目录下所有 *.gguf 模型运行保存/加载测试,并接入 ctest 以覆盖所有架构。测试预期在 deepseek4、gemma2、gpt-oss、lfm2、minimax-01 等架构上失败,直到相关修复完成。
Development
- First Reportb10666: tests : run test-save-load-state across all architectures (#27755)llama.cpp
- Current Assessmentllama.cpp 作为广泛使用的开源推理引擎,其测试覆盖的扩展反映了社区对多架构支持稳定性的重视。通过自动化测试跨架构验证状态保存/加载,有助于提升模型在不同硬件上的可移植性和可靠性,对依赖该库的开发者生态有积极影响。Agent Pulse · analysis
llama.cpp 在 b10666 版本中增强了测试基础设施,使 test-save-load-state 能够跨所有架构运行。此前该测试仅针对单个下载的模型(tinyllamas/stories15M)在 ctest 中运行,只覆盖 llama 架构。新增的 --models DIR 模式会对目录中的每个 *.gguf 文件执行完整的保存/加载测试,并报告每个模型的通过/失败状态,若有任何模型失败则退出非零。该模式已接入 ctest,使用现有的 generate-models fixture(test-llama-archs)覆盖所有架构。同时,test-llama-archs 中的虚拟模型训练上下文从 128 提升到 256,以避免每序列上下文(填充到 256 的倍数)超过 n_ctx_train 并产生警告。测试预期在修复前会失败,涉及 deepseek4(主机 seq-copy)、gemma2/gpt-oss/lfm2(设备 seq-copy)和 minimax-01(状态加载)等架构,并在第一个崩溃的架构处中止。
该测试扩展揭示了不同架构在状态保存/加载和序列复制(seq-copy)操作上的实现差异,特别是主机与设备端 seq-copy 的区分,表明这些操作在硬件加速路径上存在不一致性。测试的失败预期也暗示了这些架构的当前实现存在缺陷,需要针对性修复。
llama.cpp 作为广泛使用的开源推理引擎,其测试覆盖的扩展反映了社区对多架构支持稳定性的重视。通过自动化测试跨架构验证状态保存/加载,有助于提升模型在不同硬件上的可移植性和可靠性,对依赖该库的开发者生态有积极影响。
对于使用 llama.cpp 的企业,该测试改进降低了因架构差异导致的状态保存/加载失败风险,提升了生产环境的稳定性,减少了潜在的部署和运维成本。
随着相关架构修复的完成,该测试将全面通过,为 llama.cpp 的多架构支持提供更坚实的保障。未来可能进一步扩展测试覆盖范围,包括更多模型格式和硬件后端。