Code Optimization in an Indirect Finalizer for an HSA-based System
Date Issued
2016
Date
2016
Author(s)
Lee, Hong-Yu
Abstract
Heterogeneous System Architecture (HSA) is an architecture standard developed by the non-profit HSA foundation aiming to make it easier to program for heterogeneous computing. A single HSA system may include an assortment of devices with distinct instruction set architectures (ISAs). HSA Intermediate Language (HSAIL) is an intermediate language defined by the foundation to abstract away the heterogeneity in the HSA computing environment. A programmer builds code using HSAIL in order to allow it to be executed on a wide range of devices, such as CPU, GPU, DSP, etc. An HSA implementation encompasses the hardware components and an HSA runtime including the finalizer. A finalizer translates HSAIL modules into a given ISA. This work investigates the issues of indirect finalization, kernel code optimization and performance on an HSA compliant system with an AMD Carrizo APU targeting its GPU architecture. To finalize the HSAIL code indirectly, a HSAIL frontend is developed to translate HSAIL codes to LLVM modules, which is then integrated with the LLVM AMDGPU backend. The author develops eight OpenCL benchmarks whose kernel codes are from AMD APP SDK. The work also shows the impact of three LLVM optimizaton passes, one of which is written by the author, on indirect finalization.
Subjects
HSA
Finalizer
GPU
Type
thesis
File(s)
Loading...
Name
ntu-105-R03922003-1.pdf
Size
23.32 KB
Format
Adobe PDF
Checksum
(MD5):511633b356d1d29f16aef4db65431b12