This program generates inputs for the 557.xzr SPEC CPU2017 benchmark. The 557.xzr benchmark decompresses compressed xz files and verifies that the decompressed files match the files originally compressed using a SHA-512 hashing scheme.
The output of this program is a folder which has the following structure:
specxz
: this program is included in SPEC and assuming you have installed SPEC properly, it should be listed under your path.
./gen-input <input-directory>
The <input-directory>
must have a file named workload
. The first line of
the file workload
must have a string that will be used to name the workload.
For each file that will be compressed, a new line must be formatted in the following way:
<filename-to-compress> <uncompressed-size> <compression-level>
The <filename-to-compress>
is the name of a file inside <input-directory>
that will be compressed.
The <uncompressed-size>
is the size of <filename-to-compress>
in MB. The
program will not accept floating point values as valid arguments. If the
<uncompressed-size>
matches the size of <filename-to-compress>
, this program
will truncate or repeat <filename-to-compress>
to match the
<uncompressed-size>
. This is useful in case you want to compress the same data
in one file. If the <uncompressed-size>
is smaller than the size of the
<filename-to-compress>
, then the program will only partially compress the file.
The <compression-level>
is ranges from 1 to 9 which may be followed by an "e"
for "extreme" compression. This will be equivalent to manually running the
spexz
command and specifying the compression level and setting the option -e
You can also specify more than 1 workload to be created if you add an empty line
in the your workload
file. This will mean the end of the current workload and
the next line must be the name of the new workload. E.g.
$ pwd input-directory $ cat workload aWorkload aFile.ext
bWorkload bFile.ext $ cd ..
Running ./gen-input.py input-directory
will create two folders in your current
directory. It will create aWorkload
and bWorkload
directories. These folders
will have an input
and an output
folder. The input
folder will have a
control file used by SPEC and the files to be decompressed.