Font Size: a A A

Analysis And Extension Of The Typical Programming Model For Heterogeneous Platforms

Posted on:2013-08-22Degree:MasterType:Thesis
Country:ChinaCandidate:Q LanFull Text:PDF
GTID:2268330422974303Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
In the field of high performance computing, computer architecture developstowards to heterogeneous multicore platform. Programming for heterogeneousmulticore platform faces new challenges, and challenges are mainly manifested in twoaspects: one is the portability of a program written for heterogenous platform, the otheris the ability to simply the programming for CPU and GPU within heterogenousplatform and maintaining the portability. Many programming models such as CUDA,StreamIt, StreamC/KernelC, CellSs are specific to the processing platform, so theportability of programs written by those models are bad. So we choose two typicalprogramming models which are OpenCL and Sequoia to analyse and extend. OpenCL isa cross-platform standard, many processor vendors currently support OpenCL and theOpenCL program has good figures of portability. Sequoia is a parallel programmingmodel which is oriented to memory hierarchy, In Sequoia programming model, thesource program of algorithm and description of the target platform architecture isseparated, so the Sequoia program also has good portability.This paper introduces the framework of the virtual hybrid computing deviceswhich is studied by our research group, the paper also evaluates and analyses the VHCDruntime, the results show that with the support of VHCD runtime, when programmingon multiple GPU in heterogeneous platform, programmers can regard multiple GPU asa single OpenCL device, which simplifies the programming and achieves goodperformance. But when programming on both CPU and GPU in the heterogeneousplatform, the actual performance and ideal performance vary widely. This paper testsand analysis the performance portability of the OpenCL, due to differences in thearchitecture of the CPU and GPU, OpenCL code written for single OpenCL devicecannot simultaneously achieve good performance on CPU and GPU. So optimizationfor OpenCL code is platform dependent, for most of the existing OpenCL applicationsare GPU-optimized, this paper proposes three strategies to turn the GPU-specificOpenCL programs to CPU-specific OpenCL programs, and we make a conversion toseveral GPU-specific benchmarks by those three methods, we achieve a goodperformance with the CPU-specific OpenCL codes running on CPU relative to theGPU-specific codes.Because of the existence of the problem of the performance portability of OpenCL, we may achieve bad results when we exploit the CPU and GPU to compute tasks, sothis paper also extend the Sequoia programming model, with the help of the extendedmodel, programmers can program the CPU and GPU simultaneously. And our work inthis paper supports balanced division strategy, which is adapt to heterogeneous withequal computing ability among CPU and GPU, and our work has to continue to appliedto most of the heterogeneous platforms.
Keywords/Search Tags:heterogeneous multicore, programming model, functionalportability, performance portability
PDF Full Text Request
Related items