Hardware and software stack complexity make programming GPGPUs difficult and limit application portability. This article first discusses challenges imposed by the current hardware and software model in GPGPU systems which relies heavily on the HOST device (CPU). We then identify system bottlenecks both in the hardware design and in the software stack and present two ideas to extend the HOST and DEVICE side of the OpenCL API with the aim to improve latency and device safety. As a first goal we target HOST side latency reduction using user synchronization directives. Our second goal was to improve on DEVICE side latency and add safety through a software layer which manages kernel execution. For both HOST and DEVICE side latency reduction we present concrete performance results.
['Grigore Lupescu', 'Emil-Ioan Slusanschi', 'Nicolae Tapus']
Extensions over OpenCL for Latency Reduction and Critical Applications