This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Measuring performance of programs on the FVP

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?

Parents
  • 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

Reply
  • 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

Children