cmake_minimum_required(VERSION 3.22) project(lockfree CUDA CXX) set(CMAKE_CUDA_STANDARD 14) #set(GXX_INCLUDE /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include) add_executable(lockfree main.cu) #add_definitions(-DNUM_ITEMS=1048576 -DKEYS=1048576 -DFACTOR=1) if (false) target_compile_options(lockfree PRIVATE $<$: -v >) endif () # from: Peter target_link_libraries(lockfree m stdc++) set_target_properties(lockfree PROPERTIES CUDA_SEPARABLE_COMPILATION ON) set_target_properties(lockfree PROPERTIES CUDA_ARCHITECTURES "75") function(build_different_target is_random build_size step_size) if (is_random) set(middle_name "random") else () set(middle_name "perfect") endif () set(basic_name "lockfree_${middle_name}_${build_size}_${step_size}") message(STATUS "different target: ${basic_name}") add_executable("${basic_name}" "") target_sources("${basic_name}" PRIVATE main.cu ) #add_definitions("${basic_name}" -DBUILD_SIZE=${build_size} -DSTEP_SIZE=${step_size}) target_compile_definitions("${basic_name}" PRIVATE -DSTEP_SIZE=${step_size}) if ("${is_random}") target_compile_definitions("${basic_name}" PRIVATE -DRANDOM_TARGET -DBUILD_SIZE=${build_size}) else () target_compile_definitions("${basic_name}" PRIVATE -DBUILD_SIZE=${build_size} -DSTEP_SIZE=${step_size}) endif () target_link_libraries("${basic_name}" m stdc++) set_target_properties("${basic_name}" PROPERTIES CUDA_SEPARABLE_COMPILATION ON) endfunction() build_different_target(true 1024 8) #build_different_target(false 1048576 2) build_different_target(false 1048576 4) build_different_target(false 1048576 8) build_different_target(true 1048576 4) build_different_target(true 1048576 2) build_different_target(true 1048576 8) add_executable(normal_distribution normal_distribution.cpp) set_target_properties(normal_distribution PROPERTIES LINKER_LANGUAGE CXX) add_executable(normal_distribution_ex3 exp_3.cpp) set_target_properties(normal_distribution PROPERTIES LINKER_LANGUAGE CXX) add_executable(normal_distribution_ex0702 exp_0702.cpp) set_target_properties(normal_distribution PROPERTIES LINKER_LANGUAGE CXX)