To truly fuel the new IoT economy, barriers to entry must be lower for everyone – OEMs, silicon designers, and software developers across the value chain. However, new requirements such as connectivity, security updates, and the rapid evolution of machine learning (ML) has resulted in a steep increase in the software development complexity, as shown in image 1.
Image 1: A steep increase in the complexity of software development due to connectivity, security, and machine learning
In a rich operating system such as Linux or Windows, most complex functionalities such as security and over-the-air updates are addressed at the OS level and abstracted from the application running on it. However, for embedded development the abstraction between application and OS is not as delineated. Software engineers are required to manually integrate libraries from different vendors and resolve potential incompatibilities with the hardware they are working on. This problem manifests when security flaws are found, or when machine learning models are refreshed and must be deployed at scale across the fleet of devices in the field.
When enabling devices with intelligence and connectivity, developers must consider a very different type of development flow. The development environment needs a close integration with cloud services for data collection and training and deployment of machine learning models to the edge.
As shown in image 2, data stored in the cloud is used for the training of the Neural Network. The network models must go through a process of optimizations, such as pruning and quantization to reduce its size to fit the constraints of the edge devices. The network model then must be integrated with the rest of the software, patched in a binary image, and finally, deployed to the fleet of devices.
The devices in the field must be monitored and additional data might be collected to improve the performance and quality of the machine learning model. As shown in image 2, development practices for connected, intelligent devices are complex, involving many new, varying stages of development compared to traditional embedded development.
Image 2: Difference in software development complexity from traditional embedded development to the intelligent edge software development flow
The intelligent, connected endpoint requires a more modern development flow, a new paradigm which delivers flexibility, simplicity, and the opportunity for rapid IoT device development.
Faster time-to-market for rapid IoT growth
From ML training to over-the-air updates, data collection and device management, cloud-based technologies enable developers to build, manage, and run software in a modern and dynamic environment.
Today, Arm is announcing Arm Virtual Hardware, a simple and scalable way to remove dependency from hardware and unlock cloud-based development. It is an evolution of Arm’s robust modelling technology delivering functionally accurate models of Arm-based SoCs for application developers to build and test software before and after silicon and hardware availability. It runs as an application in the cloud including simulation of memory and peripherals, removing the complexity of building and configuring board farms for testing. Arm Virtual Hardware enables developers to take advantage of modern software development practices such as Continuous Integration (CI) and DevOps/MLOps.
Arm Virtual Hardware is available as a public beta and is part of Arm’s new Total Solutions for IoT initiative – a new approach to IoT design. The beta is available today for multiple configurations of the Arm Corstone-300 subsystem from Arm SoC partners, incorporating the Cortex-M55 CPU and Ethos-U55 uNPU.
Arm Virtual Hardware can significantly improve your software development experience. Developers can run and scale the CI infrastructure in the cloud with potentially thousands of virtual boards being launched in the cloud in seconds and all the suite of tests running completely in parallel. Say goodbye to broken boards and faulty power suppliers! For data scientists and ML engineers, Arm Virtual Hardware allows you to rapidly experiment and test different machine learning network configurations and optimization tactics directly in the cloud, quicker than with physical hardware.
Arm has more than 15 years of experience developing functionally accurate models of Arm IP for both pre-silicon software development as well EDA verification flows. Arm Virtual Hardware offers instruction accurate simulation directly to IoT and embedded application software developers who can leverage virtual targets for IoT and ML applications. Hear from Arm partners, including TensorFlow Mobile and DSP Concepts on what Arm Virtual Hardware enables for their developers here.
Try it for yourself
Arm Virtual Hardware is available as a public beta on AWS Marketplace for Arm Corstone and Arm Cortex-M processors.