Spaces:
Running on Zero
Running on Zero
Wire the AoTI load path (env-gated) and the sub-768p canvases
Browse files
README.md
CHANGED
|
@@ -7,7 +7,7 @@ sdk: gradio
|
|
| 7 |
sdk_version: 6.20.0
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
-
short_description: Unquantized MiniMax-H3, split
|
| 11 |
suggested_hardware: zero-a10g
|
| 12 |
---
|
| 13 |
|
|
@@ -36,6 +36,23 @@ reason alone. Cut the `MiniMaxH3Blocks` sequence at its `text_encoder` step and
|
|
| 36 |
Besides the quality argument, unquantized weights are the ones AoTI can export; an NVFP4 checkpoint cannot be
|
| 37 |
exported at all.
|
| 38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
At 72.16 GiB of weights on a 95.0 GiB card there is no offloading in the request path at all, which is why an
|
| 40 |
*unquantized* MiniMax-H3 is also the fastest one measured here: **10.6 s/step** against the 19–21 s/step the 4 bit
|
| 41 |
Space pays, where the whole cost is the traffic auto-offload has to move.
|
|
|
|
| 7 |
sdk_version: 6.20.0
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
+
short_description: Unquantized MiniMax-H3 with AoTI blocks, split in two
|
| 11 |
suggested_hardware: zero-a10g
|
| 12 |
---
|
| 13 |
|
|
|
|
| 36 |
Besides the quality argument, unquantized weights are the ones AoTI can export; an NVFP4 checkpoint cannot be
|
| 37 |
exported at all.
|
| 38 |
|
| 39 |
+
## AoTI-compiled blocks
|
| 40 |
+
|
| 41 |
+
With `H3_AOTI=1` the 50 repeated transformer blocks run from a compiled package,
|
| 42 |
+
`diffusers-internal-dev/minimax-h3-aoti:bf16/torch2.11/sm120/dynamic` — a single dynamic-sequence artifact that serves
|
| 43 |
+
every canvas, duration and prompt length. It carries no weights (it reads each block's live ones), so patching it in
|
| 44 |
+
is startup CPU work and costs no GPU time.
|
| 45 |
+
|
| 46 |
+
It removes a near-constant ~0.5 s/step — 50 blocks' worth of kernel-launch overhead plus the norm / rotary / AdaLN
|
| 47 |
+
epilogues around the matmuls — and cannot touch the matmuls themselves. So it pays best where the block is *not*
|
| 48 |
+
compute bound, i.e. on the small canvases:
|
| 49 |
+
|
| 50 |
+
| canvas (HxW) | eager s/step | AoTI s/step | faster |
|
| 51 |
+
|---|---|---|---|
|
| 52 |
+
| 768x1344 | 10.20 | 9.73 | +4.6% |
|
| 53 |
+
| 640x1152 | 6.46 | 5.88 | +9.1% |
|
| 54 |
+
| 544x960 | 4.02 | 3.58 | +11.0% |
|
| 55 |
+
|
| 56 |
At 72.16 GiB of weights on a 95.0 GiB card there is no offloading in the request path at all, which is why an
|
| 57 |
*unquantized* MiniMax-H3 is also the fastest one measured here: **10.6 s/step** against the 19–21 s/step the 4 bit
|
| 58 |
Space pays, where the whole cost is the traffic auto-offload has to move.
|