Skip to content

Support for Arm64 (like on the DGX Spark) #2

Description

@gauravmm

On an NVIDIA DGX Spark (GB10, Grace-Blackwell, aarch64, CUDA compute sm_121) neither setup.sh nor the Dockerfile produces a working install, because both hardcode x86_64 artifacts. It does run well on this hardware once those two assumptions are removed.

What breaks

  1. flash-attn wheel is linux_x86_64. setup.sh (and the Dockerfile) install
    flash_attn-2.8.3+cu12torch2.8...-linux_x86_64.whl. On aarch64 that wheel can't install; the
    Dockerfile additionally fails the build rather than falling through. There is no published
    arm64 flash-attn wheel, and a source build is impractical here.
  2. Torch install targets the x86 CUDA wheels. pip install torch==2.8.* --index-url .../cu128
    isn't guaranteed to give a build with sm_121 kernels on aarch64.

What works (the fix)

  • Force SDPA: VIBEVOICE_ATTN_IMPLEMENTATION=sdpa. The bundled core falls back cleanly; quality
    is unaffected for our use.
  • Don't reinstall torch — reuse one already known-good for the GPU. We base the image on a
    container whose torch already runs on sm_121/aarch64 (in our case the pinned vllm/vllm-openai
    image) and simply pip install -e . + requirements-api.txt on top, skipping the setup.sh
    torch/flash-attn steps entirely. The core's transformers==4.51.3 pin downgrades the base image's
    transformers, which is fine for a TTS-only container.
  • Everything else (voices, /v1/audio/speech, opus output) works unmodified.

Suggestion

A small arm64 branch in setup.sh/Dockerfile that (a) skips the flash-attn wheel on non-x86 and
relies on the existing SDPA fallback, and (b) doesn't hard-fail the build when flash-attn is absent,
would make Spark/GB10 a supported target. Happy to send a PR if useful.

Environment: DGX Spark, GB10 (Grace-Blackwell), aarch64, CUDA 13 / driver sm_121, Docker.
VibeVoice-Large (bf16) via SDPA — real-time-ish, produces clean audio.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions