You may have noticed that Radeon Software Crimson has been gaining a lot of positive momentum since its launch back in November. Radeon Technologies Group mastermind Raja Koduri brought Andrej Zdravkovic back to AMD as a Corporate VP of Software and Platform Engineering. We had an exclusive opportunity to speak to Andrej about the past, the present, and the future – and his design philosophy that is re-energizing Radeon Software and delivering on its promise of great user experience.
The interview, focuses on the re-energized Radeon Software team and their goals on providing a great user experience. The Key points include
- AMD's history and longevity in graphics design.
- A reinvigorated company with a progressive mindset towards the creation of new technology concepts and products.
- Driver reliability & responsive user experience to turn first-time customers into long-term fans.
- Philosophy behind software development with “FPS” concept – Features, Performance and Stability.
- VR, DX 12 and GPU Open.
Andrej Zdravkovic – AMD Corporate Vice President of Software and Platform Solutions
KitGuru: Andrej, let’s go back for a moment and talk about ATI, and how AMD today continues its legacy as the oldest continuous computer graphics company in the world. ATI was founded in 1985, and Nvidia began in 1993. Many other companies that tried — did not survive.
Andrej Zdravkovic: When I joined ATI in 1998, the company was like a big startup. It was fantastic environment to create something new. Much of this was done by flying by the seat-of-the-pants, but the startup mentality freed us to do great things. We were not hampered by complexities in the development process, or burdened by a gigantic customer installed-base still using older products released over the years. This enabled “focus-forward” development mindset, a progressive approach that fostered the creation of new technology concepts and products.
Our team’s goal was simple: create the world’s highest performing GPUs — and do it better than anyone else, and before anyone else. I believe that our continued success was dependent on that mindset that is still with us today.
KitGuru: Looking back, it seems like the software was not considered as important as the hardware, and the software interfaces were not as compelling or as finely crafted as they are today. The impression was that innovation was driven by the hardware side. How did this change over time?
Andrej Zdravkovic: The graphics industry has progressed from having basic VGA drivers and poking at registers to create a basic screen image, to a very significant software layer that enables content developers to create almost miraculous imagery. Back then, the software was only a thin layer to make it human-interactive, and it was not really designed to bring the best out of the hardware. Programmability enabled us to create that connection between the hardware features and user experience, where software plays a key role by delivering significant improvements to the product in the market long after purchase. However, having millions of customers to satisfy and millions of lines of code in our driver requires paying special attention to both driver stability and agility. The trick is to have reliable drivers as a solid foundation to keep customers happy, but also deliver an intuitive and responsive user experience, innovative new features, and performance to turn first-time customers into long-term enthusiastic fans.
Programmable processors shifted the balance between GPUs and CPUs. On the CPU side, we’re still essentially running at speed of a single core. The GPU has successfully introduced parallelism, enabling it to do much more. We are now seeing new uses beyond the rendering pipelines, including compute and gaming effects running in parallel, and scaling to as many cores as the GPU offers. But DirectX 12 is enabling revolutionary new things on both sides of the processing world.
KitGuru: Let’s fast-forward to today. Since the release of Radeon Software Crimson Edition — which followed your return to AMD — we have seen several new driver releases, delivering performance increases, many new features, and added stability. This is a big change over the same time last year. What do you think made the biggest difference?
Andrej Zdravkovic: The Crimson Edition release showcases the passion driving the “New AMD,” and the changes that we are making in the company. I was fortunate to join the company at that moment when everybody was ready to embrace our new “we can do it” mindset. We can move fast, we can develop incredible products, and we can release the product much more efficiently. This means releasing the product at a faster cadence, with an increased amount of testing. And we have done it.
I focus on enablement, engagement, and goal-setting. We employ some of the best and brightest minds, so my idea was to set goals, remove obstacles, and empower these people to do what they do best. This promotes an environment of people taking things into their own hands, but in a structured way. It also requires each team member to believe they are accomplishing something that is larger than themselves or any single person.
During our first AMD town-hall meeting, I introduced our new “FPS” concept, illustrated by a triangle diagram with the headings of “Features,” “Performance,” and “Stability” at each respective corner of the triangle. The idea is for us to grow the size of the triangle in each area with each software iteration, increasing performance, adding new features, and enhancing stability — but without compromising the reliability of the product. Adding things without breaking things. That’s the overall goal, and I want every engineer in my team to have the image of the FPS triangle in their head as they go about their daily tasks.
Everybody expects that is quick and easy to make some changes in software, then introduce a new-and-improved product on the market. In truth, there is a huge level of complexity involved. This is the area where we are innovating at this time, improving our ability to introduce new features into the software, but without creating an imbalance in the existing software layers. That’s the key: the ability to create new interfaces that do not interfering with existing functionalities. The ability to test and release these software drivers as part of a successful new-product launch.
KitGuru: That would certainly usher-in a new era for your company — but what lies ahead for the “New AMD”?
Andrej Zdravkovic: The further we look into the future, the harder it becomes to predict what is going to happen. However, we definitely see some coming industry inflection points.
Everybody today is talking about VR and AR. Both have amazing potential that require a level of graphics performance that simply does not exist today. Consider the VR technology that we envision that will deliver the degree of immersion needed for true lifelike presence. Let’s call it 16K resolution per eye, and a 200 Hz refresh rate. We are working hard to make this happen, but we are not there yet. The current content situation with VR involves either 360° video content, or the standard 3D game engines converted to accommodate VR development. The next step will be the creation of new game engines that are specifically created for VR. We think this will create a surge of adoption of VR.
New low-level interfaces like DirectX 12 will also play a crucial role. One aspect involves shifting direct control of what’s happening in the driver, including the graphics card’s layers and pipelines, to game developers. This is now enabling game developers to create better visual effects and very precisely control gamers’ experiences. For example, multi-GPU support is rapidly evolving. With Crossfire products, we provided the ability to use both of the graphics cards in parallel. In DX 11 that was done seamlessly for the game developers. That provided the simplicity of use, but limited creativity in using multi GPUs. With DirectX 12 the interface is more oriented to what the game developer wants to do with these two Crossfire GPUs.
The challenge now is how to reintroduce simplicity into an increasingly more complex development process. We are going about this in a different way this time, opening up the software layers with our GPUOpen initiative so developers can contribute, learn from each other, and exchange knowledge to create new value. That involves very different approaches in the compute and the graphic effects areas. With GPUOpen, we enable a community of developers to harness DirectX 12, Vulkan, OpenCL, or open compute, and to create these layers that simplify the work of creating things like new effects.
KitGuru: Let’s talk about software design philosophy for a moment. What user-experience philosophy have you developed over the years that you are now bringing to AMD software development? Is it intuitive design, design simplicity, modular design — or what?
Andrej Zdravkovic: My user experience philosophy involves catering to all types of users of our products. Our users vary from design professionals, over people who use our product for mostly 2D graphics and occasional gaming to those who are high-end gamers and want to tweak every tiny aspect of the graphics performance of the game. This creates a huge challenge for us.
The out-of-box experience should be ultra-simple — and I think we are getting there. With the new Crimson release, we have achieved a very positive installation experience that does not force or require the user to tweak the driver. I want the out-of-box experience for any user to be a simple one-step process: install the new graphics card, and the software installation automatically downloads the latest software and installs it on the computer, ready to run. That’s not just a baseline expectation — it’s a must.
We need to make things simple and intuitive. However, what is intuitive for me is definitely not intuitive for somebody of my parent’s generation. What is intuitive for my kids is absolutely not intuitive for me. This means we need to make things ultra-simple. The idea is to avoid making the user think about how to navigate the user interface. My goal in designing the interfaces is to keep them minimalistic as possible, three to four push-buttons that create a meaningful change. Regardless of what kind of user is involved, they will instinctively understand what they’re trying to do. Clicking the “advanced” button will enable a much greater degree of possibilities.
Good software design starts with the right architecture. I insist that our software architects have a superior understanding of their particular domain, and a superior understanding of how the development problem should be tackled. Nailing the architecture design enables everything afterwards to flow nicely. At the end of the process — that moment when we put everything together and start building the drivers to be released — everything should be already working flawlessly, without requiring enormous test and QA effort to make it so.
It’s not necessarily about “preventing” issues from occurring. It’s about the importance of proper design. The quality cannot be retroactively “forced in.” You can rely on a strong and rigorous QA department to force-in quality for one or two releases, but the ideal is designing-in quality from the very beginning. This designed-in quality originates with each engineer understanding the requirements and working on the solution within the right architectural model. It starts with an extremely smart architecture, competent resources, and management team to define and refine how everything will flow. Each engineer needs to be empowered to do their best creative work in a diligent and responsible way. This is the secret to building an extraordinary product.
KitGuru: We would like to thank Andrej for taking the time to talk to us, and look forward to seeing future developments.