You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 1.6 kB

4 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. cmake_minimum_required(VERSION 3.18)
  2. project(Hetu CXX)
  3. include(cmake/config.cmake)
  4. list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
  5. set(CMAKE_CXX_STANDARD 11)
  6. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  7. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
  8. set(CMAKE_CXX_FLAGS "-O3 -Wall")
  9. # openmp
  10. find_package(OpenMP REQUIRED)
  11. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
  12. # compile flag
  13. if(${HETU_VERSION} STREQUAL "all")
  14. set(HETU_COMPILE_GPU ON)
  15. set(HETU_COMPILE_MKL ON)
  16. elseif(${HETU_VERSION} STREQUAL "gpu")
  17. set(HETU_COMPILE_GPU ON)
  18. set(HETU_COMPILE_MKL OFF)
  19. elseif(${HETU_VERSION} STREQUAL "mkl")
  20. set(HETU_COMPILE_GPU OFF)
  21. set(HETU_COMPILE_MKL ON)
  22. else()
  23. message(FATAL_ERROR "unknown hetu version")
  24. endif()
  25. message(STATUS "HETU version: ${HETU_VERSION}")
  26. # cuda
  27. if(${HETU_COMPILE_GPU})
  28. set(CMAKE_CUDA_COMPILER ${CUDAToolkit_ROOT}/bin/nvcc)
  29. file(READ ${CUDAToolkit_ROOT}/version.txt RAW_CUDA_VERSION)
  30. string(REGEX MATCH "[0-9\.]+" CUDA_VERSION ${RAW_CUDA_VERSION})
  31. if(${CUDA_VERSION} VERSION_LESS "10.1")
  32. message(FATAL_ERROR "Required CUDA version >= 10.1, while current CUDA version is ${CUDA_VERSION}")
  33. endif()
  34. find_package(CUDAToolkit REQUIRED)
  35. enable_language(CUDA)
  36. endif()
  37. include(FetchContent) # download third_party
  38. add_subdirectory(${CMAKE_SOURCE_DIR}/src)
  39. if(${HETU_PS})
  40. add_subdirectory(${CMAKE_SOURCE_DIR}/ps-lite)
  41. endif()
  42. if(${HETU_GEOMETRIC})
  43. add_subdirectory(${CMAKE_SOURCE_DIR}/third_party/GraphMix)
  44. endif()
  45. if (HETU_ML)
  46. add_subdirectory(${CMAKE_SOURCE_DIR}/third_party/HetuML)
  47. endif()
  48. enable_testing()

分布式深度学习系统

Contributors (1)