From 244c53fc4f86f9a2305d6659a823f4ca0d52a251 Mon Sep 17 00:00:00 2001 From: Andres Marafioti Date: Wed, 24 Jun 2026 15:44:31 +0200 Subject: [PATCH 1/4] Run CUDA 13 wheels on HF Jobs --- .github/workflows/wheels.yml | 11 +++++++++-- README.md | 24 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 6eb575d..7b39db2 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -34,6 +34,7 @@ jobs: cuda_home: /usr/local/cuda-12.8 wheel_build_tag: 1cu128 cuda_architectures: 75-virtual;80-virtual;86-real;89-real;90-real;100-real;120-real;120-virtual + build_jobs: "2" - arch: aarch64 runner: ubuntu-24.04-arm cuda_repo_arch: sbsa @@ -42,14 +43,19 @@ jobs: cuda_home: /usr/local/cuda-12.8 wheel_build_tag: 1cu128 cuda_architectures: 75-virtual;80-virtual;86-real;89-real;90-real;100-real;120-real;120-virtual + build_jobs: "2" - arch: x86_64 - runner: ubuntu-24.04 + # CUDA 13.0 compiles many device-code variants and can exceed + # GitHub-hosted runner time limits. This label is served by + # huggingface/jobs-actions when the dispatcher Space is installed. + runner: hf-jobs-cpu-performance cuda_repo_arch: x86_64 cuda_version: "13.0" cuda_package_suffix: "13-0" cuda_home: /usr/local/cuda-13.0 wheel_build_tag: 1cu130 cuda_architectures: 75-virtual;80-virtual;86-real;89-real;90-real;100-real;120-real;120-virtual;121-real;121-virtual + build_jobs: "16" - arch: aarch64 runner: ubuntu-24.04-arm cuda_repo_arch: sbsa @@ -58,9 +64,10 @@ jobs: cuda_home: /usr/local/cuda-13.0 wheel_build_tag: 1cu130 cuda_architectures: 75-virtual;80-virtual;86-real;89-real;90-real;100-real;120-real;120-virtual;121-real;121-virtual + build_jobs: "2" env: QWENTTS_CPP_BACKEND: cuda - QWENTTS_CPP_BUILD_JOBS: "2" + QWENTTS_CPP_BUILD_JOBS: ${{ matrix.build_jobs }} QWENTTS_CPP_WHEEL_BUILD_TAG: ${{ matrix.wheel_build_tag }} QWENTTS_REF: ${{ inputs.qwentts_ref || '4536dcdce27c3764a93a06d6bf64026b124962f5' }} CUDA_ARCHITECTURES: ${{ matrix.cuda_architectures }} diff --git a/README.md b/README.md index abac9b9..35c8172 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,30 @@ The CI wheel build defaults to qwentts.cpp resets and ABI v2 cached voice-reference fields. CPU and CUDA both stay on the backend prompt-projection path. +## CI Wheel Builds + +The wheel workflow builds Linux CPU wheels, CUDA 12.8 wheels, and CUDA 13.0 +wheels. CUDA 12.8 currently stays on GitHub-hosted runners because those jobs +finish reliably. The Linux x86_64 CUDA 13.0 job uses Hugging Face Jobs via the +`hf-jobs-cpu-performance` runner label because compiling the CUDA 13.0 target +set can exceed GitHub-hosted runner time budgets. + +Before the CUDA 13.0 x86_64 job can run, set up +`huggingface/jobs-actions` for this repository: + +1. Duplicate the `huggingface/jobs-actions-dispatcher` Space under your Hugging + Face user or org and keep it on `cpu-upgrade` or better. +2. Use the dispatcher Space to create and install the generated GitHub App on + `andimarafioti/qwentts-cpp-python`. +3. Add an `HF_TOKEN` with Jobs permissions to the dispatcher Space secrets. +4. Trigger the wheel workflow again. Jobs with `runs-on: hf-jobs-*` should then + be picked up by ephemeral Hugging Face Jobs runners. + +If the dispatcher is not installed or the Space is asleep, the CUDA 13.0 x86_64 +job will stay queued with no available runner. The Linux aarch64 CUDA wheels +still use `ubuntu-24.04-arm`; Hugging Face Jobs runner labels do not currently +select an ARM64 GitHub Actions host. + `QWENTTS_CPP_WHEEL_BUILD_TAG` is useful for local wheelhouses. For public indexes, publish one backend flavor per package/version/platform compatibility tag; otherwise pip has no way to choose between CPU and CUDA binaries. From 000732332e5fd3b2fbf31608e99bb46961c3e00e Mon Sep 17 00:00:00 2001 From: Andres Marafioti Date: Wed, 24 Jun 2026 15:47:17 +0200 Subject: [PATCH 2/4] Run x86 CUDA wheels on HF Jobs --- .github/workflows/wheels.yml | 10 +++++----- README.md | 17 ++++++++--------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 7b39db2..d6436ed 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -27,14 +27,17 @@ jobs: matrix: include: - arch: x86_64 - runner: ubuntu-24.04 + # CUDA wheel builds compile many device-code variants and can exceed + # GitHub-hosted runner time budgets. This label is served by + # huggingface/jobs-actions when the dispatcher Space is installed. + runner: hf-jobs-cpu-performance cuda_repo_arch: x86_64 cuda_version: "12.8" cuda_package_suffix: "12-8" cuda_home: /usr/local/cuda-12.8 wheel_build_tag: 1cu128 cuda_architectures: 75-virtual;80-virtual;86-real;89-real;90-real;100-real;120-real;120-virtual - build_jobs: "2" + build_jobs: "16" - arch: aarch64 runner: ubuntu-24.04-arm cuda_repo_arch: sbsa @@ -45,9 +48,6 @@ jobs: cuda_architectures: 75-virtual;80-virtual;86-real;89-real;90-real;100-real;120-real;120-virtual build_jobs: "2" - arch: x86_64 - # CUDA 13.0 compiles many device-code variants and can exceed - # GitHub-hosted runner time limits. This label is served by - # huggingface/jobs-actions when the dispatcher Space is installed. runner: hf-jobs-cpu-performance cuda_repo_arch: x86_64 cuda_version: "13.0" diff --git a/README.md b/README.md index 35c8172..11b5ab0 100644 --- a/README.md +++ b/README.md @@ -41,13 +41,12 @@ backend prompt-projection path. ## CI Wheel Builds The wheel workflow builds Linux CPU wheels, CUDA 12.8 wheels, and CUDA 13.0 -wheels. CUDA 12.8 currently stays on GitHub-hosted runners because those jobs -finish reliably. The Linux x86_64 CUDA 13.0 job uses Hugging Face Jobs via the -`hf-jobs-cpu-performance` runner label because compiling the CUDA 13.0 target +wheels. Linux x86_64 CUDA wheels use Hugging Face Jobs via the +`hf-jobs-cpu-performance` runner label because compiling the full CUDA target set can exceed GitHub-hosted runner time budgets. -Before the CUDA 13.0 x86_64 job can run, set up -`huggingface/jobs-actions` for this repository: +Before the x86_64 CUDA jobs can run, set up `huggingface/jobs-actions` for this +repository: 1. Duplicate the `huggingface/jobs-actions-dispatcher` Space under your Hugging Face user or org and keep it on `cpu-upgrade` or better. @@ -57,10 +56,10 @@ Before the CUDA 13.0 x86_64 job can run, set up 4. Trigger the wheel workflow again. Jobs with `runs-on: hf-jobs-*` should then be picked up by ephemeral Hugging Face Jobs runners. -If the dispatcher is not installed or the Space is asleep, the CUDA 13.0 x86_64 -job will stay queued with no available runner. The Linux aarch64 CUDA wheels -still use `ubuntu-24.04-arm`; Hugging Face Jobs runner labels do not currently -select an ARM64 GitHub Actions host. +If the dispatcher is not installed or the Space is asleep, the x86_64 CUDA jobs +will stay queued with no available runner. The Linux aarch64 CUDA wheels still +use `ubuntu-24.04-arm`; Hugging Face Jobs runner labels do not currently select +an ARM64 GitHub Actions host. `QWENTTS_CPP_WHEEL_BUILD_TAG` is useful for local wheelhouses. For public indexes, publish one backend flavor per package/version/platform compatibility From 12b1de88c00e376c335b01e5c22bbe7ac3f730bd Mon Sep 17 00:00:00 2001 From: Andres Marafioti Date: Wed, 24 Jun 2026 15:48:17 +0200 Subject: [PATCH 3/4] Remove workflow runner comment --- .github/workflows/wheels.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index d6436ed..83e3fc3 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -27,9 +27,6 @@ jobs: matrix: include: - arch: x86_64 - # CUDA wheel builds compile many device-code variants and can exceed - # GitHub-hosted runner time budgets. This label is served by - # huggingface/jobs-actions when the dispatcher Space is installed. runner: hf-jobs-cpu-performance cuda_repo_arch: x86_64 cuda_version: "12.8" From 0d7d51942042500af238d5c1f17bc0c1bcee3dca Mon Sep 17 00:00:00 2001 From: Andres Marafioti Date: Wed, 24 Jun 2026 16:10:44 +0200 Subject: [PATCH 4/4] Remove runner setup docs --- README.md | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/README.md b/README.md index 11b5ab0..abac9b9 100644 --- a/README.md +++ b/README.md @@ -38,29 +38,6 @@ The CI wheel build defaults to qwentts.cpp resets and ABI v2 cached voice-reference fields. CPU and CUDA both stay on the backend prompt-projection path. -## CI Wheel Builds - -The wheel workflow builds Linux CPU wheels, CUDA 12.8 wheels, and CUDA 13.0 -wheels. Linux x86_64 CUDA wheels use Hugging Face Jobs via the -`hf-jobs-cpu-performance` runner label because compiling the full CUDA target -set can exceed GitHub-hosted runner time budgets. - -Before the x86_64 CUDA jobs can run, set up `huggingface/jobs-actions` for this -repository: - -1. Duplicate the `huggingface/jobs-actions-dispatcher` Space under your Hugging - Face user or org and keep it on `cpu-upgrade` or better. -2. Use the dispatcher Space to create and install the generated GitHub App on - `andimarafioti/qwentts-cpp-python`. -3. Add an `HF_TOKEN` with Jobs permissions to the dispatcher Space secrets. -4. Trigger the wheel workflow again. Jobs with `runs-on: hf-jobs-*` should then - be picked up by ephemeral Hugging Face Jobs runners. - -If the dispatcher is not installed or the Space is asleep, the x86_64 CUDA jobs -will stay queued with no available runner. The Linux aarch64 CUDA wheels still -use `ubuntu-24.04-arm`; Hugging Face Jobs runner labels do not currently select -an ARM64 GitHub Actions host. - `QWENTTS_CPP_WHEEL_BUILD_TAG` is useful for local wheelhouses. For public indexes, publish one backend flavor per package/version/platform compatibility tag; otherwise pip has no way to choose between CPU and CUDA binaries.