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.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter")
  2. set(MGB_TEST_DIR ${PROJECT_SOURCE_DIR}/test/src)
  3. file(GLOB_RECURSE SOURCES ../src/test/*.cpp ../src/impl/*.cpp ${MGB_TEST_DIR}/*.cpp)
  4. # disable distributed tests
  5. if(NOT MGE_WITH_DISTRIBUTED)
  6. list(FILTER SOURCES EXCLUDE REGEX ".*test/collective_comm.cpp")
  7. list(FILTER SOURCES EXCLUDE REGEX ".*test/io_remote.cpp")
  8. endif()
  9. # TODO: turn python binding into a static/object library
  10. add_executable(imperative_test ${SOURCES} ${SRCS})
  11. target_include_directories(imperative_test PRIVATE ${MGB_TEST_DIR}/include ../src/include ${MGB_OPDEF_OUT_DIR})
  12. # Python binding
  13. target_include_directories(imperative_test PRIVATE ${MODULE_SRC_INCLUDE} ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIR})
  14. target_compile_definitions(imperative_test PRIVATE MODULE_NAME=C)
  15. target_compile_options(imperative_test PRIVATE -Wno-unused-parameter)
  16. set(LINK_LIBS megbrain megdnn gtest gmock pybind11::embed range-v3)
  17. if(MGE_WITH_CUDA)
  18. list(APPEND LINK_LIBS cudart)
  19. endif()
  20. if(MGE_WITH_DISTRIBUTED)
  21. list(APPEND LINK_LIBS megray)
  22. endif()
  23. target_link_libraries(imperative_test ${LINK_LIBS})
  24. if(CXX_SUPPORT_WCLASS_MEMACCESS)
  25. if(MGE_WITH_CUDA)
  26. target_compile_options(imperative_test PRIVATE "$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=-Wno-class-memaccess>"
  27. "$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:-Wno-class-memaccess>")
  28. else()
  29. target_compile_options(imperative_test PRIVATE "-Wno-class-memaccess")
  30. endif()
  31. endif()
  32. if(UNIX)
  33. if(APPLE OR ANDROID)
  34. target_link_libraries(imperative_test dl)
  35. else()
  36. target_link_libraries(imperative_test dl rt)
  37. endif()
  38. endif()
  39. install(TARGETS imperative_test RUNTIME DESTINATION test)

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