Skip to content

Add GPU support for stem separation #31

@tucktuckg00se

Description

@tucktuckg00se

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

Pinned by tucktuckg00se

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions