Skip to content

Version 0.3

Compare
Choose a tag to compare
@bernhardmgruber bernhardmgruber released this 04 Jun 08:03

Added features

  • added multi-blob SoA mapping allowing to map to one blob per field #111
  • added llama::FlatRecordDim and llama::flatRecordCoord to flatten record dimension and record coordinates #241
  • added llama::VirtualRecord::asTuple and llama::VirtualRecord::asFlatTuple to create tuples of references from virtual records #139, #141
  • added an iterator for llama::View and llama::View::begin/llama::View::end, allowing it to be used with the STL #158, #162, #207, #259, #259
  • added support for arrays of static size inside llama::Field #164
  • added llama::mapping::maxLanes to help building AoSoA mappings #181
  • added llama::flatSizeOf and llama::flatOffetOf working on type lists #241
  • added llama::fieldCount<RecordDim> #241
  • added llama::LeafRecordCoords creating a type list of record coordinates of the leaf fields #254
  • added literal operator _RC to easy creating of record coordinates #144
  • added concepts llama::BlobAllocator and llama::StorageBlob #145, #146
  • added new Heatmap mapping, tracking bytewise memory access #192
  • added llama::forEachADCoord to iterate over array dimensions #198
  • added a parameter to AoS to support alignment #156
  • made ArrayDomainIndexIterator and ArrayDomainIndexRange constexpr #130
  • added support for structured bindings on llama::VirtualRecord #142
  • added load and store support between virtual datum and any tuple like type #143
  • added prototype of computed properties (experimental and undocumented) #171
  • added LLAMA_LAMBDA_INLINE to force inlining of lambda functions #264
  • added CUDA n-body #129, #132, #220, #221
  • extended n-body, vectoradd and heatequation examples with more variants #115, #116, #118, #124, #133, #134, #135, #207, #213, #216, #270, #273
  • added new bufferguard example #166
  • added new viewcopy example, comparing various approaches to copy between llama::Views #119, #120, #223, #224, #25, #228, #235, #247, #268
  • added new alpaka nbody example using Vc #128
  • added icpc, icpx and clang to CI #157, #172
  • added .clang-tidy file #195
  • added clang-format check to CI #127
  • extended llama::sizeOf and llama::offsetOf to support alignment and padding #156
  • llama::ArrayDomainIndexIterator is now random access and supports C++20 ranges #199
  • llama::structName can now be used with a type argument as well #241
  • llama::One can be constructed from other virtual records #256
  • added llama::AlignedAllocator
  • made llama::forEachLeaf constexpr
  • made all mappings constexpr

Breaking changes

  • renamed datum domain to record dimension, including corresponding files, helper functions, variables etc. #194, notably:
    • renamed llama::VirtualDatum to llama::VirtualRecord
    • renamed llama::DatumCoord to llama::RecordCoord
    • renamed llama::DatumStruct to llama::Record
    • renamed llama::DatumElement to llama::Field
  • replaced llama::allocVirtualDatumStack by llama::One #140
  • bumped required alpaka version in examples to 0.7 and adapt to changes in alpaka #113
  • bumped required CMake version to 3.16 #122
  • added arrayDims getter to all mappings and made ArrayDims member private #210
  • renamed llama::mapping::SplitMapping to llama::mapping::Split #155
  • renamed namespace llama::allocator to llama::bloballoc #188
  • renamed getBlobSize/getBlobNrAndOffset in all mappings to blobSize/blobNrAndOffset #191
  • removed unnecessary size argument of llama::VirtualView constructor
  • replaced parallel STL by OpenMP in examples to remove dependency on TBB #198
  • switched to clang-format 12 #202
  • reorganized internal LLAMA headers #123
  • llama::offsetOf now requires a RecordCoord instead of integral indices
  • bumped required Boost version to 1.70

Bug fixes and improvements

  • added a few missing asymmetric arithmetic and relational operators to llama::VirtualRecord #115
  • fixed blob splitting in llama::mapping::Split #155
  • only write back velocity in n-body example #249
  • improved output of dumped mapping visualizations #154, #265
  • improved and expanded documentation and add new figures
  • improved compilation time #241, #246, #254
  • improve annotation of llama functions with LLAMA_FN_HOST_ACC_INLINE #152
  • removed some dependencies on Boost #161, #204, #266
  • updated .zenodo.json #121
  • fix wrong distance calculation in body example
  • refactored common timing functions in examples into class Stopwatch
  • CMakeLists.txt cleanup
  • refactored internals

Removed features

  • removed llama::Index<I>, use llama::RecordCoord now #144
  • removed llama::DatumArray and llama::DA, replaced by using C++ native fixed size arrays #164