From 107523bd4dd7c0057018a179cdaf4039f2a0d35a Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Tue, 21 May 2024 09:51:03 +0800 Subject: [PATCH 01/19] Create readme.md --- assets/images/2024-05-21-perfboost-windows-cpu/readme.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 assets/images/2024-05-21-perfboost-windows-cpu/readme.md diff --git a/assets/images/2024-05-21-perfboost-windows-cpu/readme.md b/assets/images/2024-05-21-perfboost-windows-cpu/readme.md new file mode 100644 index 000000000000..58c9bdf9d017 --- /dev/null +++ b/assets/images/2024-05-21-perfboost-windows-cpu/readme.md @@ -0,0 +1 @@ +111 From 1761114de4d4ade101912aadb57c8269ed506f55 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Tue, 21 May 2024 09:53:10 +0800 Subject: [PATCH 02/19] add images for 2024-05-21-perfboost-windows-cpu --- .../pytorch_20_win_linux.png | Bin 0 -> 43567 bytes .../pytorch_21_win_linux.png | Bin 0 -> 41229 bytes .../windows_compare.png | Bin 0 -> 51989 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png create mode 100644 assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png create mode 100644 assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png diff --git a/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png b/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png new file mode 100644 index 0000000000000000000000000000000000000000..526ab45588e82d58c8bf437c2ce1fc8894f650e3 GIT binary patch literal 43567 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 literal 0 HcmV?d00001 diff --git a/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png b/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png new file mode 100644 index 0000000000000000000000000000000000000000..bcaa14a873043390653d0e328719c50bf999c32f GIT binary patch literal 41229 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 cn6NNEL~{qz%uZIVM(5VrCjGmzDy_0-XQ- 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 literal 0 HcmV?d00001 diff --git a/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png b/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png new file mode 100644 index 0000000000000000000000000000000000000000..a107c7fe940e401d9010bee113704e2bae592fbf GIT binary patch literal 51989 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 f Date: Tue, 21 May 2024 10:00:48 +0800 Subject: [PATCH 03/19] Create 2024-05-21-perfboost-windows-cpu.md --- _posts/2024-05-21-perfboost-windows-cpu.md | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 _posts/2024-05-21-perfboost-windows-cpu.md diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md new file mode 100644 index 000000000000..2ea250df54de --- /dev/null +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -0,0 +1,92 @@ +--- +layout: blog_detail +title: "The Path to Achieve Pytorch Windows Performance boost on CPU" +author: Zhaoqiong Zheng, Xu Han, Haozhe Zhu, Wenzhuo Zhang +--- + +The challenge of PyTorch's lower CPU performance on Windows compared to Linux has been a significant issue. There are multiple factors leading to this performance disparity. Through meticulous investigation by Intel engineer [Xu Han](https://github.com/xuhancn), we've identified one of the primary reasons for poor CPU performance on Windows, which is linked to the Windows malloc mechanism. + +In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer Xu Han took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with Pytorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). + +![Windows PC Performance Improvement](../assets/images/2024-05-21-perfboost-windows-cpu/windows_optimization/windows_compare.png) +Image 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better). The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. + + +From this graph, it's evident that PyTorch on Windows CPU showcases significant performance improvements. The variations in performance enhancements across different workloads mainly stem from varying proportions of different operations within distinct models, consequently affecting the frequency of memory access operations. It shows a comparatively smaller enhancement in BERT model performance, while there is a more substantial improvement in ResNet50 and MobileNetv3 Large model performances. + +On a high-performance CPU, memory allocation becomes a performance bottleneck. This is also why addressing this issue has led to such significant performance improvements. + +![Windows vs Linux Performance on Pytorch 2.0](../assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png) +Image 2.1: Relative performance of Windows vs Linux with Pytorch version 2.0 (higher is better). The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. + +![Windows vs Linux Performance on Pytorch 2.1](../assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png) +Image 2.2: Relative performance of Windows vs Linux with Pytorch version 2.1 (higher is better). The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. + +As shown in the graphs, it is evident that PyTorch's performance on Windows CPUs can significantly improved. However, there is still a noticeable gap when compared to its performance on Linux. This can be attributed to several factors, including the fact that malloc has not yet fully reached the performance level of Linux, among other reasons. Intel engineers will continue to delve into this issue, collaborating with Meta engineers, to reduce the performance gap of PyTorch between Windows and Linux. + + +## HOW TO TAKE ADVANTAGE OF THE OPTIMIZATIONS + +Install PyTorch version 2.1 or higher using the Windows CPU wheel from the official repository, and you will automatically experience a performance boost. + + +## CONCLUSION + +Comparing PyTorch 2.0 and PyTorch 2.1, we can observe varying degrees of performance improvement on Windows CPU. The extent of performance improvement becomes more pronounced as the number of memory allocation operations called within an op in a workload increases. A more powerful CPU computing capability will also make this performance enhancement more pronounced, as the proportion of operations outside of computation increases. + +This performance enhancement to a certain extent helps to bridge the Pytorch CPU performance gap between Windows and Linux. Intel will continue to collaborate with Meta, dedicated to enhancing the performance of PyTorch on CPUs! + +## ACKNOWLEDGMENTS + +The results presented in this blog post was achieved through the collaborative effort of the Intel PyTorch team and Meta. We would like to express our sincere gratitude to [Xu Han](https://github.com/xuhancn), [Jiong Gong](https://github.com/jgong5), [Mingfei Ma](https://github.com/mingfeima), [Haozhe Zhu](https://github.com/zhuhaozhe), [Chuanqi Wang](https://github.com/chuanqi129), [Guobing Chen](https://github.com/Guobing-Chen), [Eikan Wang](https://github.com/EikanWang). Their expertise and dedication have been instrumental in achieving the optimizations and performance improvements discussed here. Thanks to [Jiachen Pu](https://github.com/peterjc123) for his participation in the issue discussion and suggesting the use of [mimalloc](https://github.com/microsoft/mimalloc), and we'd also like to express our gratitude to Microsoft for providing such easily integratable and performant mallocation library. Finally we want to thank [Jing Xu](https://github.com/jingxu10), [Weizhuo Zhang](https://github.com/WeizhuoZhang-intel) for their contributions to this blog. + + +## Notices and Disclaimers + +Performance varies by use, configuration and other factors. Learn more on the [Performance Index site](https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/). + +Performance results are based on testing as of dates shown in configurations and may not reflect all publicly available updates. See backup for configuration details. No product or component can be absolutely secure. + +Your costs and results may vary. + +### Configurations + +The configurations in the table are collected with [svr-info](https://github.com/intel/svr-info) + + +| Specification | Configuration1 | Configuration2 | +|-----------------------------|----------------------------------------|----------------------------------------| +| Name | ThinkBook 14 G5+ IRH | ThinkBook 14 G5+ IRH | +| Time | Mon Apr 15 01:13:48 PM UTC 2024 | Mon Apr 15 01:13:48 PM UTC 2024 | +| System | LENOVO | LENOVO | +| Baseboard | LENOVO | LENOVO | +| Chassis | LENOVO | LENOVO | +| CPU Model | 13th Gen Intel(R) Core(TM) i7-13700H | 13th Gen Intel(R) Core(TM) i7-13700H | +| Microarchitecture | Unknown Intel | Unknown Intel | +| Sockets | 1 | 1 | +| Cores per Socket | 14 | 14 | +| Hyperthreading | Enabled | Enabled | +| CPUs | 20 | 20 | +| Intel Turbo Boost | Enabled | Enabled | +| Base Frequency | 2.4GHz | 2.4GHz | +| All-core Maximum Frequency | 4.7GHz | 4.7GHz | +| Maximum Frequency | 4.8GHz | 4.8GHz | +| NUMA Nodes | 1 | 1 | +| Prefetchers | L2 HW: Enabled, L2 Adj.: Enabled, DCU HW: Enabled, DCU IP: Enabled | L2 HW: Enabled, L2 Adj.: Enabled, DCU HW: Enabled, DCU IP: Enabled | +| PPINs | - | - | +| Accelerators | DLB, DSA, IAA, QAT | DLB, DSA, IAA, QAT | +| Installed Memory | 32GB (8x4GB LPDDR4 7400 MT/s [5200 MT/s]) | 32GB (8x4GB LPDDR4 7400 MT/s [5200 MT/s]) | +| Hugepagesize | 2048kb | 2048kb | +| Transparent Huge Pages | madvise | madvise | +| Automatic NUMA Balancing | Disabled | Disabled | +| NIC | "1. Raptor Lake PCH CNVi WiFi 2. Intel Corporation" | "1. Raptor Lake PCH CNVi WiFi 2. Intel Corporation" | +| Disk | Micron MTFDKBA512TFH 500G | Micron MTFDKBA512TFH 500G | +| BIOS | LBCN19WW | LBCN19WW | +| Microcode | 0x411c | 0x411c | +| OS | Windows 11 Desktop | Ubuntu 23.10 | +| Kernel | 6.5.0-27-generic | 6.5.0-27-generic | +| TDP | 200 watts | 200 watts | +| Power & Perf Policy | Normal Powersave (7) | Normal Powersave (7) | +| Frequency Governor | powersave | powersave | +| Frequency Driver | intel_pstate | intel_pstate | +| Max C-State | 9 | 9 | From af450082726c67bcc1b39590eacf0b8f48b441e6 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Tue, 21 May 2024 10:03:20 +0800 Subject: [PATCH 04/19] Delete assets/images/2024-05-21-perfboost-windows-cpu/readme.md remove useless file --- assets/images/2024-05-21-perfboost-windows-cpu/readme.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 assets/images/2024-05-21-perfboost-windows-cpu/readme.md diff --git a/assets/images/2024-05-21-perfboost-windows-cpu/readme.md b/assets/images/2024-05-21-perfboost-windows-cpu/readme.md deleted file mode 100644 index 58c9bdf9d017..000000000000 --- a/assets/images/2024-05-21-perfboost-windows-cpu/readme.md +++ /dev/null @@ -1 +0,0 @@ -111 From 20b68d4d32c1a6cf6443d700d4696683159ce5c4 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Tue, 21 May 2024 10:06:19 +0800 Subject: [PATCH 05/19] Update 2024-05-21-perfboost-windows-cpu.md fix image path --- _posts/2024-05-21-perfboost-windows-cpu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index 2ea250df54de..c553203ed9cf 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -8,7 +8,7 @@ The challenge of PyTorch's lower CPU performance on Windows compared to Linux ha In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer Xu Han took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with Pytorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). -![Windows PC Performance Improvement](../assets/images/2024-05-21-perfboost-windows-cpu/windows_optimization/windows_compare.png) +![Windows PC Performance Improvement](../assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png) Image 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better). The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. From c3fdfeaadf0ba3a36a06d37b2f28f6b7c2fedf94 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Wed, 22 May 2024 14:28:44 +0800 Subject: [PATCH 06/19] Update 2024-05-21-perfboost-windows-cpu.md make title of image bold and italic --- _posts/2024-05-21-perfboost-windows-cpu.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index c553203ed9cf..37be084d3d85 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -9,7 +9,8 @@ The challenge of PyTorch's lower CPU performance on Windows compared to Linux ha In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer Xu Han took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with Pytorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). ![Windows PC Performance Improvement](../assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png) -Image 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better). The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. +***Image 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better)***. +**Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. From this graph, it's evident that PyTorch on Windows CPU showcases significant performance improvements. The variations in performance enhancements across different workloads mainly stem from varying proportions of different operations within distinct models, consequently affecting the frequency of memory access operations. It shows a comparatively smaller enhancement in BERT model performance, while there is a more substantial improvement in ResNet50 and MobileNetv3 Large model performances. @@ -17,10 +18,12 @@ From this graph, it's evident that PyTorch on Windows CPU showcases significant On a high-performance CPU, memory allocation becomes a performance bottleneck. This is also why addressing this issue has led to such significant performance improvements. ![Windows vs Linux Performance on Pytorch 2.0](../assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png) -Image 2.1: Relative performance of Windows vs Linux with Pytorch version 2.0 (higher is better). The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. +***Image 2.1: Relative performance of Windows vs Linux with Pytorch version 2.0 (higher is better)***. +**Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. ![Windows vs Linux Performance on Pytorch 2.1](../assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png) -Image 2.2: Relative performance of Windows vs Linux with Pytorch version 2.1 (higher is better). The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. +***Image 2.2: Relative performance of Windows vs Linux with Pytorch version 2.1 (higher is better)***. +**Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. As shown in the graphs, it is evident that PyTorch's performance on Windows CPUs can significantly improved. However, there is still a noticeable gap when compared to its performance on Linux. This can be attributed to several factors, including the fact that malloc has not yet fully reached the performance level of Linux, among other reasons. Intel engineers will continue to delve into this issue, collaborating with Meta engineers, to reduce the performance gap of PyTorch between Windows and Linux. From 0d22976e293623ce0da3b61613d0c6446ac6755e Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Wed, 22 May 2024 14:48:22 +0800 Subject: [PATCH 07/19] Update 2024-05-21-perfboost-windows-cpu.md correct image path for preview --- _posts/2024-05-21-perfboost-windows-cpu.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index 37be084d3d85..04a0bebd99b8 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -8,7 +8,7 @@ The challenge of PyTorch's lower CPU performance on Windows compared to Linux ha In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer Xu Han took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with Pytorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). -![Windows PC Performance Improvement](../assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png) +![Windows PC Performance Improvement](/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png) ***Image 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better)***. **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. @@ -17,11 +17,11 @@ From this graph, it's evident that PyTorch on Windows CPU showcases significant On a high-performance CPU, memory allocation becomes a performance bottleneck. This is also why addressing this issue has led to such significant performance improvements. -![Windows vs Linux Performance on Pytorch 2.0](../assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png) +![Windows vs Linux Performance on Pytorch 2.0](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png) ***Image 2.1: Relative performance of Windows vs Linux with Pytorch version 2.0 (higher is better)***. **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. -![Windows vs Linux Performance on Pytorch 2.1](../assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png) +![Windows vs Linux Performance on Pytorch 2.1](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png) ***Image 2.2: Relative performance of Windows vs Linux with Pytorch version 2.1 (higher is better)***. **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. From 78c5982c99766755340ce1d26f774c23f66c7fc9 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Wed, 22 May 2024 14:54:32 +0800 Subject: [PATCH 08/19] Update 2024-05-21-perfboost-windows-cpu.md update the format of images and image title according to Chris Abraham's post --- _posts/2024-05-21-perfboost-windows-cpu.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index 04a0bebd99b8..8f9c23d8b588 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -8,8 +8,8 @@ The challenge of PyTorch's lower CPU performance on Windows compared to Linux ha In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer Xu Han took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with Pytorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). -![Windows PC Performance Improvement](/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png) -***Image 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better)***. +![Windows PC Performance Improvement](/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png){:style="width:100%;"} +_Figire 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better)._ **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. @@ -17,12 +17,12 @@ From this graph, it's evident that PyTorch on Windows CPU showcases significant On a high-performance CPU, memory allocation becomes a performance bottleneck. This is also why addressing this issue has led to such significant performance improvements. -![Windows vs Linux Performance on Pytorch 2.0](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png) -***Image 2.1: Relative performance of Windows vs Linux with Pytorch version 2.0 (higher is better)***. +![Windows vs Linux Performance on Pytorch 2.0](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png){:style="width:100%;"} +_Figure 2.1: Relative performance of Windows vs Linux with Pytorch version 2.0 (higher is better)._ **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. -![Windows vs Linux Performance on Pytorch 2.1](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png) -***Image 2.2: Relative performance of Windows vs Linux with Pytorch version 2.1 (higher is better)***. +![Windows vs Linux Performance on Pytorch 2.1](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png){:style="width:100%;"} +_Figure 2.2: Relative performance of Windows vs Linux with Pytorch version 2.1 (higher is better)._ **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. As shown in the graphs, it is evident that PyTorch's performance on Windows CPUs can significantly improved. However, there is still a noticeable gap when compared to its performance on Linux. This can be attributed to several factors, including the fact that malloc has not yet fully reached the performance level of Linux, among other reasons. Intel engineers will continue to delve into this issue, collaborating with Meta engineers, to reduce the performance gap of PyTorch between Windows and Linux. From 7fffb678ff5716f90c730afa82f090a5030aa2a6 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Wed, 22 May 2024 14:57:58 +0800 Subject: [PATCH 09/19] Update 2024-05-21-perfboost-windows-cpu.md update image width --- _posts/2024-05-21-perfboost-windows-cpu.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index 8f9c23d8b588..a91c0247d0ca 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -9,7 +9,9 @@ The challenge of PyTorch's lower CPU performance on Windows compared to Linux ha In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer Xu Han took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with Pytorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). ![Windows PC Performance Improvement](/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png){:style="width:100%;"} + _Figire 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better)._ + **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. @@ -18,11 +20,15 @@ From this graph, it's evident that PyTorch on Windows CPU showcases significant On a high-performance CPU, memory allocation becomes a performance bottleneck. This is also why addressing this issue has led to such significant performance improvements. ![Windows vs Linux Performance on Pytorch 2.0](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png){:style="width:100%;"} + _Figure 2.1: Relative performance of Windows vs Linux with Pytorch version 2.0 (higher is better)._ + **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. ![Windows vs Linux Performance on Pytorch 2.1](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png){:style="width:100%;"} + _Figure 2.2: Relative performance of Windows vs Linux with Pytorch version 2.1 (higher is better)._ + **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. As shown in the graphs, it is evident that PyTorch's performance on Windows CPUs can significantly improved. However, there is still a noticeable gap when compared to its performance on Linux. This can be attributed to several factors, including the fact that malloc has not yet fully reached the performance level of Linux, among other reasons. Intel engineers will continue to delve into this issue, collaborating with Meta engineers, to reduce the performance gap of PyTorch between Windows and Linux. From a3066e80b49a1bd3df71400a7ef6888dea1aab33 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Thu, 23 May 2024 08:08:49 +0800 Subject: [PATCH 10/19] Update kernel version in configurations --- _posts/2024-05-21-perfboost-windows-cpu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index a91c0247d0ca..ec78548271e9 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -93,7 +93,7 @@ The configurations in the table are collected with [svr-info](https://github.com | BIOS | LBCN19WW | LBCN19WW | | Microcode | 0x411c | 0x411c | | OS | Windows 11 Desktop | Ubuntu 23.10 | -| Kernel | 6.5.0-27-generic | 6.5.0-27-generic | +| Kernel | OS Build 19045.4412 | OS Build 19045.4412 | | TDP | 200 watts | 200 watts | | Power & Perf Policy | Normal Powersave (7) | Normal Powersave (7) | | Frequency Governor | powersave | powersave | From f1256363a220f6ad0be431b3e6a3799db28d05f9 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Fri, 24 May 2024 21:59:31 +0800 Subject: [PATCH 11/19] Update Ubuntu OS Kernel --- _posts/2024-05-21-perfboost-windows-cpu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index ec78548271e9..856ff3d8eaed 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -93,7 +93,7 @@ The configurations in the table are collected with [svr-info](https://github.com | BIOS | LBCN19WW | LBCN19WW | | Microcode | 0x411c | 0x411c | | OS | Windows 11 Desktop | Ubuntu 23.10 | -| Kernel | OS Build 19045.4412 | OS Build 19045.4412 | +| Kernel | OS Build 19045.4412 | 6.5.0-27-generic | | TDP | 200 watts | 200 watts | | Power & Perf Policy | Normal Powersave (7) | Normal Powersave (7) | | Frequency Governor | powersave | powersave | From bd755508aacc63d2f05fed85277c8aab854d3b68 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Mon, 27 May 2024 17:46:11 +0800 Subject: [PATCH 12/19] Update blog according to comments of marketing tech reviewer --- _posts/2024-05-21-perfboost-windows-cpu.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index 856ff3d8eaed..d93241a8a5dd 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -1,16 +1,16 @@ --- layout: blog_detail -title: "The Path to Achieve Pytorch Windows Performance boost on CPU" +title: "The Path to Achieve PyTorch Windows Performance boost on CPU" author: Zhaoqiong Zheng, Xu Han, Haozhe Zhu, Wenzhuo Zhang --- -The challenge of PyTorch's lower CPU performance on Windows compared to Linux has been a significant issue. There are multiple factors leading to this performance disparity. Through meticulous investigation by Intel engineer [Xu Han](https://github.com/xuhancn), we've identified one of the primary reasons for poor CPU performance on Windows, which is linked to the Windows malloc mechanism. +The challenge of PyTorch's lower CPU performance on Windows compared to Linux has been a significant issue. There are multiple factors leading to this performance disparity. Through meticulous investigation, we've identified one of the primary reasons for poor CPU performance on Windows, which is linked to the Windows malloc memory allocator. -In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer Xu Han took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with Pytorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). +In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer Xu Han took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with PyTorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). ![Windows PC Performance Improvement](/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png){:style="width:100%;"} -_Figire 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better)._ +_Figure 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better)._ **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. @@ -19,15 +19,15 @@ From this graph, it's evident that PyTorch on Windows CPU showcases significant On a high-performance CPU, memory allocation becomes a performance bottleneck. This is also why addressing this issue has led to such significant performance improvements. -![Windows vs Linux Performance on Pytorch 2.0](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png){:style="width:100%;"} +![Windows vs Linux Performance on PyTorch 2.0](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png){:style="width:100%;"} -_Figure 2.1: Relative performance of Windows vs Linux with Pytorch version 2.0 (higher is better)._ +_Figure 2.1: Relative performance of Windows vs Linux with PyTorch version 2.0 (higher is better)._ **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. -![Windows vs Linux Performance on Pytorch 2.1](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png){:style="width:100%;"} +![Windows vs Linux Performance on PyTorch 2.1](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png){:style="width:100%;"} -_Figure 2.2: Relative performance of Windows vs Linux with Pytorch version 2.1 (higher is better)._ +_Figure 2.2: Relative performance of Windows vs Linux with PyTorch version 2.1 (higher is better)._ **Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. @@ -43,11 +43,11 @@ Install PyTorch version 2.1 or higher using the Windows CPU wheel from the offic Comparing PyTorch 2.0 and PyTorch 2.1, we can observe varying degrees of performance improvement on Windows CPU. The extent of performance improvement becomes more pronounced as the number of memory allocation operations called within an op in a workload increases. A more powerful CPU computing capability will also make this performance enhancement more pronounced, as the proportion of operations outside of computation increases. -This performance enhancement to a certain extent helps to bridge the Pytorch CPU performance gap between Windows and Linux. Intel will continue to collaborate with Meta, dedicated to enhancing the performance of PyTorch on CPUs! +This performance enhancement to a certain extent helps to bridge the PyTorch CPU performance gap between Windows and Linux. Intel will continue to collaborate with Meta, dedicated to enhancing the performance of PyTorch on CPUs! ## ACKNOWLEDGMENTS -The results presented in this blog post was achieved through the collaborative effort of the Intel PyTorch team and Meta. We would like to express our sincere gratitude to [Xu Han](https://github.com/xuhancn), [Jiong Gong](https://github.com/jgong5), [Mingfei Ma](https://github.com/mingfeima), [Haozhe Zhu](https://github.com/zhuhaozhe), [Chuanqi Wang](https://github.com/chuanqi129), [Guobing Chen](https://github.com/Guobing-Chen), [Eikan Wang](https://github.com/EikanWang). Their expertise and dedication have been instrumental in achieving the optimizations and performance improvements discussed here. Thanks to [Jiachen Pu](https://github.com/peterjc123) for his participation in the issue discussion and suggesting the use of [mimalloc](https://github.com/microsoft/mimalloc), and we'd also like to express our gratitude to Microsoft for providing such easily integratable and performant mallocation library. Finally we want to thank [Jing Xu](https://github.com/jingxu10), [Weizhuo Zhang](https://github.com/WeizhuoZhang-intel) for their contributions to this blog. +The results presented in this blog post was achieved through the collaborative effort of the Intel PyTorch team and Meta. We would like to express our sincere gratitude to [Xu Han](https://github.com/xuhancn), [Jiong Gong](https://github.com/jgong5), [Mingfei Ma](https://github.com/mingfeima), [Haozhe Zhu](https://github.com/zhuhaozhe), [Chuanqi Wang](https://github.com/chuanqi129), [Guobing Chen](https://github.com/Guobing-Chen), [Eikan Wang](https://github.com/EikanWang). Their expertise and dedication have been instrumental in achieving the optimizations and performance improvements discussed here. Thanks to [Jiachen Pu](https://github.com/peterjc123) for his participation in the issue discussion and suggesting the use of [mimalloc](https://github.com/microsoft/mimalloc). We'd also like to express our gratitude to Microsoft for providing such an easily integrated and performant mallocation library. Finally we want to thank [Jing Xu](https://github.com/jingxu10) and [Weizhuo Zhang](https://github.com/WeizhuoZhang-intel) for their contributions to this blog. ## Notices and Disclaimers From 2b06d408b84993a3f2410d0c45f41399af8e4bda Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Tue, 28 May 2024 14:51:08 +0800 Subject: [PATCH 13/19] Update 2024-05-21-perfboost-windows-cpu.md --- _posts/2024-05-21-perfboost-windows-cpu.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index d93241a8a5dd..7121cf1e5a92 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -1,12 +1,12 @@ --- layout: blog_detail title: "The Path to Achieve PyTorch Windows Performance boost on CPU" -author: Zhaoqiong Zheng, Xu Han, Haozhe Zhu, Wenzhuo Zhang +author: Zhaoqiong Zheng, Xu Han, Haozhe Zhu, Wenzhuo Zhang from Intel --- The challenge of PyTorch's lower CPU performance on Windows compared to Linux has been a significant issue. There are multiple factors leading to this performance disparity. Through meticulous investigation, we've identified one of the primary reasons for poor CPU performance on Windows, which is linked to the Windows malloc memory allocator. -In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer Xu Han took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with PyTorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). +In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer [Xu Han](https://github.com/xuhancn) took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with PyTorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). ![Windows PC Performance Improvement](/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png){:style="width:100%;"} From 839aae93378e39ce45505f97bd684fce88929dbf Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Tue, 28 May 2024 15:13:44 +0800 Subject: [PATCH 14/19] Update 2024-05-21-perfboost-windows-cpu.md --- _posts/2024-05-21-perfboost-windows-cpu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index 7121cf1e5a92..a9d12ca3279e 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -1,7 +1,7 @@ --- layout: blog_detail title: "The Path to Achieve PyTorch Windows Performance boost on CPU" -author: Zhaoqiong Zheng, Xu Han, Haozhe Zhu, Wenzhuo Zhang from Intel +author: Zhaoqiong Zheng from Intel --- The challenge of PyTorch's lower CPU performance on Windows compared to Linux has been a significant issue. There are multiple factors leading to this performance disparity. Through meticulous investigation, we've identified one of the primary reasons for poor CPU performance on Windows, which is linked to the Windows malloc memory allocator. From 5eb9fa25c4eba9383696fdcbc01aac0e958c1d28 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Wed, 12 Jun 2024 11:30:56 +0800 Subject: [PATCH 15/19] Update 2024-05-21-perfboost-windows-cpu.md --- _posts/2024-05-21-perfboost-windows-cpu.md | 46 ++++++++++------------ 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index a9d12ca3279e..0d31720490ec 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -1,21 +1,18 @@ --- layout: blog_detail -title: "The Path to Achieve PyTorch Windows Performance boost on CPU" -author: Zhaoqiong Zheng from Intel +title: "The Path to Achieve PyTorch Performance Boost on Windows CPU" +author: Intel Corporation --- -The challenge of PyTorch's lower CPU performance on Windows compared to Linux has been a significant issue. There are multiple factors leading to this performance disparity. Through meticulous investigation, we've identified one of the primary reasons for poor CPU performance on Windows, which is linked to the Windows malloc memory allocator. +The challenge of PyTorch's lower CPU performance on Windows compared to Linux has been a significant issue. There are multiple factors leading to this performance disparity. Through our investigation, we've identified one of the primary reasons for poor CPU performance on Windows, which is linked to the Windows default malloc memory allocator. -In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, which, compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. Intel engineer [Xu Han](https://github.com/xuhancn) took the initiative to replace the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with PyTorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs (See the following graph). +In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, when compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. We replaced the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with PyTorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs as shown below in Figure 1. ![Windows PC Performance Improvement](/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png){:style="width:100%;"} _Figure 1: Relative throughput improvement achieved by upgrading from Windows PyTorch version 2.0 to 2.1 (higher is better)._ -**Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. - - -From this graph, it's evident that PyTorch on Windows CPU showcases significant performance improvements. The variations in performance enhancements across different workloads mainly stem from varying proportions of different operations within distinct models, consequently affecting the frequency of memory access operations. It shows a comparatively smaller enhancement in BERT model performance, while there is a more substantial improvement in ResNet50 and MobileNetv3 Large model performances. +From this graph, we see that PyTorch 2.1 on Windows CPU shows significant performance improvements. The variations in performance enhancements across different workloads mainly stem from varying proportions of different operations within distinct models, consequently affecting the frequency of memory access operations. It shows a comparatively smaller enhancement in BERT model performance, while there is a more substantial improvement in ResNet50 and MobileNet-v3 Large model performances. On a high-performance CPU, memory allocation becomes a performance bottleneck. This is also why addressing this issue has led to such significant performance improvements. @@ -23,42 +20,30 @@ On a high-performance CPU, memory allocation becomes a performance bottleneck. T _Figure 2.1: Relative performance of Windows vs Linux with PyTorch version 2.0 (higher is better)._ -**Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. - ![Windows vs Linux Performance on PyTorch 2.1](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png){:style="width:100%;"} _Figure 2.2: Relative performance of Windows vs Linux with PyTorch version 2.1 (higher is better)._ -**Note**: The performance is measured on Intel Core 13th Gen i7-13700H with 32G Memory. - -As shown in the graphs, it is evident that PyTorch's performance on Windows CPUs can significantly improved. However, there is still a noticeable gap when compared to its performance on Linux. This can be attributed to several factors, including the fact that malloc has not yet fully reached the performance level of Linux, among other reasons. Intel engineers will continue to delve into this issue, collaborating with Meta engineers, to reduce the performance gap of PyTorch between Windows and Linux. +As shown in the graphs, we see that PyTorch's performance on Windows CPUs can significantly be improved. However, there is still a noticeable gap when compared to its performance on Linux. This can be attributed to several factors, including the fact that malloc has not yet fully reached the performance level of Linux, among other reasons. Intel engineers will continue to collaborate with Meta engineers, to reduce the performance gap of PyTorch between Windows and Linux. ## HOW TO TAKE ADVANTAGE OF THE OPTIMIZATIONS -Install PyTorch version 2.1 or higher using the Windows CPU wheel from the official repository, and you will automatically experience a performance boost. +Install PyTorch version 2.1 or higher using the Windows CPU wheel from the official repository, and you may automatically experience a performance boost. ## CONCLUSION -Comparing PyTorch 2.0 and PyTorch 2.1, we can observe varying degrees of performance improvement on Windows CPU. The extent of performance improvement becomes more pronounced as the number of memory allocation operations called within an op in a workload increases. A more powerful CPU computing capability will also make this performance enhancement more pronounced, as the proportion of operations outside of computation increases. +When comparing PyTorch 2.0 and PyTorch 2.1, we observed varying degrees of performance improvement on Windows CPU. The extent of performance improvement becomes more pronounced as the number of memory allocation operations called in a workload increases. A more powerful CPU computing capability will also make this performance enhancement more pronounced, as the proportion of operations outside of computation increases. -This performance enhancement to a certain extent helps to bridge the PyTorch CPU performance gap between Windows and Linux. Intel will continue to collaborate with Meta, dedicated to enhancing the performance of PyTorch on CPUs! +To a certain extent, this performance enhancement helps to bridge the PyTorch CPU performance gap between Windows and Linux. Intel will continue to collaborate with Meta, enhance the performance of PyTorch on CPUs. ## ACKNOWLEDGMENTS -The results presented in this blog post was achieved through the collaborative effort of the Intel PyTorch team and Meta. We would like to express our sincere gratitude to [Xu Han](https://github.com/xuhancn), [Jiong Gong](https://github.com/jgong5), [Mingfei Ma](https://github.com/mingfeima), [Haozhe Zhu](https://github.com/zhuhaozhe), [Chuanqi Wang](https://github.com/chuanqi129), [Guobing Chen](https://github.com/Guobing-Chen), [Eikan Wang](https://github.com/EikanWang). Their expertise and dedication have been instrumental in achieving the optimizations and performance improvements discussed here. Thanks to [Jiachen Pu](https://github.com/peterjc123) for his participation in the issue discussion and suggesting the use of [mimalloc](https://github.com/microsoft/mimalloc). We'd also like to express our gratitude to Microsoft for providing such an easily integrated and performant mallocation library. Finally we want to thank [Jing Xu](https://github.com/jingxu10) and [Weizhuo Zhang](https://github.com/WeizhuoZhang-intel) for their contributions to this blog. - +The results presented in this blog post was achieved through the collaborative effort of the Intel PyTorch team and Meta. We would like to express our sincere gratitude to [Xu Han](https://github.com/xuhancn), [Jiong Gong](https://github.com/jgong5), [Mingfei Ma](https://github.com/mingfeima), [Haozhe Zhu](https://github.com/zhuhaozhe), [Chuanqi Wang](https://github.com/chuanqi129), [Guobing Chen](https://github.com/Guobing-Chen) and [Eikan Wang](https://github.com/EikanWang). Their expertise and dedication have been instrumental in achieving the optimizations and performance improvements discussed here. Thanks to [Jiachen Pu](https://github.com/peterjc123) for his participation in the issue discussion and suggesting the use of [mimalloc](https://github.com/microsoft/mimalloc). We'd also like to express our gratitude to Microsoft for providing such an easily integrated and performant mallocation library. Finally we want to thank [Jing Xu](https://github.com/jingxu10), [Weizhuo Zhang](https://github.com/WeizhuoZhang-intel) and [Zhaoqiong Zheng](https://github.com/ZhaoqiongZ) for their contributions to this blog. -## Notices and Disclaimers - -Performance varies by use, configuration and other factors. Learn more on the [Performance Index site](https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/). -Performance results are based on testing as of dates shown in configurations and may not reflect all publicly available updates. See backup for configuration details. No product or component can be absolutely secure. - -Your costs and results may vary. - -### Configurations +### Product and Performance Information The configurations in the table are collected with [svr-info](https://github.com/intel/svr-info) @@ -99,3 +84,12 @@ The configurations in the table are collected with [svr-info](https://github.com | Frequency Governor | powersave | powersave | | Frequency Driver | intel_pstate | intel_pstate | | Max C-State | 9 | 9 | + + +## Notices and Disclaimers + +Performance varies by use, configuration and other factors. Learn more on the [Performance Index site](https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/). + +Performance results are based on testing as of dates shown in [configurations](#product-and-performance-information) and may not reflect all publicly available updates. See backup for configuration details. No product or component can be absolutely secure. + +Your costs and results may vary. From effec6d46303b129b28535cad7e3561c131a8589 Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Wed, 12 Jun 2024 11:48:03 +0800 Subject: [PATCH 16/19] Update 2024-05-21-perfboost-windows-cpu.md --- _posts/2024-05-21-perfboost-windows-cpu.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index 0d31720490ec..a743d159149b 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -29,7 +29,7 @@ As shown in the graphs, we see that PyTorch's performance on Windows CPUs can si ## HOW TO TAKE ADVANTAGE OF THE OPTIMIZATIONS -Install PyTorch version 2.1 or higher using the Windows CPU wheel from the official repository, and you may automatically experience a performance boost. +Install PyTorch version 2.1 or higher on Windows CPU from the [official repository](https://pytorch.org/get-started/locally/), and you may automatically experience a performance boost. ## CONCLUSION @@ -90,6 +90,4 @@ The configurations in the table are collected with [svr-info](https://github.com Performance varies by use, configuration and other factors. Learn more on the [Performance Index site](https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/). -Performance results are based on testing as of dates shown in [configurations](#product-and-performance-information) and may not reflect all publicly available updates. See backup for configuration details. No product or component can be absolutely secure. - -Your costs and results may vary. +Performance results are based on testing as of dates shown in [configurations](#product-and-performance-information) and may not reflect all publicly available updates. See backup for configuration details. No product or component can be absolutely secure. Your costs and results may vary. Intel technologies may require enabled hardware, software or service activation. From dd2d127539578a8147bfcc674d677815e95d74dc Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Thu, 13 Jun 2024 10:04:41 +0800 Subject: [PATCH 17/19] Update 2024-05-21-perfboost-windows-cpu.md --- _posts/2024-05-21-perfboost-windows-cpu.md | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index a743d159149b..0649c66101ac 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -6,7 +6,7 @@ author: Intel Corporation The challenge of PyTorch's lower CPU performance on Windows compared to Linux has been a significant issue. There are multiple factors leading to this performance disparity. Through our investigation, we've identified one of the primary reasons for poor CPU performance on Windows, which is linked to the Windows default malloc memory allocator. -In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, when compared to the malloc used in PyTorch Linux version 2.0, significantly increases the time for memory allocation, resulting in decreased performance. We replaced the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with PyTorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs as shown below in Figure 1. +In version 2.0, PyTorch on Windows with CPU directly utilizes the default malloc mechanism of Windows, when it is compared to the malloc used in PyTorch Linux version 2.0, it significantly increases the time for memory allocation, which results in decreased performance. We replaced the original Windows malloc mechanism, which PyTorch automatically calls, with another well-known malloc library developed by Microsoft, known as mimalloc. This replacement of malloc has already been released with PyTorch v2.1 and can significantly improve PyTorch's performance on Windows CPUs as shown below in Figure 1. ![Windows PC Performance Improvement](/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png){:style="width:100%;"} @@ -16,6 +16,9 @@ From this graph, we see that PyTorch 2.1 on Windows CPU shows significant perfor On a high-performance CPU, memory allocation becomes a performance bottleneck. This is also why addressing this issue has led to such significant performance improvements. +As shown in the graphs below, we see that PyTorch's performance on Windows CPUs can significantly be improved. However, there is still a noticeable gap when compared to its performance on Linux. This can be attributed to several factors, including the fact that malloc has not yet fully reached the performance level of Linux, among other reasons. Intel engineers will continue to collaborate with Meta engineers, to reduce the performance gap of PyTorch between Windows and Linux. + + ![Windows vs Linux Performance on PyTorch 2.0](/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png){:style="width:100%;"} _Figure 2.1: Relative performance of Windows vs Linux with PyTorch version 2.0 (higher is better)._ @@ -24,8 +27,6 @@ _Figure 2.1: Relative performance of Windows vs Linux with PyTorch version 2.0 ( _Figure 2.2: Relative performance of Windows vs Linux with PyTorch version 2.1 (higher is better)._ -As shown in the graphs, we see that PyTorch's performance on Windows CPUs can significantly be improved. However, there is still a noticeable gap when compared to its performance on Linux. This can be attributed to several factors, including the fact that malloc has not yet fully reached the performance level of Linux, among other reasons. Intel engineers will continue to collaborate with Meta engineers, to reduce the performance gap of PyTorch between Windows and Linux. - ## HOW TO TAKE ADVANTAGE OF THE OPTIMIZATIONS @@ -34,18 +35,27 @@ Install PyTorch version 2.1 or higher on Windows CPU from the [official reposito ## CONCLUSION -When comparing PyTorch 2.0 and PyTorch 2.1, we observed varying degrees of performance improvement on Windows CPU. The extent of performance improvement becomes more pronounced as the number of memory allocation operations called in a workload increases. A more powerful CPU computing capability will also make this performance enhancement more pronounced, as the proportion of operations outside of computation increases. +When comparing PyTorch 2.0 and PyTorch 2.1, we observed varying degrees of performance improvement on Windows CPU. The extent of performance improvement becomes more pronounced as the number of memory allocation operations called within a workload increases. A more powerful CPU computing capability will also make this performance enhancement more pronounced, as the proportion of operations outside of computation increases. To a certain extent, this performance enhancement helps to bridge the PyTorch CPU performance gap between Windows and Linux. Intel will continue to collaborate with Meta, enhance the performance of PyTorch on CPUs. ## ACKNOWLEDGMENTS -The results presented in this blog post was achieved through the collaborative effort of the Intel PyTorch team and Meta. We would like to express our sincere gratitude to [Xu Han](https://github.com/xuhancn), [Jiong Gong](https://github.com/jgong5), [Mingfei Ma](https://github.com/mingfeima), [Haozhe Zhu](https://github.com/zhuhaozhe), [Chuanqi Wang](https://github.com/chuanqi129), [Guobing Chen](https://github.com/Guobing-Chen) and [Eikan Wang](https://github.com/EikanWang). Their expertise and dedication have been instrumental in achieving the optimizations and performance improvements discussed here. Thanks to [Jiachen Pu](https://github.com/peterjc123) for his participation in the issue discussion and suggesting the use of [mimalloc](https://github.com/microsoft/mimalloc). We'd also like to express our gratitude to Microsoft for providing such an easily integrated and performant mallocation library. Finally we want to thank [Jing Xu](https://github.com/jingxu10), [Weizhuo Zhang](https://github.com/WeizhuoZhang-intel) and [Zhaoqiong Zheng](https://github.com/ZhaoqiongZ) for their contributions to this blog. +The results presented in this blog post was achieved through the collaborative effort of the Intel PyTorch team and Meta. We would like to express our sincere gratitude to [Xu Han](https://github.com/xuhancn), [Jiong Gong](https://github.com/jgong5), [Mingfei Ma](https://github.com/mingfeima), [Haozhe Zhu](https://github.com/zhuhaozhe), [Chuanqi Wang](https://github.com/chuanqi129), [Guobing Chen](https://github.com/Guobing-Chen) and [Eikan Wang](https://github.com/EikanWang). Their expertise and dedication have been instrumental in achieving the optimizations and performance improvements discussed here. Thanks to [Jiachen Pu](https://github.com/peterjc123) from community for his participation in the issue discussion and suggesting the use of [mimalloc](https://github.com/microsoft/mimalloc). We'd also like to express our gratitude to Microsoft for providing such an easily integrated and performant mallocation library. Finally we want to thank [Jing Xu](https://github.com/jingxu10), [Weizhuo Zhang](https://github.com/WeizhuoZhang-intel) and [Zhaoqiong Zheng](https://github.com/ZhaoqiongZ) for their contributions to this blog. + + +## Notices and Disclaimers + +Performance varies by use, configuration and other factors. Learn more on the [Performance Index site](https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/). + +Performance results are based on testing as of dates shown in [configurations](#product-and-performance-information) and may not reflect all publicly available updates. See backup for configuration details. No product or component can be absolutely secure. Your costs and results may vary. Intel technologies may require enabled hardware, software or service activation. + +Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others. ### Product and Performance Information -The configurations in the table are collected with [svr-info](https://github.com/intel/svr-info) +The configurations in the table are collected with [svr-info](https://github.com/intel/svr-info). Test by Intel on April 15, 2024. | Specification | Configuration1 | Configuration2 | @@ -86,8 +96,6 @@ The configurations in the table are collected with [svr-info](https://github.com | Max C-State | 9 | 9 | -## Notices and Disclaimers -Performance varies by use, configuration and other factors. Learn more on the [Performance Index site](https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/). -Performance results are based on testing as of dates shown in [configurations](#product-and-performance-information) and may not reflect all publicly available updates. See backup for configuration details. No product or component can be absolutely secure. Your costs and results may vary. Intel technologies may require enabled hardware, software or service activation. + From 2c3742d548faefd6c94de2a4d3c307aa9c9e1e7c Mon Sep 17 00:00:00 2001 From: ZhaoqiongZ <106125927+ZhaoqiongZ@users.noreply.github.com> Date: Thu, 13 Jun 2024 10:05:52 +0800 Subject: [PATCH 18/19] Update 2024-05-21-perfboost-windows-cpu.md --- _posts/2024-05-21-perfboost-windows-cpu.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/_posts/2024-05-21-perfboost-windows-cpu.md b/_posts/2024-05-21-perfboost-windows-cpu.md index 0649c66101ac..7a0b8bf51825 100644 --- a/_posts/2024-05-21-perfboost-windows-cpu.md +++ b/_posts/2024-05-21-perfboost-windows-cpu.md @@ -44,15 +44,6 @@ To a certain extent, this performance enhancement helps to bridge the PyTorch CP The results presented in this blog post was achieved through the collaborative effort of the Intel PyTorch team and Meta. We would like to express our sincere gratitude to [Xu Han](https://github.com/xuhancn), [Jiong Gong](https://github.com/jgong5), [Mingfei Ma](https://github.com/mingfeima), [Haozhe Zhu](https://github.com/zhuhaozhe), [Chuanqi Wang](https://github.com/chuanqi129), [Guobing Chen](https://github.com/Guobing-Chen) and [Eikan Wang](https://github.com/EikanWang). Their expertise and dedication have been instrumental in achieving the optimizations and performance improvements discussed here. Thanks to [Jiachen Pu](https://github.com/peterjc123) from community for his participation in the issue discussion and suggesting the use of [mimalloc](https://github.com/microsoft/mimalloc). We'd also like to express our gratitude to Microsoft for providing such an easily integrated and performant mallocation library. Finally we want to thank [Jing Xu](https://github.com/jingxu10), [Weizhuo Zhang](https://github.com/WeizhuoZhang-intel) and [Zhaoqiong Zheng](https://github.com/ZhaoqiongZ) for their contributions to this blog. -## Notices and Disclaimers - -Performance varies by use, configuration and other factors. Learn more on the [Performance Index site](https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/). - -Performance results are based on testing as of dates shown in [configurations](#product-and-performance-information) and may not reflect all publicly available updates. See backup for configuration details. No product or component can be absolutely secure. Your costs and results may vary. Intel technologies may require enabled hardware, software or service activation. - -Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others. - - ### Product and Performance Information The configurations in the table are collected with [svr-info](https://github.com/intel/svr-info). Test by Intel on April 15, 2024. @@ -97,5 +88,11 @@ The configurations in the table are collected with [svr-info](https://github.com +## Notices and Disclaimers + +Performance varies by use, configuration and other factors. Learn more on the [Performance Index site](https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/). +Performance results are based on testing as of dates shown in [configurations](#product-and-performance-information) and may not reflect all publicly available updates. See backup for configuration details. No product or component can be absolutely secure. Your costs and results may vary. Intel technologies may require enabled hardware, software or service activation. + +Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others. From 0d25e501755f8bd9923a164517c6da41fbf8cde3 Mon Sep 17 00:00:00 2001 From: "Zheng, Zhaoqiong" Date: Thu, 13 Jun 2024 20:52:16 +0800 Subject: [PATCH 19/19] fix the graphs --- .../pytorch_20_win_linux.png | Bin 43567 -> 43889 bytes .../pytorch_21_win_linux.png | Bin 41229 -> 41524 bytes .../windows_compare.png | Bin 51989 -> 52853 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png b/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_20_win_linux.png index 526ab45588e82d58c8bf437c2ce1fc8894f650e3..4ea6736b8a2e1afc5c51dc6b83d2e21a355193e4 100644 GIT binary patch literal 43889 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 diff --git a/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png b/assets/images/2024-05-21-perfboost-windows-cpu/pytorch_21_win_linux.png index bcaa14a873043390653d0e328719c50bf999c32f..56e7d53e6d8c39b2dff5f5549d448ef83e3f6d5c 100644 GIT binary patch literal 41524 zcmeFYXH-+$|2K%&!c|mkfQo=hQ)w!pm#DN$7m?n3XrYH5t|BTRARsLW!L67 z@VA7=T2EDmhlhuThKNMs$jAur^WW>ig9pmqUsY68R8>_qG&D3dHMO*~baZs|^z@!Q zd7`hcZxq&U3|xP9n3$NDg?F0+*NYwt3kyq2OFKI|dwY9FM@I+*;_U3~;^N}!>I#KI zJv}{rfGfG*&(9AAg9QWx1O^5M1qFqKguvnOu&}V_&!2~fhrf97A|jLc`t|FmsHit@ z-o(Vj#Ky+Hefu^(K0YBK;oZA;Nl8h`$;qjysR#rDg+gUyWPJGW0gXm~`t&I)D=RxY zJ0~Y6KR>^qprELzsHCK%w6wImyu7lqvZ|`8y1Kfqt`392)YsQHG&Eqb*e_qcG&MCf zH#fJmw6wLgwf78lbaZrfc6N7n~Yy1u@?y}iA&v$MA}b8v9b^??2fu-5OsPjvMEuntHbpWWOq2(gF; zK0E38hlvjp)BP`p|Bl?UHzhGKec(`6e)u%NlC~EeEM!zS?w{T{-E15yaJ70u>j6L2 zv!7RBr2n;yBi?5A@o38}vy!yOAA?gtTzYE{#c8RbJ%l%Nu_4WiN;h_~^de1z!a6il zf$acG2pG>xdvxSj-n>O6+)rr&zfT?C7hz(${5p(ru;z3S%X5s0>FDy(ei{$3uyAYi zHX9Su>E8&anZA5DhXZa;{m<<=+(Hdf$HQ`WSu!xqLOZ9Q;2_9JQ#IZ=8w%@Y|RLM7q zR*(6%bh^K-clb_~EW$ygqo5?T5w2Ob$M_0M=eN^J5D`FjWuNt;tukC~%w;NmEq z;=S-M^a0nis z*t5{vjp0Jel;8;0sGFBDg5Bv9V=O<7q+9e8He{5F*-Ml=_=-3?#?Tf>9CIhTE?VE~ zp~{iB)UGh}ro2h=;!|;Bo^M`)-b3J8y=usC;-tYrb!VS!qE;nx^v#|j)vE7QJbF;Gd2 z=TV~fAJ-NPJp?gV$soo~xR9IfBL_9B_zbhVMvL>e&mu*(i z%)z5|H<47mu2K&hNBAw|o2%Rx1tSNSGxt?GsI5@=)7VlhMno}yEQDNa-}jYtX!gxyvF zcYe|ljGpMNpZnPb*5KQ7S$T2``Kj}`(qGd;KfWm^Hr$I#tK0okBh zQNOaw6gzs+esj?aIjBg~czV^)-S%CL^~dP#4z2dcFzaF3ht`XRJh&*8SVz~é{ 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�DP7$gPmG-G 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 literal 41229 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 cn6NNEL~{qz%uZIVM(5VrCjGmzDy_0-XQ- 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 diff --git a/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png b/assets/images/2024-05-21-perfboost-windows-cpu/windows_compare.png index a107c7fe940e401d9010bee113704e2bae592fbf..cf999fdac5304f7faf37008edcaed3d95b2ea5b3 100644 GIT binary patch literal 52853 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%0DbmO{IU(k)6Xxk;PX4X)rVHP`6rlmiJ7 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 KLgD$_kN*uRQLumj literal 51989 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 f