Exclusive Interview with Chief Architect AMD

 

RAJA KODURI

PC.COM interviews Raja Koduri, Senior Vice President and Chief Architect, Radeon Technologies Group at AMD.
  1. a)      What are the key challenges facing Heterogeneous Computing today?

Broader awareness of Heterogeneous Computing and best practice in development. The market talks about CPU vs. GPU or Host and Device and how one device is better than the other. The problem is we need to change the frame of reference to the total system; this is what Heterogeneous Computing is about.

You can have a tightly integrated SOC where the CPU and GPU are on the coherent bus and share a single memory pool. But you can also scale up to larger scale system with a cluster of CPUs and GPU’s communicating on common external I/O bus.

We as an industry need to begin to build tools, libraries, and applications that allow the developer to focus on the developer problem he is interested vs. decomposing his problem so he has key kernels which run through separate toolchains that can exploit the device he is looking to leverage for performance uplift. This shift will make a big difference in developer productivity and class of application you begin to support in heterogeneous computing environments.

AMD

This was one of the reasons we built HCC C++ compiler. It was developed to break down the barriers to broader developer adoption and simplify how a developer approaches these systems while still reserving the performance tuning capacities you had with historical device specific compilers.

  1. b) Do you feel APIs like OpenCL are flexible enough today to make Heterogeneous Computing ubiquitous?

OpenCL is rich C-based language that can solve a broad class of problems. Do we believe there are other ways to give even more control of the GPU to the developer? Yes, we do. For example, when you want even more control of the GPU, you want to manipulate ISA instruction directly.

For four years we have published our GCN ISA Manuals for every family of GPUs we have released.  However, we did not have a standard way to exploit this. Moving forward, we are going to give application and system level developer tools to access our hardware directly via GCN ISA assembly programming.

We also again recognise we need to address all communities of developers. One of these communities currently choose CUDA.  With the Boltzmann Initiative, we put in place key tools that better meet their needs starting with HCC, which supports C++ with C-based memory management and Gid dispatch support. This is combined with the HIP runtime API to simplify their access to our hardware.

amd gpu

  1. c) What are the key roadblocks to GPU-based final frame film rendering?

Let’s take a different direction on your question by looking back at the challenges we saw with GPU-based final frame rendering over the last 5 years and the core issues being solved.

  1. Solid headless driver with stable programming runtime
  1. Core development tools on the level of what we had on the CPU with offline development flows
  1. Support for the key languages used for research, production & pipeline development; C++, and Python
  1. Algorithmic understanding on how we best map advanced render solutions to the GPU
  1. Support for multi-process to allow processing of more than 1 frame concurrently.
  1. Enough local memory to enable multiple renders concurrently. We now have GPUs with 16 to 32GB and larger on-chip caches. GPUs are also rolling out with  High Bandwidth Memory (HBM) driving an even bigger advantage of memory bandwidth and improved latency
  1. Improved performance and reduction in latency on queuing work lowers the latency of data transfer.
  1. Native direct to ISA compilation removing the overheads of our traditional just in time compilation foundation.  
  1. Much improved power density of GPUs in servers.

One paramount issue for GPUs in premium production space for Big Shows is that they need absolute driver stability and advanced management tools. As they say, the “Show Must Go On.” After 12-18 hours of continuous rendering, at 9AM in the morning, the VFX Supervisors start the Dailies with his team. The render wrangler needs a stable system to move the shot through the night. Here we really need to see proven shot throughput to get the VFX and CG industry excited to move in this direction.

  1. d) Do you think it would be possible to have a GPU-accelerated Renderman while maintaining the same programmable flexibility?

If you start with your first question on Heterogeneous Computing and understand that we are working with a code base that is built on 27 years of legacy and continuously refactored for new innovations like RIS.  

Also with these changes you see new directions on how you program shaders.  We are seeing emergence leveraging C++ , with this in mind if you leverage heterogeneous compute based development tools that exploit the CPU and GPU fully in concert. We will be able to develop shaders with the flexibility maintained. The ISO C++ standard is driving in the right direction with Parallel STL and also the work we have been doing with HCC since Renderman is evolving to richer C++ based shader support.

  1. e) What do you see as the future of Heterogeneous Computing on mobiles?

Mobile today already has advanced in the utilisation of heterogeneous computing since they live in the very power constrained environment. So they always seek best power/performance solution to solve the problem.  They heavily use CPU + DSP + ISP + GPU in their feature rich SOC.  The issue today is that it is only exposed to the system vendors, OS and chip vendors themselves.  The big future here is how we expose that capability to a broader set of developers.

About Raja Koduri

Raja Koduri is senior vice president and chief architect of the AMD Radeon Technologies Group, responsible for overseeing all aspects of graphics technologies used in AMD’s APU, discrete GPU, semi-custom, and GPU compute products.

He most recently drove AMD’s innovation in visual and accelerated computing as corporate vice president of visual and perceptual computing, including the development of the industry’s first graphics chip with integrated High-Bandwidth Memory (HBM) and AMD’s LiquidVR initiative, a series of technologies and toolkits to deliver more compelling and realistic VR experiences.

Prior to joining AMD, Koduri served as director of graphics architecture at Apple Inc. where he helped establish a leadership graphics sub-system across the Mac product family and led the transition to Retina computer displays. Prior to joining Apple, Koduri worked for S3 Inc. and ATI Technologies.

Koduri holds a Master of Technology degree in Electronics and Communications from IIT Kharagpur, India. He also serves as Chief Technical Advisor to the Board of Directors for Makuta Visual Effects.

Heterogeneous Computing

Heterogeneous computing refers to systems that use more than one kind of processor. These are multi-core systems that gain performance not just by adding cores, but also by incorporating specialised processing capabilities to handle particular tasks.

Heterogeneous System Architecture (HSA) systems utilise multiple processor types (typically CPUs and GPUs), usually on the same silicon die, to give you the best of both worlds: GPU processing, apart from its well-known 3D graphics rendering capabilities, can also perform mathematically intensive computations on very large data sets, while CPUs can run the operating system and perform traditional serial tasks.

The multi-core era also saw some interesting developments in GPUs, which were growing in sophistication and complexity, spurred on by advances in semiconductor technology. GPUs have vector processing capabilities that enable them to perform parallel operations on very large sets of data – and to do it at much lower power consumption relative to the serial processing of similar data sets on CPUs.

This is what allows GPUs to drive capabilities such as incredibly realistic, multiple display stereoscopic gaming. And while their value was initially derived from the ability to improve 3D graphics performance by offloading graphics from the CPU, they became increasingly attractive for more general purposes, such as addressing data parallel programming tasks.

The early efforts to leverage GPUs for general purpose computing coincided with a notable shift in consumer culture. There was a dramatic increase in the availability and quality of digital content, coupled with an increasing consumer appetite for rich visual experiences like video playback and viewing content in HD.

At the same time, the emergence of mainstream operating system support for advanced multitasking began to require processing efficiency of an entirely new magnitude. And that’s why heterogeneous computing, which brings together the best of both CPUs and GPUs, is essential to driving faster and more powerful processor designs for new and better experiences.

Share this post:

Comment what you think!