Tool for reading CSV files?
I used rocprofv2 to generate a CSV file with information about the kernels. However, navigating this CSV file with default spreadsheet software is kind of tedious. Is this the intended use? Is there another tool that is intended to be used here? In either case, I think this should be clarified in the README.
We've experimented with the Pandas Python package, which may be useful to explore output from rocprofiler.
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
Note that it is also used in e.g. the Hatchet package that has readers for outputs from other ROCm tools such as omnitrace.
@JohannesGaessler Were you able to resolve your issue? If not, let us know and we will look into other options to assist you. Thanks!
Context: I am one of the developers of llama.cpp (large language model inference) and I was trying to figure out why the AMD performance of some CUDA code ported via HIP was bad. In the end I decided to just not enable the code for AMD at all because supporting it was too much work. I still do not know how to profile my code for AMD GPUs.
Hi @JohannesGaessler, Internal ticket has been created to assist with your issue. Thanks!
Hi @JohannesGaessler, there are various tools available to explore the csv output, but it sounds like csv output does not fit your workflow. rocprofiler supports various output formats through a plugin system; for example, --plugin perfetto generates output which can be visualized in the Perfetto UI. You can find the documentation in the README as well as here. There are several built-in plugins corresponding to common profiling workflows, and rocprofiler also supports custom plugins if none of the built-ins are compatible with your visualization tool of choice. Let me know if this is insufficient for your needs.
@JohannesGaessler use the new rocprofv3 released in ROCm 6.2 with LLAMA. rocprofv1 and rocprofv2 were built on our tooling libraries which were not robust nor well tested, we’ve rectified that with the new rocprofv3 built on top of the new rocprofiler-sdk tooling library.
Thanks, I'll keep the recommendations in mind when I revisit the code.
I'm closing this for now, feel free to reopen it or open a new issue when you revisit your code if the advice given does not suit your needs.