Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Tools, Software and IDEs blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Arm Community blogs
Arm Community blogs
Graphics, Gaming, and VR blog Multicore or Multi-pipe GPUs: Easy steps to becoming multi-frag-gasmic
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI and ML blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded blog

  • Graphics, Gaming, and VR blog

  • High Performance Computing (HPC) blog

  • Infrastructure Solutions blog

  • Internet of Things (IoT) blog

  • Operating Systems blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tell us what you think
Tags
  • Mali
  • pipeline
  • multi-core
  • gpu
  • Mali-400
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Multicore or Multi-pipe GPUs: Easy steps to becoming multi-frag-gasmic

Ed Plowman
Ed Plowman
September 11, 2013
3 minute read time.

The ARM Mali-400 MP was the world's first embedded multicore graphics processor (GPU) when it was launched, back in 2008, and Mali-T604 continues that trend. Since then, there have been a number of new GPUs claiming to be multicore and people have asked me lots of questions seeking to quantify what is a "core" versus a "pipeline" and about scalability, so I thought I'd share the answers with a wider audience. My colleague jemdavies has noted before in his blog GPGPU - What is it good for? that the beginning of wisdom is to call things by their correct names. Graphics can sometimes be a very confusing area for jargon, so this is another in a series of blogs Multicore or Multi-pipe GPUs: Easy steps to becoming multi-frag-gasmic in our quest to explain graphics terminology.


Core vs. pipeline: definitions and examples

The difference between a "core" and a "pipeline" is that a "core" is a self-contained entity which has its own self-contained resources such that it can operate independently of other elements. An instruction pipeline in this context shares all or parts of the resource within a "core" between itself and other pipelines. Pipes also only have a very limited capacity to run independent tasks. This definition is common and well established across CPU, GPU, DSP and pretty much any compute element you can name.

Mali-400 MP is a multicore GPU: it contains a vertex processor and up to four fragment processors. The vertex processor is a core and the fragment processors are also cores: they run independently on separate tasks and contain their own critical resources. Within each Mali-400 fragment processor there is one pipeline, however it has a very complex pipeline which has several sub-pipelines to handle different tasks.

Mali-T604 is a multicore GPU, which can contain up to four cores, with each core being able to operate independently and again containing its own critical resources. The tri-pipe architecture in the Mali-T604 means that each core contains three different types of pipelines (four in total): 1x load/store, 1x texture, 2x ALU. Again, the individual pipelines are complex, containing sub-pipes.


Scaling by core gives deterministic performance 

Mali-T604 scales by numbers of cores — that is you can build SoCs with different numbers of cores. (You can also scale dynamically by powering cores up and down.) Some other GPUs choose to scale by pipeline — putting more pipelines within a core. With such a design, the GPU is exposed to the potential of compute limitation due to resource contention. In an environment where you have many pipelines all competing for register, cache and texture fetch resources then you either have to grow the resource to compensate (more registers, bigger cache) or potentially have a core with non-deterministic performance. This phenomenon can be seen in some superscalar CPUs: the addition of a second pipeline, although increasing the compute potential, does not increase the performance by 2x, but some considerably smaller factor due to the contention for resource.
 
Unlike scaling by pipeline, scaling by core is more deterministic as each core yields the given performance level since each core is independent. Adding additional cores increases the potential performance linearly (or very close to linearly). It does not suffer from fundamental resource constraints, as each core has self-contained resource to sustain that performance per core. All this makes scaling by core count much more attractive. By balancing the complexity of the pipeline with "right sized" resources both Mali-400 MP and Mali-T604 have a very compact core size for the performance/feature set they offer. An illustration of this is that Mali-400 MP is half the silicon area of competitor GPUs, but with greater performance.

I hope this clarifies matters. Do you have any further questions?

Anonymous
  • Hessed Choi
    Offline Hessed Choi over 9 years ago
    Ed, this is really useful article for me. Now I came to understand what exactly the multi-core means !!
    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
Graphics, Gaming, and VR blog
  • More speed with Arm Mobile Studio 2023.1

    Julie Gaskin
    Julie Gaskin
    What's new in Arm Mobile Studio? Here's a round-up of the latest improvements we've made to our free profiling tools for Android.
    • May 12, 2023
  • Yet more ASTC compression

    Peter Harris
    Peter Harris
    This blog explains the performance and quality benefits that developers can expect if they switch to the latest astcenc 4.4 compressor release.
    • April 24, 2023
  • Arm Immortalis-G715 Developer Overview

    Peter Harris
    Peter Harris
    The new Arm®︎ Immortalis™︎ -G715 GPU is now available in consumer devices. This blog explores what is new, and how developers can get the best performance out of it.
    • March 20, 2023