|
Project Information
Featured
Downloads
Links
|
GMAC: Global Memory for ACceleratorsGMAC is a user-level library that implements an Asymmetric Distributed Shared Memory model to be used by CUDA programs. An ADSM model allows CPU code to access data hosted in accelerator (GPU) memory. GMAC is being developed by the Operating System Group at the Universitat Politecnica de Catalunya and the IMPACT Research Group at the University of Illinois. Supported Systems
OverviewReduce the complexity of your code. GMAC transparently takes care of the consistency and coherency of the data both used in the CPU and in the GPU, so your code gets simpler and cleaner. This means that you only have to use a pointer per allocation to access data both in the CPU and the GPU.
Using GMACThis is a quick-guide to start using GMAC. Please, read the documentation for examples and further information. If you need further information, please send an e-mail to the appropriate Google group:
If you find a bug or you want to request a new feature, please use the Issues Tab and add a new issue filling the necessary fields. Get the libraryYou can download pre-built Debian packages here. Get the codeYou can use the package tar.gz file from here or get the latest source code cloning the Mercurial repository hg clone https://adsm.googlecode.com/hg/ adsm Compile (using your favorite flags)You need to create the configuration scripts and compile the source code. Additionally, you can also install the GMAC library in your system. The new build system is based on CMake, so you need to have CMake installed to compile GMAC. cd adsm mkdir build cd build ../libgmac/configure make all install There are many configuration options for the configure script. The unified CPU / GPU virtual address space (i.e, use the same pointer in the CPU and GPU code) is not supported in NVIDIA Fermi GPUs. NVIDIA has done major changes to their driver that prevents our mechanism to work, we are working on a limited support of this feature for single-GPU systems that we will release as soon as possible. In the meantime, the configure scripts in these systems requires the --disable-mmap flag to work. Use the GMAC APIThese are the guidelines to port your CUDA code to GMAC:
Your application is ready to use GMAC. DocumentationDocumentation can be found in our Wiki |