@@ -53,23 +53,15 @@ jobs:
5353 fail-fast : false
5454 matrix :
5555 os : [ubuntu-22.04]
56- python-version : ['3.10', '3.11', '3. 12']
56+ python-version : ['3.12']
5757 torch-cuda :
58- # - torch-version: '2.5.1'
59- # cuda-version: '12.4.1'
60- # torch-cuda-short: 'cu124'
61- # - torch-version: '2.6.0'
62- # cuda-version: '12.6.3'
63- # torch-cuda-short: 'cu126'
64- # - torch-version: '2.7.1'
65- # cuda-version: '12.8.0'
66- # torch-cuda-short: 'cu128'
67- # - torch-version: '2.9.1'
68- # cuda-version: '12.8.0'
69- # torch-cuda-short: 'cu128'
70- - torch-version : ' 2.10.0'
71- cuda-version : ' 12.8.0'
72- torch-cuda-short : ' cu128'
58+ # torch 2.12 dropped cu128; cu130 (CUDA 13) is the default wheel, cu126 covers older drivers.
59+ - torch-version : ' 2.12.0'
60+ cuda-version : ' 12.6.3'
61+ torch-cuda-short : ' cu126'
62+ - torch-version : ' 2.12.0'
63+ cuda-version : ' 13.0.0'
64+ torch-cuda-short : ' cu130'
7365
7466 steps :
7567 - name : Free up disk space
@@ -152,9 +144,17 @@ jobs:
152144
153145 cd fastvideo-kernel
154146 git submodule update --init --recursive # Ensure ThunderKittens submodule is initialized
155- # Release builds are produced on GPU-less runners, so force-enable TK and target Hopper.
156- export TORCH_CUDA_ARCH_LIST="9.0a"
157- export CMAKE_ARGS="${CMAKE_ARGS:-} -DFASTVIDEO_KERNEL_BUILD_TK=ON -DCMAKE_CUDA_ARCHITECTURES=90a"
147+ # Release builds run on GPU-less runners, so force-enable TK and set the arch explicitly.
148+ # The CUDA 13 (cu130) leg additionally targets Blackwell sm_120a and builds the
149+ # attn_qat_infer FP4 inference kernels (they need CUDA Toolkit 12.8+, so the cu126 leg
150+ # stays Hopper-only and ships without them).
151+ if [ "${{ matrix.torch-cuda.torch-cuda-short }}" = "cu130" ]; then
152+ export TORCH_CUDA_ARCH_LIST="9.0a;12.0a"
153+ export CMAKE_ARGS="${CMAKE_ARGS:-} -DFASTVIDEO_KERNEL_BUILD_TK=ON -DFASTVIDEO_KERNEL_BUILD_ATTN_QAT_INFER=ON -DCMAKE_CUDA_ARCHITECTURES=90a"
154+ else
155+ export TORCH_CUDA_ARCH_LIST="9.0a"
156+ export CMAKE_ARGS="${CMAKE_ARGS:-} -DFASTVIDEO_KERNEL_BUILD_TK=ON -DCMAKE_CUDA_ARCHITECTURES=90a"
157+ fi
158158
159159 # Build standard wheel (no local version suffix) for PyPI
160160 python -m build --wheel --outdir dist
@@ -183,8 +183,8 @@ jobs:
183183 mv fixed_dist/*.whl dist/
184184
185185 - name : Upload wheel artifact
186- # Only upload if it's the "main" CUDA version we want on PyPI
187- # We upload all to artifacts for inspection/GH releases, but give them distinct artifact names
186+ # Upload every matrix leg as a distinct artifact (for inspection / GitHub releases).
187+ # The publish job below selects which CUDA build is pushed to PyPI.
188188 uses : actions/upload-artifact@v4
189189 with :
190190 name : fastvideo_kernel-py${{ matrix.python-version }}-${{ matrix.torch-cuda.torch-cuda-short }}-torch${{ matrix.torch-cuda.torch-version }}
@@ -204,13 +204,15 @@ jobs:
204204
205205 - uses : actions/setup-python@v5
206206 with :
207- python-version : ' 3.10 '
207+ python-version : ' 3.12 '
208208
209209 - name : Download PyPI wheels
210+ # Publish only the cu130 (CUDA 13) wheel to PyPI — it includes the Blackwell FP4 kernels.
211+ # The cu126 wheel stays available as a build artifact / GitHub-release asset.
210212 uses : actions/download-artifact@v4
211213 with :
212214 path : fastvideo-kernel/dist/
213- pattern : ' fastvideo_kernel-py*'
215+ pattern : ' fastvideo_kernel-py*-cu130-* '
214216 merge-multiple : true
215217
216218 - name : Install uv
0 commit comments