Skip to content

refactor(hipblaslt): convert gfx950 D library logic to dict format - #10383

Open
dsaffars wants to merge 1 commit into
users/dsaffars/Lib_conv_gfx950_I8from
users/dsaffars/Lib_conv_gfx950_D
Open

refactor(hipblaslt): convert gfx950 D library logic to dict format#10383
dsaffars wants to merge 1 commit into
users/dsaffars/Lib_conv_gfx950_I8from
users/dsaffars/Lib_conv_gfx950_D

Conversation

@dsaffars

@dsaffars dsaffars commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

JIRA ID: AIHPBLAS-4216

Convert 16 gfx950 D library logic YAML files from list to dict format.

Motivation

TensileLite is migrating gfx950 library logic YAML from the legacy list format to the canonical dict format. The dict format uses explicit root keys (ArchitectureName, CUCount, ProblemType, Solutions, etc.) and is the format TensileCreateLibrary now emits by default.
The D datatype family continues the stacked gfx950 library logic conversion. Migrating these files improves maintainability, aligns shipped logic with the current serialization contract, and reduces YAML size without changing kernel selection behavior.

Technical Details

This PR converts 16 gfx950 D library logic YAML files under:
projects/hipblaslt/library/src/amd_detail/rocblaslt/src/Tensile/Logic/asm_full/gfx950/gfx950/GridBased/
projects/hipblaslt/library/src/amd_detail/rocblaslt/src/Tensile/Logic/asm_full/gfx950/gfx950/Origami/
projects/hipblaslt/library/src/amd_detail/rocblaslt/src/Tensile/Logic/asm_full/gfx950/gfx950/Origami/Origami_nta4/
projects/hipblaslt/library/src/amd_detail/rocblaslt/src/Tensile/Logic/asm_full/gfx950/gfx950/Origami/Origami_ntb4/
Format changes (no semantic changes intended):

  • Root metadata moves from positional list entries to named keys (MinimumRequiredVersion, ScheduleName, ArchitectureName, CUCount, DeviceNames, ProblemType, …).
  • ProblemType fields are nested under a ProblemType: mapping instead of inline list items.
  • Solution entries move from list-of-flow-mappings to a Solutions: dict keyed by solution name.
  • Boolean literals are normalized (True/Falsetrue/false).
    Scope summary:
Metric Before After
Files 16 16
Total lines 318,676 227,433

This PR is YAML-only; no runtime, generator, or test-code changes. It builds on users/dsaffars/Lib_conv_gfx950 in the stacked PR series.

Test Plan

For each of the 16 converted files, pre-conversion list-format YAML is compared against the new dict-format YAML using a script (same parser path as TensileCreateLibrary):

Test Result

For all 16/16 D files parsed solutions, problem types, and matching tables are semantically identical between list and dict formats.
File integrity: No files added or removed; only format conversion within the existing 16 D logic files (GridBased, Origami, Origami/Origami_nta4, Origami/Origami_ntb4).
Line count: Total YAML size reduced from 318,676 to 227,433 lines (~29% reduction) with no intended change to kernel selection behavior.

Convert 16 gfx950 D library logic YAML files from list
to dict format.

# Batch: D
# Per-file lines (before -> after):
  gfx950/GridBased/gfx950_Cijk_Ailk_Bjlk_DB_UserArgs.yaml: 436 -> 495
  gfx950/GridBased/gfx950_Cijk_Ailk_Bljk_DB_UserArgs.yaml: 436 -> 494
  gfx950/GridBased/gfx950_Cijk_Alik_Bjlk_DB_UserArgs.yaml: 436 -> 495
  gfx950/GridBased/gfx950_Cijk_Alik_Bljk_DB_UserArgs.yaml: 436 -> 493
  gfx950/Origami/Origami_nta4/gfx950_Cijk_Ailk_Bjlk_D_B_UserArgs.yaml: 26411 -> 18875
  gfx950/Origami/Origami_nta4/gfx950_Cijk_Ailk_Bljk_D_B_UserArgs.yaml: 26411 -> 18828
  gfx950/Origami/Origami_nta4/gfx950_Cijk_Alik_Bjlk_D_B_UserArgs.yaml: 26411 -> 18828
  gfx950/Origami/Origami_nta4/gfx950_Cijk_Alik_Bljk_D_B_UserArgs.yaml: 26411 -> 18777
  gfx950/Origami/Origami_ntb4/gfx950_Cijk_Ailk_Bjlk_D_B_UserArgs.yaml: 26411 -> 18875
  gfx950/Origami/Origami_ntb4/gfx950_Cijk_Ailk_Bljk_D_B_UserArgs.yaml: 26411 -> 18828
  gfx950/Origami/Origami_ntb4/gfx950_Cijk_Alik_Bjlk_D_B_UserArgs.yaml: 26411 -> 18828
  gfx950/Origami/Origami_ntb4/gfx950_Cijk_Alik_Bljk_D_B_UserArgs.yaml: 26411 -> 18777
  gfx950/Origami/gfx950_Cijk_Ailk_Bjlk_D_B_UserArgs.yaml: 26411 -> 18758
  gfx950/Origami/gfx950_Cijk_Ailk_Bljk_D_B_UserArgs.yaml: 26411 -> 18711
  gfx950/Origami/gfx950_Cijk_Alik_Bjlk_D_B_UserArgs.yaml: 26411 -> 18711
  gfx950/Origami/gfx950_Cijk_Alik_Bljk_D_B_UserArgs.yaml: 26411 -> 18660
Total: 318676 -> 227433 lines across 16 files.
@dsaffars
dsaffars requested a review from a team as a code owner August 5, 2026 08:26
@dsaffars
dsaffars requested a review from babakpst August 5, 2026 08:26
@therock-pr-bot

therock-pr-bot Bot commented Aug 5, 2026

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
📝 PR Description ✅ Pass
Forbidden Files ✅ Pass
🧪 Unit Test ✅ Pass PR does not contain code files — Unit Test auto-passed
🔎 pre-commit ✅ Pass
🚫 Draft PR 🔜 To Be Enabled
🚩 Feature Flag 🔜 To Be Enabled
📊 Code Coverage 🔜 To Be Enabled
🤖 therock-pr-bot ✅ Pass

🎉 All checks passed! This PR is ready for review.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@therock-pr-bot

therock-pr-bot Bot commented Aug 5, 2026

Copy link
Copy Markdown

🎉 All checks passed! This PR is ready for review.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant