The tool suite of SPEC06, runspec, provides the --make_bundle option to package the already compiled benchmark binaries on the current server. This makes it very convenient to run these programs on another server. However, the authorities may believed that this feature was rarely used and it was removed when SPEC17 was released.
https://www.spec.org/cpu2017/Docs/runcpu.html#makebundle
In fact, in the runcpu implementation of spec17, there is still the implementation related to --make_bundle. But how can I enable it?
# 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;
}
#runcpu:2707
sub make_bundle {
my ($config, $benchobjs) = @_;
Log(2, "Making Bundle\n");
my $ans = 'n';
my @files = ();
... ...
This function is very helpful for cross-compilation scenarios. For instance, a RISC-V program can be cross-compiled on an X86 machine and then copied to a RISC-V machine for execution.