You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SPEC17的runcpu中启用--make_bundle功能?

启用SPEC CPU2017中隐藏的make_bundle功能

SPEC CPU2006的runspec工具提供的--make_bundle选项可将已编译的基准二进制打包迁移,但官方在SPEC CPU2017中移除了该命令行选项,不过核心代码逻辑仍被保留。以下是启用方法:

启用步骤

代码中通过检查bundleaction配置项触发打包逻辑,你可以通过两种方式指定该参数:

  • 命令行临时触发:直接在runcpu命令中添加--define bundleaction=make参数,示例:
    runcpu --define bundleaction=make <你的配置文件名>
    
  • 配置文件永久设置:修改你的SPEC配置文件(路径通常为config/<你的配置文件名>.cfg),添加一行配置:
    bundleaction = make
    

注意事项

  • 必须确保所有目标基准测试都已编译成功,代码中会检查编译错误列表,若存在未编译成功的用例,会直接报错退出
  • 该功能在交叉编译场景中实用性很高,比如在X86主机上交叉编译RISC-V基准程序后,打包迁移到RISC-V目标机执行

代码逻辑参考

runcpu脚本中保留了完整的打包逻辑:

  • 在第1143行附近,会判断bundleaction是否为make,满足条件则调用打包子程序:
    # runcpu:1143
    # Make a bundle
    if ($runconfig->{'bundleaction'} eq 'make') {
        if (@compile_error_list) {
            Log(0, "ERROR: Not all benchmarks available for bundling!\n");
            $err_exit = 1;
            next CONFIGRUN;
        }
        make_bundle($runconfig, \@benchobjs);
        next CONFIGRUN;
    }
    
  • 实际打包逻辑由第2707行定义的make_bundle子程序实现:
    #runcpu:2707
    sub make_bundle {
        my ($config, $benchobjs) = @_;
    
        Log(2, "Making Bundle\n");
        my $ans = 'n';
        my @files = ();
        ... ...
    }
    

内容的提问来源于stack exchange,提问作者momoli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:27:11