From b1d89eba1f177f2b096192c9b1e7ceb7096bea99 Mon Sep 17 00:00:00 2001 From: William Lin Date: Tue, 23 Jun 2026 10:02:27 -0700 Subject: [PATCH] [chore] release fastvideo-kernel 0.3.0 (#1478) --- .github/workflows/publish-kernel.yml | 48 ++++++++++--------- apps/dreamverse/docker/README.md | 2 +- fastvideo-kernel/pyproject.toml | 2 +- .../python/fastvideo_kernel/version.py | 2 +- pyproject.toml | 2 +- pyproject_other.toml | 2 +- 6 files changed, 30 insertions(+), 28 deletions(-) diff --git a/.github/workflows/publish-kernel.yml b/.github/workflows/publish-kernel.yml index 9f8e2c075..754c665b6 100644 --- a/.github/workflows/publish-kernel.yml +++ b/.github/workflows/publish-kernel.yml @@ -53,23 +53,15 @@ jobs: fail-fast: false matrix: os: [ubuntu-22.04] - python-version: ['3.10', '3.11', '3.12'] + python-version: ['3.12'] torch-cuda: - # - torch-version: '2.5.1' - # cuda-version: '12.4.1' - # torch-cuda-short: 'cu124' - # - torch-version: '2.6.0' - # cuda-version: '12.6.3' - # torch-cuda-short: 'cu126' - # - torch-version: '2.7.1' - # cuda-version: '12.8.0' - # torch-cuda-short: 'cu128' - # - torch-version: '2.9.1' - # cuda-version: '12.8.0' - # torch-cuda-short: 'cu128' - - torch-version: '2.10.0' - cuda-version: '12.8.0' - torch-cuda-short: 'cu128' + # torch 2.12 dropped cu128; cu130 (CUDA 13) is the default wheel, cu126 covers older drivers. + - torch-version: '2.12.0' + cuda-version: '12.6.3' + torch-cuda-short: 'cu126' + - torch-version: '2.12.0' + cuda-version: '13.0.0' + torch-cuda-short: 'cu130' steps: - name: Free up disk space @@ -152,9 +144,17 @@ jobs: cd fastvideo-kernel git submodule update --init --recursive # Ensure ThunderKittens submodule is initialized - # Release builds are produced on GPU-less runners, so force-enable TK and target Hopper. - export TORCH_CUDA_ARCH_LIST="9.0a" - export CMAKE_ARGS="${CMAKE_ARGS:-} -DFASTVIDEO_KERNEL_BUILD_TK=ON -DCMAKE_CUDA_ARCHITECTURES=90a" + # Release builds run on GPU-less runners, so force-enable TK and set the arch explicitly. + # The CUDA 13 (cu130) leg additionally targets Blackwell sm_120a and builds the + # attn_qat_infer FP4 inference kernels (they need CUDA Toolkit 12.8+, so the cu126 leg + # stays Hopper-only and ships without them). + if [ "${{ matrix.torch-cuda.torch-cuda-short }}" = "cu130" ]; then + export TORCH_CUDA_ARCH_LIST="9.0a;12.0a" + export CMAKE_ARGS="${CMAKE_ARGS:-} -DFASTVIDEO_KERNEL_BUILD_TK=ON -DFASTVIDEO_KERNEL_BUILD_ATTN_QAT_INFER=ON -DCMAKE_CUDA_ARCHITECTURES=90a" + else + export TORCH_CUDA_ARCH_LIST="9.0a" + export CMAKE_ARGS="${CMAKE_ARGS:-} -DFASTVIDEO_KERNEL_BUILD_TK=ON -DCMAKE_CUDA_ARCHITECTURES=90a" + fi # Build standard wheel (no local version suffix) for PyPI python -m build --wheel --outdir dist @@ -183,8 +183,8 @@ jobs: mv fixed_dist/*.whl dist/ - name: Upload wheel artifact - # Only upload if it's the "main" CUDA version we want on PyPI - # We upload all to artifacts for inspection/GH releases, but give them distinct artifact names + # Upload every matrix leg as a distinct artifact (for inspection / GitHub releases). + # The publish job below selects which CUDA build is pushed to PyPI. uses: actions/upload-artifact@v4 with: name: fastvideo_kernel-py${{ matrix.python-version }}-${{ matrix.torch-cuda.torch-cuda-short }}-torch${{ matrix.torch-cuda.torch-version }} @@ -204,13 +204,15 @@ jobs: - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.12' - name: Download PyPI wheels + # Publish only the cu130 (CUDA 13) wheel to PyPI — it includes the Blackwell FP4 kernels. + # The cu126 wheel stays available as a build artifact / GitHub-release asset. uses: actions/download-artifact@v4 with: path: fastvideo-kernel/dist/ - pattern: 'fastvideo_kernel-py*' + pattern: 'fastvideo_kernel-py*-cu130-*' merge-multiple: true - name: Install uv diff --git a/apps/dreamverse/docker/README.md b/apps/dreamverse/docker/README.md index 70ad5520f..8ad718077 100644 --- a/apps/dreamverse/docker/README.md +++ b/apps/dreamverse/docker/README.md @@ -32,7 +32,7 @@ checkout with the `dreamverse` extra, installs the FA4 flash-attention fork, builds native FFmpeg, and installs FlashInfer for NVFP4 quantization. -FastVideo's pinned `fastvideo-kernel==0.2.6` package is installed by default. +FastVideo's pinned `fastvideo-kernel==0.3.0` package is installed by default. To rebuild `fastvideo-kernel` from this checkout during the image build, set: ```bash diff --git a/fastvideo-kernel/pyproject.toml b/fastvideo-kernel/pyproject.toml index 923d1b41f..399f7de7e 100644 --- a/fastvideo-kernel/pyproject.toml +++ b/fastvideo-kernel/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "scikit_build_core.build" [project] name = "fastvideo-kernel" -version = "0.2.6" +version = "0.3.0" description = "Unified CUDA kernels for FastVideo" readme = "README.md" requires-python = ">=3.10" diff --git a/fastvideo-kernel/python/fastvideo_kernel/version.py b/fastvideo-kernel/python/fastvideo_kernel/version.py index 01ef12070..493f7415d 100644 --- a/fastvideo-kernel/python/fastvideo_kernel/version.py +++ b/fastvideo-kernel/python/fastvideo_kernel/version.py @@ -1 +1 @@ -__version__ = "0.2.6" +__version__ = "0.3.0" diff --git a/pyproject.toml b/pyproject.toml index 4aba0d350..e38cebc6c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,7 +67,7 @@ dependencies = [ "remote-pdb", # Kernel & Packaging - "fastvideo-kernel==0.2.6", + "fastvideo-kernel==0.3.0", "wheel", # Training Dependencies diff --git a/pyproject_other.toml b/pyproject_other.toml index d14524e46..c67a50eac 100644 --- a/pyproject_other.toml +++ b/pyproject_other.toml @@ -65,7 +65,7 @@ dependencies = [ "remote-pdb", # Kernel & Packaging - "fastvideo-kernel==0.2.6", + "fastvideo-kernel==0.3.0", "wheel", # Training Dependencies