From 6dc76e32c3e0fcc7e542d14440fab9726059519e Mon Sep 17 00:00:00 2001 From: vaughn0223 Date: Tue, 5 Nov 2024 15:44:43 +0800 Subject: [PATCH] add _posts/2024-11-05-perf-tools-06-perf-practice-01.md --- ...24-11-05-perf-tools-06-perf-practice-01.md | 136 ++++++++++++++++++ .../perf_annotate_sort.png | Bin 0 -> 29385 bytes .../perf_annotate_unsort.png | Bin 0 -> 29140 bytes 3 files changed, 136 insertions(+) create mode 100644 _posts/2024-11-05-perf-tools-06-perf-practice-01.md create mode 100644 assets/images/perf/20241105_perf_practice_branch_prediction/perf_annotate_sort.png create mode 100644 assets/images/perf/20241105_perf_practice_branch_prediction/perf_annotate_unsort.png diff --git a/_posts/2024-11-05-perf-tools-06-perf-practice-01.md b/_posts/2024-11-05-perf-tools-06-perf-practice-01.md new file mode 100644 index 0000000..7526a89 --- /dev/null +++ b/_posts/2024-11-05-perf-tools-06-perf-practice-01.md @@ -0,0 +1,136 @@ +--- +title: perf性能分析(6) -- perf实战(1) -- 分支预测 +date: 2024-11-05 +0800 # 2022-01-01 13:14:15 +0800 只写日期也行;不写秒也行;这样也行 2022-03-09T00:55:42+08:00 +categories: [perf] +tags: [perf, vtune, tbb] # TAG names should always be lowercase + +# 以下默认false +math: true +mermaid: true +# pin: true +--- + +使用`Debug`模式编译 `sort` 和 `unsort` 代码: + +```c++ +#include +#include +#include + +int main(int argc, char* argv[]) { + constexpr int kArrLen = 1024 * 1024; + int* data = new int[kArrLen]; + + for (int c = 0; c < kArrLen; c++) + data[c] = std::rand() % 256; + + // std::sort(data, data + kArrLen); // 是否排序 + + long long sum = 0; + for (int i = 0; i < 30000; i++) { + for (int c = 0; c < kArrLen; c++) { + if (data[c] >= 128) { // 故意選 256 一半 + sum += data[c]; + } + } + } + + delete[] data; + std::cout << "sum = " << sum << std::endl; +} +``` + +## 1. sort/unsort 性能测试及比较: perf stat ## + +The CPU is `Intel(R) Core(TM) i5-8260U CPU @ 1.60GHz`. + +`perf stat ./sort` 测试结果: + +```bash +$ perf stat ./sort + +sum = 3016043160000 + + Performance counter stats for './sort': + + 63,995.28 msec task-clock # 1.000 CPUs utilized + 1,039 context-switches # 16.236 /sec + 7 cpu-migrations # 0.109 /sec + 1,151 page-faults # 17.986 /sec + 240,342,649,070 cycles # 3.756 GHz + 473,524,864,500 instructions # 1.97 insn per cycle + 63,163,134,842 branches # 986.997 M/sec + 7,402,185 branch-misses # 0.01% of all branches + + 64.008866998 seconds time elapsed + + 63.983827000 seconds user + 0.010999000 seconds sys +``` + +`perf stat ./unsort` 测试结果: + +```bash +$ perf stat ./unsort + +sum = 3016043160000 + + Performance counter stats for './unsort': + + 206,441.99 msec task-clock # 1.000 CPUs utilized + 484 context-switches # 2.344 /sec + 44 cpu-migrations # 0.213 /sec + 1,150 page-faults # 5.571 /sec + 771,936,412,315 cycles # 3.739 GHz + 473,410,337,438 instructions # 0.61 insn per cycle + 63,144,272,701 branches # 305.869 M/sec + 15,732,825,641 branch-misses # 24.92% of all branches + + 206.439026771 seconds time elapsed + + 206.440760000 seconds user + 0.002000000 seconds sys +``` + +### 1.1. Result comparison ### + +`unsort`的分支预测失败率为`24.92%`, 且`CPU IPC`为`0.61`, 小于1.0. + +`sort`分支预测失败率为`0.01%`, `CPU IPC`为`1.97`. + +## 2. analysis using `perf record` and `perf ananotate` ## + +### 2.1. program unsort ### + +运行 `perf record` 和 `perf annotate` 命令: + +```bash +perf record ./unsort # 结束后生产 perf.data 文件 +perf annotate # 自动定位到最耗时的地方 +``` + +![perf_annotate_unsort](/assets/images/perf/20241105_perf_practice_branch_prediction/perf_annotate_unsort.png) + +`if`语句比较失败跳转至循环体, 循环体占用`24.44%`的CPU时间. 原因是`分支预测失败` -- `if`语句在`for`循环中失败次数较多. + +## 2.2. program sort ## + +![perf_annotate_sort](/assets/images/perf/20241105_perf_practice_branch_prediction/perf_annotate_sort.png) + +分支预测失败率为`.051%` + `4.31%`, 且`CPU IPC`为`1.97`. + +* 内存`load`操作: `41.68%`. +* `add`指令: `10.54%`. + +## 3. When build with `Release` ## + +如果使用`-O2`或者`-O3`编译,编译器使用了`vector`相关指令(针对32位的 `pcmpgtd`),消除了`if`分支语句。其结果就是,`sort`与`unsort`的性能差距不大,甚至`sort`的性能更好。 + +## references ## + +* [在 Linux 上使用 Perf 做效能分析(入門篇)](https://tigercosmos.xyz/post/2020/08/system/perf-basic/) +* [Category:Architecture/x86-assembly](https://www.aldeid.com/wiki/Category:Architecture/x86-assembly) +* [StackOverflow: Why is processing a sorted array faster than processing an unsorted array?](https://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-processing-an-unsorted-array) +* [StackOverflow: Why is processing an unsorted array the same speed as processing a sorted array with modern x86-64 clang?](https://stackoverflow.com/questions/66521344/why-is-processing-an-unsorted-array-the-same-speed-as-processing-a-sorted-array) +* [知乎 -- 分支对代码性能的影响和优化](https://zhuanlan.zhihu.com/p/487690985) +* [Modern Microprocessors -- A 90-Minute Guide!](https://www.lighterra.com/papers/modernmicroprocessors/) diff --git a/assets/images/perf/20241105_perf_practice_branch_prediction/perf_annotate_sort.png b/assets/images/perf/20241105_perf_practice_branch_prediction/perf_annotate_sort.png new file mode 100644 index 0000000000000000000000000000000000000000..2f4c4d5eb04b236c4934ba76a1528f444be25812 GIT binary patch literal 29385 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