LBL-EESA / HAMR

Heterogeneous Accelerator Memory Resource

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HAMR

HAMR is a library defining an accelerator technology agnostic memory model that bridges between accelerator technologies (CUDA, HIP, ROCm, OpenMP, Kokos, etc) and traditional CPUs in heterogeneous computing environments. HAMR is light weight and implemented in modern C++. HAMR includes Python integration that enables zero-copy data transfer between C++ and Python technogies such as Numba and Cupy.

Citing

If you've used HAMR in your application please cite us.

DOI

Source Code

The source code can be obtained at the HAMR github repository.

Documentation

The HAMR User's Guide documents compiling and use of HAMR and contains simple examples.

The HAMR Doxygen site documents the APIs. Most users will want to start with the hamr::buffer, a container that has capabilities similar to std::vector and can provide access to data in different accelerator execution environments.

Regression Testing and CI

CPU-HAMR build and test CUDA-HAMR build and test HIP-HAMR build and test AMD-OpenMP-HAMR build and test

License

HAMR's license is a BSD license with an ADDED paragraph at the end that makes it easy for us to accept improvements. See license for more information.

Copyright Notice

HAMR - Heterogeneous Accelerator Memory Resource (HAMR) Copyright (c) 2022, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.

If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Intellectual Property Office at IPO@lbl.gov.

NOTICE. This Software was developed under funding from the U.S. Department of Energy and the U.S. Government consequently retains certain rights. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, distribute copies to the public, prepare derivative works, and perform publicly and display publicly, and to permit others to do so.

About

Heterogeneous Accelerator Memory Resource

License:Other


Languages

Language:C++ 92.8%Language:CMake 4.1%Language:SWIG 1.8%Language:Python 1.3%