mirror of
https://github.com/Comfy-Org/comfy-kitchen.git
synced 2026-11-04 23:37:42 +00:00
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/comfy-kitchen#262
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/comfy-kitchen/pull/257
Author: @0xDELUXA
Created: 10/19/2026
Status: ✅ Merged
Merged: 10/21/2026
Merged by: @comfyanonymous
Base:
main← Head:amd/hip-w4a8-fused-input-act📝 Commits (1)
2010047HIP port of #255: fuse input activations into the W4A8/W6A8 quantizer📊 Changes
2 files changed (+84 additions, -25 deletions)
View changed files
📝
comfy_kitchen/backends/hip/__init__.py(+50 -25)📝
tests/test_hip_wmma.py(+34 -0)📄 Description
HIP port of #255.
w4a8_int8_linearapplied the input activation as a separate pass before the ConvRot quantizer, which already fusesgelu_tanh,swigluandsituon every group size and the global spill path, plusrms_normon the fused G=256 kernel. The activation now goes to the quantizer. HIP quantizes every row count with that kernel, so decode rows are covered too, not only M >= 512. Theint8_linearlogic that picks which activation to fuse moved into a shared_split_input_acthelper; the asymmetriccorrectionlayout and unsupported ConvRot shapes still apply the activation eagerly.Measured on gfx1200, bf16, N=3072, K=8192:
situat M=4096 goes 7.30 -> 3.35 ms and at M=1024 1.65 -> 1.09 ms,swigluat M=4096 3.94 -> 3.01 ms.rms_normis 2-10% faster across the shapes tried.test_w4a8_linear_fuses_the_input_actcovers the four activations at 4 and 6 bits for M=1, 9 and 600, and fails if the eager activation runs. No kernel changes: the fused activation variants are the onesint8_linearalready launches, so the device code is identical tomainfor every arch.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.