標題: PFACC: An OpenACC-like programming model for irregular nested parallelism
作者: Huang, Ming Hsiang
Yang, Wuu
資訊工程學系
Department of Computer Science
關鍵字: dynamic scheduling;GPGPU;irregular parallelism;nested parallelism;OpenACC;parallel programming model;PFACC
公開日期: 1-一月-1970
摘要: OpenACC is a directive-based programming model which allows programmers to write graphic processing unit (GPU) programs by simply annotating parallel loops. However, OpenACC has poor support for irregular nested parallel loops, which are natural choices to express nested parallelism. We propose PFACC, a programming model similar to OpenACC. PFACC directives can be used to annotate parallel loops and to guide data movement between different levels of memory hierarchy. Parallel loops can be arbitrarily nested or be placed inside functions that would be (possibly recursively) called in other parallel loops. The PFACC translator translates C programs with PFACC directives into CUDA programs by inserting runtime iteration-sharing and memory allocation routines. The PFACC runtime iteration-sharing routine is a two-level mechanism. Thread blocks dynamically organize loop iterations intobatchesand execute the batches in a depth-first order. Different thread blocks share iterations among one another with an iteration-stealing mechanism. PFACC generates CUDA programs with reasonable memory usage because of the depth-first execution order. The two-level iteration-sharing mechanism is implemented purely in software and fits well with the CUDA thread hierarchy. Experiments show that PFACC outperforms CUDA dynamic parallelism in terms of performance and code size on most benchmarks.
URI: http://dx.doi.org/10.1002/spe.2868
http://hdl.handle.net/11536/154851
ISSN: 0038-0644
DOI: 10.1002/spe.2868
期刊: SOFTWARE-PRACTICE & EXPERIENCE
起始頁: 0
結束頁: 0
顯示於類別:期刊論文