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.

rocm.cmake 3.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. if(NOT DEFINED HIP_PATH)
  2. if(NOT DEFINED ENV{HIP_PATH})
  3. set(HIP_PATH "/opt/rocm/hip" CACHE PATH "Path to which HIP has been installed")
  4. else()
  5. set(HIP_PATH $ENV{HIP_PATH} CACHE PATH "Path to which HIP has been installed")
  6. endif()
  7. endif()
  8. set(CMAKE_MODULE_PATH "${HIP_PATH}/cmake" ${CMAKE_MODULE_PATH})
  9. find_package(HIP QUIET)
  10. if (HIP_FOUND)
  11. message(STATUS "Found HIP: " ${HIP_VERSION})
  12. else()
  13. message(FATAL_ERROR "Could not find HIP. Ensure that HIP is either installed in /opt/rocm/hip or the variable HIP_PATH is set to point to the right location.")
  14. endif()
  15. string(REPLACE "." ";" HIP_VERSION_LIST ${HIP_VERSION})
  16. list(GET HIP_VERSION_LIST 0 HIP_VERSION_MAJOR)
  17. list(GET HIP_VERSION_LIST 1 HIP_VERSION_MINOR)
  18. if (NOT ${HIP_VERSION_MAJOR} STREQUAL "3")
  19. message(FATAL_ERROR "ROCM version needed 3.x, Please update ROCM.")
  20. else()
  21. if (${HIP_VERSION_MINOR} LESS "7")
  22. message(WARNING "ROCM version 3.x which x(got ${HIP_VERSION_MINOR}) greater equal 7 is prefered.")
  23. endif()
  24. endif()
  25. set(MGE_ROCM_LIBS OpenCL amdhip64 MIOpen rocblas rocrand)
  26. set(HIP_INCLUDE_DIR ${HIP_ROOT_DIR}/../include)
  27. set(HIP_LIBRARY_DIR ${HIP_ROOT_DIR}/../lib)
  28. #miopen
  29. get_filename_component(__found_miopen_library ${HIP_ROOT_DIR}/../miopen/lib REALPATH)
  30. find_path(MIOPEN_LIBRARY_DIR
  31. NAMES libMIOpen.so
  32. HINTS ${PC_MIOPEN_INCLUDE_DIRS} ${MIOPEN_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_miopen_library}
  33. PATH_SUFFIXES lib
  34. DOC "Path to MIOPEN library directory." )
  35. if(MIOPEN_LIBRARY_DIR STREQUAL "MIOPEN_LIBRARY_DIR-NOTFOUND")
  36. message(FATAL_ERROR "Can not find MIOPEN Library")
  37. endif()
  38. get_filename_component(__found_miopen_include ${HIP_ROOT_DIR}/../miopen/include REALPATH)
  39. find_path(MIOPEN_INCLUDE_DIR
  40. NAMES miopen
  41. HINTS ${PC_MIOPEN_INCLUDE_DIRS} ${MIOPEN_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_miopen_include}
  42. PATH_SUFFIXES include
  43. DOC "Path to MIOPEN include directory." )
  44. if(MIOPEN_INCLUDE_DIR STREQUAL "MIOPEN_INCLUDE_DIR-NOTFOUND")
  45. message(FATAL_ERROR "Can not find MIOEPN INCLUDE")
  46. endif()
  47. #rocblas
  48. get_filename_component(__found_rocblas_library ${HIP_ROOT_DIR}/../rocblas/lib REALPATH)
  49. find_path(ROCBLAS_LIBRARY_DIR
  50. NAMES librocblas.so
  51. HINTS ${PC_ROCBLAS_INCLUDE_DIRS} ${ROCBLAS_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_rocblas_library}
  52. PATH_SUFFIXES lib
  53. DOC "Path to ROCBLAS library directory." )
  54. if(ROCBLAS_LIBRARY_DIR STREQUAL "ROCBLAS_LIBRARY_DIR-NOTFOUND")
  55. message(FATAL_ERROR "Can not find ROCBLAS Library")
  56. endif()
  57. get_filename_component(__found_rocblas_include ${HIP_ROOT_DIR}/../rocblas/include REALPATH)
  58. find_path(ROCBLAS_INCLUDE_DIR
  59. NAMES rocblas.h
  60. HINTS ${PC_ROCBLAS_INCLUDE_DIRS} ${ROCBLAS_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_rocblas_include}
  61. PATH_SUFFIXES include
  62. DOC "Path to ROCBLAS include directory." )
  63. if(ROCBLAS_INCLUDE_DIR STREQUAL "ROCBLAS_INCLUDE_DIR-NOTFOUND")
  64. message(FATAL_ERROR "Can not find ROCBLAS INCLUDE")
  65. endif()
  66. #rocrand
  67. get_filename_component(__found_rocrand_library ${HIP_ROOT_DIR}/../rocrand/lib REALPATH)
  68. find_path(ROCRAND_LIBRARY_DIR
  69. NAMES librocrand.so
  70. HINTS ${PC_ROCRAND_INCLUDE_DIRS} ${ROCRAND_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_rocrand_library}
  71. PATH_SUFFIXES lib
  72. DOC "Path to ROCRAND library directory." )
  73. if(ROCRAND_LIBRARY_DIR STREQUAL "ROCRAND_LIBRARY_DIR-NOTFOUND")
  74. message(FATAL_ERROR "Can not find ROCRAND Library")
  75. endif()
  76. get_filename_component(__found_rocrand_include ${HIP_ROOT_DIR}/../rocrand/include REALPATH)
  77. find_path(ROCRAND_INCLUDE_DIR
  78. NAMES rocrand.h
  79. HINTS ${PC_ROCRAND_INCLUDE_DIRS} ${ROCRAND_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_rocrand_include}
  80. PATH_SUFFIXES include
  81. DOC "Path to ROCRAND include directory." )
  82. if(ROCRAND_INCLUDE_DIR STREQUAL "ROCRAND_INCLUDE_DIR-NOTFOUND")
  83. message(FATAL_ERROR "Can not find ROCRAND INCLUDE")
  84. endif()

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