Is the FVP accurate in terms of measuring performance of programs? Is it cycle accurate? If I use clock_gettime to measure time taken on applications, is it meaningful? If not, is there an accurate way to measure performance of programs on the FVP?
Hi Mohannad,FVPs, and Fast Models in general, are functionally accurate, meaning that they fully execute all instructions correctly, however they are not cycle accurate (a separate technolgy, Cycle Models, are available for that use case).As the name implies, Fast Models (the technology from which the FVPs are built) are designed to execute code quickly, typically in the order of 100M instructions/sec, whereas Cycle Models run in the 10k-100k range.Some high level timing annotation can be applied to the FVP (use <fvp_executable> --list-params to see all the available options, then edit as appropriate) to change cache and memory access characteristics etc, the effect of these can be seen with the --stat output. I tend to use this as a relative comparison rather than absolute. Some further annotation (pipeline models etc) can be applied with the full Fast Models tool. Note that these annotations will impact the performance of the model.For more information, see https://developer.arm.com/docs/100965/1110/timing-annotation
Hello Ronan,
Thank you for your reply.
That's interesting! Are there any Cycle Models that support ARMv8.3 and above? I took a look but could only find for the already released Cortex processors. I'll take a look at the timing annotation link and experiment with it a bit more on the FVP. I'll let you know if I have any more questions. As always, thank you very much for your help and support!
Mohannad Ismail
Sorry, I should have been more clear on that. As Cycle Models are derived from the actual RTL design, these only become available once the CPUs are released. I was just making the point in general that these are the models for true cycle accuracy.
Oh I see. Thanks for the clarification!
View all questions in Simulation Models forum