Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Checks: >
# General Checks
clang-diagnostic-*,
misc-include-cleaner,
misc-throw-by-value-catch-by-reference,
misc-definitions-in-headers,
llvm-header-guard,
Expand Down
65 changes: 37 additions & 28 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,34 @@ option(FLS_ENABLE_GALP_TESTING_AND_BENCHMARKING "Build GALP" OFF)
# Definitions: ---------------------------------------------------------------------------------------------------------
add_compile_definitions(FLS_CMAKE_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")

if (FLS_ENABLE_CLANG_TIDY)
message("---------------------------------------------------------------------------------------------------------")
message("-- FLS: Enabling CLANG-TIDY.")
find_program(CLANG_TIDY_EXE NAMES clang-tidy)
if (NOT CLANG_TIDY_EXE)
message(FATAL_ERROR "-- FLS: clang-tidy not found.")
else ()
if (NOT DEFINED CMAKE_CXX_CLANG_TIDY)
set(CMAKE_CXX_CLANG_TIDY
${CLANG_TIDY_EXE};
--quiet;
--config-file=${CMAKE_SOURCE_DIR}/.clang-tidy)
message("-- FLS: Using project-level .clang-tidy")
else ()
message(FATAL_ERROR "-- FLS: Do not override the clang-tidy configuration. Use the project-level .clang-tidy file instead. Current setting: ${CMAKE_CXX_CLANG_TIDY}")
endif ()

execute_process(
COMMAND ${CLANG_TIDY_EXE} --version
OUTPUT_VARIABLE CLANG_TIDY_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
message("-- FLS: clang-tidy version: ${CLANG_TIDY_VERSION}")

endif ()
endif ()


# GTEST : --------------------------------------------------------------------------------------------------------------
if (FLS_BUILD_TESTING OR FLS_BUILD_CUDA OR FLS_ENABLE_FSST_TESTING_AND_BENCHMARKING OR FLS_ENABLE_GALP_TESTING_AND_BENCHMARKING)
message("---------------------------------------------------------------------------------------------------------")
Expand Down Expand Up @@ -166,6 +194,7 @@ if (FLS_BUILD_TESTING OR FLS_BUILD_CUDA OR FLS_ENABLE_FSST_TESTING_AND_BENCHMARK
endif ()
endif ()


# ALP: -----------------------------------------------------------------------------------------------------------------
if (true)
message("---------------------------------------------------------------------------------------------------------")
Expand All @@ -187,6 +216,13 @@ if (true)

endif ()

# CLANG TIDY : --------------------------------------------------------------------------------------------------------------
if (FLS_ENABLE_CLANG_TIDY)
message("---------------------------------------------------------------------------------------------------------")
message("-- FLS: Disabling CLANG-TIDY.")
set(CMAKE_CXX_CLANG_TIDY "")
endif ()

# CUDA : ---------------------------------------------------------------------------------------------------------------
if (FLS_BUILD_CUDA)
message("---------------------------------------------------------------------------------------------------------")
Expand Down Expand Up @@ -227,33 +263,6 @@ if (FLS_BUILD_TESTING OR
cmake_print_variables(data_SOURCE_DIR)
endif ()

if (FLS_ENABLE_CLANG_TIDY)
message("---------------------------------------------------------------------------------------------------------")
message("-- FLS: Enabling CLANG-TIDY.")
find_program(CLANG_TIDY_EXE NAMES clang-tidy)
if (NOT CLANG_TIDY_EXE)
message(FATAL_ERROR "-- FLS: clang-tidy not found.")
else ()
if (NOT DEFINED CMAKE_CXX_CLANG_TIDY)
set(CMAKE_CXX_CLANG_TIDY
${CLANG_TIDY_EXE};
--quiet;
--config-file=${CMAKE_SOURCE_DIR}/.clang-tidy)
message("-- FLS: Using project-level .clang-tidy")
else ()
message(FATAL_ERROR "-- FLS: Do not override the clang-tidy configuration. Use the project-level .clang-tidy file instead. Current setting: ${CMAKE_CXX_CLANG_TIDY}")
endif ()

execute_process(
COMMAND ${CLANG_TIDY_EXE} --version
OUTPUT_VARIABLE CLANG_TIDY_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
message("-- FLS: clang-tidy version: ${CLANG_TIDY_VERSION}")

endif ()
endif ()

if (FLS_ENABLE_IWYU)
message("---------------------------------------------------------------------------------------------------------")
message("-- FLS: Enabling IWYU")
Expand Down Expand Up @@ -320,4 +329,4 @@ if (FLS_ENABLE_GALP_TESTING_AND_BENCHMARKING)
message("---------------------------------------------------------------------------------------------------------")
message("-- FLS: Adding GALP Testing and Benchmarking.")
add_subdirectory(galp)
endif ()
endif ()
32 changes: 16 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ FastLanes features:

---

## Documentation

* [Typing System](docs/typing_system.md)
* [File Format Specification (PDF)](docs/specification.pdf)

---

## Getting Started

### Python
Expand Down Expand Up @@ -96,13 +103,6 @@ fn main() -> Result<()> {

---

## Documentation

* [Typing System](docs/typing_system.md)
* [File Format Specification (PDF)](docs/specification.pdf)

---

## Publications

* **Azim Afroozeh & Peter Boncz**, “The FastLanes Compression Layout: Decoding > 100 Billion Integers per Second with
Expand All @@ -123,12 +123,12 @@ fn main() -> Result<()> {
* [Read the paper](https://doi.org/10.1145/3626717)
* [Source code](https://github.com/cwida/ALP)

* **Sven Hielke Hepkema, Azim Afroozeh, Charlotte Felius, Peter Boncz & Stefan Manegold**, “G‑ALP: Rethinking Light‑weight Encodings for GPUs,” *DaMoN ’25*, July 2025
* **Sven Hielke Hepkema, Azim Afroozeh, Charlotte Felius, Peter Boncz & Stefan Manegold**, “G‑ALP: Rethinking
Light‑weight Encodings for GPUs,” *DaMoN ’25*, July 2025

* [Read the paper](https://dl.acm.org/doi/pdf/10.1145/3736227.3736242)
* [Source code](https://github.com/cwida/FastLanesGpu-Damon2025)


---

## How to Cite
Expand Down Expand Up @@ -171,14 +171,14 @@ If you use FastLanes in your research or projects, please cite:
}

@inproceedings{hepke2025galp,
author = {Hepkema, Sven Hielke and Afroozeh, Azim and Felius, Charlotte and Boncz, Peter and Manegold, Stefan},
title = {G‑ALP: Rethinking Light‑weight Encodings for GPUs},
booktitle = {DaMoN ’25: Proceedings of the 21st International Workshop on Data Management on New Hardware},
pages = {11:1--11:10},
month = jul,
year = {2025},
author = {Hepkema, Sven Hielke and Afroozeh, Azim and Felius, Charlotte and Boncz, Peter and Manegold, Stefan},
title = {G‑ALP: Rethinking Light‑weight Encodings for GPUs},
booktitle = {DaMoN ’25: Proceedings of the 21st International Workshop on Data Management on New Hardware},
pages = {11:1--11:10},
month = jul,
year = {2025},
organization = {ACM},
url = {https://dl.acm.org/doi/pdf/10.1145/3736227.3736242}
url = {https://dl.acm.org/doi/pdf/10.1145/3736227.3736242}
}
```

Expand Down
1 change: 1 addition & 0 deletions benchmark/include/benchmarker.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <vector>

namespace fastlanes {
constexpr static auto const* TABLE_DESCRIPTOR_FILE_NAME {"table_descriptor.fbb"};

inline void clear_directory(const fs::path& dir) {
if (!fs::exists(dir) || !fs::is_directory(dir))
Expand Down
8 changes: 8 additions & 0 deletions data/include/data/generated.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
// ────────────────────────────────────────────────────────
// data/include/data/generated.hpp
// ────────────────────────────────────────────────────────

// NOLINTBEGIN
// ────────────────────────────────────────────────────────
// | FastLanes |
// ────────────────────────────────────────────────────────
// data/include/data/generated.hpp
// ────────────────────────────────────────────────────────
#ifndef DATA_GENERATED_HPP
#define DATA_GENERATED_HPP

Expand Down Expand Up @@ -100,3 +107,4 @@ class GENERATED {
} // namespace fastlanes

#endif // DATA_GENERATED_HPP
// NOLINTEND
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alp-double-decompress_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alp-double-query_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alp-double-query_multi_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alp-float-decompress_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alp-float-query_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alp-float-query_multi_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alpextended-double-decompress_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alpextended-double-query_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alpextended-double-query_multi_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alpextended-float-decompress_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alpextended-float-query_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/alpextended-float-query_multi_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/bp-uint32_t-decompress_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/bp-uint32_t-query_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/bp-uint64_t-decompress_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/bp-uint64_t-query_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/ffor-uint32_t-compute_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/ffor-uint32_t-decompress_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/ffor-uint32_t-query_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// ────────────────────────────────────────────────────────
// galp/benchmark/generated-bindings/ffor-uint32_t-query_multi_column-bindings.cu
// ────────────────────────────────────────────────────────

#include "engine/kernels.cuh"
#include "engine/multi-column-host-kernels.cuh"
#include "generated-bindings/kernel-bindings.cuh"
Expand Down
Loading
Loading