cmake_minimum_required(VERSION 3.24) project(lockfree CUDA CXX) set(CMAKE_CUDA_STANDARD 14) #set(GXX_INCLUDE /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include) # from: Coelacanthus add_compile_options( $<$:-Wall> $<$:-pedantic> $<$:-Wextra> ) 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() function(set_cuda_target_base target_name) target_link_libraries("${target_name}" m stdc++) set_target_properties("${target_name}" PROPERTIES CUDA_SEPARABLE_COMPILATION ON) set_target_properties("${target_name}" PROPERTIES CUDA_ARCHITECTURES "75") set_target_properties("${target_name}" PROPERTIES LINKER_LANGUAGE CUDA) 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_expt3 expt_3.cpp) set_target_properties(normal_distribution_expt3 PROPERTIES LINKER_LANGUAGE CXX) add_executable(normal_distribution_expt0702 expt_220702.cpp) set_target_properties(normal_distribution_expt0702 PROPERTIES LINKER_LANGUAGE CXX) add_executable(work_0719 work_0719.cu) set_cuda_target_base(work_0719) add_executable(expt_0722 expt_220722.cpp) set_target_properties(expt_0722 PROPERTIES LINKER_LANGUAGE CXX) add_executable(expt_0726 expt_220726.cpp) set_target_properties(expt_0726 PROPERTIES LINKER_LANGUAGE CXX) add_executable(expt_0729 expt_220729.cu) set_cuda_target_base(expt_0729) add_executable(expt_0802 expt_220802.cpp) target_link_libraries(expt_0802 m stdc++) add_executable(expt_0804 expt_220804.cu) set_cuda_target_base(expt_0804) add_executable(expt_0809 expt_220809.cu) set_cuda_target_base(expt_0809) add_executable(valid_sort_new valid_sort_new.cpp) target_link_libraries(valid_sort_new m stdc++) add_executable(valid_sort valid_sort.cpp) target_link_libraries(valid_sort m stdc++) add_executable(expt_0821 expt_220821.cpp sortlib.h) target_link_libraries(expt_0821 m stdc++) add_executable(expt_0830 expt_220830.cu sortlib.cuh) set_cuda_target_base(expt_0830) add_executable(normal_skiplist normal_skiplist.cpp) target_link_libraries(normal_skiplist m stdc++) add_executable(expt_0406 expt_0406.cu) set_cuda_target_base(expt_0406) add_executable(expt_0425 expt_0425.cu) set_cuda_target_base(expt_0425) add_executable(expt_0501 expt_0501.cu) set_cuda_target_base(expt_0501) add_executable(expt_0502 expt_0502.cu) set_cuda_target_base(expt_0502) add_executable(expt_0503 expt_0503.cu) set_cuda_target_base(expt_0503) add_executable(expt_0510 expt_0510.cu) set_cuda_target_base(expt_0510) add_executable(expt_0516 expt_0516.cu) set_cuda_target_base(expt_0516) add_executable(expt_0516_2 expt_0516_2.cu) set_cuda_target_base(expt_0516_2) add_executable(expt_0517 expt_0517.cu) set_cuda_target_base(expt_0517) add_executable(expt_0520 expt_0520.cu skiplistcustom.cuh read_helper.h) set_cuda_target_base(expt_0520) add_executable(expt_0525 expt_0525.cu read_helper.h) set_cuda_target_base(expt_0525) add_executable(expt_0528 expt_0528.cu read_helper.h) set_cuda_target_base(expt_0528) add_executable(expt_0529 expt_0529.cu read_helper.h) set_cuda_target_base(expt_0529) add_executable(expt_0604 expt_0604.cpp) set_target_properties(expt_0604 PROPERTIES LINKER_LANGUAGE CXX) add_executable(expt_0618 expt_0618.cu) set_cuda_target_base(expt_0618) add_executable(expt_0618_2 expt_0618_2.cpp) set_target_properties(expt_0618_2 PROPERTIES LINKER_LANGUAGE CXX) add_executable(expt_0618_3 expt_0618_3.cu) set_cuda_target_base(expt_0618_3) add_executable(publish_0630 publish_0630.cu) set_cuda_target_base(publish_0630) add_executable(expt_0707 expt_0707.cpp) set_target_properties(expt_0707 PROPERTIES LINKER_LANGUAGE CXX) add_executable(expt_0707_1 expt_0707_1.cu) set_cuda_target_base(expt_0707_1)