GMAC 0.0.20 Released

February 10th, 2011

GMAC is a user-level library that implements an Asymmetric Distributed Shared Memory model to be used by CUDA programs. An ADSM model builds a global memory space that allows CPU code to transparently access data hosted in accelerators’ (GPUs’) memories. Moreover, the coherency of the data is automatically handled by the library. This removes the necessity for manual memory transfers (cudaMemcpy) between the host and GPU memories. Furthermore, GMAC assigns a different “virtual GPU” to each host thread, and the virtual GPUs are evenly mapped to physical GPUs. This is especially useful for multi-GPU programs since each host thread can access the memory of all GPUs and simple GPU-to-GPU transfers can be performed with simple memcpy calls.

GMAC is being developed by the Operating Systems Group at the Universitat Politecnica de Catalunya and the IMPACT Research Group at the Univeristy of Illinois under the University of Illinois/NCSA Open Source License.

Release notes for GMAC 0.0.20
– Complete rewrite of the code
– Added unit testing to the code
– Automatic PCIe and disk I/O transfer overlapping (interposition of the fread/fwrite functions)
– Automatic hostToDevice and deviceToHost overlapping in GPU to GPU transfers
– Optimized version of the MPI_Sendrecv/MPI_Send/MPI_Recv functions (through interposition)

The project is hosted at There you can find the source code and documentation.