Skip to content

perf(ci): enable parallel Rust compilation with -Z threads=8#856

Closed
starpit wants to merge 1 commit intoIBM:mainfrom
starpit:perf/add-rustflags-threads
Closed

perf(ci): enable parallel Rust compilation with -Z threads=8#856
starpit wants to merge 1 commit intoIBM:mainfrom
starpit:perf/add-rustflags-threads

Conversation

@starpit
Copy link
Member

@starpit starpit commented Feb 16, 2026

Summary

This PR enables parallel front-end compilation in all GitHub workflows that compile Rust code by adding RUSTFLAGS="-Z threads=8".

Changes

  • Added RUSTFLAGS="-Z threads=8" to enable parallel compilation with 8 threads
  • Switched all workflows to use Rust nightly toolchain (required for -Z flags)
  • Added explanatory comments about the need for nightly and the performance benefit

Updated Workflows

  • core.yml - Test and clippy jobs
  • release-cli.yml - All build jobs (build-and-upload, build-musl, build-cuda)
  • publish_crate.yml - Crate publishing job
  • vllm-gce.yml - GCE VM testing job

Performance Impact

The -Z threads=8 flag enables parallel front-end compilation in rustc, which should significantly reduce CI build times, especially for large codebases with many dependencies.

Testing

The changes will be validated by the CI runs on this PR itself.


Made with Bob

Add RUSTFLAGS="-Z threads=8" to all GitHub workflows that compile Rust code
to enable parallel front-end compilation for faster CI builds.

This requires switching to Rust nightly toolchain as -Z flags are nightly-only.
Updated workflows:
- core.yml (test and clippy)
- release-cli.yml (all build jobs)
- publish_crate.yml (crate publishing)
- vllm-gce.yml (GCE VM testing)

Made with Bob

Signed-off-by: Nick Mitchell <nickm@us.ibm.com>
@starpit starpit added the made with bob PR created with assistance from Bob AI label Feb 16, 2026
@starpit starpit marked this pull request as draft February 16, 2026 14:49
@starpit
Copy link
Member Author

starpit commented Feb 16, 2026

hmm, nightly seems not to work right now. from core.yml

note: rust-lld: error: undefined symbol: <tokio::util::wake::WakerRef as core::ops::deref::Deref>::deref
          >>> referenced by spnl.44d4a0c7044b1a09-cgu.04
          >>>               /home/runner/work/spnl/spnl/target/debug/deps/spnl-0d0c548af5cdc665.spnl.44d4a0c7044b1a09-cgu.04.rcgu.o:(<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on::<core::pin::Pin<&mut core::pin::Pin<alloc::boxed::Box<core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>>>::{closure#0})
          >>> referenced by spnl.44d4a0c7044b1a09-cgu.04
          >>>               /home/runner/work/spnl/spnl/target/debug/deps/spnl-0d0c548af5cdc665.spnl.44d4a0c7044b1a09-cgu.04.rcgu.o:(<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on::<core::pin::Pin<&mut core::pin::Pin<alloc::boxed::Box<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>>>::{closure#0})
          >>> referenced by spnl.44d4a0c7044b1a09-cgu.04
          >>>               /home/runner/work/spnl/spnl/target/debug/deps/spnl-0d0c548af5cdc665.spnl.44d4a0c7044b1a09-cgu.04.rcgu.o:(<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on::<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0})
          >>> referenced 1 more times
          collect2: error: ld returned 1 exit status

@starpit starpit closed this Feb 16, 2026
@starpit starpit deleted the perf/add-rustflags-threads branch February 16, 2026 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

made with bob PR created with assistance from Bob AI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant