Monday, November 16th 2015
AMD Launches The "Boltzmann Initiative," Brings NVIDIA CUDA to FirePro
Building on its strategic investments in heterogeneous system architecture (HSA), AMD (NASDAQ: AMD) announced a suite of tools designed to ease development of high-performance, energy efficient heterogeneous computing systems. The "Boltzmann Initiative" leverages HSA's ability to harness both central processing units (CPU) and AMD FirePro graphics processing units (GPU) for maximum compute efficiency through software. The first results of the initiative are featured this week at SC15 and include the Heterogeneous Compute Compiler (HCC); a headless Linux driver and HSA runtime infrastructure for cluster-class, High Performance Computing (HPC); and the Heterogeneous-compute Interface for Portability (HIP) tool for porting CUDA-based applications to a common C++ programming model. The tools are designed to drive application performance across markets ranging from machine learning to molecular dynamics, and from oil and gas to visual effects and computer-generated imaging.
"AMD's Heterogeneous-compute Interface for Portability enables performance portability for the HPC community. The ability to take code that was written for one architecture and transfer it to another architecture without a negative impact on performance is extremely powerful," said Jim Belak, co-lead of the U.S. Department of Energy's Exascale Co-design Center in Extreme Materials and senior computational materials scientist at Lawrence Livermore National Laboratory. "The work AMD is doing to produce a high-performance compiler that sits below high-level programming models enables researchers to concentrate on solving problems and publishing groundbreaking research rather than worrying about hardware-specific optimizations."
New Compiler for Heterogeneous Computing
The promise of combining multi-core, serial processing CPUs with parallel-processing GPUs to maximize compute efficiency is already being seen in the industry, as driven by the Heterogeneous Systems Architecture (HSA) Foundation that counts AMD as a founding member. One of the goals for HSA is easing the development of parallel applications through use of higher level languages. The new AMD "Boltzmann Initiative" suite includes an HCC compiler for C++ development, greatly expanding the field of programmers who can leverage HSA. The new HCC C++ compiler is a key tool in enabling developers to easily and efficiently apply the hardware resources in heterogeneous systems. The compiler offers more simplified development via single source execution, with both the CPU and GPU code in the same file. The compiler automates the placement code that executes on both processing elements for maximum execution efficiency.
"Just as our customers are excited about our hardware innovation, including the introduction of the first GPU with High Bandwidth Memory this year and our new x86 core architecture coming next year, our innovations in software development are equally as important to them," said Mark Papermaster, senior vice president and chief technology officer, AMD. "The challenge has always been to unlock the hardware's capabilities and make them easily accessible to developers working to solve difficult problems. AMD's newest offering provides the keys to more readily access our parallel computing engines -- both multicore CPUs and GPUs -- and to make these benefits available to the mainstream of developers across a broad spectrum of computing platforms, from embedded to supercomputing."
Linux Driver and Runtime Focused on the Needs of HPC Cluster-Class Computing
To complement the new compilation tools, AMD has developed a new HPC-focused driver and system runtime. This new headless Linux driver brings key capabilities to address core high-performance computing needs, including low latency compute dispatch and PCIe data transfers; peer-to-peer GPU support; Remote Direct Memory Access (RDMA) from InfiniBand that interconnects directly to GPU memory; and Large Single Memory Allocation support.
HIP-ifying CUDA Application to Run on AMD GPUs
To bring applications written for CUDA onto AMD platforms, AMD announces the new HIP tool. AMD testing shows that in many cases 90 percent or more of CUDA code can be automatically converted into C++ by HIP with the final 10 percent converted manually in the widely popular C++ language. This greatly expands the installed hardware base available to run what were formerly exclusively CUDA-based applications. At SC15, AMD is demonstrating the potential for HIP, running the CUDA-generated Rodinia benchmark suite on AMD GPUs.
Availability
An early access program for the "Boltzmann Initiative" tools is planned for Q1 2016.
"AMD's Heterogeneous-compute Interface for Portability enables performance portability for the HPC community. The ability to take code that was written for one architecture and transfer it to another architecture without a negative impact on performance is extremely powerful," said Jim Belak, co-lead of the U.S. Department of Energy's Exascale Co-design Center in Extreme Materials and senior computational materials scientist at Lawrence Livermore National Laboratory. "The work AMD is doing to produce a high-performance compiler that sits below high-level programming models enables researchers to concentrate on solving problems and publishing groundbreaking research rather than worrying about hardware-specific optimizations."
New Compiler for Heterogeneous Computing
The promise of combining multi-core, serial processing CPUs with parallel-processing GPUs to maximize compute efficiency is already being seen in the industry, as driven by the Heterogeneous Systems Architecture (HSA) Foundation that counts AMD as a founding member. One of the goals for HSA is easing the development of parallel applications through use of higher level languages. The new AMD "Boltzmann Initiative" suite includes an HCC compiler for C++ development, greatly expanding the field of programmers who can leverage HSA. The new HCC C++ compiler is a key tool in enabling developers to easily and efficiently apply the hardware resources in heterogeneous systems. The compiler offers more simplified development via single source execution, with both the CPU and GPU code in the same file. The compiler automates the placement code that executes on both processing elements for maximum execution efficiency.
"Just as our customers are excited about our hardware innovation, including the introduction of the first GPU with High Bandwidth Memory this year and our new x86 core architecture coming next year, our innovations in software development are equally as important to them," said Mark Papermaster, senior vice president and chief technology officer, AMD. "The challenge has always been to unlock the hardware's capabilities and make them easily accessible to developers working to solve difficult problems. AMD's newest offering provides the keys to more readily access our parallel computing engines -- both multicore CPUs and GPUs -- and to make these benefits available to the mainstream of developers across a broad spectrum of computing platforms, from embedded to supercomputing."
Linux Driver and Runtime Focused on the Needs of HPC Cluster-Class Computing
To complement the new compilation tools, AMD has developed a new HPC-focused driver and system runtime. This new headless Linux driver brings key capabilities to address core high-performance computing needs, including low latency compute dispatch and PCIe data transfers; peer-to-peer GPU support; Remote Direct Memory Access (RDMA) from InfiniBand that interconnects directly to GPU memory; and Large Single Memory Allocation support.
HIP-ifying CUDA Application to Run on AMD GPUs
To bring applications written for CUDA onto AMD platforms, AMD announces the new HIP tool. AMD testing shows that in many cases 90 percent or more of CUDA code can be automatically converted into C++ by HIP with the final 10 percent converted manually in the widely popular C++ language. This greatly expands the installed hardware base available to run what were formerly exclusively CUDA-based applications. At SC15, AMD is demonstrating the potential for HIP, running the CUDA-generated Rodinia benchmark suite on AMD GPUs.
Availability
An early access program for the "Boltzmann Initiative" tools is planned for Q1 2016.
16 Comments on AMD Launches The "Boltzmann Initiative," Brings NVIDIA CUDA to FirePro
Instead of trying to make a sinking ship float AMD is at least putting a workaround for CUDA in place.
There's C++ AMP though, which can be compiled on Linux (LLVM), so you're right about something: there is an alternative that works on, uhm, everything, yet the adoption is extremely low. Almost non-existent. And the reason for that is the fact that you could never achieve REAL performance when targeting multiple families of GPU's. The amount of work that profilers & related tools (like NVIDIA CUPTI) do for you is immeasurable. There's some design-time analysis services available, too, that will help with re-writing some of your code based on estimations performed by CUDA engineers (lower the size of this, get rid of that, you know).
Anyway. This is amazing news, although it would be great if they provided some information in regards to just how common it is to see FirePro S being used in servers. They never really talked about that, which is weird... I can get S10000 at a reasonable price here, and it's ready-to-use even (3 fans pre-installed).
It's not really a performance issue, it's an adoption issue. NVIDIA's CUDA has existed much longer, and thus has much much larger market penetration, than OpenCL.
I'm surprised nVidia hasn't unleashed their lawyers to try and stop this.
Does he really believe in what he say. He should say " Sorry scientists we failed to offer you proper tools to write your applications, we failed to offer you any technical support, we couldn't offer programming specialist to help you write coding lines and these greedy bastards at nVidia offer all that for free or for little money just to make you buy their hardware and because CUDA is open and expanding in every scientific and engineering field we decide to port CUDA to our hardware even if that mean you need to do some coding work and alot of debugging, So please buy some of our hardware, It's cheaper"
And who will do the rest of 10%?
From my experience sometimes fixing bad code, especially if you speak about 10% takes as much time as rewriting it from scratch, if not more. Not so sure CUDA is open. Otherwise they would implement support directly without the need to reconvert code.
You have to go through NVIDIA if you want something and why would NVIDIA invest into development of OpenCL if everyone else can use it also?
OpenCL vs. CUDA is the same as Free-Sync vs. G-Sync.
Mind boggling.
Let me elaborate as point seems to have missed you: something, that most people are using, is not necessarily the best thing. The same applies to proprietary CUDA vs standard OpenCL. You might want to check what was the goal behind QWERTY.
upload.wikimedia.org/wikipedia/commons/a/a5/KB_Eng-Rus_QWERTY%28%D0%99%D0%A6%D0%A3%D0%9A%D0%95%D0%9D%29.svg It is true that CUDA is all about GPGPU (which hypothetically allows for a direct comparison of two), yet OpenCL makes for a small speck when laid on top of CUDA. It's an ecosystem of various tools, libraries and practices that enable you to do anything that people have been doing for years with both CPU and GPU, ranging from accelerated conversion of media content to fluid dynamics. It is supercomputer-first, again, just like OpenCL, but while CUDA gives you everything pre-baked (performance analysis, thousands of libraries, language bindings), the latter still only resembles a specification and nothing more.
Just my opinion: if everything was perfect with OpenCL, we wouldn't have had FireStream SDK, CUDA and (later) C++ AMP in the first place. Again, think about what enables developers to build stuff fast and with adequate maintainability, not what would be "great for free-minded people". I too would love if Khronos provided an IDE-like experience for their solution, on par with tooling, professional community hub and reference guides, but as of right now they just keep making stuff like WebCL that dies w/o seeing a single implementation at all. Vulkan's destiny is bright (and it'd definitely have compute shaders), but it only exists on paper right now, and I need a compiler. A book. A place where I could talk to their engineers. And lots, lots of other things. It's a "big" kind of programming, nothing like your generic "create object A, call method B". If you don't approach it like a crazy scientist, what's it worth?
Or how would that change if you show Russian layout over DVORAK layout?
I'm blind typer on both layouts, when typing in Russian I rarely use ring finger and the pinky even less frequently.
That's exactly what DVORAK does vs QWERTY.
But, apparently, the reasons why one is used over the other goes well beyond "which one is better".