Description
Motivation
Stem separation is currently compute-heavy, especially on older PCs and on larger files. CPU export works, but performance can be slow enough to
impact usability. We already expose a device choice in the UI and have ONNX Runtime in place, so the next step is making GPU execution a first-
class supported path.
Goals
- Support GPU-backed stem separation where ONNX Runtime execution providers are available
- Keep CPU export as the fallback on every platform
- Make failures explicit and predictable instead of silently dropping to an unexpected path
- Preserve existing hosted-plugin stability improvements, especially around runtime loading on Windows
Proposed Scope
- Add ONNX Runtime GPU execution provider support to the build/package flow
- Detect available providers at runtime and expose supported choices in the STEM panel
- Initialize the ONNX session with the selected provider when available
- Show clear warnings/errors when the requested GPU path is unavailable or misconfigured
- Document platform-specific requirements for GPU inference
Platform Notes
Windows
- Likely first target
- Needs careful packaging/runtime loading so the plugin uses the intended ONNX Runtime and provider DLLs instead of conflicting DAW-loaded copies
- CUDA/DirectML support should be evaluated explicitly rather than assumed
macOS
- Investigate CoreML support and practical compatibility/performance tradeoffs
- Confirm behavior in AU/VST3 hosts, not just standalone
Linux
- Evaluate CUDA provider support and deployment expectations
- Keep CPU fallback straightforward for systems without compatible drivers/runtime
Acceptance Criteria
- A supported GPU-capable machine can complete stem separation using GPU instead of CPU
- The selected device is reflected accurately in runtime behavior
- Unsupported or broken GPU setups fail with a clear message and allow switching back to CPU
- Hosted plugin builds remain stable in major DAWs
- README/release notes document GPU requirements and fallback behavior
Non-Goals
- Removing CPU support
- Requiring GPU hardware for stem separation
- Shipping a GPU path that silently degrades or is hard to diagnose
Use Case
Stem separation currently only uses CPU. GPU acceleration would be much faster.
Alternatives Considered
No response
Description
Motivation
Stem separation is currently compute-heavy, especially on older PCs and on larger files. CPU export works, but performance can be slow enough to
impact usability. We already expose a device choice in the UI and have ONNX Runtime in place, so the next step is making GPU execution a first-
class supported path.
Goals
Proposed Scope
Platform Notes
Windows
macOS
Linux
Acceptance Criteria
Non-Goals
Use Case
Stem separation currently only uses CPU. GPU acceleration would be much faster.
Alternatives Considered
No response
An experimental pre-release with GPU stem separation is available for testing: https://github.com/tucktuckg00se/INTERSECT/releases/tag/v0.14.0-rc.1
If you try it out please reply with:
Thanks!