Skip to content

feat: add Apple Silicon (MPS) support#2

Merged
jasagiri merged 1 commit intomainfrom
feat/apple-silicon
Apr 5, 2026
Merged

feat: add Apple Silicon (MPS) support#2
jasagiri merged 1 commit intomainfrom
feat/apple-silicon

Conversation

@jasagiri
Copy link
Copy Markdown
Owner

@jasagiri jasagiri commented Apr 5, 2026

Summary

Device abstraction layer for CUDA/MPS/CPU, enabling native Apple Silicon inference.

See upstream PR: FunAudioLLM#1869

🤖 Generated with Claude Code

Introduce a device abstraction layer (cosyvoice/utils/device.py) that
unifies CUDA, MPS, and CPU device management. Replace all hardcoded
CUDA-specific code paths in the inference pipeline with device-agnostic
alternatives, enabling CosyVoice to run natively on Apple Silicon Macs.

Key changes:
- Device abstraction: get_device(), get_stream_context(),
  get_autocast_context(), empty_cache()
- model.py: Replace CUDA device init, streams, AMP, and cache clearing
  across CosyVoiceModel, CosyVoice2Model, CosyVoice3Model
- cosyvoice.py: MPS-aware feature gates (TRT/vLLM require CUDA,
  JIT/fp16 require any GPU)
- frontend.py: CoreMLExecutionProvider support for ONNX Runtime
- common.py: Guard torch.cuda.manual_seed_all for non-CUDA environments
- requirements.txt: Remove CUDA-only index URLs, loosen PyTorch version
- setup_macos.sh: One-command setup script for Apple Silicon

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jasagiri jasagiri force-pushed the feat/apple-silicon branch from 5d2a2c9 to 029f931 Compare April 5, 2026 13:25
@jasagiri jasagiri merged commit 62a5d9a into main Apr 5, 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