Developer Access through Total Compute – Innovation blog – Innovation – Arm Community

In my first blog about Total Compute, I discussed how this new approach would accelerate . This is being achieved through a solutions-based approach across the entire SoC focusing on digital immersion use-cases and experiences on mobile devices. These are made possible by the 8.9 million apps created by 24 million developers worldwide, leading to global app downloads of 204 billion.

This leads neatly into the second key feature of Total Compute – something we are calling developer access. There are two end goals to developer access. Firstly, creating the easiest and most efficient way for developers to build their applications, saving them costs and creating a quicker time-to-market. Secondly, designing and delivering technologies that enable developers to access high performance that can be deployed across multiple platforms to create the most exciting, engaging and immersive applications. 

Support for Arm technologies throughout the ecosystem

One current challenge for those in the Arm ecosystem is the need to learn different tools that are optimized for each technology or the various components on the SoC. Total Compute ensures that the features in Arm’s technologies are supported and exposed throughout the software ecosystem. This means that it is not just the CPU that is easy to program for. We are providing developers with frameworks for programming, debugging and analyzing across all our IP – CPU, GPU, and NPU. The effective delivery of this component is a key part of the Total Compute journey and its overall success.

We are also working with third parties to ensure that our technologies are well supported in tools and software and then developing our own tools to address any gaps that exist in the ecosystem. This provides a consistent developer experience, with tools that are supported throughout the entire Arm ecosystem.

The improved access to greater performance through technologies, software, and tools helps developers build more complex, performant, and immersive applications. For example, these could be applications that provide more complex and advanced gaming, XR (augmented reality (AR), virtual reality (VR)) and artificial intelligence (AI) use-cases.

In addition, the tools and software provide developers with deeper system-level insights – some of which are not available to view today – within their own or preferred development environments. This helps to unblock any issues in the development process and enables greater system efficiency. 

Arm Mobile Studio Arm Mobile Studio

Investing in tools, software and education

Arm is already improving the lives of developers through investing in tools, software, and education. Performance analysis is one great example of this in action. This allows developers to understand how different workloads function across the different technologies and identifies where the different bottlenecks occur within the system. Performance Advisor is a new Arm tool that generates easy-to-read performance analysis reports. This is based on the rich technical performance data gathered from platforms with Arm CPUs and Mali GPUs. Performance Advisor is part of Arm Mobile Studio 2020, an Arm product that offers the deepest insights across all of Arm’s technologies on Android devices. Recently, we have extended this support to our range of Ethos NPUs.

We also have software frameworks and compute libraries to improve performance across different compute domains. Arm NN is a great example of one such software framework. It is a common API which maximizes machine learning (ML) programmability across all Arm IP. Our performance analysis shows that Arm NN leads to performance uplifts across all compute functions – big Cortex-A CPU, LITTLE Cortex-A CPU, Mali GPU and Ethos NPU. Arm NN is being increasingly used by developers looking to make ML improvements across their applications. Meanwhile, the Arm Compute Library has a repository of low-level optimized software functions for Cortex-A CPUs (using Neon) and Mali GPUs (using OpenCL and OpenGLES Compute). These can be used by developers to accelerate the performance of applications. Alongside performance, the library reduces cost and effort for developers targeting ML features in their applications.

While our vendor tools and software frameworks offer a detailed view across the complete mobile system, we are also bringing our expertise to other tools from partners in the ecosystem. Besides our work with Unity, Arm is a launch partner of Google’s new Android GPU Inspector (AGI). This is a recently launched tool designed to help game studios squeeze every ounce of performance from GPUs for more immersive mobile games on Android. With AGI, graphics programmers can visualize the GPU utilization in mobile devices that run on Mali and focus their efforts where it matters the most.

Finally, we are continuing developer engagement around 64-bit. As of August 1 2019, all new apps published on the Google Play Store were required to support 64-bit architectures. For developers, the benefits of 64-bit are substantial. Migrating applications to 64-bit provides performance gains (up to 20 percent for some workloads) and additional security protections. It also enables new more complex workloads, such as advanced artificial intelligence (AI), machine learning (ML) and immersive mobile gaming. In particular, the performance benefits directly affect the user experience. For example, through our partnership with Unity, we were able to run analysis across a range of content on Unity 2018 and saw an overall frame rate uplift ranging from 9.5 to 16.7 percent on 64-bit applications.

While there has been positive progress so far on 64-bit within our developer ecosystem, there is still a long way to go to realize its full potential. Of the 8.9 million apps available worldwide, around 60 percent are available as 64-bit. That means 40 percent of all applications that have yet to fully utilize the benefits of 64-bit.

Mobile gaming Mobile gaming app development

Working with Unity

Beyond tools, we are creating key partnerships to improve developer access to our technologies. The partnership with Unity is a great example of Arm working with partners in the ecosystem to improve the developer experience. We are working with Unity on Burst compilers (a full talk about this work can be found here) and Mali enhancements to the graphics engine. We are also integrating our own performance analysis capabilities with Unity tools to enable a more seamless developer experience and improve Unity performance on Arm’s technologies.

Due to the reach of Unity among game developers, we believe that this partnership is a truly significant development for the mobile ecosystem. The Unity game engine powers more than 50 per cent of 80 per cent of all XR experiences. Therefore, a vast number of gaming applications will not only be brought to market quicker, but also be higher performing and more efficient. Ultimately, this benefits the end-consumer playing their favorite mobile games, using their favorite applications or even creating their own content.

However, we are not just providing support for game developers. While gaming apps are the largest proportion of app categories available to download (around 33 percent of all app categories overall), there is still a significant proportion of apps that are non-gaming. For example, we have been collaborating with Facebook to expand one of the most widely used ML framework capabilities – PyTorch Mobile – beyond the CPU. The combination of the Arm compute platform and PyTorch Mobile enables exciting new ML-based applications on mobile devices. Therefore, developer access looks at how we can deliver improved performance so developers can build content across a broad range of applications and the different categories they cover.

‘Platform of choice’ for developers

Total Compute provides an unprecedented opportunity to bring IP, firmware, software, operating systems and tools together. This will vastly improve the developer experience. Providing developers with improved access to programmability across all compute domains for a seamless developer experience in their own development environment. Accessing greater performance across the range of Arm technologies and software and tools in the ecosystem. Helping developers to bring more immersive, higher performing applications to consumers quicker than ever before. Overall, delivering Total Compute as the platform of choice for all developers.  

Accelerating compute performance and developer access are fundamental to making possible the future digital immersion use-cases and experiences on next-generation devices. However, these will not be possible without a secure foundation. The third Total Compute blog explores the final pillar of security and how it provides security ‘defense in depth’ on devices and across the ecosystem.