[AMDGPU] Perf: set force-vector-interleave=8 in JIT pipeline#772
[AMDGPU] Perf: set force-vector-interleave=8 in JIT pipeline#772paveltc wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2cb26b9824
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Co-authored-by: Cursor <cursoragent@cursor.com>
2cb26b9 to
5848ae4
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5848ae4e0d
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| struct AMDGPUSetLoopInterleavePass | ||
| : public llvm::PassInfoMixin<AMDGPUSetLoopInterleavePass> { |
There was a problem hiding this comment.
Keep AMDGPU-only pass out of common header
AGENTS.md requires minimizing contact area for new/experimental features; this AMDGPU-specific pass is defined in the shared llvm_context_pass.h outside the AMDGPU guard, so every CPU/CUDA LLVM include site now compiles and depends on the new LoopInfo/LoopPassManager code even though only jit_amdgpu.cpp registers it. Please keep the pass private to the AMDGPU JIT file, or at least under QD_WITH_AMDGPU, to avoid expanding the common LLVM surface area for this backend knob.
Useful? React with 👍 / 👎.
Summary
Set
-force-vector-interleave=8viallvm::cl::ParseCommandLineOptionsincompile_module_to_hsacoon first use (guarded bystd::call_once).Vector interleaving allows the LLVM backend to unroll and software-pipeline
loops, keeping more functional units busy across the wider CDNA wavefronts.
The value 8 matches the recommended setting for MI200/MI300 series cards.
No correctness change. Verified with a full
not slowtest suite run onAMD MI300X with
QD_AMDGPU_FORCE_PERMLANE64_FALLBACK=1:4166 passed, 0 AMD-related failures (1 pre-existing flaky x64 timing
test unrelated to this change).
Ported from ROCm#8.