From a89127cb8501b1a90aa435a2e363c5e446c829eb Mon Sep 17 00:00:00 2001 From: Kevin Joseph Date: Mon, 27 Apr 2026 17:23:00 +1200 Subject: [PATCH] Add amdgpu-waves-per-eu fn_attrs to 4 hot rigid/constraint kernels. Depends on ROCm/quadrants#11 (per-kernel fn_attrs support). Values picked from a per-kernel sweep of (min,max) occupancy hints: kernel_step_1: 3,4 kernel_step_2: 1,4 func_solve_init: 2,4 --- genesis/engine/solvers/rigid/constraint/solver.py | 2 +- genesis/engine/solvers/rigid/rigid_solver.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/genesis/engine/solvers/rigid/constraint/solver.py b/genesis/engine/solvers/rigid/constraint/solver.py index 21cf8f643..31219d212 100644 --- a/genesis/engine/solvers/rigid/constraint/solver.py +++ b/genesis/engine/solvers/rigid/constraint/solver.py @@ -3407,7 +3407,7 @@ def initialize_Ma( # ======================================================= Core ======================================================== -@qd.kernel(fastcache=gs.use_fastcache) +@qd.kernel(fastcache=gs.use_fastcache, fn_attrs={"amdgpu": {"amdgpu-waves-per-eu": "2,4"}}) def func_solve_init( dofs_info: array_class.DofsInfo, dofs_state: array_class.DofsState, diff --git a/genesis/engine/solvers/rigid/rigid_solver.py b/genesis/engine/solvers/rigid/rigid_solver.py index 5d3a65bc1..7f4939d48 100644 --- a/genesis/engine/solvers/rigid/rigid_solver.py +++ b/genesis/engine/solvers/rigid/rigid_solver.py @@ -2636,7 +2636,7 @@ def equalities(self): return gs.List(equality for entity in self._entities for equality in entity.equalities) -@qd.kernel(fastcache=gs.use_fastcache) +@qd.kernel(fastcache=gs.use_fastcache, fn_attrs={"amdgpu": {"amdgpu-waves-per-eu": "3,4"}}) def kernel_step_1( links_state: array_class.LinksState, links_info: array_class.LinksInfo, @@ -2700,7 +2700,7 @@ def kernel_step_1( ) -@qd.kernel(fastcache=gs.use_fastcache) +@qd.kernel(fastcache=gs.use_fastcache, fn_attrs={"amdgpu": {"amdgpu-waves-per-eu": "1,4"}}) def kernel_step_2( dofs_state: array_class.DofsState, dofs_info: array_class.DofsInfo, @@ -2809,4 +2809,3 @@ def kernel_step_2( static_rigid_sim_config=static_rigid_sim_config, is_backward=is_backward, ) - \ No newline at end of file