C2CU : A CUDA C Program Generator for Bulk Execution of a Sequential Algorithm
C2CU : A CUDA C Program Generator for Bulk Execution of a Sequential Algorithm
复制标题
DOI:
10.1007/978-3-319-11194-0_14
复制
发表时间:
2014-08
期刊:
影响因子:
--
通讯作者:
Daisuke Takafuji;K. Nakano;Yasuaki Ito
中科院分区:
文献类型:
--
作者:
Daisuke Takafuji;K. Nakano;Yasuaki Ito
Several important tasks, including matrix computation, signal processing, sorting, dynamic programming, encryption, and decryption, can be performed byoblivioussequential algorithms. A sequential algorithm is oblivious if an address accessed at each time does not depend on the input data. Abulkexecution of a sequential algorithm is to execute it for many independent inputs in turn or in parallel. A number of works have been devoted to design and implement parallel algorithms for a single input. However, none of these works evaluated the bulk execution performance of these algorithms. The first contribution of this paper is to present a time‐optimal implementation for bulk execution of an oblivious sequential algorithm. Our second contribution is to develop a tool, named C2CU, which automatically generates a CUDA C program for a bulk execution of an oblivious sequential algorithm. The C2CU has been used to generate CUDA C programs for the bulk execution of the bitonic sorting, Floyd‐Warshall, and Montgomery modulo multiplication algorithms. Compared to a sequential implementation on a single CPU, the generated CUDA C programs for the above algorithms run, respectively, 199, 54, and 78 times faster.