feat(spec2017): add runspec-based SPEC2017 workload flow#10
Merged
Conversation
429d7b2 to
a2f127b
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new SPEC CPU2017 Linux workload flow under workloads/linux/spec2017, integrating runcpu-based builds from a prepared SPEC workspace, packaging runnable rootfs images, exporting ELFs, and supporting per-case DTB memory profiles during firmware assembly.
Changes:
- Introduce SPEC2017 packaging/build helper (
spec2017-package.py) plus wrapper scripts (build.sh,prepare-spec-workspace.sh) and documentation. - Add Makefile rules to build single cases, ELF-only outputs, and multi-variant exported images (rate/speed, input sets).
- Extend firmware assembly to support DTB memory profiles and enforce minimum DTS-declared memory, plus add SPEC2017-oriented DTS templates.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| workloads/linux/spec2017/spec2017-package.py | Implements SPEC2017 case selection, runcpu build caching, run directory packaging, and run script generation. |
| workloads/linux/spec2017/rules.mk | Adds Make targets for preparing SPEC workspace, building cases/ELFs, and exporting per-run images with DTB profiles. |
| workloads/linux/spec2017/riscv-gcc15.cfg | Provides a RISC-V GCC-based SPEC CPU2017 config used by the workflow. |
| workloads/linux/spec2017/README.md | Documents usage, case naming, image export layout, profiling toggles, and DTB profile behavior. |
| workloads/linux/spec2017/prepare-spec-workspace.sh | Extracts/installs SPEC2017 ISO into a writable prepared workspace and records provenance metadata. |
| workloads/linux/spec2017/build.sh | Wrapper to invoke spec2017-package.py with environment-provided build parameters. |
| scripts/build-firmware-linux.sh | Adds DTB memory profile selection and optional minimum-memory enforcement based on generated DTS content. |
| dts/xiangshan-fpga-noAIA-mem8g.dts.in | Adds an 8 GiB DTS template for large initramfs workloads/SPEC rate defaults. |
| dts/xiangshan-fpga-noAIA-mem24g.dts.in | Adds a 24 GiB DTS template for SPEC speed defaults. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Add a SPEC2017 workload integration under workloads/linux/spec2017 that builds rate and speed benchmarks from an external SPEC tree with runcpu, stages selected inputs into Linux workload images, and exports firmware, ELF, kernel, and run-script artifacts under the build and image directories. The helper scripts keep SPEC build output inside this repository, add prepare and ELF-only make targets, split multi-command runs into separate exported images, provide mode-specific RISC-V GCC configs, and support PROFILING-controlled NEMU traps plus per-case DTB memory profiles.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add a SPEC2017 workload integration under workloads/linux/spec2017 that builds rate and speed benchmarks from an external SPEC tree with runcpu, stages the selected inputs into the Linux workload rootfs, and exports firmware, ELF, and kernel artifacts under the build and image directories.
The new helper scripts keep SPEC build output inside this repository, add prepare and ELF-only make targets, provide a RISC-V GCC config, and support per-case DTB memory profiles for SPEC2017 images.