Repository navigation
feat(rocke): grouped Conv2d forward in implicit-GEMM - #10064
Merged
Merged
Conversation
✅ All Checks Passed — Ready for Review
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds grouped (groups>1) forward Conv2d support to the implicit-GEMM convolution path in Rocke, extending descriptor construction, kernel indexing, epilogues, and dispatcher behavior so grouped and cardinality-grouped shapes are supported while preserving groups==1 byte identity.
Changes:
- Extend implicit-GEMM conv descriptors and kernel body/epilogues to handle per-group channel decoding and
blockIdx.zas the group index. - Update conv dispatcher validation/selection to accept grouped conv (C/K divisible by G), bf16, and to use a shared
(gn, gm, groups)launch grid; add gfx1250 WMMA candidate and tests. - Add GPU numeric correctness and dispatch+launch tests for grouped conv, including small per-group channel “hero” cases and bf16.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| dnn-providers/hip-kernel-provider/rocke/platform/tests/instances/test_grouped_conv_numeric.py | New on-GPU numeric correctness + dispatch/launch tests covering grouped forward conv. |
| dnn-providers/hip-kernel-provider/rocke/platform/tests/dispatch/dispatch_tests/conv/test_conv.py | Dispatcher unit tests updated for bf16, grouped conv selection, and gfx1250 WMMA behavior. |
| dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/instances/common/conv_implicit_gemm.py | Core grouped-conv enablement: grid shape, A/B descriptor changes, group-aware indexing and epilogues, WMMA allow-list update. |
| dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/dispatch/families/conv.py | Dispatcher now builds dtype spec, validates grouped constraints, relaxes divisibility gates for grouped, and adds gfx1250 WMMA candidate + grouped grid. |
aledudek
force-pushed
the
users/aledudek/rocke-grouped-conv
branch
from
July 28, 2026 18:31
9e9c044 to
dfa8cb1
Compare
|
🎉 All checks passed! This PR is ready for review. |
aledudek
force-pushed
the
users/aledudek/rocke-grouped-conv
branch
from
July 28, 2026 19:25
dfa8cb1 to
98354af
Compare
Add cardinality-grouped (groups>1) forward convolution coverage to the implicit-GEMM conv, including small per-group channel counts. - grid-per-group scheme (group on blockIdx.z); groups==1 stays byte-identical - make_a_descriptor: grouped channel decode (unmerge k->y,x,c_in_group over cpg, then embed((group,c_in_group)->c)) - make_b_descriptor: channel extent C->cpg - build body + epilogues: thread group index into A (group coord) and fold into B/D as k_out = g*kpg + n - implicit_gemm_conv_grid() -> (gn, gm, groups); group-consistency in validate() - dispatch: drop the groups==1 gate (validate C/K % G), add bf16, grid z=groups, relax no-pad divisibility to M-only for grouped (N/K are tail-safe) test_grouped_conv_numeric.py, dispatch_tests/conv/test_conv.py Passed. groups==1 byte-identity gate GREEN. - [x] Look over the contributing guidelines at https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests. JIRA ID: AICK-1752
aledudek
force-pushed
the
users/aledudek/rocke-grouped-conv
branch
from
July 29, 2026 11:43
98354af to
4d4210e
Compare
aledudek
marked this pull request as ready for review
July 29, 2026 12:04
yraparti
reviewed
Aug 6, 2026
bartekxk
reviewed
Aug 10, 2026
…ledudek/rocke-grouped-conv
bartekxk
approved these changes
Aug 11, 2026
bartekxk
enabled auto-merge (squash)
August 11, 2026 10:39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Add cardinality-grouped (groups>1) forward convolution coverage to the implicit-GEMM conv, including small per-group channel counts.
Technical Details
Test Plan
test_grouped_conv_numeric.py, dispatch_tests/conv/test_conv.py
Passed. groups==1 byte-identity gate GREEN.
Submission Checklist
JIRA ID: AICK-1752
Changes are behind the feature flag HIPKERNELPROVIDER_ENABLE_ROCKE which is defaulted to OFF.