In the current HPC landscape multi-GPGPU computation has established it self as a highly performant hardware choice for many workloads. A challenge is to ease the programming burden. In this thesis we present a library using a novel 3 layered architecture for supporting communication between multi-GPGPUs. This library allows a user, with little effort to communicate between GPUs and CPU using communication strategies giving state of the art performance. Further on we evaluate the performance of the library using simulated workloads and a real scientific code. This thesis should be of interest for readers concerned with easing the programming of multi-GPGPU.