Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 9 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.4%) to scientific vocabulary
Repository
A Low-Level Abstraction of Memory Access
Basic Info
- Host: GitHub
- Owner: alpaka-group
- License: mpl-2.0
- Language: C++
- Default Branch: develop
- Homepage: https://llama-doc.rtfd.io/
- Size: 260 MB
Statistics
- Stars: 87
- Watchers: 6
- Forks: 11
- Open Issues: 73
- Releases: 0
Metadata Files
README.md
LLAMA – Low-Level Abstraction of Memory Access

LLAMA is a cross-platform C++17/C++20 header-only template library for the abstraction of data layout and memory access. It separtes the view of the algorithm on the memory and the real data layout in the background. This allows for performance portability in applications running on heterogeneous hardware with the very same code.
Documentation
Our extensive user documentation is available on Read the Docs. It includes:
- Installation instructions
- Motivation and goals
- Overview of concepts and ideas
- Descriptions of LLAMA's constructs
An API documentation is generated by Doxygen from the C++ source. Please read the documentation on Read the Docs first!
Supported compilers
LLAMA tries to stay close to recent developments in C++ and so requires fairly up-to-date compilers. The following compilers are supported by LLAMA and tested as part of our CI:
| Linux | Windows | MacOS | |-----------------------------------------------------------------------------------------------|-----------------------------------------------------|----------------------------------| | g++ 10 - 13 clang++ 12 - 17 icpx (latest) nvc++ 23.5 nvcc 11.6 - 12.3 | Visual Studio 2022 (latest on GitHub actions) | clang++ (latest from brew) |
Single header
We create a single-header version of LLAMA on each commit, which you can find on the single-header branch.
This also useful, if you would like to play with LLAMA on Compiler explorer: ```c++
include https://raw.githubusercontent.com/alpaka-group/llama/single-header/llama.hpp
```
Contributing
We greatly welcome contributions to LLAMA. Rules for contributions can be found in CONTRIBUTING.md.
Scientific publications
We published an article on LLAMA in the journal of Software: Practice and Experience. We gave a talk on LLAMA at CERN's Compute Accelerator Forum on 2021-05-12. The video recording (starting at 40:00) and slides are available here on CERN's Indico. Mind that some of the presented LLAMA APIs have been renamed or redesigned in the meantime.
We presented recently added features to LLAMA at the ACAT22 workshop as a poster and a contribution to the proceedings. Additionally, we gave a talk at ACAT22 on LLAMA's instrumentation capabilities during a case study on AdePT, again, with a contribution to the proceedings.
Attribution
If you use LLAMA for scientific work, please consider citing this project. We upload all releases to Zenodo, where you can export a citation in your preferred format. We provide a DOI for each release of LLAMA. Additionally, consider citing the LLAMA paper.
License
LLAMA is licensed under the MPL-2.0.
Owner
- Name: alpaka
- Login: alpaka-group
- Kind: organization
- Location: Dresden, Germany
- Website: http://www.hzdr.de/crp
- Repositories: 9
- Profile: https://github.com/alpaka-group
Abstraction Library for Parallel Kernel Acceleration
Citation (CITATION.cff)
cff-version: 1.2.0
title: "LLAMA: The Low-Level Abstraction of Memory Access"
message: "If you use this software, please cite it using the metadata from this file."
type: software
authors:
- family-names: "Gruber"
given-names: "Bernhard Manfred"
affiliation: >-
EP-SFT, CERN, Geneva, Switzerland and
Center for Advanced Systems Understanding (CASUS), Saxony, Germany and
Helmholtz-Zentrum Dresden-Rossendorf and
Faculty of Computer Science, Technische Universität Dresden, Dresden, Germany
orcid: "https://orcid.org/0000-0001-7848-1690"
email: bernhardmgruber@gmail.com
- family-names: "Widera"
given-names: "René"
affiliation: "Helmholtz-Zentrum Dresden-Rossendorf"
orcid: "https://orcid.org/0000-0003-1642-0459"
- family-names: "Matthes"
given-names: "Alexander"
affiliation: "Helmholtz-Zentrum Dresden-Rossendorf, TU Dresden"
orcid: "https://orcid.org/0000-0002-6702-2015"
version: '0.6'
date-released: '2024-02-29'
repository-code: 'https://github.com/alpaka-group/llama'
abstract: >-
LLAMA is a cross-platform C++17/C++20 header-only template
library for the abstraction of data layout and memory
access. It separtes the view of the algorithm on the
memory and the real data layout in the background. This
allows for performance portability in applications running
on heterogeneous hardware with the very same code.
license: MPL-2.0
keywords:
- HPC
- C++
- data layout
- memory access
- heterogeneous computing
- performance portability
references:
- type: grant
title: 'European Cluster of Advanced Laser Light Sources'
authors:
- name: 'EUROPEAN X-RAY FREE-ELECTRON LASERFACILITY GMBH'
number: 654220
- type: grant
title: 'This work has been sponsored by the Wolfgang Gentner Programme of the German Federal Ministry of Education and Research (grant no. 13E18CHA)'
authors:
- name: 'German Federal Ministry of Education and Research'
number: 13E18CHA
- type: article
title: 'LLAMA: The low-level abstraction for memory access'
doi: 10.1002/spe.3077
url: 'https://onlinelibrary.wiley.com/doi/abs/10.1002/spe.3077'
journal: 'Software: Practice and Experience'
volume: 53
number: 1
start: 115
end: 141
year: 2023
authors:
- family-names: "Gruber"
given-names: "Bernhard Manfred"
orcid: "https://orcid.org/0000-0001-7848-1690"
affiliation: >-
EP-SFT, CERN, Geneva, Switzerland and
Center for Advanced Systems Understanding (CASUS), Saxony, Germany and
Helmholtz-Zentrum Dresden-Rossendorf and
Faculty of Computer Science, Technische Universität Dresden, Dresden, Germany
- family-names: "Amadio"
given-names: "Guilherme"
orcid: "https://orcid.org/0000-0002-2102-7945"
affiliation: "EP-SFT, CERN, Geneva, Switzerland"
- family-names: "Blomer"
given-names: "Jakob"
orcid: "https://orcid.org/0000-0001-9750-6224"
affiliation: "EP-SFT, CERN, Geneva, Switzerland"
- family-names: "Matthes"
given-names: "Alexander"
orcid: "https://orcid.org/0000-0002-6702-2015"
affiliation: "Helmholtz-Zentrum Dresden-Rossendorf, Dresden, Germany and LogmeIn, Dresden, Germany"
- family-names: "Widera"
given-names: "René"
orcid: "https://orcid.org/0000-0003-1642-0459"
affiliation: "Helmholtz-Zentrum Dresden-Rossendorf, Dresden, Germany"
- family-names: "Bussmann"
given-names: "Michael"
orcid: "https://orcid.org/0000-0002-8258-3881"
affiliation: 'Center for Advanced Systems Understanding (CASUS), Saxony, Germany'
GitHub Events
Total
- Watch event: 7
- Issue comment event: 2
- Fork event: 1
Last Year
- Watch event: 7
- Issue comment event: 2
- Fork event: 1
Issues and Pull Requests
Last synced: over 1 year ago
All Time
- Total issues: 22
- Total pull requests: 178
- Average time to close issues: 11 months
- Average time to close pull requests: 10 days
- Total issue authors: 6
- Total pull request authors: 6
- Average comments per issue: 3.59
- Average comments per pull request: 1.0
- Merged pull requests: 164
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 61
- Average time to close issues: N/A
- Average time to close pull requests: about 8 hours
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 0.0
- Average comments per pull request: 0.9
- Merged pull requests: 58
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- bernhardmgruber (9)
- bertwesarg (7)
- ax3l (4)
- sbastrakov (1)
- psychocoderHPC (1)
- tdd11235813 (1)
Pull Request Authors
- bernhardmgruber (180)
- bertwesarg (13)
- theZiz (5)
- MarkusVelten (2)
- psychocoderHPC (1)
- tdd11235813 (1)