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.

OpenBLAS.cmake 1.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. if (MGE_USE_SYSTEM_LIB)
  2. find_package(OpenBLAS)
  3. set (MGE_USE_SYSTEM_OPENBLAS ON)
  4. message(STATUS "Using system provided OpenBLAS ${OpenBLAS_VERSION}")
  5. add_library(libopenblas IMPORTED GLOBAL)
  6. set_target_properties(
  7. libopenblas PROPERTIES
  8. IMPORTED_LOCATION ${OpenBLAS_LIBRARIES}
  9. INTERFACE_INCLUDE_DIRECTORIES ${OpenBLAS_INCLUDE_DIRS}
  10. )
  11. return()
  12. endif()
  13. include(ExternalProject)
  14. include(GNUInstallDirs)
  15. set(OPENBLAS_DIR "${PROJECT_SOURCE_DIR}/third_party/OpenBLAS" CACHE STRING "OpenBLAS directory")
  16. set(OPENBLAS_BUILD_DIR ${PROJECT_BINARY_DIR}/third_party/OpenBLAS)
  17. set(OPENBLAS_INC ${OPENBLAS_BUILD_DIR}/include)
  18. set(OPENBLAS_LIB ${OPENBLAS_BUILD_DIR}/${CMAKE_INSTALL_LIBDIR}/libopenblas.a)
  19. if(${CMAKE_GENERATOR} STREQUAL "Ninja")
  20. set(MAKE_COMMAND make)
  21. else()
  22. set(MAKE_COMMAND "$(MAKE)")
  23. endif()
  24. ExternalProject_add(
  25. openblas
  26. SOURCE_DIR ${OPENBLAS_DIR}
  27. PREFIX ${OPENBLAS_BUILD_DIR}
  28. CMAKE_GENERATOR "Unix Makefiles"
  29. CMAKE_ARGS -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER} -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=${OPENBLAS_BUILD_DIR} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_POSITION_INDEPENDENT_CODE=ON
  30. BUILD_COMMAND ${MAKE_COMMAND}
  31. BUILD_BYPRODUCTS ${OPENBLAS_LIB} ${OPENBLAS_PROTOC_EXECUTABLE}
  32. )
  33. file(MAKE_DIRECTORY ${OPENBLAS_INC})
  34. add_library(libopenblas STATIC IMPORTED GLOBAL)
  35. add_dependencies(libopenblas openblas)
  36. set_target_properties(
  37. libopenblas PROPERTIES
  38. IMPORTED_LOCATION ${OPENBLAS_LIB}
  39. INTERFACE_INCLUDE_DIRECTORIES ${OPENBLAS_BUILD_DIR}/include
  40. )

MegEngine 安装包中集成了使用 GPU 运行代码所需的 CUDA 环境,不用区分 CPU 和 GPU 版。 如果想要运行 GPU 程序,请确保机器本身配有 GPU 硬件设备并安装好驱动。 如果你想体验在云端 GPU 算力平台进行深度学习开发的感觉,欢迎访问 MegStudio 平台