Skip to content

Optimize multicontact kernel parallelization for MI300X#41

Open
nilapate wants to merge 2 commits intoamd-integrationfrom
nilapate/multicontact-kernel-opt
Open

Optimize multicontact kernel parallelization for MI300X#41
nilapate wants to merge 2 commits intoamd-integrationfrom
nilapate/multicontact-kernel-opt

Conversation

@nilapate
Copy link
Copy Markdown

@nilapate nilapate commented Apr 27, 2026

Optimize the multicontact narrowphase kernel by increasing the parallelization multiplier from 64 to 128.

Changes:

  • Modified genesis/engine/solvers/rigid/collider/collider.py (lines 218-230)
  • Added logic to use mult=128 for multicontact kernel on HIP devices

How Has This Been Tested?

Test Configuration:

  • Hardware: MI300X

@nilapate nilapate self-assigned this Apr 27, 2026
@nilapate nilapate force-pushed the nilapate/multicontact-kernel-opt branch 4 times, most recently from 1f18a3b to 1ec057e Compare April 27, 2026 14:55
Copy link
Copy Markdown
Collaborator

@yaoliu13 yaoliu13 left a comment

Choose a reason for hiding this comment

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

LGTM

Comment thread genesis/engine/solvers/rigid/collider/collider.py
Comment thread genesis/engine/solvers/rigid/collider/collider.py Outdated
@yaoliu13
Copy link
Copy Markdown
Collaborator

/run-ci

@rtmadduri rtmadduri self-requested a review April 28, 2026 14:39
@nilapate nilapate force-pushed the nilapate/multicontact-kernel-opt branch from 3e7df9b to c99cc64 Compare April 28, 2026 14:51
@rtmadduri
Copy link
Copy Markdown
Collaborator

Reviewed the changes - latest CI throughput - 785772.5

Copy link
Copy Markdown
Collaborator

@yaoliu13 yaoliu13 left a comment

Choose a reason for hiding this comment

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

This is no longer based on the latest amd-integration: nilapate/multicontact-kernel-opt...ROCm:Genesis:amd-integration

Please read Confluence page "Genesis PR Review Process"

…elization multiplier from 64 to 128

Changes:
- Modified genesis/engine/solvers/rigid/collider/collider.py (lines 218-230)
- Added logic to use mult=128 for multicontact kernel on HIP devices

Tested on MI300X hardware.
Testing showed mult=256 is the optimal sweet spot. Higher values (mult=384)
show diminishing returns.

Signed-off-by: Patel, Nilaykumar K <nilapate@amd.com>
@nilapate nilapate force-pushed the nilapate/multicontact-kernel-opt branch from c99cc64 to 65492b1 Compare April 29, 2026 07:23
@nilapate
Copy link
Copy Markdown
Author

This is no longer based on the latest amd-integration: nilapate/multicontact-kernel-opt...ROCm:Genesis:amd-integration

Please read Confluence page "Genesis PR Review Process"

Rebased on latest main

@yaoliu13
Copy link
Copy Markdown
Collaborator

/run-ci

1 similar comment
@deepsek
Copy link
Copy Markdown
Collaborator

deepsek commented Apr 29, 2026

/run-ci

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.

5 participants