This article is reprinted from the Jishu CommunityJishu Column: Arm Software DevelopersAuthor:Przemyslaw WirkusSource:https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/announcing-windowsperfThe Windows on Arm ecosystem continues to grow.Microsoft recently announced the official launch of Azure virtual machines, which use Ampere Altra Arm-based processors (https://azure.microsoft.com/en-us/blog/azure-virtual-machines-with-ampere-altra-arm-based-processors-generally-available/).Windows Dev Kit 2023 (known as Project Volterra https://blogs.windows.com/windowsdeveloper/2022/10/24/available-today-windows-dev-kit-2023-aka-project-volterra/) allows developers to bring application development for Windows on Arm to functional Windows on Arm devices. The Surface Pro 9 combines performance and battery life based on the Microsoft SQ 3 processor.Now is a great time to become an Arm developer. We are seeing more and more applications not only running on Arm-based platforms but doing so with market-leading performance and power efficiency. Unlocking exceptional application performance on Arm is becoming more necessary than ever!We are committed to developing performance analysis methodologies (https://community.arm.com/arm-community-blogs/b/tools-software-ides-blog/posts/arm-neoverse-n1-performance-analysis-methodology) that help developers get the most out of Arm-based platforms. This includes tools that support both Windows and Linux, such as Linux perf and the Arm Streamline Performance Analyzer (https://developer.arm.com/Tools%20and%20Software/Streamline%20Performance%20Analyzer).In this blog, we are excited to introduce WindowsPerf; an open-source performance analysis tool that we are collaborating on with Microsoft and Linaro’s Windows on Arm project (https://www.linaro.org/windows-on-arm/).“With the launch of Windows Dev Kit 2023, the release of Surface Pro 9 5G, and the release of Visual Studio 2022 17.4 with full support for the Arm64 version, the momentum for Windows on Arm continues to grow. The community-led WindowsPerf project is an important addition to the toolkit that provides developers with the best experience for Windows on Arm,” said Marcus Perryman, Chief Engineer of the Microsoft Windows team.“The open-source Arm ecosystem continues to adopt the Windows platform, and a year after its enabling, Linaro’s focus is starting to address application performance issues. The WPERF project is another example of collaboration aimed at meeting the demand for performance analysis tools, where developers can get the most out of the platform,” said Mike Holmes, Chair of the Linaro Windows group and Director of Performance and Support at Linaro.
What is WindowsPerf?
WindowsPerf aims to be similar to Linux perf. The project consists of two parts: a kernel-mode driver and a user-space command-line tool. The command-line tool adopts the same style as the Linux perf command line.Currently, WindowsPerf is in the early stages of development but already supports a counting model for obtaining the total number of occurrences of specific events. Soon, we will support a sampling model to determine the frequency of events occurring at the function, basic block, and instruction levels.WindowsPerf can detect Arm CPU performance counters. So far, it can collect:. All or specified CPU core core PMU counters.. UnCore PMU counters, now supporting system cache (DSU-520) and DRAM (DMC-620).This command-line tool allows users to leverage event grouping, event multiplexing, and timeline modes.
How to Obtain and Use It?
You can find WindowsPerf on Linaro Gitlab:https://gitlab.com/Linaro/WindowsPerf/windowsperfor visit our Wiki:https://linaro.atlassian.net/wiki/spaces/WPERF/overviewYou can now count events on WoA machines. Use the wperf-list command to display a list of available predefined events. You can specify up to 127 events, and wperf will multiplex them as follows.
WindowsPerf multiplexing code output for event counting
In this example, events are counted using predefined metrics.For detailed usage examples, please visit our GitLab site.
Call to Action
We are excited to seed the WindowsPerf community and hope that over time we can build the capabilities of this tool to provide developers with everything they need to achieve exceptional performance. This includes a variety of tools, languages, and runtimes supported on Windows on Arm.You can help us improve WindowsPerf by trying the tool on your WoA machine, reporting bugs, suggesting improvements, or contributing directly to the project’s documentation or code. We want to be as transparent as possible, which is why we are sharing Jira information with everyone.Feel free to visit the GitLab page (https://gitlab.com/Linaro/WindowsPerf/windowsperf) for project documentation, source code, details on how to build the project, contribution processes, and more.
Copyright belongs to the original author. If there is any infringement, please contact for deletion.
END
关于安芯教育
安芯教育是聚焦AIoT(人工智能+物联网)的创新教育平台,提供从中小学到高等院校的贯通式AIoT教育解决方案。
安芯教育依托Arm技术,开发了ASC(Arm智能互联)课程及人才培养体系。已广泛应用于高等院校产学研合作及中小学STEM教育,致力于为学校和企业培养适应时代需求的智能互联领域人才。