Logo
latest

USER DOCUMENTATION

  • Installation
  • Introduction
  • Dimensions
  • View
  • RecordRef
  • Iteration
  • Mappings
  • Proxy references
  • Blobs
  • Copying between views
  • SIMD
  • Macros
  • API
  • LLAMA vs. C++
LLAMA
  • Low-Level Abstraction of Memory Access
  • Edit on GitHub

_images/logo.svg

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.

USER DOCUMENTATION

  • Installation
    • Getting LLAMA
    • Dependencies
    • Build tests and examples
    • Install LLAMA
  • Introduction
    • Motivation
    • Goals
    • Concept
    • Library overview
    • Example use cases
  • Dimensions
    • Array dimensions
    • Record dimension
  • View
    • View allocation
    • Data access
    • Accessors
    • SubView
  • RecordRef
    • One
    • Arithmetic and logical operators
    • Tuple interface
    • Structured bindings
  • Iteration
    • Array dimensions iteration
    • Record dimension iteration
    • View iterators
  • Mappings
    • Physical mappings
    • Computed mappings
    • Meta mappings
  • Proxy references
    • The story of std::vector<bool>
    • Working with proxy references
    • Proxy references in LLAMA
    • Concept
    • Arithmetic on proxy references and ProxyRefOpMixin
    • Member functions and proxy references
    • Implementing proxy references
  • Blobs
    • Blob allocators
    • Non-owning blobs
    • Shallow copy
  • Copying between views
  • SIMD
    • SIMD libraries
    • SIMD interaction with LLAMA
    • SIMD library integration with LLAMA
    • LLAMA SIMD API
  • Macros
    • Offloading
    • Data (in)dependence
  • API
    • Useful helpers
    • Array dimensions
    • Record dimension
    • Record coordinates
    • Views
    • Mappings
    • Data access
    • Copying
    • SIMD
    • Macros
  • LLAMA vs. C++
    • Containers and views
    • Values and references
Next

© Copyright 2018, Alexander Matthes, 2024, Bernhard Manfred Gruber. Revision 086e66e7.

Built with Sphinx using a theme provided by Read the Docs.
Caaaaaaaaaaaaarl! 👒