Tips & Tricks
Adam Listek

As an IT specialist with over 20 years in the industry, I work hard to stay up to date on new and emerging technologies. Having worked in diverse fields from healthcare to higher education, I love new challenges and creating in-depth content to share with the world!

RDM on Windows ARM: A Story of Power Efficiency and Speed

Summary

Starting in Windows RDM version 2022.3.14.0, ARM is an officially supported architecture. Discover the history of Windows on ARM, why RDM on ARM is important, and the future of ARM computing!

For many Windows-based organizations, moving devices to a fully x64 architecture was challenging. Until recently, x64 was the de facto standard. The ARM architecture was generally considered only for mobile, IoT, and hobbyist devices. But with the arrival of ARM64 (also known as AArch64) in 2011, practical ARM-based systems looked possible. So… what does an ARM desktop or laptop have to offer an organization?

One promise of ARM has always been the power-saving and performance potential over an x64 infrastructure. ARM has a RISC (reduced instruction set computer) architecture, unlike x64, which has a CISC (complex instruction set computer) architecture. Instead of executing a single complex instruction over several clock cycles, such as multiplying, ARM breaks that same command into simpler operations, taking one clock cycle each. Thus, fewer transistors are needed, and less power is consumed.

What does ARM support mean for Remote Desktop Manager?

As of Windows RDM version 2022.3.14.0, released in November of 2022, ARM64 is an officially supported architecture. If working via emulation in Windows on ARM is not your thing, you’ll be happy to know that RDM now runs as a native ARM64 application. This means performance and power consumption are improved in your day-to-day workloads with ARM devices!

RDM has supported ARM64 Apple Silicone M1/M2 chips for our macOS RDM users since October 2021!

Diving Deep into Windows on ARM

Windows on ARM has been a long and, at times, rocky road. First seen in Windows RT in 2012, Windows on ARM failed to make a dent. Application support was lacking, with the inability to run traditional Win32 applications. Several years later, after the failure of Windows RT, Windows on ARM re-emerged with the ability to run any Win32 application alongside native ARM applications.

Finally, the future of Windows on ARM seemed to arrive! … Except for the fact that performance suffered due to emulation, especially in some earlier models with lower-performing ARM chipsets. But things have improved. Today, major PC manufacturers have started offering ARM chips, such as the Lenovo ThinkPad X13s.

The Emulation Problem

Does that mean all of the performance problems are in the past? Unfortunately not. Although speed gains in the ARM chips offset emulation's performance cost, non-native ARM applications run slower. At Devolutions, we faced two problems:

  • Compiling RDM in .NET for native ARM support
  • Updating in-house, open-source, and third-party libraries for ARM compatibility

Because RDM is built on .NET, binaries are subject to just-in-time (JIT) compilation at run-time. JIT compilation already has a performance cost, but a second JIT compilation occurs with ARM emulation, referred to as the “double-JIT” problem. Starting with .NET 4.8.1, Microsoft allowed targeting compilation for ARM processors. Now, RDM itself can run as a native ARM application!

For the developers out there, .NET 4.8.1 ARM applications still run in Intel emulation mode by default. An extensive investigation led us to find an undocumented registry key forcing native ARM execution. All in the pursuit of performance!

Unfortunately, quite a few libraries comprise RDM, and all needed to be made ARM-compatible to avoid the “double-JIT” problem. At Devolutions, we spent significant time preparing our in-house libraries for ARM. For those open-source and third-party libraries in use, we worked on updating where possible and curating those with native ARM support.

The result is that RDM runs as a native ARM application with all of the performance and power-saving benefits that it implies. Coming later to RDM is the port to .NET 6 with its vastly improved performance, not only for ARM!

The Future of Windows on ARM with ARMv9

Current Windows on ARM systems use the ARMv8 revision of ARM64 chipsets, such as the Snapdragon 8cx Gen 3 processor used in the Lenovo ThinkPad X13s. The ARMv9 revision offers new security features such as Confidential Compute Architecture (CCA) and performance enhancements such as the SVE2 architecture extensions. The next generation Qualcomm Snapdragon 8cx Gen 4 processor potentially appears ready to go toe-to-toe with Apple M1 and shows a bright future for ARM devices!

Where does RDM go from here?

With the industry moving towards ARM processors, RDM is ARMed and ready for the future. Future improvements to both Windows on ARM support and RDM itself will continue to close the performance gap and offer increasing power-saving gains. The road may have been long, but RDM combined with Windows on ARM ushers in new possibilities across the entire organization!

Related Posts

Read more Tips & Tricks posts