AlignedAllocs.jl

All allocations use the new Memory infrastructure.

AlignedAllocs.jl provides fast, cache alignment aware allocations for Julia vectors, matrices, arrays.

  • {Vector, Matrix, nD Array}{T} are supported
  • FixedLength{Vector, Matrix, nD Array}{T} are supported
  • The package wraps platform specific memory allocation primitives
    • in a consistent, small, coherent and type stable API.

What AlignedAllocs.jl brings

Julia's Memory type (MemoryRef) is now a cornerstone feature of AlignedAllocs

  • Aligned memory is provided

    • backing a Vector{T} or an Array{T,N}
    • backing a FixedSizeVector{T} or a FixedSizeArray{T,N}
  • Aligned memory is obtained

    • either uninitialized or zeroed
    • without offsets into another memory object
    • without copying from another memory source
  • System local cache line size is determined during precompilation

    • this becomes the default alignment
  • mutually and successively aligned sequences are available

    • contiguous fixed length vectors are sequentially aligned
    • this works where the sizeof the constituent vector is
      • less than or equal to the alignment of the vector's start
      • if the constituent is larger than the alignment, the alignment is increased