ROCm: resolve malformed rocprofv3 argument export before trace attribution
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 423
- Forks
- 53
- Avg merge
- 20h 26m
- Merged PRs (30d)
- 310
Description
Row: BACKEND-ROCM
The #3041 matched-profiler prerequisite exposed a malformed export from the approved oracle image's rocprofv3 1.3.2. The native baseline compiled inside that unchanged image and passed its GPU backend suite both unprofiled and profiled: 11 cases, 1,065 assertions in each process. The profiler exited 0 and finalized its output files. This does not make every exported field valid evidence.
The 26,561,668-byte native-backend_results.json is not valid UTF-8. Decoding fails at byte 25,561,946 inside the kname value for hipModuleGetFunction, correlation ID 28989. The corresponding CSV records that API call. The raw JSON SHA256 is b8bc62a074369d37f6aefdeeddbc21fbe75ee55af0bfe3d176e872dab54744ac. No replacement decoding or rewritten artifact was used.
Reproduction bindings: native source c94509c87e35ae80b24419687d2a3106ec923f6d; library SHA256 1dd2deb5f861610088ad5d63c2ce77ca390cc7f39f3f33e0adf5360579ca30b3; test binary SHA256 f38f157ed230843d54fbd27b2e933c6f4279d66c85c5df6ea5d1a331787de9c8; image sha256:80aab4c182a1f3eeebe286173977e57fcaf10a049b41f475655b35d285de31dc. Build: GCC 13.4 and HIP Clang 22, gfx1100, Release, jobs 4. Run at 2026-09-08 00:08 UTC under the local GPU mutex with the existing image environment:
/opt/rocm/bin/rocprofv3 --sys-trace --output-config 1 --output-format json csv --output-directory <owned-output> --output-file native-backend -- <same-image-built-test_rocm_backend>
The UTF-8 CSV files parse and contain 24,049 HIP API records, including five graph launches, and 19 kernel-dispatch records. They establish a narrower trace surface. They do not repair or validate the malformed JSON argument field, establish its cause, or prove complete invocation operands. The fixture loads no model and makes no throughput or cross-engine parity claim.
#3041 owns resolving the export/argument-attribution prerequisite before relying on those values. Preserve the original malformed bytes, diagnose the exact exporter/argument lifetime, and select a reviewed capture route that supplies the required fields without altering the oracle or weakening acceptance. A cache file or kernel name alone cannot substitute for loaded-code/operand evidence. The #2773 causal-convolution investigation retains the same requirement for its own executing path. No SDK patch, runtime replacement, or decoding tolerance is implied by this issue.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with prerequisite issue #3041 and reproduce the supplied rocprofv3 command, preserving native-backend_results.json and comparing it with the UTF-8 CSV outputs. Trace the exporter and argument lifetime for the malformed kname field; done means a reviewed capture route supplies the required argument fields without altering the oracle or weakening acceptance.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend, tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100