We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
When I referred to this link: learn.arm.com/.../, I successfully tested performance optimization with the bolt tool on x86 architecture.
When I tested on the Android system (arm64 architecture), I found that the perf tool has been deprecated and only the simpleperf tool can be used for sampling. However, when I try to execute the "perf2bolt -p perf.data -o perf.fdata -nl ./executable" command with the sampled results from simpleperf, I encounter an error: perf2bolt: 'perf.data': The file was not recognized as a valid object file. How can this issue be resolved? Has anyone successfully applied BOLT on the Android system (arm64 architecture)?
I look forward to your reply, thank you.
Hi there, thank you for asking a question. Please can you let me know what forum is best to move your question to? Support forums
I think it should be the "Compilers and Libraries forum", thank you.
The format of perf.data generated by simpleperf isn't directly compatible with perf2bolt. One workaround is to try converting the data to the correct format using simpleperf options or looking into using a different version of BOLT that supports arm64 better.
perf.data
perf2bolt
simpleperf
Optimizing binaries with BOLT on Android arm64 sounds interesting. I have tried similar tweaks while running llamacpp and definitely helps improve performance.
It sounds like the issue may be related to the format of the simpleperf data not being compatible with perf2bolt. You might want to check if the simpleperf output can be converted or processed into a format that BOLT recognizes. Additionally, ensuring you're using the correct versions of tools compatible with ARM64 could help resolve this.