|
VeloGraphX
High-performance dynamic graph analytics in C++20
|
Namespaces | |
| namespace | detail |
Classes | |
| struct | BlockedAdjacency |
| struct | CompressionRecommendation |
| struct | FixedWidthDeltaBlock |
| struct | SimdFriendlyAdjacency |
Typedefs | |
| using | VertexId = std::uint32_t |
Enumerations | |
| enum class | VectorDecodeBackend { scalar , avx2 , neon } |
| enum class | CompressionCodec { variable_byte , simd_friendly_fixed_width } |
Functions | |
| std::vector< std::uint32_t > | delta_encode (const std::vector< VertexId > &ids) |
| std::vector< VertexId > | delta_decode (const std::vector< std::uint32_t > &deltas) |
| void | variable_byte_encode_uint32 (std::uint32_t value, std::vector< std::uint8_t > &out) |
| std::uint32_t | variable_byte_decode_uint32 (const std::vector< std::uint8_t > &data, std::size_t &offset) |
| std::vector< std::uint8_t > | variable_byte_delta_encode (const std::vector< VertexId > &ids) |
| std::vector< VertexId > | variable_byte_delta_decode (const std::vector< std::uint8_t > &data) |
| BlockedAdjacency | blocked_variable_byte_encode (const std::vector< VertexId > &ids, std::size_t block_size=128) |
| std::vector< VertexId > | blocked_variable_byte_decode (const BlockedAdjacency &encoded) |
| std::uint8_t | required_lane_bytes (std::uint32_t max_delta) noexcept |
| void | append_fixed_width_uint32 (std::uint32_t value, std::uint8_t lane_bytes, std::vector< std::uint8_t > &out) |
| std::uint32_t | read_fixed_width_uint32 (const std::vector< std::uint8_t > &payload, std::size_t offset, std::uint8_t lane_bytes) |
| SimdFriendlyAdjacency | simd_friendly_delta_encode (const std::vector< VertexId > &ids, std::size_t block_size=128) |
| std::vector< VertexId > | simd_friendly_delta_decode (const SimdFriendlyAdjacency &encoded) |
| double | compression_ratio_bytes (const std::vector< VertexId > &ids, const std::vector< std::uint8_t > &encoded) noexcept |
| double | compression_ratio_bytes (const std::vector< VertexId > &ids, const SimdFriendlyAdjacency &encoded) noexcept |
| VectorDecodeBackend | vector_decode_backend () noexcept |
| std::vector< VertexId > | simd_friendly_delta_decode_vectorized (const SimdFriendlyAdjacency &encoded) |
| CompressionRecommendation | recommend_compression_codec (const std::vector< VertexId > &ids, std::size_t block_size=128, double max_fixed_width_overhead=1.10) |
| using velographx::storage::VertexId = typedef std::uint32_t |
Definition at line 12 of file compressed_adjacency.hpp.
|
strong |
| Enumerator | |
|---|---|
| variable_byte | |
| simd_friendly_fixed_width | |
Definition at line 11 of file compression_policy.hpp.
|
strong |
| Enumerator | |
|---|---|
| scalar | |
| avx2 | |
| neon | |
Definition at line 119 of file compressed_decode_simd.hpp.
|
inline |
Definition at line 145 of file compressed_adjacency.hpp.
Referenced by simd_friendly_delta_encode().
|
inline |
Definition at line 107 of file compressed_adjacency.hpp.
References velographx::storage::BlockedAdjacency::block_offsets, velographx::storage::BlockedAdjacency::payload, velographx::storage::BlockedAdjacency::value_count, and variable_byte_delta_decode().
|
inline |
Definition at line 88 of file compressed_adjacency.hpp.
References velographx::storage::BlockedAdjacency::block_offsets, velographx::storage::BlockedAdjacency::block_size, velographx::storage::BlockedAdjacency::payload, velographx::storage::BlockedAdjacency::value_count, and variable_byte_delta_encode().
|
inlinenoexcept |
Definition at line 237 of file compressed_adjacency.hpp.
|
inlinenoexcept |
Definition at line 230 of file compressed_adjacency.hpp.
|
inline |
Definition at line 26 of file compressed_adjacency.hpp.
Referenced by variable_byte_delta_decode().
|
inline |
Definition at line 14 of file compressed_adjacency.hpp.
Referenced by variable_byte_delta_encode().
|
inline |
Definition at line 151 of file compressed_adjacency.hpp.
Referenced by simd_friendly_delta_decode().
|
inline |
Definition at line 24 of file compression_policy.hpp.
References scalar, simd_friendly_delta_encode(), simd_friendly_fixed_width, variable_byte, variable_byte_delta_encode(), and vector_decode_backend().
|
inlinenoexcept |
Definition at line 139 of file compressed_adjacency.hpp.
Referenced by simd_friendly_delta_encode().
|
inline |
Definition at line 191 of file compressed_adjacency.hpp.
References velographx::storage::SimdFriendlyAdjacency::blocks, velographx::storage::SimdFriendlyAdjacency::payload, read_fixed_width_uint32(), and velographx::storage::SimdFriendlyAdjacency::value_count.
|
inline |
Definition at line 133 of file compressed_decode_simd.hpp.
References velographx::storage::detail::accumulate_deltas(), avx2, velographx::storage::SimdFriendlyAdjacency::blocks, neon, velographx::storage::SimdFriendlyAdjacency::payload, velographx::storage::detail::unpack_scalar(), velographx::storage::SimdFriendlyAdjacency::value_count, and vector_decode_backend().
|
inline |
Definition at line 164 of file compressed_adjacency.hpp.
References append_fixed_width_uint32(), velographx::storage::SimdFriendlyAdjacency::block_size, velographx::storage::SimdFriendlyAdjacency::blocks, velographx::storage::SimdFriendlyAdjacency::payload, required_lane_bytes(), and velographx::storage::SimdFriendlyAdjacency::value_count.
Referenced by recommend_compression_codec().
|
inline |
Definition at line 51 of file compressed_adjacency.hpp.
Referenced by variable_byte_delta_decode().
|
inline |
Definition at line 74 of file compressed_adjacency.hpp.
References delta_decode(), and variable_byte_decode_uint32().
Referenced by blocked_variable_byte_decode().
|
inline |
Definition at line 66 of file compressed_adjacency.hpp.
References delta_encode(), and variable_byte_encode_uint32().
Referenced by blocked_variable_byte_encode(), and recommend_compression_codec().
|
inline |
Definition at line 43 of file compressed_adjacency.hpp.
Referenced by variable_byte_delta_encode().
|
inlinenoexcept |
Definition at line 121 of file compressed_decode_simd.hpp.
References avx2, velographx::storage::detail::avx2_available(), neon, and scalar.
Referenced by recommend_compression_codec(), and simd_friendly_delta_decode_vectorized().