Closed fluidnumerics-joe closed 2 years ago
OpenMP profiling is not supported at this moment
@kikimych - This is quite unfortunate. ROCm 4.3.x was the last release series that I noticed was able to create hotspot and trace profiles of OpenMP accelerated applications. Since AOMP with OpenMP 5.0 support is part of ROCm, the perception was that OpenMP profiling would be supported in the ROCm ecosystem. What would it take to have OpenMP profiling supported ?
I can confirm that this issue is resolved with ROCm 5.0.0 and greater. To create trace profiles for OpenMP accelerated code, the --hsa-trace
flag creates a chrome trace compatible json trace file.
rocprof --hsa-trace --stats ./smoother 1000 1000 100
rocprof
(with ROCm 4.5.0) throws a segmentation fault error when using the--stats
,--hsa-trace
, or--sys-trace
flags on binaries created byamdclang
andamdflang
with OpenMP GPU offloading enabled. This prevents us from creating hotspot and trace profiles for applications via rocprof. This error was not seen in earlier versions of ROCm (tested the same code under ROCm 4.3.0 without issue).This is similar to https://github.com/ROCm-Developer-Tools/rocprofiler/issues/49, but we find quite a few more symbols missing in the llvm libraries than what is reported in https://github.com/ROCm-Developer-Tools/rocprofiler/issues/49.
When running a fairly simple application under
rocprof
withLD_DEBUG=libs
, I see the following errors when using ROCm 4.5.0 :I'm curious to know if there is automated testing done on
rocprofiler
to help catch these kinds of issues before tagging and releasing new versions. I find that from version to version, various components of ROCm break, which makes the upgrade process a bit unpredictable from an integrator's and user's perspective.