Strengert, MagnusMüller, ChristophDachsbacher, CarstenErtl, ThomasJean M. Favre and Kwan-Liu Ma2014-01-262014-01-262008978-3-905674-04-01727-348Xhttps://doi.org/10.2312/EGPGV/EGPGV08/049-056We present an extension to the CUDA programming language which extends parallelism to multi-GPU systems and GPU-cluster environments. Following the existing model, which exposes the internal parallelism of GPUs, our extended programming language provides a consistent development interface for additional, higher levels of parallel abstraction from the bus and network interconnects. The newly introduced layers provide the key features specific to the architecture and programmability of current graphics hardware while the underlying communica- tion and scheduling mechanisms are completely hidden from the user. All extensions to the original programming language are handled by a self-contained compiler which is easily embedded into the CUDA compile process. We evaluate our system using two different sample applications and discuss scaling behavior and performance on different system architectures.Categories and Subject Descriptors (according to ACM CCS): I.3.6 [Computer Graphics]: Languages C.2.4 [Computer-Communication Networks]: Distributed applicationsCUDASA: Compute Unified Device and Systems Architecture