Repository navigation
av1gpu v0.6.0
Linux x86_64 and Windows x64 binaries for NVIDIA GPUs from Turing (RTX 20, T4) to Blackwell (RTX 50). Linux needs only the NVIDIA driver (525 or newer); Windows needs the driver (528 or newer) and the nvjpeg64_12.dll that comes in the zip. See the README for usage.
New: about 1.8–1.9× faster, same output
Every output file is byte-identical to v0.5.0's. On 66 test runs (4,698 files: every preset, quality 30–95, 4:4:4, 10-bit, monochrome, lossless, alpha, odd sizes, thumbnails, single-file mode, 1 to 6 encoders) there were 0 differences. The decoder gate (676/676 encodes and 38/38 alpha items in dav1d and aomdec) and the tests pass.
Measured on an NVIDIA L4 (AWS g6.4xlarge), with v0.5.0 alternating in the same session (MP/s, median of 6 runs):
| Set | v0.5.0 | v0.6.0 | |
|---|---|---|---|
| Photos 0.2–24 MP, default | 121 | 225 | ×1.86 |
| Same, counting CUDA start-up | 112 | 195 | ×1.75 |
Same, GP_ENCODERS=4 |
120 | 230 | ×1.91 |
--small-preset none |
142 | 272 | ×1.91 |
--preset turbo3 --small-preset none |
210 | 367 | ×1.75 |
| ~1 MP photos, default | 38 | 72 | ×1.89 |
| 4:4:4 / 10-bit / 4:4:4 10-bit | 98 / 120 / 95 | 170 / 230 / 166 | ×1.73–1.91 |
| Thumbnails (512 × 384 and smaller), images/s | 214 | 393 | ×1.84 |
Kodak PNGs (768 × 512), default / turbo3 --small-preset none, images/s |
78 / 329 | 138 / 557 | ×1.7 |
| Transparent PNGs, default | 27 | 44 | ×1.63 |
| Lossless | +9–11 % |
The L4 runs at its 72 W cap with either version, so energy per image drops by about the same factor: 0.57 → 0.30 J/MP. At the same file size, av1gpu on one L4 is now 8.0× libaom speed 6 on all 16 CPU threads (was 4.4×) and 15× NVENC AV1 on the same card. Details and raw results.
Where it came from:
- Analysis (#35): integer SATD with warp shuffles instead of shared-memory atomics, faster 4 × 4 prediction, warp-wide transforms and top-K selection.
- Reconstruction (#37): U and V chroma finished concurrently on two halves of the block, plus a faster critical path.
- Batch mode (#36): CUDA modules loaded up front, the kernel stack reserved once, pinned-memory frees moved off the hot path, and a huge-page ingest buffer.
- Loop filters (#32, #39, #40): CDEF applied per 64 × 64 tile in shared memory, a templated deblocking filter, and the loop-filter search's maps reused by the pipeline.
- Entropy coding (#33, #34, #38): coefficient symbols, contexts and coding windows reworked.
Known limitations
- Windows: its speed was measured with v0.5.0 (67–83 % of Linux) and hasn't been re-run. CPU limits set by job objects or containers aren't read (the thread count follows the process's CPU affinity), and the tests run on Linux only.
- ICC profiles: profiles in PNG and WebP inputs are not read yet; JPEG profiles are kept.
- EXIF orientation is ignored.