AMD Publishes Open-Source Linux HSA Kernel Driver

Written by Michael Larabel in AMD on 10 July 2014 at 06:23 PM EDT. 67 Comments
AMD
AMD has just published a massive patch-set for the Linux kernel that finally implements a HSA (Heterogeneous System Architecture) in open-source. The set of 83 patches implement a Linux HSA driver for Radeon family GPUs and serves too as a sample driver for other HSA-compatible devices. This big driver in part is what well known Phoronix contributor John Bridgman has been working on at AMD.

Heterogeneous System Architecture has been talked up for a while now by AMD as well as ARM vendors and now finally for open-source enthusiasts we can finally start seeing the advantages of the CPU and GPU on the same bus. Oded Gabbay of AMD announced the big HSA kernel patch-set:
This patch set implements a Heterogeneous System Architecture (HSA) driver for radeon-family GPUs.

HSA allows different processor types (CPUs, DSPs, GPUs, etc..) to share system resources more effectively via HW features including shared pageable memory, userspace-accessible work queues, and platform-level atomics. In addition to the memory protection mechanisms in GPUVM and IOMMUv2, the Sea Islands family of GPUs also performs HW-level validation of commands passed in through the queues (aka rings).

The code in this patch set is intended to serve both as a sample driver for other HSA-compatible hardware devices and as a production driver for radeon-family processors. The code is architected to support multiple CPUs each with connected GPUs, although the current implementation focuses on a single Kaveri/Berlin APU, and works alongside the existing radeon kernel graphics driver (kgd).

AMD GPUs designed for use with HSA (Sea Islands and up) share some hardware functionality between HSA compute and regular gfx/compute (memory, interrupts, registers), while other functionality has been added specifically for HSA compute (hw scheduler for virtualized compute rings). All shared hardware is owned by the radeon graphics driver, and an interface between kfd and kgd allows the kfd to make use of those shared resources, while HSA-specific functionality is managed directly by kfd by submitting packets into an HSA-specific command queue (the "HIQ").

John Bridgman, the AMD employee that's well known to Phoronix readers especially those that have followed AMD's open-source efforts over the years as dominantly covered by Phoronix, has been working in the AMD HSA area as of late and partially responsible for this new driver. Among the developers coding this HSA Radeon support for hte Linux kernel include Alexey Skidanov, Andrew Lewycky, Ben Goz, Evgeny Pinchuk, Michael Varga, Oded Gabbay, and Yair Shachar. The HSA Radeon driver amounts to nearly 10,000 lines of new kernel code.

Hopefully these patches will be quickly reviewed and will be able to enter at least the staging area for the Linux 3.17 kernel given there's still a few weeks left before the debut of Linux 3.16.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week