In recent years, there has been a significant growth in interest and activity around all things autonomous and the requirements it brings. For Arm, this led to the introduction of the world’s first autonomous class processor with integrated safety, the Cortex-A76AE CPU and since then, the safety and performance requirements of Arm’s AE portfolio have grown. Alongside a new CPU Cortex-A78AE and ISP Mali-C71AE, Arm has brought to market its first high performance GPU with functional safety, Mali-G78AE.
The Mali-G78AE GPU has been designed to address the complex requirements for Human Machine Interfaces and the heterogenous compute needed in autonomous systems. It brings the high performance required to deliver mobile class capabilities whilst supporting automotive and industrial safety standards, helping to meet ASIL B / SIL 2 requirements. With its key new features such as Flexible Partitioning and virtualization, this new GPU enables a wide range of use cases emerging in both the automotive and industrial markets.
The Mali-G78AE GPU offers a new approach for resource allocation with its critical new feature ‘Flexible Partitioning'. This new capability enables GPU resources to be dedicated to different GPU workloads at runtime or boot time and shown to be completely separate from each other. In traditional systems, a GPU is a single large resource which is shared by a range of applications. Scheduling can be handled in hardware, or software, and jobs are deployed onto the GPU to ensure high utilization of GPU cores and to maximize efficiency – either with workloads potentially being mixed together or, in the case of traditional virtualization, resources working through one workload at a time effectively time slicing the GPU.
Though this has worked in the past, it does come with compromises and challenges for system developers. For example, with virtualization there is often the requirement for significant involvement from the hypervisor to manage access to the GPU and memory between competing priorities. It introduces a dependency between safe and non-safe, or time-sensitive and non-time-sensitive workloads that must be managed carefully. If there is a conflict, the hypervisor may need to take drastic action such as terminating a job to ensure the highest priority workload gets done in time, and the wider system needs to be able to handle this gracefully. From the safety and security perspective, this can make things quite hard to clarify and explain in a wider safety case when you have to consider that the same GPU, which might be running compute for driver drowsiness monitoring, is also being used to play games from an app store which may not be secure.
It may also introduce challenges for application developers and integrators. The ultimate goal is always to get the absolute highest performance possible from the silicon platform, and integrators are the ones responsible for managing all of the different developers and applications which might be deployed on a given SoC. In a situation where three companies are all developing applications in parallel for the same GPU resources, all trying to maximize performance, and every change impacts the delicate balance between them, you can see how this could become quite the headache.
Flexible Partitioning is the new feature Arm is bringing to the Mali portfolio to help solve these problems. In the most simplistic terms, Flexible Partitioning enables Mali-G78AE to be split up to look like multiple GPUs within the system – but configurable by software, and even modifiable at runtime. So what does this look like?
The above example is a 12core Mali-G78AE, showing one, two and three partitions. Mali-G78AE can have up to 4 dedicated partitions for workload separation, giving a significant amount of flexibility to partners for their different applications and use cases. Partitions in Mali-G78AE are truly separated, and can be individually powered up and down and reset, and also have separate memory interfaces for transactions – enabling full separation at all levels between workloads. This enables safety related workloads to have their own dedicated partitions with no contention for GPU resources and assured performance on-demand. For non-safe workloads, it means developers can simply optimize for maximum performance within a known partition size without needing to worry about complexity of workload or how it might impact the safety related workloads.
In automotive systems specifically, it is increasingly common to have multiple operating systems running on the same SoC. Often this will include a safety critical Real Time Operating System (RTOS), alongside Linux and Android. The performance needs of each of these might vary from one vehicle to another within a car manufacturers range, for example sports cars with fewer screens might allocate more performance to highly complex 3D instrument clusters while SUVs with more screens might allocate more performance to uses like rear seat entertainment. With Flexible Partitioning, changing partitions is straightforward through software, enabling the same SoC to be quickly and easily tuned for different end applications.
Another major benefit of Mali-G78AE is the scalability of it that goes along with Flexible Partitioning. Mali-G78AE scales from one shader core, the fundamental building block of Mali GPUs, to 24 shader cores, providing a very high performance compute element. In Mali-G78AE, with the new architecture, this means scaling from one slice with one shader core up to 8 slices, each with 3 shader cores. Each slice comes with independent memory interfaces, job control and L2 cache to ensure complete separation for safety and security – and the slices can be grouped together in up to 4 partitions, configurable in software. There are no limits on the partition sizes either; Mali-G78AE can be configured as one large partition with 8 slices and 24 shader cores or in 4 smaller partitions, sized according to workload needs. Adding this capability, including safety, comes at a minimal area cost – less than 10% for typical configurations.
In some software architectures, or workloads, it may not be necessary to dedicate resources to a given application or Virtual Machine (VM). That could be because it isn’t always on, or is less time-sensitive, and for those cases Mali-G78AE also includes dedicated hardware virtualization as well, meaning that the GPU as whole, or each individual partition, can be virtualized between multiple VMs.
For the future of autonomy, it is crucial to be able to meet the safety requirements of these complex systems. To achieve that, Mali-G78AE is developed to Arm’s rigorous functional safety systematic flows and processes, fulfilling ASIL D systematic design process and enabling ASIL B diagnostic coverage. Mali-G78AE includes a number of hardware safety mechanisms in the design to achieve this, including lock-step, Built-in Self Test, interface parity, isolation checks and read-only memory protection. Taking this a step further, it is possible to use safety mechanisms on some partitions and not others to provide greater flexibility to system designers.
To ensure that safety is provided for the whole system, Arm has worked with our ecosystem partner CoreAVI to bring safety to the GPU software ecosystem, developed to target ASIL D. This functional safety suite provides drivers for the latest released safety critical APIs, OpenGL SC 1.0 and 2.0, and goes even further with a safety critical implementation of Vulkan to enable developers to utilize the latest API features and unlock even higher performance.
Combined with its leading software ecosystem, Arm has invested significantly to simplify and accelerate the entire development cycle for projects based on the new Mali-G78AE. Arm’s suite of developer tools for GPU graphics and compute are being extended to help application developers and integrators get the best of Mali-G78AE in every scenario, including optimizing resource partitioning with Arm Streamline or tracking graphics performance metrics using easy-to-understand reports of Arm Performance Advisor in both interactive and continuous integration modes.
Autonomy is going to bring a huge range of new capabilities, some of which we know of, and some innovations we’re yet to see, and Arm is excited to help enable this innovation in the industry. Mali-G78AE adds a significant new compute element to this toolbox enabling complex visualization capabilities in a safe manner, whilst also providing an extremely high performance compute element for those use cases where compute performance really matters. Join us on this exciting journey, and visit our product page to learn more.
Learn more about Mali-G78AE