AMD Adds Native Object Code Support To Clover/Radeon: Big Performance Win
Announced this afternoon by Tom Stellard are patches that add support to Gallium3D's Clover -- the OpenCL state tracker -- for compiling compute kernels into native object code. These native object code binaries from Clover are then accepted by the R600g and RadeonSI Gallium3D drivers.
Tom Stellard, the GSoC student developer turned AMD employee, explained, "This change significantly reduces the number of compiles that the drivers need to do. Since the OpenCL programs can now be stored in native format by clover, the drivers no longer needs to recompile them every time the compute state changes."
For an example of the significance of this set of 10 patches, it changes the time of running Piglit's OpenCL tests on the RadeonSI Gallium3D driver from over 23 minutes to just over 3 minutes!
This sounds terrific and will be a welcomed addition to Mesa 10.4. The only minor, temporary downside to this code is that it's dependent upon LLVM 3.5.1 or newer -- a bit of a high requirement for those Linux distributions not yet liberally packaging the latest LLVM code. The patches for now are residing on the Mesa-dev list.
The open-source Radeon Gallium3D GPGPU stack is finally getting into good shape ahead of open-source HSA coming about on Linux.