Skip to content

Add RISC-V Phase 1 (QEMU) smoke test#2

Closed
luhenry wants to merge 1 commit intomainfrom
riscv-testing
Closed

Add RISC-V Phase 1 (QEMU) smoke test#2
luhenry wants to merge 1 commit intomainfrom
riscv-testing

Conversation

@luhenry
Copy link
Copy Markdown
Collaborator

@luhenry luhenry commented May 8, 2026

Implements Phase 1 of the RISC-V Support RFC (pytorch#18991): cross-compile executor_runner for riscv64-linux-gnu, run a small BundledProgram under qemu-user-static on a stock x86_64 GitHub runner, and assert the standard "Test_result: PASS" marker that the portable executor_runner already emits via the bundled-IO comparison path (examples/portable/executor_runner/executor_runner.cpp:646).

The riscv64-linux preset mirrors arm-ethosu-linux: same Linux cross-compile shape, same standard executor_runner, same filesystem .pte, same option set with EXECUTORCH_ENABLE_BUNDLE_IO added so the runner self-checks. Single deviation is glibc-via-apt instead of musl to avoid the MUSL_TOOLCHAIN_ROOT tarball setup. The reusable _test_riscv_qemu.yml workflow is wired into pull.yml on every PR; it mirrors _test_cortex_m_e2e.yml's shape but on linux.2xlarge with no emulator-bearing image.

Adds a new executorch-ubuntu-24.04-gcc14 docker image to the registry (.ci/docker/build.sh and docker-builds.yml). The Dockerfile already parametrizes OS_VERSION; the build.sh case sets OS_VERSION=24.04 and GCC_VERSION=14, and install_gcc.sh handles the rest via apt.

Co-authored-with: Claude (https://claude.ai/code)

Summary

[PLEASE REMOVE] See CONTRIBUTING.md's Pull Requests for ExecuTorch PR guidelines.

[PLEASE REMOVE] If this PR closes an issue, please add a Fixes #<issue-id> line.

[PLEASE REMOVE] If this PR introduces a fix or feature that should be the upcoming release notes, please add a "Release notes: " label. For a list of available release notes labels, check out CONTRIBUTING.md's Pull Requests.

Test plan

[PLEASE REMOVE] How did you test this PR? Please write down any manual commands you used and note down tests that you have written if applicable.

Comment thread .github/workflows/_test_riscv_qemu.yml Outdated
Comment thread .github/workflows/docker-builds.yml
Comment thread .github/workflows/pull.yml Outdated
Comment thread examples/riscv/README.md Outdated
Comment thread tools/cmake/preset/riscv64_linux.cmake Outdated
@luhenry luhenry force-pushed the riscv-testing branch 4 times, most recently from 83e11b1 to f7b9763 Compare May 8, 2026 17:28
Implements Phase 1 of the RISC-V Support RFC (pytorch#18991):
cross-compile executor_runner for riscv64-linux-gnu, run a small
BundledProgram under qemu-user-static on a stock x86_64 GitHub runner,
and assert the standard "Test_result: PASS" marker that the portable
executor_runner already emits via the bundled-IO comparison path
(examples/portable/executor_runner/executor_runner.cpp:646).

The riscv64-linux preset mirrors arm-ethosu-linux: same Linux
cross-compile shape, same standard executor_runner, same filesystem
.pte, same option set with EXECUTORCH_ENABLE_BUNDLE_IO added so the
runner self-checks. Single deviation is glibc-via-apt instead of musl
to avoid the MUSL_TOOLCHAIN_ROOT tarball setup. The reusable
_test_riscv.yml workflow is wired into pull.yml on every PR.
@luhenry luhenry closed this May 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant