Is a GPU just an accelerator?


Lung-Sheng Chien
2012-01-14  11:10 - 12:00
Room 103 , Mathematics Research Center Building (ori. New Math. Bldg.)

Although GPU (Graphic Processing Unit) becomes more and more popular on parallel computing, people still regards GPUs as coprocessors or accelerators. The lesson one of parallel computing is to find the critical path, check which part can be done in parallel and analyze if it is worth to rewrite the code running on GPU. GPUs, of course, becomes an accelerator under this paradigm. However data must be sent to GPU via PCI bus before launching the computation, this becomes a huge penalty if the application is more like memory-bound. Researchers can leverage CPU and GPU by evaluating cost of PCI: if cost of PCI transfer is high, computation still resides on CPU. The latest GPU, codenamed Kepler, has several key features different from its predecessors, including hyper-Q and dynamic parallelism. The developers can launch a kernel inside a kernel by dynamic parallelism, so GPU is not just an accelerator only. The hyper-Q can support up to 32 streams, so developers can either overlap data transfer and computation or launch many small kernels at the same time. In this talk, we will review key features of Kepler and share some successful stories of Kepler. Also we try to rethink a LU decomposition by dynamic parallelism and hyper- Q.