Summary: | 碩士 === 國立交通大學 === 資訊科學與工程研究所 === 106 === NESL is a functional language that supports nested data parallelism. Even though it
was proposed in 1990s, NESL is still under active GPU research in recent years. In 2016,
Huang and Yang proposed the Partial flattening technique, which translates C programs
together with annotations on parallel loops to CUDA programs and supports irregular
nested parallelism on GPUs, Partial flattening decreases the difficulty of irregular nested
parallel programing on GPU devices and outperforms existing NESL compilers on several
benchmarks. We build a translator that translates NESL programs into C programs with
annotations which can be further translated into CUDA programs by partial flattening
translator in order to achieve nested data parallelism on GPUs. The experimental result of
our current implementation shows that, our translated C might suffer from the overhead
of memory allocations on GPU devices in some cases, and therefore, compared with
the existing NESL interpreter targeting on CPU, we are in average 48 times slower in
Quicksort and 1.79 times slower in Maximum Clique Enumeration. However, we still
performs in average 2 times faster in dot product and 29.2 times faster in Quickhull.
|