Abstract
As the computational speed on GPUs is increasing faster than the communication bandwidth, reducing communication costs will continue to be crucial to the performance of GPU-accelerating applications. This dissertation presents two techniques and investigates the feasibility of using two techniques to reduce communication costs on GPU systems. The first technique is data compression plus data streaming, which limits the number of memory accesses and overlaps the decompression overhead and the communication cost with GPU computation. The second technique is artificial barrier synchronization, which improves the communication efficiency by reducing the contention for memory systems. Both techniques require an insignificant computational overhead for the exchange of the communication cost reduction, resulting in an increase of overall performance. This study demonstrates how the proposed techniques can be performed for performance in six computational kernels: radix sort, box intersection, sensor deployment, vector addition, scalar product and sequence alignment. We conducted theoretical analyses and extensive experimental tests for the presented techniques. From the analytical and experimental results, we got encouraged remarks regarding to the effectiveness of the presented techniques for GPU performance.