diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 105d019..bd5b46e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -27,14 +27,14 @@ jobs: cuda_repo_arch: x86_64 cuda_package_suffix: "12-8" cuda_home: /usr/local/cuda-12.8 - cuda_architectures: 75-virtual;80-virtual;86-real;89-real;90-real;100-real;120-real;120-virtual + cuda_architectures: 75-virtual;86-real;90-real;120-real;120-virtual build_jobs: "2" - arch: aarch64 runner: ubuntu-24.04-arm cuda_repo_arch: sbsa cuda_package_suffix: "12-8" cuda_home: /usr/local/cuda-12.8 - cuda_architectures: 75-virtual;80-virtual;86-real;89-real;90-real;100-real;120-real;120-virtual + cuda_architectures: 75-virtual;86-real;90-real;120-real;120-virtual build_jobs: "2" env: QWENTTS_CPP_BACKEND: cuda diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 190e80a..6137e5c 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -33,7 +33,7 @@ jobs: 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 + cuda_architectures: 75-virtual;86-real;90-real;120-real;120-virtual build_jobs: "2" - arch: aarch64 runner: ubuntu-24.04-arm @@ -42,7 +42,7 @@ jobs: 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 + cuda_architectures: 75-virtual;86-real;90-real;120-real;120-virtual build_jobs: "2" - arch: x86_64 runner: ubuntu-24.04 @@ -51,7 +51,7 @@ jobs: 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 + cuda_architectures: 75-virtual;80-real;86-real;90-real;121-real build_jobs: "2" - arch: aarch64 runner: ubuntu-24.04-arm @@ -60,7 +60,7 @@ jobs: 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 + cuda_architectures: 75-virtual;80-real;86-real;90-real;121-real build_jobs: "2" env: QWENTTS_CPP_BACKEND: cuda diff --git a/AGENTS.md b/AGENTS.md index 81e5071..dafbd32 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12,9 +12,22 @@ The workflow runs on pushed tags that match `v*`, builds the public Linux CUDA through the configured `pypi` environment. The public `qwentts-cpp-python` package currently publishes CUDA 12.8 wheels -only. CPU and CUDA 13 wheels are useful validation artifacts, but publishing -multiple backend flavors under the same package name, version, and platform tag -would leave pip with no reliable way to choose the intended runtime. +only. Publishing multiple backend flavors under the same package name, version, +and platform tag would leave pip with no reliable way to choose the intended +runtime. + +The PR wheel workflow may still build CPU and CUDA 13 wheels as downloadable +validation artifacts. Those artifacts are not uploaded to PyPI by the publish +workflow. + +CUDA release wheels keep native cubins for sm_86, sm_90, and sm_120, plus PTX +fallbacks for sm_75 and the newest supported CUDA architecture. This keeps the +public CUDA 12.8 wheels under PyPI's default per-file upload limit while +preserving broad GPU compatibility. Ada sm_89 GPUs can run the sm_86 cubin +through CUDA's same-major binary compatibility. DGX Spark / GB10 sm_121 uses +PTX fallback in the public CUDA 12.8 wheels. A CUDA 13 build with native sm_121 +can avoid that fallback, but it is not the PyPI default because the deployment +server image currently targets CUDA 12.8. To prepare a release: