From c7904a37814f6434536dbf6d7ae3cdbc5270f5ba Mon Sep 17 00:00:00 2001 From: nick black Date: Wed, 11 Sep 2024 11:11:31 -0400 Subject: [PATCH] 5-10: en dash --- .../5-Performance-Analysis-Approaches/5-10 Chapter Summary.md | 4 ++-- .../5-9 Questions-Exercises.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chapters/5-Performance-Analysis-Approaches/5-10 Chapter Summary.md b/chapters/5-Performance-Analysis-Approaches/5-10 Chapter Summary.md index da2b15455a..81302ee1d6 100644 --- a/chapters/5-Performance-Analysis-Approaches/5-10 Chapter Summary.md +++ b/chapters/5-Performance-Analysis-Approaches/5-10 Chapter Summary.md @@ -12,7 +12,7 @@ * Sampling skips most of a program's execution and takes just one sample that is supposed to represent the entire interval. Despite this, sampling usually yields precise enough distributions. The most well-known use case of sampling is finding hotspots in the code. Sampling is the most popular analysis approach since it doesn't require recompilation of the program and has very little runtime overhead. -* Generally, counting and sampling incur very low runtime overhead (usually below 2%). Counting gets more expensive once you start multiplexing between different events (5-15% overhead), sampling gets more expensive with increasing sampling frequency [@Nowak2014TheOO]. Consider using user-mode sampling for analyzing long-running workloads or when you don't need very accurate data. +* Generally, counting and sampling incur very low runtime overhead (usually below 2%). Counting gets more expensive once you start multiplexing between different events (5--15% overhead), while sampling gets more expensive with increasing sampling frequency [@Nowak2014TheOO]. Consider using user-mode sampling for analyzing long-running workloads or when you don't need very accurate data. * The Roofline Performance Model is a throughput-oriented performance model that is heavily used in the High Performance Computing (HPC) world. It visualizes the performance of an application against hardware limitations. Roofline model helps to identify performance bottlenecks, guides software optimizations, and keeps track of optimization progress. @@ -20,4 +20,4 @@ * Compiler Optimization reports help to find missing compiler optimizations. These reports also guide developers when composing new performance experiments. -\sectionbreak \ No newline at end of file +\sectionbreak diff --git a/chapters/5-Performance-Analysis-Approaches/5-9 Questions-Exercises.md b/chapters/5-Performance-Analysis-Approaches/5-9 Questions-Exercises.md index 7e93194627..03b677e8ed 100644 --- a/chapters/5-Performance-Analysis-Approaches/5-9 Questions-Exercises.md +++ b/chapters/5-Performance-Analysis-Approaches/5-9 Questions-Exercises.md @@ -8,4 +8,4 @@ - scenario 3: you're evaluating three different compression algorithms and you want to know what types of performance bottlenecks (memory latency/bandwidth, branch mispredictions, etc) each of them has. - scenario 4: there is a new shiny library that claims to be faster than the one you currently have integrated into your project; you've decided to compare their performance. - scenario 5: you were asked to analyze the performance of some unfamiliar code, which involves a hot loop; you want to know how many iterations the loop is doing. -2. Run the application that you're working with daily. Practice doing performance analysis using the approaches we discussed in this chapter. Collect raw counts for various CPU performance events, find hotspots, collect roofline data, and generate and study the compiler optimization report for the hot function(s) in your program. +2. Run an application that you're working with daily. Practice doing performance analysis using the approaches we discussed in this chapter. Collect raw counts for various CPU performance events, find hotspots, collect roofline data, and generate and study the compiler optimization report for the hot function(s) in your program.