Identification and Elimination of the Overhead of Accelerate with a Super-Resolution Application (bibtex)
by Izumi Asakura, Hidehiko Masuhara, Takuya Matsumoto and Kiminori Matsuzaki
Abstract:
This paper supplements the evaluation of libraries for parallel computing in Haskell by Matsumoto and Matsuzaki. The previous work implemented an image processing program by using two different libraries and compared expressiveness and parallel execution performance. In particular, it found that a parallel execution of the Accelerate program on a GPU is slower than the execution of the handwritten CUDA-C program by a factor of more than 70. We analyzed the execution of the Accelerate program and identified that the major sources of the overhead are in the process of the syntax tree before execution of a GPU kernel. Since the program realizes repeated execution by constructing a large syntax tree whose size is proportional to the number of repetitions, we rewrote this part by using a while-construct, which significantly reduces the overhead as it runs half as fast as the CUDA-C program. We also discuss language design alternatives for avoiding this type of overhead.
Reference:
Identification and Elimination of the Overhead of Accelerate with a Super-Resolution Application (Izumi Asakura, Hidehiko Masuhara, Takuya Matsumoto and Kiminori Matsuzaki), In Journal of Information Processing, volume 26, 2018. (Accepted on 2017-08-09. A preprint is also archived as IPSJ Transaction on Programming, 10(6), December 2017)
Bibtex Entry:
@article{asakura2017jip,
  pdf = {ipsj-trans-pro-2017.pdf},
  author = {Izumi Asakura and Hidehiko Masuhara and Takuya Matsumoto and Kiminori Matsuzaki},
  title = {Identification and Elimination of the Overhead of {Accelerate} with a Super-Resolution Application},
  keywords = {Haskell, GPGPU},
  journal = {Journal of Information Processing},
  year = 2018,
  volume = 26,
  optnumber = {.},
  pages = {48--53},
  month = jan,
  annote = {presented as IPSJ PRO 2017-1-(3), also appears in IPSJ Trans. PRO},
  doi = {10.2197/ipsjjip.26.48},
  note = {Accepted on 2017-08-09.  \href{http://id.nii.ac.jp/1001/00184819}{A preprint is also archived as IPSJ Transaction on Programming, 10(6), December 2017}},
  abstract = {This paper supplements the evaluation of libraries for parallel computing in Haskell by Matsumoto and Matsuzaki. The previous work implemented an image processing program by using two different libraries and compared expressiveness and parallel execution performance. In particular, it found that a parallel execution of the Accelerate program on a GPU is slower than the execution of the handwritten CUDA-C program by a factor of more than 70. We analyzed the execution of the Accelerate program and identified that the major sources of the overhead are in the process of the syntax tree before execution of a GPU kernel. Since the program realizes repeated execution by constructing a large syntax tree whose size is proportional to the number of repetitions, we rewrote this part by using a while-construct, which significantly reduces the overhead as it runs half as fast as the CUDA-C program. We also discuss language design alternatives for avoiding this type of overhead.}
}
Powered by bibtexbrowser