AMD released its beta Windows OpenCL 1.2 development driver today, and is officially announcing its plans to release Heterogeneous System Architecture (HSA) support for Linux. The company plans to implement this support in the second quarter of 2014 through HSA runtime software that will support multiple programming languages.
While HSA is still in its infancy, it holds the promise of unlocking significant compute performance potential that can be applied to many types of workloads. About 47 percent of the Kaveri die is dedicated to GPU resources. Typically, that logic sits unused unless it's called on for graphics processing tasks. In a perfect world, though, developers could use those transistors to help accelerate general-purpose tasks, yielding a performance boost and improved efficiency. That's the ultimate purpose of heterogeneous computing, using the right device for a given task, and the potential benefits as they've been presented to us are certainly exciting.
With Kaveri, AMD facilitates true HSA-capable hardware for the first time. But as with all hardware, it's only as good as the software that supports it. And software support requires investment from developers. This is the giant hurdle that AMD needs to overcome before the benefits of HSA can be realized. If heterogeneous devices are the cart, then a commitment from the development community is the horse.
This isn't the first time AMD has outlined its strategy to enable HSA on Linux, nor HSA support for multiple languages like Java, C++ AMP, Python, and OpenCL 2.0. The company is putting a lot of effort into developer tools, so it's understandably trying to generate developer interest on an ongoing basis. At the end of the day, it all comes down to those developers. No matter how much potential HSA has, it can only aspire to be as pervasive as the software that supports it. If important applications ever deliver big performance boosts with this technology, AMD's APUs will potentially become a lot more desirable. On the other hand, if HSA never catches on with developers, the enablement work won't be the big pay-off AMD is hoping for.
Right now, the general message is repetitive. We heard it delivered at the AMD Developer Summit 2013, and more recently during the Kaveri tech day in Las Vegas. To recap, Java already has limited support for HSA through Aparapi, an API for expressing parallelized workloads. The company expects the subsequent release of Java 8 to arrive in the middle of 2014 with support for Lambda language expressions and parallel acceleration (thanks to the Sumatra project, which sets out to let Java applications leverage GPUs and APUs) through the HSAIL intermediate language, culminating in native Java Virtual Machine (JVM) support via Java 9 in 2015. OpenCL 2.0 is expected to be the primary path for most apps on both Windows and Linux platforms, though, and AMD plans to deliver this functionality to selected developers in Q3 of this year, with optional features enabled in Q4 that should leverage even more HSA-specific optimizations and functionality.
As I said though, almost all of this information has been discussed; it's a work in progress. To us, the real news today is the release of the Windows Beta OpenCL 1.2 Driver for developers who want to dip their toes into HSA waters now, rather than waiting for full OpenCL 2.0 availability later this year. This development driver is the same one used to drive the demos we saw during the recent Kaveri launch, so it gives widespread access to early adopters for the opportunity to test the potential benefits that HSA has for their software.
With this driver in the wild, we may see better indications of how much developer interest AMD has drummed up over the next few months. Of course, the company already made its driver available to targeted ISVs previously. But now that it's in the domain of anyone who wants a crack at it, we will see what the community comes up with. We plan to follow up this announcement with tests and developer feedback in the days and weeks to come, so stay tuned.