Skip to content

eager: dequantize INT8 weights instead of torch._int_mm on AMD RDNA / CPU#56

Open
0xDELUXA wants to merge 1 commit into
Comfy-Org:mainfrom
0xDELUXA:eager-int8-rdna-dequant
Open

eager: dequantize INT8 weights instead of torch._int_mm on AMD RDNA / CPU#56
0xDELUXA wants to merge 1 commit into
Comfy-Org:mainfrom
0xDELUXA:eager-int8-rdna-dequant

Conversation

@0xDELUXA

@0xDELUXA 0xDELUXA commented Jun 26, 2026

Copy link
Copy Markdown

On AMD RDNA GPUs (and CPU), eager int8_linear relies on torch._int_mm, which has no fast hipBLASLt INT8 path there - a performance cliff on RDNA3/4, and a hard failure on RDNA2 and other archs that have no int8 GEMM backend at all.

This adds a device-aware branch: when a fast int8 GEMM isn't available, dequantize the INT8 weight to the compute dtype and run a normal F.linear (a bf16/fp16 GEMM, which rocBLAS supports broadly). NVIDIA and AMD CDNA keep the _int_mm path. Weights remain stored as INT8 (VRAM saving preserved) and activations stay full precision.

Benchmarked on an RX 9060 XT (gfx1200, ROCm 7.14, bf16) across DiT linear shapes - _int_mm lost every case; dequantize+bf16 was 2-9x faster.
End-to-end on the Krea2 INT8 model: the old _int_mm path (COMFY_KITCHEN_INT8_EAGER=int_mm) gives ~17 s/it, while the new automatic dequant path (no env var) gives ~5 s/it.
Selection is automatic by arch, with COMFY_KITCHEN_INT8_EAGER=auto|int_mm|dequant as an override.

Scope: Improves the eager backend on AMD RDNA3/4 and unblocks archs with no int8 GEMM (e.g., RDNA2).

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

No new commits to review since the last review.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 2a0997a4-76c8-4f74-968d-82ac5f24c2a9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The eager quantization path now selects INT8 matmul at runtime using environment and device checks. When disabled, int8_linear uses a float linear fallback instead. Tiny switch, less quack than track.

Changes

Runtime INT8 path selection

Layer / File(s) Summary
INT8 path selector
comfy_kitchen/backends/eager/quantization.py
Imports functools and os, defines _CDNA_ARCHS, and adds _use_int8_mm(device_type, device_index) with the environment override and CUDA/HIP architecture checks.
Linear fallback branch
comfy_kitchen/backends/eager/quantization.py
int8_linear returns torch.nn.functional.linear with float-cast inputs and scaled weights when _use_int8_mm(...) is false, while preserving the existing INT8 path below.

Possibly related PRs

  • Comfy-Org/comfy-kitchen#57: Also changes comfy_kitchen/backends/eager/quantization.py and the INT8 path selection logic around int8_linear.
🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
✨ Simplify code
  • Create PR with simplified code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

✅ All contributors have signed the CLA. Thank you! This PR is ready to be merged.
Posted by the CLA Assistant Lite bot.

@0xDELUXA

Copy link
Copy Markdown
Author

I have read and agree to the Contributor License Agreement

comfy-legal added a commit to Comfy-Org/comfy-cla that referenced this pull request Jun 26, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@comfy_kitchen/backends/eager/quantization.py`:
- Around line 845-857: The _use_int8_mm decision is currently cached only by
device type and reads the current CUDA device, so it can return the wrong result
on multi-GPU/ROCm setups. Update the call path around _use_int8_mm so the cache
key includes the tensor’s CUDA device index (not just x.device.type), and use
that index when querying device properties instead of
torch.cuda.current_device(). Keep the existing mode checks and fallback behavior
intact while making the lookup specific to the actual device.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5801200e-940a-47fe-a0a2-24550ec2aa0f

📥 Commits

Reviewing files that changed from the base of the PR and between 4224ca0 and ea6e913.

📒 Files selected for processing (1)
  • comfy_kitchen/backends/eager/quantization.py

Comment thread comfy_kitchen/backends/eager/quantization.py Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
comfy_kitchen/backends/eager/quantization.py (1)

846-860: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Cache the hardware probe, not the env override.

Because _use_int8_mm is cached, line 847’s COMFY_KITCHEN_INT8_EAGER read can stay stale after the first call in long-lived tests/notebooks. Keep env parsing uncached and cache only the auto hardware detection.

♻️ Proposed fix
-@functools.lru_cache(maxsize=None)
 def _use_int8_mm(device_type: str, device_index: int) -> bool:
     mode = os.environ.get("COMFY_KITCHEN_INT8_EAGER", "auto").lower()
     if mode == "int_mm":
         return True
     if mode == "dequant":
         return False
+    return _use_int8_mm_auto(device_type, device_index)
+
+
+@functools.lru_cache(maxsize=None)
+def _use_int8_mm_auto(device_type: str, device_index: int) -> bool:
     if device_type != "cuda" or not torch.cuda.is_available():
         return False
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@comfy_kitchen/backends/eager/quantization.py` around lines 846 - 860, _update
_use_int8_mm so COMFY_KITCHEN_INT8_EAGER is read and applied on every call,
while only the hardware-probe branch is cached; move the lru/cache boundary to
the CUDA/HIP detection logic inside _use_int8_mm (or a helper it calls) so env
overrides like int_mm and dequant are never stale in long-lived sessions._
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@comfy_kitchen/backends/eager/quantization.py`:
- Around line 846-860: _update _use_int8_mm so COMFY_KITCHEN_INT8_EAGER is read
and applied on every call, while only the hardware-probe branch is cached; move
the lru/cache boundary to the CUDA/HIP detection logic inside _use_int8_mm (or a
helper it calls) so env overrides like int_mm and dequant are never stale in
long-lived sessions._

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: e27cfb7d-5acc-4a35-a4ee-f23bf68a3163

📥 Commits

Reviewing files that changed from the base of the PR and between ea6e913 and f744a9c.

📒 Files selected for processing (1)
  • comfy_kitchen/backends/eager/quantization.py

@0xDELUXA

Copy link
Copy Markdown
Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
comfy_kitchen/backends/eager/quantization.py (1)

897-905: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Preserve ConvRot before the dequant hop — or results may flop.

The new early F.linear fallback appears to bypass the activation rotation used by quantize_and_rotate_rowwise, while convrot is still forwarded into this op. For convrot=True on CPU/RDNA, rotate x before the dequantized linear path or gate this fallback until the ConvRot-equivalent path is applied.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@comfy_kitchen/backends/eager/quantization.py` around lines 897 - 905, The
early fallback in the `quantization.py` linear path bypasses the activation
rotation, so `convrot=True` can produce incorrect results on the dequantized
`F.linear` branch. Update the fallback around the `torch.nn.functional.linear`
call to apply the same rotation handling used by `quantize_and_rotate_rowwise`
before dequantizing, or otherwise prevent this branch from running when
`convrot` is enabled until the ConvRot-equivalent path is preserved.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@comfy_kitchen/backends/eager/quantization.py`:
- Around line 897-905: The early fallback in the `quantization.py` linear path
bypasses the activation rotation, so `convrot=True` can produce incorrect
results on the dequantized `F.linear` branch. Update the fallback around the
`torch.nn.functional.linear` call to apply the same rotation handling used by
`quantize_and_rotate_rowwise` before dequantizing, or otherwise prevent this
branch from running when `convrot` is enabled until the ConvRot-equivalent path
is preserved.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 1546ff0a-b444-4e0a-ac41-db9175152222

📥 Commits

Reviewing files that changed from the base of the PR and between f744a9c and 29dafa0.

📒 Files selected for processing (1)
  • comfy_kitchen/backends/eager/quantization.py

@0xDELUXA 0xDELUXA force-pushed the eager-int8-rdna-dequant branch from 29dafa0 to cceb93f Compare June 27, 2026 18:51

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@comfy_kitchen/backends/eager/quantization.py`:
- Around line 931-935: The ConvRot validation in quantization.py should reject a
zero `convrot_groupsize` before using it in the modulus check. Update the
`convrot` guard around the existing `ValueError` path so `convrot_groupsize ==
0` raises a clear `ValueError` instead of triggering `ZeroDivisionError`,
keeping the check alongside the current feature-divisibility validation in the
same block.
- Around line 870-876: The _use_int8_mm helper currently treats any unknown
COMFY_KITCHEN_INT8_EAGER value as auto, which hides configuration mistakes.
Update _use_int8_mm to validate the env var before falling back, explicitly
handling only the supported modes (int_mm, dequant, auto) and raising an error
for any other value. Keep the behavior centered in _use_int8_mm and its
_use_int8_mm_auto fallback so invalid overrides are rejected instead of silently
accepted.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c330eaf5-9a6d-4924-8c9a-61e1ad062c66

📥 Commits

Reviewing files that changed from the base of the PR and between 29dafa0 and cceb93f.

📒 Files selected for processing (1)
  • comfy_kitchen/backends/eager/quantization.py

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@comfy_kitchen/backends/eager/quantization.py`:
- Around line 931-935: The ConvRot validation in quantization.py should reject a
zero `convrot_groupsize` before using it in the modulus check. Update the
`convrot` guard around the existing `ValueError` path so `convrot_groupsize ==
0` raises a clear `ValueError` instead of triggering `ZeroDivisionError`,
keeping the check alongside the current feature-divisibility validation in the
same block.
- Around line 870-876: The _use_int8_mm helper currently treats any unknown
COMFY_KITCHEN_INT8_EAGER value as auto, which hides configuration mistakes.
Update _use_int8_mm to validate the env var before falling back, explicitly
handling only the supported modes (int_mm, dequant, auto) and raising an error
for any other value. Keep the behavior centered in _use_int8_mm and its
_use_int8_mm_auto fallback so invalid overrides are rejected instead of silently
accepted.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c330eaf5-9a6d-4924-8c9a-61e1ad062c66

📥 Commits

Reviewing files that changed from the base of the PR and between 29dafa0 and cceb93f.

📒 Files selected for processing (1)
  • comfy_kitchen/backends/eager/quantization.py
🛑 Comments failed to post (2)
comfy_kitchen/backends/eager/quantization.py (2)

870-876: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Reject invalid INT8 override values instead of silently using auto.

Line 871 treats any unknown COMFY_KITCHEN_INT8_EAGER value as auto, so a typo can summon the wrong matmul goblin.

Proposed fix
 def _use_int8_mm(device_type: str, device_index: int) -> bool:
-    mode = os.environ.get("COMFY_KITCHEN_INT8_EAGER", "auto").lower()
+    mode = os.environ.get("COMFY_KITCHEN_INT8_EAGER", "auto").strip().lower()
     if mode == "int_mm":
         return True
     if mode == "dequant":
         return False
-    return _use_int8_mm_auto(device_type, device_index)
+    if mode == "auto":
+        return _use_int8_mm_auto(device_type, device_index)
+    raise ValueError("COMFY_KITCHEN_INT8_EAGER must be one of: auto, int_mm, dequant")
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

def _use_int8_mm(device_type: str, device_index: int) -> bool:
    mode = os.environ.get("COMFY_KITCHEN_INT8_EAGER", "auto").strip().lower()
    if mode == "int_mm":
        return True
    if mode == "dequant":
        return False
    if mode == "auto":
        return _use_int8_mm_auto(device_type, device_index)
    raise ValueError("COMFY_KITCHEN_INT8_EAGER must be one of: auto, int_mm, dequant")
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@comfy_kitchen/backends/eager/quantization.py` around lines 870 - 876, The
_use_int8_mm helper currently treats any unknown COMFY_KITCHEN_INT8_EAGER value
as auto, which hides configuration mistakes. Update _use_int8_mm to validate the
env var before falling back, explicitly handling only the supported modes
(int_mm, dequant, auto) and raising an error for any other value. Keep the
behavior centered in _use_int8_mm and its _use_int8_mm_auto fallback so invalid
overrides are rejected instead of silently accepted.

931-935: 🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

Guard convrot_groupsize before using it as a divisor.

Line 932 can raise ZeroDivisionError when convrot_groupsize is 0; return a clear ValueError instead.

Proposed fix
     if convrot:
+        if convrot_groupsize <= 0:
+            raise ValueError(f"ConvRot group size must be positive, got {convrot_groupsize}")
         if x.shape[-1] % convrot_groupsize != 0:
             raise ValueError(
                 f"ConvRot group size {convrot_groupsize} does not divide input features {x.shape[-1]}"
             )
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

    if convrot:
        if convrot_groupsize <= 0:
            raise ValueError(f"ConvRot group size must be positive, got {convrot_groupsize}")
        if x.shape[-1] % convrot_groupsize != 0:
            raise ValueError(
                f"ConvRot group size {convrot_groupsize} does not divide input features {x.shape[-1]}"
            )
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@comfy_kitchen/backends/eager/quantization.py` around lines 931 - 935, The
ConvRot validation in quantization.py should reject a zero `convrot_groupsize`
before using it in the modulus check. Update the `convrot` guard around the
existing `ValueError` path so `convrot_groupsize == 0` raises a clear
`ValueError` instead of triggering `ZeroDivisionError`, keeping the check
alongside the current feature-divisibility validation in the same block.

@0xDELUXA 0xDELUXA force-pushed the eager-int8-rdna-dequant branch from cceb93f to 77a8854 Compare June 27, 2026 19:02
@0xDELUXA

0xDELUXA commented Jun 27, 2026

Copy link
Copy Markdown
Author

The convrot_groupsize divisibility block is pre-existing code from #57, not part of this PR - my change only adds the dequant fallback below it. A zero-groupsize guard would be a reasonable separate fix to that block, but it's out of scope here. Leaving it for a dedicated change so this PR stays limited to the RDNA/CPU path.

@coderabbitai resolve

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@comfy_kitchen/backends/eager/quantization.py`:
- Around line 941-948: The dequant fallback in the linear path is downcasting
`weight_scale` too early, which reduces accuracy for bf16 outputs. Update the
fallback inside `quantization.py` so the scale multiply happens in float32,
matching the `_int_mm` path’s `chunk.float() * chunk_scales` behavior, and only
cast the final product to `out_dtype` just before calling
`torch.nn.functional.linear`. Keep the existing `out_dtype`, `weight_scale`, and
`weight` flow intact, but move the precision-sensitive conversion to the end of
the computation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: b9a69d60-cc0f-44b4-8102-050d5c65597d

📥 Commits

Reviewing files that changed from the base of the PR and between cceb93f and 77a8854.

📒 Files selected for processing (1)
  • comfy_kitchen/backends/eager/quantization.py

Comment thread comfy_kitchen/backends/eager/quantization.py
@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown
✅ Action performed

Comments resolved. Approval is disabled; enable reviews.request_changes_workflow to allow explicit top-level @coderabbitai resolve or @coderabbitai approve commands.

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown

@0xDELUXA Understood — that makes sense. Since the convrot_groupsize divisibility block is pre-existing and outside the scope of PR #56, I’m withdrawing that concern and resolving my review comments. A separate fix for the zero-groupsize guard sounds sensible; tidy scope, tidy rope. If you want, I can also help draft a follow-up issue for it.


✏️ Learnings added
Learnt from: 0xDELUXA
URL: https://github.com/Comfy-Org/comfy-kitchen/pull/56

Timestamp: 2026-06-27T19:05:40.774Z
Learning: In `comfy_kitchen/backends/eager/quantization.py`, the `convrot_groupsize` divisibility block discussed during review of PR `#56` is pre-existing from PR `#57`; PR `#56` only adds the dequant fallback below that block, so zero-groupsize validation there is a separate follow-up concern rather than part of this PR's scope.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

✅ Action performed

Comments resolved. Approval is disabled; enable reviews.request_changes_workflow to allow explicit top-level @coderabbitai resolve or @coderabbitai approve commands.

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown

@0xDELUXA Thanks for the clarification — that makes sense. Since the convrot_groupsize block is pre-existing and your change here is limited to the dequant fallback for the RDNA/CPU path, I’m happy to keep this PR scope tidy and resolve the comment. A separate fix can hop along later.

✅ Action performed

Comments resolved. Approval is disabled; enable reviews.request_changes_workflow to allow explicit top-level @coderabbitai resolve or @coderabbitai approve commands.

@0xDELUXA 0xDELUXA force-pushed the eager-int8-rdna-dequant branch from 77a8854 to d1dbc71 Compare June 27, 2026 19:09
@0xDELUXA

0xDELUXA commented Jun 27, 2026

Copy link
Copy Markdown
Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown
✅ Action performed

Reviews resumed.

@0xDELUXA

0xDELUXA commented Jun 27, 2026

Copy link
Copy Markdown
Author

@rattus128 I hope you don't mind the ping, but based on my experience, you are one of the people from the ComfyUI team open to AMD support.
This PR brings a significant performance increase to the eager backend on AMD and unblocks RDNA2.
The Triton backend also has some issues, starting with #54, which likely won't be merged unless someone from the core team thinks it would be useful to have in the code.
While I don't expect a dedicated ROCm backend (#33) to be implemented, it would be really great to have the other two backends working as best as they can on AMD.
Could I get your opinion on this?
Thanks!

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@0xDELUXA 0xDELUXA force-pushed the eager-int8-rdna-dequant branch from d1dbc71 to 9f60e02 Compare June 30, 2026 10:15
@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown
Action performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants