Heterogeneous compute has been on the tip of the tongue for many involved in integrating compute platforms, and despite talk and demos regarding hardware conforming to HSA provisional specifications, today the HSA Foundation is officially launching the ratified 1.0 Final version of the standardized platform design. This brings together a collection of elements:

- the HSA Specification 1.0 defines the operation of the hardware,
- the HSA Programmers’ Reference Manual for the software ecosystem targeting tools and compiler developers,
- the HSA Runtime Specification for how software should interact with HSA-capable hardware

The specifications are designed to be hardware agnostic as you would imagine, allowing ARM, x86, MIPS and other ISAs to take advantage of the HSA standard as long as it conforms to the specifications. The HSA Foundation is currently working on conformance tests, with the first set of testing tools to be ready within a few months. The goal is to have the HSA specification enabled on a variety of common programming languages, such as C/C++, OpenMP, Python as well as C/Fortran wrappers for the HPC space. Companies such as MultiCoreWare are currently helping develop some of these compilers for AMD, for example.

The announcement today is part of an event being held in San Jose, CA, and the event will also see the preview of a HSA book designed to help developers in this space. There will also be a round-table panel of HSA board members discussing the release as well as taking questions. Some of the obvious key points the HSA Foundation will be pushing include video conferencing in mobile (exchanging encode cycles on the CPU/GPU for lower bandwidth requirements), video search, embedded applications and high performance computing, especially those with high memory requirements but can still take advantage of co-processor based compute.

As part of the pre-briefing we received, Phil Rogers, the president of the HSA Foundation and corporate fellow at AMD, explained the purpose of the announcement and answered a few of our questions. Mr Rogers explained how current Kaveri APUs currently rely on the HSA 1.0 Provisional specification, and Carrizo (based on Excavator) will aim for 1.0 Final compliance if the tools are ready before Carrizo launch. Carrizo will not be held back in order to secure compliance before ramping up production, but the expectation is that it should pass and be used similar to Kaveri but with the minor adjustments required for 1.0 Final, such as GPU context switching.

Mr Rogers also explained that the HSA 1.0 Final specifications should integrate with Aparapi for Java and Project Sumatra, both of which we described back at Kaveri launch last year. Currently C++ AMP is also a goal as it allows a reduction in defining restricted kernels due to the unified memory. Also making sure that the new upcoming version of C++17 is also fully supported within the HSA context is important.

With regards profiling, the HSA Foundation has a Tools Working Group currently pursuing both a Profiling API and a Debugging API to allow low language software developers to integrate these tools into their GUIs. We were told that this should happen within a year, but the API requires proper low level access from the developer.

Mr Rogers was not able to comment on the implementations of other HSA Foundation members, particularly companies such as Qualcomm, Samsung, ARM, Imagination Technologies, LG and MediaTek, all of which have ‘arms’ into the smartphone space where HSA could encompass a wide variety of scenarios. We were told however that each of the members of the HSA Foundation, of which there are over 40 technology companies and 17 universities, were keen on closing the specification in order to move forward with their goals.

Heterogeneous System Architecture is in for the long haul for sure, although execution and improvement of user experience will be the key factors in providing something tangible. There also requires an element of learning to think in the HSA paradigm, something not specifically taught to young software developers entering college and university. To that extent, PCIe co-processors and multi-core programming are still low down on the list of to-teach. Nevertheless, I would imagine HSA offers a wide opportunity to those who can take advantage of it, developing their hardware and tools to use it effectively, and the ratification of the 1.0 Final specifications is a big step along that road.

Source: HSA Foundation


Comments Locked


View All Comments

  • hpvd - Monday, March 16, 2015 - link

    just a essential question:
    Where from could a software "know" which different types of cores with which types of features are available in a heterogeneous system?
    How could the software or the OS choose the best fitting types of cores for a sepcial part of the software's code?

    A method which is used for CPUs with big.LITTLE concepts (arm cpus in smartphones) seams not to be suitable/efficient for complex taks
    her the scheduler of the OS "simply" sorts for priorität (high -> big) and foreground/background tasks (foreground >big)
  • pTmdfx - Tuesday, March 17, 2015 - link

    HSA exposes the platform topology, and software does its own choice (i.e. pick an agent, create a queue associated to the agent, submit a packet to the queue). In other words, if you want automation, you would have to wait for a library (e.g. AMD's Bolt) to target HSA.
  • cyberguyz - Tuesday, March 17, 2015 - link

    Novice tech writer mistake #1:

    Commonly using an acronym (i.e. HSA) without definint it within tghe first paragraph of the article. Noob writers alwasy assume everybody knows what an uncommon actronyn means without botrhering to define it until the article is almost done (if at all).

    Are there no editors here to catch these noob mistakes?
  • cyberguyz - Tuesday, March 17, 2015 - link

    PS: While I can't type worth a crap, even I know this much.
  • hlmcompany - Tuesday, March 17, 2015 - link

    Yup, this happens. Of the different things the acronym may mean, HSA is Head Stack Assembly for Hard Disk Drives.
  • name99 - Tuesday, March 17, 2015 - link

    If you don't know what HSA means in this context, then perhaps you should be reading PCWorld or something rather than AnandTECH?
    Or perhaps you should learn how to use Google and Wikipedia?

    It's a bit pathetic to have, in the same comment thread, one set of guys complaining that freshmen programmers don't get taught multi-threaded programming aggressively enough, while some other guy is complaining that the article uses words he doesn't understand, and that he, apparently, doesn't know how to look up on the internet.

    Filling an article with definitional crap is NOT free --- it wastes the time of readers who already know what is going on, who have already internalized HSA (and other TLAs) as a single concept and who actually stumble in their reading over unexpected expansions of the phrase.
  • cyberguyz - Tuesday, March 17, 2015 - link

    OK Einstein. What makes you think that comp sci grads are the only ones that read articles here? You get all kinds of people reading this site including computer hobbyists as well as folks trying to learn a little bit about the computer tech around them.

    Anandtech is by no means the sole domain of the Computer Science Ms degree holder that just graduated last week and never was. So get your head our of your ass and get with the program.

    FYI I have been in the computer software development business for over 35 years. That's right - no doubt longer than you have been alive. One thing I have been beaten over the head over all those years by MY tech writers is that you never, ever use acronyms without first defining them. As this article is using an acronym within its title, it is excusable to hold off the definition until the first paragraph. You don't believe me? Try being a tech writer for software developer in one of the largest acronym manufacturers in the world. You might actually learn something.
  • iLovefloss - Tuesday, March 17, 2015 - link

    @name99 Nah, you're just being an elitist jerk. By defining it, cyberguyz doing something like this "Heterogeneous System Architecture (HSA)". This tells the reader that HSA means Heterogeneous System Architecture instead of the numerous other things it could mean.

    The HSA Foundation's frontpage (and all of their literature) does this even though they assume everyone reading their page has a grasp on what HSA is and what it is aiming for.


    Pointing out that HSA means Heterogeneous System Architecture will not hurt anyone, and if that trips you up, you have some reading comprehension problems you need to work on that you don't need to drag anyone else in on.
  • cyberguyz - Saturday, March 21, 2015 - link

    That is exactly what I am talking about iLovefloss. It doesn't take much but gives folks something more than an acronym to google with if they want more info. it's just good tech writing practices.
  • R3MF - Tuesday, March 17, 2015 - link

    Has there been any indication from AMD on how their High-End dedicated GPU products fit into their HSA strategy?

    Right now, there is a problem:
    1. HSA is deemed core to AMD's future in obviating the IPC deficit that derives from Intel's enormous R&D and scale of production advantages
    2. The fact that AMD's £500 GPU products are completely unable to make use of HSA, providing no platform advantage for AMD to capiutalise upon

    How is AMD going to square this circle?

Log in

Don't have an account? Sign up now