Commit 18cd7cf7 by FritzFlorian

Add note on VTune Amplifier for profiling.

parent 468aae43
Pipeline #1258 passed with stages
in 3 minutes 38 seconds
...@@ -14,6 +14,7 @@ Further notes on [performance](PERFORMANCE.md) and general ...@@ -14,6 +14,7 @@ Further notes on [performance](PERFORMANCE.md) and general
[notes](NOTES.md) on the development progress can be found in [notes](NOTES.md) on the development progress can be found in
the linked documents. the linked documents.
### Installation ### Installation
Clone the repository and open a terminal session in its folder. Clone the repository and open a terminal session in its folder.
...@@ -111,6 +112,10 @@ Available Settings: ...@@ -111,6 +112,10 @@ Available Settings:
- Enables thread/datarace sanitizer to be linked to the executable - Enables thread/datarace sanitizer to be linked to the executable
- Only one sanitizer can be active at once - Only one sanitizer can be active at once
- Enabling has a performance hit (do not use in releases) - Enabling has a performance hit (do not use in releases)
- `-DDEBUG_SYMBOLS=ON`
- default OFF
- Enables the build with debug symbols
- Use for e.g. profiling the release build
### Testing ### Testing
...@@ -130,7 +135,7 @@ keep the repository in a state where the sanitizer reports errors. ...@@ -130,7 +135,7 @@ keep the repository in a state where the sanitizer reports errors.
Consider reading [the section on common data races](https://github.com/google/sanitizers/wiki/ThreadSanitizerPopularDataRaces) Consider reading [the section on common data races](https://github.com/google/sanitizers/wiki/ThreadSanitizerPopularDataRaces)
to get an idea of what we try to avoid in our code. to get an idea of what we try to avoid in our code.
### Profiling ### Profiling EasyProfiler
To make profiling portable and allow us to later analyze the logs To make profiling portable and allow us to later analyze the logs
programaticly we use [easy_profiler](https://github.com/yse/easy_profiler) programaticly we use [easy_profiler](https://github.com/yse/easy_profiler)
...@@ -144,7 +149,7 @@ the `profiler_gui <output.prof>` command. ...@@ -144,7 +149,7 @@ the `profiler_gui <output.prof>` command.
Please note that the profiler adds overhead when looking at sub millisecond Please note that the profiler adds overhead when looking at sub millisecond
method invokations as we do and it can not replace a seperate method invokations as we do and it can not replace a seperate
profiler like `gperf` or `valgrind` for detailed analysis. profiler like `gperf`, `valgrind` or `vtune amplifier` for detailed analysis.
We still think it makes sense to add it in as an optional feature, We still think it makes sense to add it in as an optional feature,
as the customizable colors and fine grained events (including collection as the customizable colors and fine grained events (including collection
of variables) can be used to visualize the `big picture` of of variables) can be used to visualize the `big picture` of
...@@ -152,3 +157,12 @@ program execution. Also, we hope to use it to log 'events' like ...@@ -152,3 +157,12 @@ program execution. Also, we hope to use it to log 'events' like
successful and failed steals in the future, as the general idea of logging successful and failed steals in the future, as the general idea of logging
information per thread efficiently might be helpful for further information per thread efficiently might be helpful for further
analysis. analysis.
### Profiling VTune Amplifier
For detailed profiling of small performance hotspots we prefer
to use [Intel's VTune Amplifier](https://software.intel.com/en-us/vtune).
It gives insights in detailed microachitecture usage and performance
hotspots. Follow the instructions by Intel for using it.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment