当使用dtk-21.04等版本,使用 hipcc --offload-arch=gfx906 -O2 -fopenmp main.c vsum.c vmul.c -o vmulsum 命令编译一个opemp offload程序后,再以 rocprof --kfd-trace ./vmulsum进行profiling时,所得到的results.json不被chrome 识别,会报错误:
While importing:
Error: Couldn't create an importer for the provided eventData.
at Import.createImporter_ (chrome://tracing/tracing.js:2022:1948)
at chrome://tracing/tracing.js:2015:167
at Task.run (chrome://tracing/tracing.js:3278:95)
at runAnother (chrome://tracing/tracing.js:3281:371)
at runTask (chrome://tracing/tracing.js:3043:57)
at processIdleWork (chrome://tracing/tracing.js:3048:116)
at window.requestIdleCallback.timeout (chrome://tracing/tracing.js:3041:81)
打开results.json文件可发现,最后一行不太符合json规范。整个json是 {},{}的形式,如果将最后一行中的 ,{"args":{"name":"COPY"},"ph":"M","pid":1,"name":"process_name","sort_index":0}删除,则chrome 可以识别此results.json文件。请修复。
此外,使用 rocprof --sys-trace 运行程序后,得到的results.json的全部内容为:
$ cat results.json
,{"args":{"name":"COPY"},"ph":"M","pid":1,"name":"process_name","sort_index":0}
其中并无任何tracing的实际信息,尝试了很多版本,均无法获取openmp offload程序的GPU tracing活动信息,有没有可行的办法?

暂无数据
以上所讲格式问题在复现时会有问题。实际上使用dtk-21.04时,并没有输出results.json中的时间线数据,其只是对过去运行生成的results.json附加了最后一行字符,并没有将过去的results.json删除并重新生成。如果将过去用romc3.9.1生成的results.json删除,在使用dtk-21.04全新的运行rocprof --sys-trace后,得到的results.json文件中只有附加的那一行字符。
profile工具目前暂时不能应用到openmp offload中,两者采用不同的运行机制