llama

A Low-Level Abstraction of Memory Access

https://github.com/alpaka-group/llama

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
Last synced: 6 months ago · JSON representation ·

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
Created about 8 years ago · Last pushed about 2 years ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

LLAMA – Low-Level Abstraction of Memory Access

ReadTheDocs Doxygen Language Paper Preprint DOI codecov

LLAMA

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

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)
Top Labels
Issue Labels
enhancement (10) help wanted (4) bug (2) question (1) machine/system (1)
Pull Request Labels
enhancement (11) bug (9) documentation (2)