tvm.cmake 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # set path
  2. set(TVM_URL_BASE "https://bj.bcebos.com/fastdeploy/third_libs/")
  3. set(TVM_VERSION "0.12.0")
  4. set(TVM_SYSTEM "")
  5. if (${CMAKE_SYSTEM} MATCHES "Darwin")
  6. if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm64")
  7. set(TVM_SYSTEM "macos-arm64")
  8. endif ()
  9. elseif (${CMAKE_SYSTEM} MATCHES "Linux")
  10. if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86")
  11. set(TVM_SYSTEM "linux-x86")
  12. endif ()
  13. else ()
  14. error("TVM only support MacOS in Arm64 or linux in x86")
  15. endif ()
  16. set(TVM_FILE "tvm-${TVM_SYSTEM}-${TVM_VERSION}.tgz")
  17. set(TVM_URL "${TVM_URL_BASE}${TVM_FILE}")
  18. set(TVM_RUNTIME_PATH "${THIRD_PARTY_PATH}/install/tvm")
  19. execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${TVM_RUNTIME_PATH}")
  20. download_and_decompress(${TVM_URL}
  21. "${CMAKE_CURRENT_BINARY_DIR}/${TVM_FILE}"
  22. "${THIRD_PARTY_PATH}/install/")
  23. include_directories(${TVM_RUNTIME_PATH}/include)
  24. # copy dlpack to third_party
  25. set(DLPACK_PATH "${THIRD_PARTY_PATH}/install/dlpack")
  26. execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${DLPACK_PATH}")
  27. execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory
  28. "${PROJECT_SOURCE_DIR}/third_party/dlpack"
  29. "${THIRD_PARTY_PATH}/install/dlpack")
  30. include_directories(${DLPACK_PATH}/include)
  31. set(DMLC_CORE_PATH "${THIRD_PARTY_PATH}/install/dmlc-core")
  32. execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${DMLC_CORE_PATH}")
  33. set(DMLC_CORE_URL https://bj.bcebos.com/fastdeploy/third_libs/dmlc-core.tgz)
  34. download_and_decompress(${DMLC_CORE_URL}
  35. "${CMAKE_CURRENT_BINARY_DIR}/dmlc-core.tgz"
  36. "${THIRD_PARTY_PATH}/install/")
  37. include_directories(${DMLC_CORE_PATH}/include)
  38. # include lib
  39. if (EXISTS ${TVM_RUNTIME_PATH})
  40. if (${CMAKE_SYSTEM} MATCHES "Darwin")
  41. set(TVM_RUNTIME_LIB ${TVM_RUNTIME_PATH}/lib/libtvm_runtime.dylib)
  42. elseif (${CMAKE_SYSTEM} MATCHES "Linux")
  43. set(TVM_RUNTIME_LIB ${TVM_RUNTIME_PATH}/lib/libtvm_runtime.so)
  44. endif ()
  45. include(${TVM_RUNTIME_PATH}/lib/cmake/tvm/tvmConfig.cmake)
  46. add_definitions(-DDMLC_USE_LOGGING_LIBRARY=<tvm/runtime/logging.h>)
  47. else ()
  48. error(FATAL_ERROR "[tvm.cmake] TVM_RUNTIME_PATH does not exist.")
  49. endif ()