Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for OpenCL/HIP profiling on Linux #84

Open
Epliz opened this issue Apr 9, 2023 · 4 comments
Open

Support for OpenCL/HIP profiling on Linux #84

Epliz opened this issue Apr 9, 2023 · 4 comments

Comments

@Epliz
Copy link

Epliz commented Apr 9, 2023

Hi,

The profiling capabilities are quite frankly great on Windows, with the instruction tracing being very very useful.

Would it be possible for you to consider adding similar functionality on Linux for OpenCL/HIP?

Best regards,
Epliz

@Epliz
Copy link
Author

Epliz commented Apr 29, 2023

Hi @chesik-amd ,
Could you please ACK that issue even if not promising anything about fixing it?

@chesik-amd
Copy link
Contributor

chesik-amd commented May 1, 2023

On Linux, OpenCL and HIP are built on top of the ROCm driver stack (as opposed to the PAL driver stack on Windows). The ROCm stack does not have the support needed for RGP. The ROCm team provides alternate GPU profiling tools that work with that driver stack.

@Epliz
Copy link
Author

Epliz commented May 2, 2023

Thanks @chesik-amd for the reply.
I understand the current situation, but I hope this is not the forever situation as the ROCm profiling tools are far far behind what you have with RGP.
I hope the rocm stack gets the sufficient support to at least be able to record a trace that can be loaded in RGP afterwards.

@Snektron
Copy link

Snektron commented Dec 8, 2023

There is no reason that this support cannot be added, though. In fact, it is not too complex to capture the rgp trace via a HSA PM4 packet, which is already done by rocprof. I partially reverse-engineered this last year and created a proof-of-concept here: https://github.com/Snektron/goniometer. It is able to capture the instruction trace during a HIP workload on Linux using ROCm, though it is a little janky because I didnt mamage to get all packets right. There is also support missing for the other RGP functionally like markers. With the right expertise and access to documentation it should be more than possible to implement this, or is there something else that blocks it, @chesik-amd?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants