TransferBench v1.69.01 - #347
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates TransferBench to build against both pre-27 and 27+ amd-smi fabric payload layouts (ROCm 10.0+), and also expands executor/preset functionality by adding a new TDM-based GPU executor and related CLI/env-var support.
Changes:
- Add compile-time dispatch for AMD-SMI fabric v1 accessor to handle nested vs flattened payload declarations.
- Introduce a new GPU TDM executor path (plus a new
tdmsweeppreset) and wire it through transfer validation, topology, and CLI output. - Add new sweep-bounds environment variables and update build tooling (Makefile C++17 + HIPCC probing) and changelog/versioning.
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| src/header/TransferBench.hpp | Core: AMD-SMI fabric accessor dispatch; new EXE_GPU_TDM executor + options; timing/config changes; various executor-path adjustments |
| src/header/tdmCopy.h | New device-side TDM copy helper (AMD gfx1250 + NVIDIA sm_90+ backend selection) |
| src/client/Utilities.hpp | Add TDM executor string mapping; flush stdout after printing |
| src/client/Presets/TdmSweep.hpp | New tdmsweep preset to sweep TDM executor parameters |
| src/client/Presets/Rings.hpp | Allow selecting TDM executor via env var and update output labels |
| src/client/Presets/Presets.hpp | Register new tdmsweep preset |
| src/client/Presets/PodPeerToPeer.hpp | Add optional TDM executor selection for pod p2p preset |
| src/client/Presets/PodAllToAll.hpp | Add optional TDM executor selection for pod all-to-all preset |
| src/client/Presets/PeerToPeer.hpp | Add optional TDM executor selection for p2p preset |
| src/client/Presets/Help.hpp | Update help text for 6th executor (TDM) and executor-letter list |
| src/client/Presets/GfxSweep.hpp | Minor env-var display ordering tweak |
| src/client/Presets/AllToAll.hpp | Add optional TDM executor selection for all-to-all preset |
| src/client/EnvVars.hpp | Add SWEEP_{MIN,MAX}POW2 and TDM* env vars; wire into ConfigOptions |
| src/client/Client.cpp | Use sweep exponent env vars to define autogenerated size sweep bounds |
| Makefile | Improve HIPCC discovery for pip ROCm layouts; compile with C++17 |
| CMakeLists.txt | Make AMD-SMI fabric probe layout-independent |
| CHANGELOG.md | Add v1.70.00 entry describing new sweep bounds + TDM executor support |
Suppressed comments (1)
src/client/EnvVars.hpp:408
- TDM_BLOCK_ORDER help text omits the supported random ordering (2). Update it so users know all valid values.
printf(" TDM_BLOCK_ORDER - How blocks for TDM transfers are ordered. 0=sequential, 1=interleaved\n");
printf(" TDM_BLOCK_SIZE - # of threads per threadblock for TDM (async tensor) kernels (Must be multiple of 32)\n");
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
4b08625 to
a058012
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
Suppressed comments (1)
CHANGELOG.md:8
- Typo in changelog entry: "intorduced" should be "introduced".
- Added support for ABI change intorduced in amd-smi 27.0.0 (ROCm 10.0)
gilbertlee-amd
left a comment
There was a problem hiding this comment.
TransferBench/src/client/EnvVars.hpp
Line 47 in 16d25a6
a058012 to
ff3feb8
Compare
Preserve source compatibility with both nested pre-27 amd-smi and flattened 27+ amd-smi fabric payload declarations. Co-authored-by: Cursor <cursoragent@cursor.com>
2c5a086 to
7d49057
Compare
Motivation
Emergency push to support amd-smi 27 fabric layout.
amd-smi 27.0.0 flattens the fabric v1 payload while preserving its binary layout. Select the payload accessor from the header shape so pod discovery builds with both nested pre-27 and flattened 27+ declarations.
Technical Details
Test Plan
Test Result
Submission Checklist