ComfyUI 0.38의 정식 H3 가속 셋을 Blackwell에서 비교했습니다
ComfyUI 0.38에 들어온 정식 sparse attention, INT8 attention, w6a8 가중치를 RTX Pro 6000 Blackwell에서 3회 중앙값으로 비교했습니다. 정식 sol-attn이 기존 커스텀 패치보다 빨랐고, INT8 attention과 w6a8은 속도 이득이 없었습니다.
ComfyUI 0.38.0에 MiniMax H3를 빠르게 돌리는 정식 기능이 세 가지 들어왔습니다. sparse attention(Model Sparse Attention의 sol-attn), INT8 attention(Model Attention Backend), 그리고 공식 w6a8 양자화 가중치입니다. RTX Pro 6000 Blackwell(96GiB)에서 하나씩 켜고 꺼 가며 비교했습니다.
결과는 셋이 다 달랐습니다. 정식 sol-attn은 지금까지 쓰던 커스텀 Triton 패치보다 빨랐습니다. INT8 attention은 SageAttention과 속도가 같아서, Sage를 이미 쓰는 서버에서는 이득이 없었습니다. w6a8은 속도는 같고 VRAM을 약 16.5GiB 덜 썼습니다.
측정 조건
- 서버: RTX Pro 6000 Blackwell 96GiB, ComfyUI 0.38.0, comfy-kitchen 0.2.36, torch 2.14.1+cu130. 서버는 SageAttention을 켠 상태로 기동
- 구성: 첫·끝 프레임 없이 텍스트에서 영상(T2V), 20스텝,
res_multistep, 시드 고정. 텍스트 인코더는 Qwen3-VL NVFP4 AWQ - 시간: ComfyUI 실행 시작부터 성공까지. VAE 디코드와 인코딩 포함
- 반복: 조건을 라운드마다 번갈아 돌리고, 워밍업(커널 컴파일 포함) 라운드는 빼고 3회 중앙값
- sol-attn 설정: tau 1.3, start 0.2, end 0.9, min_tokens 4096, sink
exact_kv_and_rows
측정 중 외부에서 GPU를 쓴 시간대에 걸린 2회는 결과가 오염돼서 다시 쟀습니다.
sparse attention과 INT8 attention
int8_convrot 가중치(31.7GiB, 현재 쓰는 것) 기준입니다.
| 조건 | 864×480·73f | 1344×768·124f | 1344 기준 대비 |
|---|---|---|---|
| 가속 없음 (일반 attention = Sage) | 26.7초 | 177.5초 | |
| INT8 attention | 26.6초 | 176.8초 | 이득 없음 |
커스텀 SolAttnPatch |
25.5초 | 146.7초 | 1.21x |
| 정식 sol-attn | 25.3초 | 136.0초 | 1.31x |
| 정식 sol-attn + INT8 attention | 25.3초 | 135.9초 | 1.31x |
정식 sol-attn이 커스텀 패치보다 약 11초(7%) 빨랐습니다. 이전 Blackwell 측정에서 이 서버의 가장 빠른 경로는 커스텀 Triton Sol 패치였는데, 이제 정식 노드가 그 자리를 대신합니다. 작은 해상도(864×480)에서는 어떤 가속이든 1~1.4초 차이라 의미가 크지 않습니다.
INT8 attention은 Sage와 같은 속도
sol-attn은 스텝의 앞 20%와 뒤 10%, 그리고 짧은 시퀀스에서는 꺼지고 일반 attention으로 돕니다. sol-attn을 켠 상태에서 그 일반 attention의 백엔드만 바꿔 봤습니다.
| 일반 attention 백엔드 | 1344×768·124f |
|---|---|
| PyTorch (Sage 없는 설치를 흉내) | 157.3초 |
| SageAttention | 136.1초 |
| INT8 attention | 135.9초 |
INT8 attention은 Sage와 속도가 같았고, 둘 다 PyTorch attention보다 1.16배 빨랐습니다. INT8 attention은 comfy-kitchen에 들어 있어서 Sage를 따로 설치하지 않아도 됩니다(NVIDIA와 AMD 지원). Sage로 서버를 띄우는 곳에서는 켤 이유가 없고, Sage가 없는 설치에서는 의미가 있습니다. sol-attn을 끈 상태라면 일반 attention 비중이 더 커서 차이도 더 클 텐데, 그 조건은 재지 않았습니다.
w6a8: 속도는 같고 메모리를 덜 쓴다
공식 w6a8 가중치(fl2va_pruned_w6a8, 14.9GiB)도 같은 조건으로 쟀습니다.
| 조건 | 864×480·73f | 1344×768·124f |
|---|---|---|
| 가속 없음 | 27.7초 | 176.3초 |
| 정식 sol-attn | 26.4초 | 135.6초 |
int8_convrot과 속도가 같습니다. 차이는 메모리에서 났습니다. GPU 여유 메모리를 0.5초마다 읽어 실행 직전 대비 가장 많이 줄어든 양을 쟀습니다(sol-attn 켬, 텍스트 인코더와 VAE 포함).
| 가중치 | 5초 영상 (124f) | 10초 영상 (243f) | 10초 생성 시간 |
|---|---|---|---|
| int8_convrot | 50.8GiB | 54.3GiB | 346초 |
| w6a8 | 34.3GiB | 39.8GiB | 343초 |
w6a8이 약 16.5GiB를 덜 썼고, 이는 거의 가중치 크기 차이입니다. 영상 길이를 5초에서 10초로 늘려도 메모리는 3.5~5.5GiB만 더 들었습니다. 96GiB 카드에서는 메모리가 길이를 막지 않고, 길이를 막는 것은 생성 시간입니다. 48GiB 이하 GPU라면 w6a8이 오프로딩 없이 올라가는 차이를 만들 수 있지만, 그 환경은 재지 않았습니다.
공식 w6a8 파일에는 블록별 attention 지정이 들어 있지 않습니다. 가중치만 양자화돼 있어서, INT8 attention을 쓰려면 노드로 따로 켜야 합니다.
화질
같은 조건으로 다시 돌리면 결과가 비트 단위로 같았습니다(PSNR 무한대). 그래서 아래 차이는 모두 설정에서 온 것입니다.
| 조건 (1344×768, 가속 없음 대비) | PSNR |
|---|---|
| 정식 sol-attn | 25.7dB |
| 커스텀 SolAttnPatch | 24.5dB |
| INT8 attention | 25.2dB |
| 정식 sol-attn + INT8 attention | 23.6dB |
| w6a8 | 18.9dB |
w6a8은 가지치기와 양자화가 함께 들어가 있어서 생성 결과가 가장 많이 달라졌습니다. 같은 시점의 프레임을 눈으로 비교하면 모두 구도, 털 질감, 선명도가 비슷했고 깨지거나 흐려진 곳은 없었습니다. 여기서 PSNR은 결과가 다르다는 뜻이지 나쁘다는 뜻이 아닙니다.
정리하면
이 서버의 기본값은 정식 sol-attn으로 바꿨습니다. INT8 attention은 Sage를 쓰는 동안은 켜지 않고, w6a8은 메모리가 빠듯한 GPU에서 쓸 선택지로 둡니다.