FA4 cute supports SM 9/10/11 only, and the pinned revision forces nvidia-cutlass-dsl==4.6.0.dev0 over the 4.8.x that flashinfer 0.7.2 needs, so import flashinfer fails in the image. GB10 FP4 attention runs on fastvideo-kernel. Add INSTALL_FA4_CUTE (default 1), set it to 0 for the CUDA 13 arm64 leg, still remove the wheel's stale cute files, and check that flashinfer imports when the overlay is skipped.
67 lines
2.4 KiB
Markdown
67 lines
2.4 KiB
Markdown
|
|
# 🐳 Using the FastVideo Docker Image
|
|
|
|
If you prefer a containerized development environment or want to avoid managing dependencies manually, you can use our prebuilt Docker image:
|
|
|
|
**Images:** [`ghcr.io/hao-ai-lab/fastvideo/fastvideo-dev:py3.12-latest`](https://ghcr.io/hao-ai-lab/fastvideo/fastvideo-dev)
|
|
|
|
The published FastVideo tags are multi-platform Linux images for `amd64` and
|
|
`arm64`; Docker automatically pulls the matching architecture. The
|
|
`py3.12-latest` and global `latest` tags select CUDA 12.6.3 with the `cu126`
|
|
PyTorch backend. `py3.12-cuda12.6.3-latest` is the explicit alias for that
|
|
same image; use `py3.12-cuda13.0.0-latest` for CUDA 13 with `cu130`.
|
|
|
|
On ARM64, the CUDA 13 image targets DGX Spark (`sm_121a`), while the CUDA 12.6
|
|
image targets GH200-class hardware (`sm_90a`). These published-tag defaults
|
|
are distinct from an unparameterized local `docker build`: `docker/Dockerfile`
|
|
itself still defaults to CUDA 13 and `cu130`.
|
|
|
|
DGX Spark users must therefore select `py3.12-cuda13.0.0-latest`; the default
|
|
CUDA 12.6 ARM64 image does not contain an `sm_121` FastVideo kernel.
|
|
|
|
## Starting the container
|
|
|
|
```bash
|
|
docker run --gpus all -it ghcr.io/hao-ai-lab/fastvideo/fastvideo-dev:py3.12-latest
|
|
```
|
|
|
|
This will:
|
|
|
|
- Start the container with GPU access
|
|
- Drop you into a shell with the FastVideo virtual environment activated
|
|
|
|
## Building locally
|
|
|
|
The same Dockerfile builds both architectures and defaults to CUDA 13. On a
|
|
native ARM64 host, build the CUDA 13 DGX Spark image with:
|
|
|
|
```bash
|
|
docker build --platform linux/arm64 -f docker/Dockerfile \
|
|
--build-arg TORCH_CUDA_ARCH_LIST=12.1a --build-arg INSTALL_FA4_CUTE=0 \
|
|
-t fastvideo-dev:spark .
|
|
```
|
|
|
|
This uses the prebuilt Linux ARM64 FlashAttention wheel. FastVideo's in-tree
|
|
CUDA kernel is still compiled for `sm_121a` as part of the image build, including
|
|
the FP4 attention kernels that `FASTVIDEO_H3_VSA_FP4=1` uses.
|
|
|
|
`INSTALL_FA4_CUTE=0` (set for the published DGX Spark image) leaves
|
|
out the FA4 `flash_attn.cute` overlay: FA4 supports SM 9/10/11 only, and its pinned
|
|
`nvidia-cutlass-dsl` would break FlashInfer, which the NVFP4 paths need. FA2 is
|
|
still installed.
|
|
|
|
## Using the container
|
|
|
|
```bash
|
|
# The FastVideo virtual environment should already be active
|
|
# FastVideo package installed in editable mode
|
|
|
|
# Pull the latest changes from remote
|
|
cd /FastVideo
|
|
git pull
|
|
|
|
# Run linters and tests
|
|
pre-commit run --all-files
|
|
pytest tests/
|
|
```
|