Skip to content

Commit

Permalink
V2 (#21)
Browse files Browse the repository at this point in the history
  • Loading branch information
anikristo authored Jul 5, 2021
1 parent cf2f215 commit ae1b715
Show file tree
Hide file tree
Showing 74 changed files with 2,652 additions and 1,343 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
.vscode
build/*
**/*.wip
**/*.DS_Store
10 changes: 4 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,16 @@ language:
- cpp
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- cmake
jobs:
include:
- os: linux
dist: focal
compiler: gcc
- os: linux
dist: focal
compiler: clang
# - os: linux
# dist: focal
# compiler: clang
script:

# Check version of cmake
Expand All @@ -27,7 +25,7 @@ script:
- ./compile.sh

# Run the test command
- ${TRAVIS_BUILD_DIR}/third_party/gtest-parallel/gtest-parallel ${TRAVIS_BUILD_DIR}/build/bin/LearnedSort_tests --repeat=5 --workers=5
- ./test.sh

notifications:
email:
Expand Down
37 changes: 25 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
cmake_minimum_required(VERSION 3.2)
cmake_minimum_required(VERSION 3.13)
project(LearnedSort)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -march=native")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -Wall -fopt-info-vec-optimized")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -march=native -fno-strict-overflow -mavx")
set(CMAKE_BUILD_TYPE RELEASE)

set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

set(BENCHMARK_ENABLE_GTEST_TESTS OFF)

# Dependencies
# Sorting algorithms
include_directories(${PROJECT_SOURCE_DIR}/third_party/ips4o)
add_subdirectory(third_party/googletest)
add_subdirectory(third_party/googlebenchmark)
include_directories(${PROJECT_SOURCE_DIR}/third_party/radix)
add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/googletest)
add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/googlebenchmark)
add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/radix_sort)
include_directories(${PROJECT_SOURCE_DIR}/third_party/cpp-TimSort/include)
include_directories(${PROJECT_SOURCE_DIR}/third_party/BlockQuicksort)
include_directories(${PROJECT_SOURCE_DIR}/third_party/pdqsort)
Expand All @@ -25,14 +27,25 @@ include_directories(${PROJECT_SOURCE_DIR}/third_party/ska_sort)
# Learned Sort library
include_directories(${PROJECT_SOURCE_DIR}/include)

# Executable
set(BINARY ${CMAKE_PROJECT_NAME}_benchmarks)
add_executable(${BINARY} src/benchmarks_driver.cc)
target_link_libraries(${BINARY} benchmark)
# Shared linking dependencies
link_libraries(radix_sort)

# Synthetic benchmarks
set(BENCH_SYNTH ${CMAKE_PROJECT_NAME}_bench_synth)
add_executable(${BENCH_SYNTH} src/main_synth.cc)
target_link_libraries(${BENCH_SYNTH} PRIVATE benchmark)
install(TARGETS ${BENCH_SYNTH} DESTINATION bin)

# Real benchmarks
set(BENCH_REAL ${CMAKE_PROJECT_NAME}_bench_real)
add_executable(${BENCH_REAL} src/main_real.cc)
target_link_libraries(${BENCH_REAL} PRIVATE benchmark)
install(TARGETS ${BENCH_REAL} DESTINATION bin)

# Tests
set(TESTS ${CMAKE_PROJECT_NAME}_tests)
file(GLOB TEST_SRC "unit_tests/*.cc")
add_executable(${TESTS} ${TEST_SRC})
add_test(NAME ${TESTS} COMMAND ${TESTS})
target_link_libraries(${TESTS} PUBLIC gtest)
target_link_libraries(${TESTS} PRIVATE gtest)
install(TARGETS ${TESTS} DESTINATION tests)
Loading

0 comments on commit ae1b715

Please sign in to comment.