ROCm / omnitrace

Omnitrace: Application Profiling, Tracing, and Analysis
https://rocm.docs.amd.com/projects/omnitrace/en/latest/
MIT License
297 stars 27 forks source link

ROCm 6.0 #321

Closed romintomasetti closed 9 months ago

romintomasetti commented 10 months ago

Hi there!

Thanks for Omnitrace, it's a really nice tool.

Any plan for supporting ROcm 6.0 ? Is it as simple as adding it to your cpack action matrix or do we need more?

Thanks!

(@maartenarnst will be interested)

jrmadsen commented 9 months ago

Yes it is usually as easy as adding ROCm 6.0 to the cpack matrix + sometimes some tweaks to the docker scripts if the naming convention of the URLs changed. But I probably won’t be able to do this until after the holidays

maartenarnst commented 9 months ago

Hi @jrmadsen.

Just wanted to follow up on this issue and ask if you should already have had a chance to look at the 6.0 update?

On our side, we have tried to compile omnitrace with room 6.0 along the lines of what you do in your ci. We used ubuntu 22.04.

We ran into two difficulties.

The first difficulty concerns

It seems the property gcnArch is no longer defined in ROCm 6.0. On our side, as a workaround, we commented out the line.

The second difficulty is that we get a bunch of errors like

In file included from /opt/rocm-6.0.0/include/hip/hip_runtime_api.h:8642,
                 from /opt/rocm-6.0.0/include/hip/hip_runtime.h:70,
                 from /opt/rocm-6.0.0/include/roctracer/roctracer_hip.h:26,
                 from /home/omnitrace-source/Develop/HELM/omnitrace-source/source/lib/omnitrace/library/roctracer.cpp:50:
/opt/rocm-6.0.0/include/hip/amd_detail/hip_prof_str.h: In function â const char* hipApiString(hip_api_id_t, const hip_api_data_t*)â :
/opt/rocm-6.0.0/include/hip/amd_detail/hip_prof_str.h:7171:33: error: â roctracerâ ahas not been declared
 7171 |       else { oss << "gridDim="; roctracer::hip_support::detail::operator<<(oss, data->args.__hipPopCallConfiguration.gridDim__val); }

It seems it's related to when hip_ostream_ops.h gets included. But I'm not sure what changed going from 5.7 to 6.0. As a workaround, I added #include "hip_ostream_ops.h" before #include <hip/amd_detail/hip_prof_str.h> at the end of the file hip_runtime_api.h. I guess that's for sure not a good workaround.

With these two works, we do get to the .sh file.

jrmadsen commented 9 months ago

Hi @maartenarnst, I wasn’t aware of the first issue but I was aware of the second and fixed it in https://github.com/AMDResearch/omnitrace/pull/317. Unfortunately, right now the CI is failing because of some issues with the machines running the CI having issues with our MPI tests. @benrichard-amd is working on fixing that now. Once he’s completed this, we will be able to proceed. Having a new release with ROCm 6.0 seems feasible by the middle of next week.

maartenarnst commented 9 months ago

OK, thanks for the update. Looking forward to it :)