From 05cf52977ae9d3b32e7a0877008978369fd9985f Mon Sep 17 00:00:00 2001 From: root Date: Sun, 12 Jan 2025 18:30:23 +0100 Subject: [PATCH] Added reproducibility --- CMakeLists.txt | 15 ++-- crypto3/benchmarks/CMakeLists.txt | 2 +- crypto3/libs/algebra/example/CMakeLists.txt | 2 +- crypto3/libs/algebra/test/CMakeLists.txt | 4 +- crypto3/libs/blueprint/example/CMakeLists.txt | 2 +- crypto3/libs/blueprint/test/CMakeLists.txt | 4 +- .../libs/containers/example/CMakeLists.txt | 2 +- crypto3/libs/containers/test/CMakeLists.txt | 4 +- crypto3/libs/hash/test/CMakeLists.txt | 4 +- .../marshalling/algebra/test/CMakeLists.txt | 2 +- crypto3/libs/marshalling/core/CMakeLists.txt | 2 +- .../libs/marshalling/core/test/CMakeLists.txt | 2 +- .../marshalling/multiprecision/CMakeLists.txt | 2 +- .../multiprecision/test/CMakeLists.txt | 2 +- .../libs/marshalling/zk/test/CMakeLists.txt | 4 +- crypto3/libs/math/test/CMakeLists.txt | 2 +- .../crypto3/multiprecision/detail/int128.hpp | 7 +- .../detail/intel_intrinsics.hpp | 4 +- crypto3/libs/random/example/CMakeLists.txt | 2 +- crypto3/libs/random/test/CMakeLists.txt | 4 +- crypto3/libs/transpiler/test/CMakeLists.txt | 4 +- crypto3/libs/zk/test/CMakeLists.txt | 4 +- debug-tools/bin/circgen/CMakeLists.txt | 2 +- debug-tools/bin/excalibur/src/CMakeLists.txt | 2 +- flake.nix | 9 +++ lzpatcher.sh | 10 --- opensycl.nix | 71 ++++++++++++----- parallel-crypto3.nix | 41 ++++++---- parallel-crypto3/CMakeLists.txt | 77 ------------------- parallel-crypto3/benchmarks/CMakeLists.txt | 4 +- .../example/CMakeLists.txt | 2 +- .../parallel-containers/test/CMakeLists.txt | 4 +- .../libs/parallel-math/test/CMakeLists.txt | 2 +- .../parallel-math/test/polynomial_dfs.cpp | 16 ++-- .../libs/parallel-zk/test/CMakeLists.txt | 4 +- .../parallelization-utils/test/CMakeLists.txt | 2 +- proof-producer/libs/assigner/CMakeLists.txt | 6 +- 37 files changed, 147 insertions(+), 185 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 166e7cac86..f980208a82 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,11 @@ cmake_minimum_required(VERSION 3.27) project(placeholder) +option(GPU_PROVER "Enable GPU support" OFF) +if (GPU_PROVER) + add_compile_options(-DGPU_PROVER) +endif() + if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") add_compile_options (-fdiagnostics-color=always) elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") @@ -9,10 +14,10 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") endif () if(DEFINED CMAKE_BUILD_TYPE) - #if(${CMAKE_BUILD_TYPE} STREQUAL "Debug") - #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -ggdb") - #set(BOOST_FORCEINLINE "OFF") # improves debugging traces - #endif() + if(${CMAKE_BUILD_TYPE} STREQUAL "Debug") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -ggdb") + set(BOOST_FORCEINLINE "OFF") # improves debugging traces + endif() endif() option(SANITIZE "Build sanitizers" FALSE) @@ -26,7 +31,7 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generated-dummy.cpp) add_library(crypto3_precompiled_headers STATIC ${CMAKE_CURRENT_BINARY_DIR}/generated-dummy.cpp) set_target_properties(crypto3_precompiled_headers PROPERTIES LINKER_LANGUAGE CXX - CXX_STANDARD 20 + CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE ) diff --git a/crypto3/benchmarks/CMakeLists.txt b/crypto3/benchmarks/CMakeLists.txt index d0fa4ea992..4f2f11ff7e 100644 --- a/crypto3/benchmarks/CMakeLists.txt +++ b/crypto3/benchmarks/CMakeLists.txt @@ -40,7 +40,7 @@ macro(define_benchmark benchmark) set_target_properties(${full_name} PROPERTIES - CXX_STANDARD 20 + CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") diff --git a/crypto3/libs/algebra/example/CMakeLists.txt b/crypto3/libs/algebra/example/CMakeLists.txt index c9c0d345c2..5691506a83 100644 --- a/crypto3/libs/algebra/example/CMakeLists.txt +++ b/crypto3/libs/algebra/example/CMakeLists.txt @@ -15,7 +15,7 @@ macro(define_algebra_example name) Boost::random ) - set_target_properties(algebra_${name}_example PROPERTIES CXX_STANDARD 20) + set_target_properties(algebra_${name}_example PROPERTIES CXX_STANDARD 23) endmacro() set(EXAMPLES_NAMES diff --git a/crypto3/libs/algebra/test/CMakeLists.txt b/crypto3/libs/algebra/test/CMakeLists.txt index 2140872daa..1fceeefd07 100644 --- a/crypto3/libs/algebra/test/CMakeLists.txt +++ b/crypto3/libs/algebra/test/CMakeLists.txt @@ -23,7 +23,7 @@ macro(define_runtime_algebra_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20 + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") @@ -44,7 +44,7 @@ macro(define_compile_time_algebra_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(algebra_${name}_compile_test PROPERTIES CXX_STANDARD 20) + set_target_properties(algebra_${name}_compile_test PROPERTIES CXX_STANDARD 23) endmacro() set(RUNTIME_TESTS_NAMES diff --git a/crypto3/libs/blueprint/example/CMakeLists.txt b/crypto3/libs/blueprint/example/CMakeLists.txt index 0043c270d2..b4f6968eae 100644 --- a/crypto3/libs/blueprint/example/CMakeLists.txt +++ b/crypto3/libs/blueprint/example/CMakeLists.txt @@ -21,7 +21,7 @@ macro(define_blueprint_example name) ${CMAKE_WORKSPACE_NAME}::multiprecision ${CMAKE_WORKSPACE_NAME}::zk ) - set_target_properties(${full_example_name} PROPERTIES CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) + set_target_properties(${full_example_name} PROPERTIES CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) endmacro() diff --git a/crypto3/libs/blueprint/test/CMakeLists.txt b/crypto3/libs/blueprint/test/CMakeLists.txt index c7bdac0bb7..2efb5202a8 100644 --- a/crypto3/libs/blueprint/test/CMakeLists.txt +++ b/crypto3/libs/blueprint/test/CMakeLists.txt @@ -44,7 +44,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} crypto3::hash Boost::unit_test_framework ) -set_target_properties(_cm_internal_tests-crypto3-blueprint-test PROPERTIES CXX_STANDARD 20) +set_target_properties(_cm_internal_tests-crypto3-blueprint-test PROPERTIES CXX_STANDARD 23) target_precompile_headers(_cm_internal_tests-crypto3-blueprint-test REUSE_FROM crypto3_precompiled_headers) macro(define_blueprint_test test) @@ -60,7 +60,7 @@ macro(define_blueprint_test test) target_include_directories(${full_test_name} PRIVATE ${Boost_INCLUDE_DIRS}) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23) target_compile_definitions(${full_test_name} PRIVATE TEST_DATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/zkevm/data/") diff --git a/crypto3/libs/containers/example/CMakeLists.txt b/crypto3/libs/containers/example/CMakeLists.txt index 3c9a21834e..0f329aaccc 100644 --- a/crypto3/libs/containers/example/CMakeLists.txt +++ b/crypto3/libs/containers/example/CMakeLists.txt @@ -37,7 +37,7 @@ macro(define_containers_example example) ${CMAKE_WORKSPACE_NAME}::algebra ${CMAKE_WORKSPACE_NAME}::hash Boost::container) - set_target_properties(${target_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${target_name} PROPERTIES CXX_STANDARD 23) endmacro() set(EXAMPLES_NAMES diff --git a/crypto3/libs/containers/test/CMakeLists.txt b/crypto3/libs/containers/test/CMakeLists.txt index ec5296ad0f..f1db3ba537 100644 --- a/crypto3/libs/containers/test/CMakeLists.txt +++ b/crypto3/libs/containers/test/CMakeLists.txt @@ -33,7 +33,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} Boost::unit_test_framework Boost::random ) -set_target_properties(_cm_internal_tests-crypto3-containers-test PROPERTIES CXX_STANDARD 20) +set_target_properties(_cm_internal_tests-crypto3-containers-test PROPERTIES CXX_STANDARD 23) target_precompile_headers(_cm_internal_tests-crypto3-containers-test REUSE_FROM crypto3_precompiled_headers) macro(define_storage_test test) @@ -57,7 +57,7 @@ macro(define_storage_test test) Boost::random ) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23) if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647" "-ftemplate-backtrace-limit=0") diff --git a/crypto3/libs/hash/test/CMakeLists.txt b/crypto3/libs/hash/test/CMakeLists.txt index 64e3c20bba..5fb77a9455 100644 --- a/crypto3/libs/hash/test/CMakeLists.txt +++ b/crypto3/libs/hash/test/CMakeLists.txt @@ -12,7 +12,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} ${${CURRENT_PROJECT_NAME}_INTERFACE_LIBRARIES} Boost::unit_test_framework) -set_target_properties(_cm_internal_tests-crypto3-hash-test PROPERTIES CXX_STANDARD 20) +set_target_properties(_cm_internal_tests-crypto3-hash-test PROPERTIES CXX_STANDARD 23) target_precompile_headers(_cm_internal_tests-crypto3-hash-test REUSE_FROM crypto3_precompiled_headers) macro(define_hash_test name) @@ -27,7 +27,7 @@ macro(define_hash_test name) ${Boost_INCLUDE_DIRS}) set_target_properties(${test_name} PROPERTIES - CXX_STANDARD 20 + CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") diff --git a/crypto3/libs/marshalling/algebra/test/CMakeLists.txt b/crypto3/libs/marshalling/algebra/test/CMakeLists.txt index a23fdbc245..1e521ef07b 100644 --- a/crypto3/libs/marshalling/algebra/test/CMakeLists.txt +++ b/crypto3/libs/marshalling/algebra/test/CMakeLists.txt @@ -32,7 +32,7 @@ macro(define_marshalling_test name) ${Boost_INCLUDE_DIRS}) set_target_properties(${test_name} PROPERTIES - CXX_STANDARD 20 + CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") diff --git a/crypto3/libs/marshalling/core/CMakeLists.txt b/crypto3/libs/marshalling/core/CMakeLists.txt index bff49113d0..2b80e7fd18 100644 --- a/crypto3/libs/marshalling/core/CMakeLists.txt +++ b/crypto3/libs/marshalling/core/CMakeLists.txt @@ -20,7 +20,7 @@ if(CRYPTO3_MARSHALLING_THROWS) endif() if(NOT CMAKE_CXX_STANDARD) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 23) endif() cm_setup_version(VERSION 0.1.0 PREFIX ${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}) diff --git a/crypto3/libs/marshalling/core/test/CMakeLists.txt b/crypto3/libs/marshalling/core/test/CMakeLists.txt index f9ebe1188f..1b182d2ae2 100644 --- a/crypto3/libs/marshalling/core/test/CMakeLists.txt +++ b/crypto3/libs/marshalling/core/test/CMakeLists.txt @@ -28,7 +28,7 @@ macro(define_marshalling_test name) ${Boost_INCLUDE_DIRS}) set_target_properties(marshalling_core_${name}_test PROPERTIES - CXX_STANDARD 20 + CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) endmacro() diff --git a/crypto3/libs/marshalling/multiprecision/CMakeLists.txt b/crypto3/libs/marshalling/multiprecision/CMakeLists.txt index d5cd627942..22a7edfb98 100644 --- a/crypto3/libs/marshalling/multiprecision/CMakeLists.txt +++ b/crypto3/libs/marshalling/multiprecision/CMakeLists.txt @@ -18,7 +18,7 @@ cm_setup_version(VERSION 0.1.0 PREFIX ${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_ add_library(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} INTERFACE) add_library(${CMAKE_WORKSPACE_NAME}::${CURRENT_PROJECT_NAME} ALIAS ${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}) -set_target_properties(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} PROPERTIES CXX_STANDARD 20) +set_target_properties(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} PROPERTIES CXX_STANDARD 23) set_target_properties(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} PROPERTIES EXPORT_NAME ${CURRENT_PROJECT_NAME}) diff --git a/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt b/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt index 07dffa77af..6227d45df9 100644 --- a/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt +++ b/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt @@ -39,7 +39,7 @@ macro(define_marshalling_test name) ${Boost_INCLUDE_DIRS}) set_target_properties(marshalling_${name}_test PROPERTIES - CXX_STANDARD 20 + CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") diff --git a/crypto3/libs/marshalling/zk/test/CMakeLists.txt b/crypto3/libs/marshalling/zk/test/CMakeLists.txt index f54dca72bc..199249e1fa 100644 --- a/crypto3/libs/marshalling/zk/test/CMakeLists.txt +++ b/crypto3/libs/marshalling/zk/test/CMakeLists.txt @@ -22,7 +22,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} ${CMAKE_WORKSPACE_NAME}::marshalling-algebra ${CMAKE_WORKSPACE_NAME}::marshalling-core) -set_target_properties(_cm_internal_tests-crypto3-marshalling-zk-test PROPERTIES CXX_STANDARD 20) +set_target_properties(_cm_internal_tests-crypto3-marshalling-zk-test PROPERTIES CXX_STANDARD 23) target_precompile_headers(_cm_internal_tests-crypto3-marshalling-zk-test REUSE_FROM crypto3_precompiled_headers) macro(define_marshalling_test test) @@ -40,7 +40,7 @@ macro(define_marshalling_test test) ${Boost_INCLUDE_DIRS}) set_target_properties(marshalling_zk_${name}_test PROPERTIES - CXX_STANDARD 20 + CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") diff --git a/crypto3/libs/math/test/CMakeLists.txt b/crypto3/libs/math/test/CMakeLists.txt index b7e57806d2..825422c637 100644 --- a/crypto3/libs/math/test/CMakeLists.txt +++ b/crypto3/libs/math/test/CMakeLists.txt @@ -24,7 +24,7 @@ macro(define_math_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 23) endmacro() diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/int128.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/int128.hpp index b9e27d1828..d712512ceb 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/int128.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/int128.hpp @@ -1,8 +1,9 @@ #pragma once -//#if defined(__SIZEOF_INT128__) -//#define NIL_CO3_MP_HAS_INT128 -//#endif +#if defined(__SIZEOF_INT128__) && !defined(GPU_PROVER) + #define NIL_CO3_MP_HAS_INT128 + struct float128_type {}; +#endif // same again for __int128: #if defined(NIL_CO3_MP_HAS_INT128) && defined(__cplusplus) diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/intel_intrinsics.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/intel_intrinsics.hpp index 5f40103c53..89c05e0617 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/intel_intrinsics.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/intel_intrinsics.hpp @@ -5,7 +5,7 @@ #include "nil/crypto3/multiprecision/detail/helper_macros.hpp" #include "nil/crypto3/multiprecision/detail/int128.hpp" -/*#if __has_include() +#if __has_include() && !defined(GPU_PROVER) #define NIL_CO3_MP_HAS_IMMINTRIN_H @@ -53,4 +53,4 @@ namespace nil::crypto3::multiprecision::detail { #endif -#endif*/ +#endif diff --git a/crypto3/libs/random/example/CMakeLists.txt b/crypto3/libs/random/example/CMakeLists.txt index 3abc5572c9..fa5277a955 100644 --- a/crypto3/libs/random/example/CMakeLists.txt +++ b/crypto3/libs/random/example/CMakeLists.txt @@ -22,7 +22,7 @@ macro(define_random_example name) ${CMAKE_WORKSPACE_NAME}::multiprecision Boost::container) - set_target_properties(random_${name}_example PROPERTIES CXX_STANDARD 20) + set_target_properties(random_${name}_example PROPERTIES CXX_STANDARD 23) endmacro() set(EXAMPLES_NAMES diff --git a/crypto3/libs/random/test/CMakeLists.txt b/crypto3/libs/random/test/CMakeLists.txt index 484d40f82a..a758c724c9 100644 --- a/crypto3/libs/random/test/CMakeLists.txt +++ b/crypto3/libs/random/test/CMakeLists.txt @@ -12,7 +12,7 @@ include(CMTest) cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} ${CMAKE_WORKSPACE_NAME}::multiprecision Boost::unit_test_framework) -set_target_properties(_cm_internal_tests-crypto3-random-test PROPERTIES CXX_STANDARD 20) +set_target_properties(_cm_internal_tests-crypto3-random-test PROPERTIES CXX_STANDARD 23) target_precompile_headers(_cm_internal_tests-crypto3-random-test REUSE_FROM crypto3_precompiled_headers) macro(define_random_test test) @@ -27,7 +27,7 @@ macro(define_random_test test) ${Boost_INCLUDE_DIRS}) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647") diff --git a/crypto3/libs/transpiler/test/CMakeLists.txt b/crypto3/libs/transpiler/test/CMakeLists.txt index 6550755099..77a02e9373 100644 --- a/crypto3/libs/transpiler/test/CMakeLists.txt +++ b/crypto3/libs/transpiler/test/CMakeLists.txt @@ -18,7 +18,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} crypto3::zk Boost::unit_test_framework ) -set_target_properties(_cm_internal_tests-crypto3-transpiler-test PROPERTIES CXX_STANDARD 20) +set_target_properties(_cm_internal_tests-crypto3-transpiler-test PROPERTIES CXX_STANDARD 23) target_precompile_headers(_cm_internal_tests-crypto3-transpiler-test REUSE_FROM crypto3_precompiled_headers) add_custom_target(compile_and_run_transpiler_tests) @@ -39,7 +39,7 @@ macro(define_transpiler_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23) get_target_property(target_type Boost::unit_test_framework TYPE) if(target_type STREQUAL "SHARED_LIB") diff --git a/crypto3/libs/zk/test/CMakeLists.txt b/crypto3/libs/zk/test/CMakeLists.txt index 4443ef17aa..5af1a4e1b6 100644 --- a/crypto3/libs/zk/test/CMakeLists.txt +++ b/crypto3/libs/zk/test/CMakeLists.txt @@ -19,7 +19,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} Boost::unit_test_framework Boost::log ) -set_target_properties(_cm_internal_tests-crypto3-zk-test PROPERTIES CXX_STANDARD 20) +set_target_properties(_cm_internal_tests-crypto3-zk-test PROPERTIES CXX_STANDARD 23) target_precompile_headers(_cm_internal_tests-crypto3-zk-test REUSE_FROM crypto3_precompiled_headers) if(PROFILING_ENABLED) @@ -38,7 +38,7 @@ macro(define_zk_test test) ${Boost_INCLUDE_DIRS}) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647") diff --git a/debug-tools/bin/circgen/CMakeLists.txt b/debug-tools/bin/circgen/CMakeLists.txt index 003f359d2a..5cfa6dd736 100644 --- a/debug-tools/bin/circgen/CMakeLists.txt +++ b/debug-tools/bin/circgen/CMakeLists.txt @@ -16,7 +16,7 @@ add_executable(circgen set_target_properties(circgen PROPERTIES LINKER_LANGUAGE CXX EXPORT_NAME circgen - CXX_STANDARD 20 + CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) diff --git a/debug-tools/bin/excalibur/src/CMakeLists.txt b/debug-tools/bin/excalibur/src/CMakeLists.txt index 3b54265c50..1f28da1e04 100644 --- a/debug-tools/bin/excalibur/src/CMakeLists.txt +++ b/debug-tools/bin/excalibur/src/CMakeLists.txt @@ -59,7 +59,7 @@ add_executable(${C3_TARGET} set_target_properties(${C3_TARGET} PROPERTIES LINKER_LANGUAGE CXX EXPORT_NAME ${CMAKE_PROJECT_NAME} - CXX_STANDARD 20 + CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) target_link_directories( diff --git a/flake.nix b/flake.nix index 5727b8271b..375064f594 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,9 @@ pkgs = import nixpkgs { inherit system; overlays = [ nix-3rdparty.overlays.${system}.default ]; + config = { + allowUnfree = true; + }; }; in rec { packages = rec { @@ -58,27 +61,33 @@ parallel-crypto3 = (pkgs.callPackage ./parallel-crypto3.nix { + stdenv = pkgs.llvmPackages_19.stdenv; runTests = false; enableDebug = false; + enableGPU = true; }); parallel-crypto3-tests = (pkgs.callPackage ./parallel-crypto3.nix { stdenv = pkgs.llvmPackages_19.stdenv; runTests = true; enableDebug = false; + enableGPU = true; }); parallel-crypto3-clang-bench = (pkgs.callPackage ./parallel-crypto3.nix { runTests = true; enableDebug = false; benchmarkTests = true; + enableGPU = false; }); parallel-crypto3-debug-tests = (pkgs.callPackage ./parallel-crypto3.nix { enableDebug = true; runTests = true; + enableGPU = false; }); parallel-crypto3-clang-debug = (pkgs.callPackage ./parallel-crypto3.nix { stdenv = pkgs.llvmPackages_19.stdenv; enableDebug = true; runTests = false; + enableGPU = false; }); proof-producer = (pkgs.callPackage ./proof-producer.nix { diff --git a/lzpatcher.sh b/lzpatcher.sh index 82fa8112fa..773782bae8 100755 --- a/lzpatcher.sh +++ b/lzpatcher.sh @@ -1,33 +1,23 @@ -#!/usr/bin/env bash - -# check-rpath.sh - #!/bin/bash set -e -# Usage function usage() { echo "Usage: $0 /path/to/directory" exit 1 } -# Check if directory is provided if [ -z "$1" ]; then usage fi DIRECTORY="$1" -# Verify the directory exists if [ ! -d "$DIRECTORY" ]; then echo "Error: Directory '$DIRECTORY' does not exist." exit 1 fi -LIBZ_DIR="/nix/store/2k9k3q1vk8z6w7743k6nb22vnb05xv06-zlib-1.3.1/lib/" -echo "Library directory: $LIBZ_DIR" - # Iterate over all files in the directory find "$DIRECTORY" -maxdepth 1 -type f | while read -r FILE; do # Check if file is an ELF executable diff --git a/opensycl.nix b/opensycl.nix index bb3335d0b4..e97906cd86 100644 --- a/opensycl.nix +++ b/opensycl.nix @@ -1,7 +1,9 @@ +# stolen from nixpkgs (/pkgs/development/compilers/opensycl/default.nix +# we need a custom version because (at the time of writing) the nixpkgs version is broken { lib , fetchFromGitHub -, llvmPackages_15 -, lld_15 +, llvmPackages_19 +, lld_19 , python3 , cmake , boost @@ -9,61 +11,90 @@ , libffi , makeWrapper , config +, cudaPackages +, linuxPackages , rocmPackages_5 +, ompSupport ? true +, openclSupport ? false , rocmSupport ? config.rocmSupport +, cudaSupport +, autoAddDriverRunpath }: let - inherit (llvmPackages_15) stdenv; + inherit (llvmPackages_19) stdenv; # move to newer ROCm version once supported rocmPackages = rocmPackages_5; in stdenv.mkDerivation rec { - pname = "OpenSYCL"; - version = "0.9.4"; + pname = "AdaptiveCpp"; + version = "24.10.0"; src = fetchFromGitHub { - owner = "OpenSYCL"; - repo = "OpenSYCL"; - rev = "v${version}"; - sha256 = "sha256-5YkuUOAnvoAD5xDKxKMPq0B7+1pb6hVisPAhs0Za1ls="; + owner = "AdaptiveCpp"; + repo = "AdaptiveCpp"; + rev = "v24.10.0"; + sha256 = "sha256-ZwHDiwv1ybC+2UhiOe2f7fnfqcul+CD9Uta8PT9ICr4="; }; + # zerocallusedregs is disabled because passing it to gpu compilers confuses them + # compilation fails + # fortify is disabled because it was also disabled above in flake, idk why + hardeningDisable = [ "fortify" "zerocallusedregs" ]; nativeBuildInputs = [ cmake makeWrapper + ] ++ lib.optionals cudaSupport [ + autoAddDriverRunpath + linuxPackages.nvidia_x11 + cudaPackages.cuda_nvcc + cudaPackages.cuda_cudart + cudaPackages.cudatoolkit + cudaPackages.cuda_nvrtc + cudaPackages.cuda_cupti ]; buildInputs = [ libxml2 libffi boost - llvmPackages_15.openmp - llvmPackages_15.libclang.dev - llvmPackages_15.llvm + llvmPackages_19.openmp + llvmPackages_19.llvm + llvmPackages_19.libclang.dev ] ++ lib.optionals rocmSupport [ rocmPackages.clr rocmPackages.rocm-runtime + ] ++ lib.optionals cudaSupport [ + linuxPackages.nvidia_x11 + cudaPackages.cuda_cudart + (lib.getOutput "stubs" cudaPackages.cuda_cudart) ]; + # set the gpu architecture for the cuda backend here + NIX_CXXFLAGS_COMPILE = lib.optionalString cudaSupport "--cuda-gpu-arch=sm_89"; # opensycl makes use of clangs internal headers. Its cmake does not successfully discover them automatically on nixos, so we supply the path manually cmakeFlags = [ - "-DCLANG_INCLUDE_PATH=${llvmPackages_15.libclang.dev}/include" - "-DNVCXX_COMPILER=/opt/nvidia/hpc_sdk/Linux_x86_64/24.9/compilers/bin/nvc++" - "-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda" - "-DWITH_CUDA_BACKEND=ON" + "-DCLANG_INCLUDE_PATH=${llvmPackages_19.libclang.dev}/include" + ] ++ lib.optionals cudaSupport [ + "-DCMAKE_CUDA_COMPILER=$(which nvcc)" + ] ++ [ + (lib.cmakeBool "WITH_CPU_BACKEND" ompSupport) + (lib.cmakeBool "WITH_CUDA_BACKEND" cudaSupport) + (lib.cmakeBool "WITH_ROCM_BACKEND" rocmSupport) + ] ++ lib.optionals (lib.versionAtLeast version "24") [ + (lib.cmakeBool "WITH_OPENCL_BACKEND" openclSupport) ]; + # --add-flags "-L${llvmPackages_19.openmp}/lib" \ + # --add-flags "-I${llvmPackages_19.openmp.dev}/include" \ postFixup = '' wrapProgram $out/bin/syclcc-clang \ - --prefix PATH : ${lib.makeBinPath [ python3 lld_15 ]} \ - --add-flags "-L${llvmPackages_15.openmp}/lib" \ - --add-flags "-I${llvmPackages_15.openmp.dev}/include" \ + --prefix PATH : ${lib.makeBinPath [ python3 lld_19 ]} \ '' + lib.optionalString rocmSupport '' --add-flags "--rocm-device-lib-path=${rocmPackages.rocm-device-libs}/amdgcn/bitcode" ''; meta = with lib; { - homepage = "https://github.com/OpenSYCL/OpenSYCL"; + homepage = "https://github.com/AdaptiveCpp/AdaptiveCpp"; description = "Multi-backend implementation of SYCL for CPUs and GPUs"; maintainers = with maintainers; [ yboettcher ]; license = licenses.bsd2; diff --git a/parallel-crypto3.nix b/parallel-crypto3.nix index d51c466714..1fc280267f 100644 --- a/parallel-crypto3.nix +++ b/parallel-crypto3.nix @@ -23,9 +23,9 @@ libcxx, libstdcxx5, llvmPackages_19, - #opensycl, - #cudatoolkit, + opensycl, enableDebugging, + enableGPU ? false, enableDebug ? false, runTests ? false, sanitize? false, @@ -33,29 +33,44 @@ }: let inherit (lib) optional; + opensycl_cuda = pkgs.callPackage ./opensycl.nix { + inherit (pkgs); + cudaSupport = enableGPU; + }; + in stdenv.mkDerivation { name = "Parallel Crypto3"; src = lib.sourceByRegex ./. ["^crypto3(/.*)?$" "^parallel-crypto3(/.*)?$" "CMakeLists.txt"]; - hardeningDisable = [ "fortify" ]; - # libgcc gcc glibc libffi libxml2 icu70 ncurses xz libedit llvm libcxx libstdcxx5 libz - nativeBuildInputs = [ cmake ninja pkg-config llvmPackages_19.openmp ] ++ + hardeningDisable = [ "fortify" "zerocallusedregs" ]; + nativeBuildInputs = [ cmake ninja pkg-config llvmPackages_19.openmp opensycl_cuda ] ++ (lib.optional (!stdenv.isDarwin) gdb) ++ (lib.optional (stdenv.isDarwin) lldb); # enableDebugging will keep debug symbols in boost propagatedBuildInputs = [ (if enableDebug then (enableDebugging boost) else boost) ]; - buildInputs = [cmake_modules]; + buildInputs = [ + cmake_modules + opensycl_cuda + pkgs.cudaPackages.cudatoolkit + pkgs.cudaPackages.cuda_cudart + pkgs.cudaPackages.cuda_nvcc + pkgs.linuxPackages.nvidia_x11 + ]; + + makeWrapperArgs = [ + # Ensure the real NVIDIA libraries are found first + "--prefix LD_LIBRARY_PATH : ${pkgs.linuxPackages.nvidia_x11}/lib" + ]; cmakeFlags = [ (if runTests then "-DBUILD_PARALLEL_CRYPTO3_TESTS=TRUE" else "") (if sanitize then "-DSANITIZE=ON" else "-DSANITIZE=OFF") (if benchmarkTests then "-DENABLE_BENCHMARKS=ON" else "-DENABLE_BENCHMARKS=OFF") + (if enableGPU then "-DGPU_PROVER=ON" else "") "-DPARALLEL_CRYPTO3_ENABLE=TRUE" - #"-DCMAKE_CUDA_HOST_COMPILER=/nix/store/ykv9x1iirnkxfdnyzwhfzhz23csqvqn9-clang-wrapper-19.1.1/bin/clang++" - #"-DCMAKE_CXX_COMPILER_WORKS=1" ]; cmakeBuildType = if enableDebug then "Debug" else "Release"; @@ -72,15 +87,7 @@ in stdenv.mkDerivation { ''; shellHook = '' - NVARCH=`uname -s`_`uname -m`; export NVARCH - NVCOMPILERS=/opt/nvidia/hpc_sdk; export NVCOMPILERS - MANPATH=$MANPATH:$NVCOMPILERS/$NVARCH/24.9/compilers/man; export MANPATH - PATH=/root/acpp/bin/:$NVCOMPILERS/$NVARCH/24.9/compilers/bin:$PATH; export PATH - CXX=/root/acpp/bin/acpp; export CXX - # source /opt/intel/oneapi/setvars.sh - # PATH=/root/sycl_workspace/llvm/build/install/bin/:$PATH; export PATH - # DCPP_HOME=/root/sycl_workspace/; export DCPP_HOME - # LD_LIBRARY_PATH=/root/sycl_workspace/llvm/build/lib/; export LD_LIBRARY_PATH + CXX=syclcc-clang; export CXX rm -rf build eval $configurePhase PS1="\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ " diff --git a/parallel-crypto3/CMakeLists.txt b/parallel-crypto3/CMakeLists.txt index 6e06d95b0b..9c4d573993 100644 --- a/parallel-crypto3/CMakeLists.txt +++ b/parallel-crypto3/CMakeLists.txt @@ -1,90 +1,13 @@ cmake_minimum_required(VERSION 3.22 FATAL_ERROR) -#set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") -#set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") project(parallel-crypto3) option(BUILD_PARALLEL_CRYPTO3_TESTS "Enable tests" TRUE) set(CMAKE_CUDA_COMPILER nvc++) find_package(CM REQUIRED) -# list(APPEND CMAKE_PREFIX_PATH /root/sycl/lib/cmake/AdaptiveCpp/) -# find_package(AdaptiveCpp CONFIG REQUIRED) include(CMConfig) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0") - -# add_compile_options(-v) -# #add_compile_options(--hipsycl-platform=cuda --hipsycl-gpu-arch=sm_75 --hipsycl-targets=cuda:sm_75 --hipsycl-cuda-path=/var/empty/local/cuda/ --hipsycl-nvcxx=/var/empty/nvidia/hpc_sdk/Linux_x86_64/24.9/compilers/bin/nvc++) -# #add_compile_options(-I/nix/store/wkpm1n7q62pbs8ck6ad5i7zklr1k9il0-OpenSYCL-0.9.4/include/) -# add_compile_options(-I/root/sycl/include/AdaptiveCpp/) -# add_compile_options(-I/nix/store/x8rg4vhgd20i8vzykm1196f9qdb8klhh-gcc-13.3.0/include/c++/13.3.0/) -# add_compile_options(-I/nix/store/x8rg4vhgd20i8vzykm1196f9qdb8klhh-gcc-13.3.0/include/c++/13.3.0/x86_64-unknown-linux-gnu/) - -# add_compile_options(-I/nix/store/ifqg35znvnvay7j5zank40jc7p016zi8-cuda_cccl-12.4.99-dev/include/cuda/std/detail/libcxx/include/) - -# add_link_options(-L/nix/store/22nxhmsfcv2q2rpkmfvzwg2w5z1l231z-gcc-13.3.0-lib/lib64/) -# #add_link_options(-L/nix/store/sl141d1g77wvhr050ah87lcyz2czdxa3-glibc-2.40-36/lib64/) -# #add_link_options(-L/nix/store/yldgl6y1dy6nmvy9gza0flgh9is3k4s1-libcxx-18.1.8/lib) - -# add_link_options(-Xlinker -dynamic-linker -Xlinker /nix/store/sl141d1g77wvhr050ah87lcyz2czdxa3-glibc-2.40-36/lib64/ld-linux-x86-64.so.2) - -# add_link_options(-L/root/sycl/lib/hipSYCL/) -# add_link_options(-L/root/sycl/lib/) - -# add_link_options(-L/usr/local/cuda/lib64) -# add_link_options(-L/usr/local/cuda/lib64/stubs/) -# add_link_options(-L/opt/nvidia/hpc_sdk/Linux_x86_64/24.9/cuda/12.6/compat/) -# # add_link_options(-L/usr/lib/x86_64-linux-gnu/) - -# add_link_options(-rpath=/root/sycl/lib/hipSYCL/) -# add_link_options(-rpath=/root/sycl/lib/) - -# add_link_options(-rpath=/usr/local/cuda/lib64) -# add_link_options(-rpath=/usr/local/cuda/lib64/stubs/) -# add_link_options(-rpath=/opt/nvidia/hpc_sdk/Linux_x86_64/24.9/cuda/12.6/compat/) - -# add_link_options(-rpath=/usr/lib/x86_64-linux-gnu/) -# add_link_options(-rpath=/nix/store/53iigsmf32bwkfdhhihq2rppgk23k2rg-ncurses-6.4.20221231/lib/) - -# add_link_options(-lacpp-rt -lacpp-common -lcuda -lrt-backend-cuda) -# add_link_options(-ledit -ltinfo -lffi -lz -lxml2 -licuuc -licui18n -licudata -llzma) -# add_link_options(-lstdc++ -lc -v) -add_link_options(-L/usr/local/cuda/lib64) -add_link_options(-Wl,-rpath=/usr/local/cuda/lib64) -add_link_options(-L/usr/local/cuda/lib64/stubs/) -add_link_options(-Wl,-rpath=/usr/local/cuda/lib64/stubs/) -add_link_options(-L/root/acpp/lib/hipSYCL/) -add_link_options(-Wl,-rpath=/root/acpp/lib/hipSYCL/) -add_link_options(-L/opt/nvidia/hpc_sdk/Linux_x86_64/24.9/REDIST/cuda/12.6/compat/) -add_link_options(-Wl,-rpath=/opt/nvidia/hpc_sdk/Linux_x86_64/24.9/REDIST/cuda/12.6/compat/) -add_link_options(-L/nix/store/1m2jrj85fmj0sqjp8bk8hf1j6wnb1lpc-openmp-19.1.1/lib/) -add_link_options(-Wl,-rpath=/nix/store/1m2jrj85fmj0sqjp8bk8hf1j6wnb1lpc-openmp-19.1.1/lib/) -add_link_options(-L/opt/nvidia/hpc_sdk/Linux_x86_64/24.9/REDIST/cuda/12.6/lib64) -add_link_options(-Wl,-rpath=/opt/nvidia/hpc_sdk/Linux_x86_64/24.9/REDIST/cuda/12.6/lib64) -add_link_options(-lrt-backend-cuda -lcuda -lacpp-rt -lacpp-common -lomp -lnvJitLink -lnvidia-ptxjitcompiler) - -#add_compile_options(-I/opt/intel/oneapi/2025.0/include/) -#add_compile_options(-I/opt/intel/oneapi/2025.0/include/sycl/) -#add_compile_options(-Wl,-rpath -Wl,/opt/intel/oneapi/2025.0/lib/) -#add_compile_options(-Wl,-rpath=/root/sycl_workspace/llvm/build/install/lib/) -#add_compile_options(-I/nix/store/x8rg4vhgd20i8vzykm1196f9qdb8klhh-gcc-13.3.0/include/c++/13.3.0/tr1/) -#add_compile_options(-I/nix/store/n15bxkd7id2gvlwpihm4kp675aqkrwmj-glibc-2.40-36-dev/include/) -#add_compile_options(-I/nix/store/x8rg4vhgd20i8vzykm1196f9qdb8klhh-gcc-13.3.0/include/c++/13.3.0/x86_64-unknown-linux-gnu/) -# add_link_options(-L/opt/intel/oneapi/2025.0/lib/) -# add_link_options(-L/nix/store/sl141d1g77wvhr050ah87lcyz2czdxa3-glibc-2.40-36/lib64/) -# add_link_options(-L/nix/store/22nxhmsfcv2q2rpkmfvzwg2w5z1l231z-gcc-13.3.0-lib/lib64/) -# #add_link_options(-rpath /opt/intel/oneapi/2025.0/lib/ -rpath /root/sycl_workspace/llvm/build/install/lib/) -# add_link_options(-Xlinker -dynamic-linker -Xlinker /nix/store/sl141d1g77wvhr050ah87lcyz2czdxa3-glibc-2.40-36/lib64/ld-linux-x86-64.so.2) -# #add_link_options(-lsycl -lur_loader -limf -lsvml -lirng -lintlc -lz -v) # -lstdc++ -lc -lz - -# add_compile_options(-fsycl -fsycl-targets=nvptx64-nvidia-cuda) -# add_compile_options(-I/root/sycl_workspace/llvm/build/install/include/) -# add_compile_options(--cuda-path=/usr/local/cuda/) -# add_link_options(-L/root/sycl_workspace/llvm/build/install/lib/) -# add_link_options(-rpath /root/sycl_workspace/llvm/build/install/lib/:/opt/intel/oneapi/2025.0/lib/:/nix/store/2k9k3q1vk8z6w7743k6nb22vnb05xv06-zlib-1.3.1/lib/) -# add_link_options(-lsycl -lur_loader -limf -lsvml -lirng -lintlc -lz -v) - # The file compile_commands.json is generated in build directory, so LSP could # pick it up and guess all include paths, defines and other stuff. diff --git a/parallel-crypto3/benchmarks/CMakeLists.txt b/parallel-crypto3/benchmarks/CMakeLists.txt index 6d7ed4fa39..9dcf40980f 100644 --- a/parallel-crypto3/benchmarks/CMakeLists.txt +++ b/parallel-crypto3/benchmarks/CMakeLists.txt @@ -34,7 +34,7 @@ macro(define_bench_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 23) target_precompile_headers(${test_name} REUSE_FROM crypto3_precompiled_headers) endmacro() @@ -46,7 +46,7 @@ cm_test_link_libraries( Boost::unit_test_framework Boost::timer ) -set_target_properties(_cm_internal_tests--parallel-crypto3-benchmarks PROPERTIES CXX_STANDARD 20) +set_target_properties(_cm_internal_tests--parallel-crypto3-benchmarks PROPERTIES CXX_STANDARD 23) target_precompile_headers(_cm_internal_tests--parallel-crypto3-benchmarks REUSE_FROM crypto3_precompiled_headers) set(TESTS_NAMES diff --git a/parallel-crypto3/libs/parallel-containers/example/CMakeLists.txt b/parallel-crypto3/libs/parallel-containers/example/CMakeLists.txt index 1c949653b1..e8c4941415 100644 --- a/parallel-crypto3/libs/parallel-containers/example/CMakeLists.txt +++ b/parallel-crypto3/libs/parallel-containers/example/CMakeLists.txt @@ -37,7 +37,7 @@ macro(define_containers_example example) ${CMAKE_WORKSPACE_NAME}::algebra ${CMAKE_WORKSPACE_NAME}::hash) - set_target_properties(${target_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${target_name} PROPERTIES CXX_STANDARD 23) endmacro() set(EXAMPLES_NAMES diff --git a/parallel-crypto3/libs/parallel-containers/test/CMakeLists.txt b/parallel-crypto3/libs/parallel-containers/test/CMakeLists.txt index 259cfda1c4..fd322a2d17 100644 --- a/parallel-crypto3/libs/parallel-containers/test/CMakeLists.txt +++ b/parallel-crypto3/libs/parallel-containers/test/CMakeLists.txt @@ -31,7 +31,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} Boost::random Boost::unit_test_framework ) -set_target_properties(_cm_internal_tests-actor-containers-test PROPERTIES CXX_STANDARD 20) +set_target_properties(_cm_internal_tests-actor-containers-test PROPERTIES CXX_STANDARD 23) target_precompile_headers(_cm_internal_tests-actor-containers-test REUSE_FROM crypto3_precompiled_headers) macro(define_storage_test test) @@ -62,7 +62,7 @@ macro(define_storage_test test) ${Boost_INCLUDE_DIRS}) - set_target_properties(${target_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${target_name} PROPERTIES CXX_STANDARD 23) get_target_property(target_type Boost::unit_test_framework TYPE) if(target_type STREQUAL "SHARED_LIB") diff --git a/parallel-crypto3/libs/parallel-math/test/CMakeLists.txt b/parallel-crypto3/libs/parallel-math/test/CMakeLists.txt index 8339de6ebf..d463a7ee8e 100644 --- a/parallel-crypto3/libs/parallel-math/test/CMakeLists.txt +++ b/parallel-crypto3/libs/parallel-math/test/CMakeLists.txt @@ -34,7 +34,7 @@ macro(define_math_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 23) endmacro() diff --git a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp index 0ab3dcf1a2..bbde04f212 100644 --- a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp +++ b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp @@ -26,8 +26,6 @@ #define BOOST_TEST_MODULE polynomial_dfs_test -struct float128_type {}; - #include #include @@ -53,7 +51,7 @@ typedef fields::bls12_fr<381> FieldType; BOOST_AUTO_TEST_SUITE(polynomial_dfs_from_coefficients_test_suite) -/*BOOST_AUTO_TEST_CASE(polynomial_dfs_equal_test) { +BOOST_AUTO_TEST_CASE(polynomial_dfs_equal_test) { polynomial_dfs a = { 7, {0x35_big_uint255, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint255, @@ -1399,7 +1397,7 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_perf_test, *boost::unit_test: auto duration = std::chrono::duration_cast(end - start); std::cout << "Multiplication time: " << duration.count() << " microseconds." << std::endl; -}*/ +} template polynomial_dfs @@ -1413,16 +1411,15 @@ polynomial_dfs return polynomial_dfs(size - 1, std::move(random_field_values)); } -/*BOOST_AUTO_TEST_CASE(polynomial_dfs_resize_perf_test, *boost::unit_test::disabled()) { +BOOST_AUTO_TEST_CASE(polynomial_dfs_resize_perf_test, *boost::unit_test::disabled()) { using field_type = nil::crypto3::algebra::fields::bls12_fr<381>; using value_type = typename FieldType::value_type; - using allocator_type = global_usm_allocator; - using polynomial_dfs_type = polynomial_dfs; + using polynomial_dfs_type = polynomial_dfs; nil::crypto3::random::algebraic_engine alg_rnd_engine; std::size_t size = 131072 * 16; polynomial_dfs_type poly = - generate_random_polynomial( + generate_random_polynomial( size, alg_rnd_engine ); @@ -1463,7 +1460,7 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_equality_check_perf_test, *boost::unit_test: auto duration = std::chrono::duration_cast(end - start); std::cout << "Equality check time: " << duration.count() << " microseconds." << std::endl; -}*/ +} BOOST_AUTO_TEST_CASE(polynomial_product_test) { using field_type = nil::crypto3::algebra::fields::bls12_fr<381>; @@ -1474,7 +1471,6 @@ BOOST_AUTO_TEST_CASE(polynomial_product_test) { std::vector random_polynomials; random_polynomials.reserve(8); std::vector sizes = {23, 17, 17, 16, 14, 15, 13, 15, 21, 16, 22}; - //std::vector sizes = {17, 17, 17, 17, 17, 17, 17, 17}; for (auto size : sizes) { random_polynomials.emplace_back( generate_random_polynomial( diff --git a/parallel-crypto3/libs/parallel-zk/test/CMakeLists.txt b/parallel-crypto3/libs/parallel-zk/test/CMakeLists.txt index e77dc23406..9cc408c128 100644 --- a/parallel-crypto3/libs/parallel-zk/test/CMakeLists.txt +++ b/parallel-crypto3/libs/parallel-zk/test/CMakeLists.txt @@ -19,7 +19,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} Boost::unit_test_framework Boost::log ) -set_target_properties(_cm_internal_tests-actor-zk-test PROPERTIES CXX_STANDARD 20) +set_target_properties(_cm_internal_tests-actor-zk-test PROPERTIES CXX_STANDARD 23) target_precompile_headers(_cm_internal_tests-actor-zk-test REUSE_FROM crypto3_precompiled_headers) if(PROFILING_ENABLED) @@ -39,7 +39,7 @@ macro(define_zk_test test) ${Boost_INCLUDE_DIRS}) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647") diff --git a/parallel-crypto3/libs/parallelization-utils/test/CMakeLists.txt b/parallel-crypto3/libs/parallelization-utils/test/CMakeLists.txt index 4656ac9944..dffafd0e65 100644 --- a/parallel-crypto3/libs/parallelization-utils/test/CMakeLists.txt +++ b/parallel-crypto3/libs/parallelization-utils/test/CMakeLists.txt @@ -38,7 +38,7 @@ macro(define_actor_core_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20) + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 23) get_target_property(target_type Boost::unit_test_framework TYPE) if(target_type STREQUAL "SHARED_LIB") diff --git a/proof-producer/libs/assigner/CMakeLists.txt b/proof-producer/libs/assigner/CMakeLists.txt index 980f603c85..2b3f2d1130 100644 --- a/proof-producer/libs/assigner/CMakeLists.txt +++ b/proof-producer/libs/assigner/CMakeLists.txt @@ -28,7 +28,7 @@ endforeach() add_library(proof_generatorAssigner STATIC ${PROTO_SRC} ) -set_target_properties(proof_generatorAssigner PROPERTIES CXX_STANDARD 20) +set_target_properties(proof_generatorAssigner PROPERTIES CXX_STANDARD 23) target_include_directories(proof_generatorAssigner PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${PROTOBUF_INCLUDE_DIR} @@ -52,9 +52,9 @@ target_link_libraries(proof_generatorAssigner if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options(proof_generatorAssigner PRIVATE "-fconstexpr-steps=2147483647") - + # without it abseil-cpp fails to link with clang19-compiled code, see https://github.com/llvm/llvm-project/issues/102443 - target_compile_options(proof_generatorAssigner PRIVATE "-fclang-abi-compat=17") + target_compile_options(proof_generatorAssigner PRIVATE "-fclang-abi-compat=17") elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") target_compile_options(proof_generatorAssigner PRIVATE "-fconstexpr-ops-limit=4294967295") endif ()