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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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.7.Please update ROCM.")
  20. endif()
  21. if (NOT ${HIP_VERSION_MINOR} STREQUAL "7")
  22. message(FATAL_ERROR "ROCM version needed 3.7.Please update ROCM.")
  23. endif()
  24. set(MGE_ROCM_LIBS OpenCL amdhip64 MIOpen rocblas rocrand)
  25. set(HIP_INCLUDE_DIR ${HIP_ROOT_DIR}/../include)
  26. set(HIP_LIBRARY_DIR ${HIP_ROOT_DIR}/../lib)
  27. #miopen
  28. get_filename_component(__found_miopen_library ${HIP_ROOT_DIR}/../miopen/lib REALPATH)
  29. find_path(MIOPEN_LIBRARY_DIR
  30. NAMES libMIOpen.so
  31. HINTS ${PC_MIOPEN_INCLUDE_DIRS} ${MIOPEN_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_miopen_library}
  32. PATH_SUFFIXES lib
  33. DOC "Path to MIOPEN library directory." )
  34. if(MIOPEN_LIBRARY_DIR STREQUAL "MIOPEN_LIBRARY_DIR-NOTFOUND")
  35. message(FATAL_ERROR "Can not find MIOPEN Library")
  36. endif()
  37. get_filename_component(__found_miopen_include ${HIP_ROOT_DIR}/../miopen/include REALPATH)
  38. find_path(MIOPEN_INCLUDE_DIR
  39. NAMES miopen
  40. HINTS ${PC_MIOPEN_INCLUDE_DIRS} ${MIOPEN_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_miopen_include}
  41. PATH_SUFFIXES include
  42. DOC "Path to MIOPEN include directory." )
  43. if(MIOPEN_INCLUDE_DIR STREQUAL "MIOPEN_INCLUDE_DIR-NOTFOUND")
  44. message(FATAL_ERROR "Can not find MIOEPN INCLUDE")
  45. endif()
  46. #rocblas
  47. get_filename_component(__found_rocblas_library ${HIP_ROOT_DIR}/../rocblas/lib REALPATH)
  48. find_path(ROCBLAS_LIBRARY_DIR
  49. NAMES librocblas.so
  50. HINTS ${PC_ROCBLAS_INCLUDE_DIRS} ${ROCBLAS_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_rocblas_library}
  51. PATH_SUFFIXES lib
  52. DOC "Path to ROCBLAS library directory." )
  53. if(ROCBLAS_LIBRARY_DIR STREQUAL "ROCBLAS_LIBRARY_DIR-NOTFOUND")
  54. message(FATAL_ERROR "Can not find ROCBLAS Library")
  55. endif()
  56. get_filename_component(__found_rocblas_include ${HIP_ROOT_DIR}/../rocblas/include REALPATH)
  57. find_path(ROCBLAS_INCLUDE_DIR
  58. NAMES rocblas.h
  59. HINTS ${PC_ROCBLAS_INCLUDE_DIRS} ${ROCBLAS_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_rocblas_include}
  60. PATH_SUFFIXES include
  61. DOC "Path to ROCBLAS include directory." )
  62. if(ROCBLAS_INCLUDE_DIR STREQUAL "ROCBLAS_INCLUDE_DIR-NOTFOUND")
  63. message(FATAL_ERROR "Can not find ROCBLAS INCLUDE")
  64. endif()
  65. #rocrand
  66. get_filename_component(__found_rocrand_library ${HIP_ROOT_DIR}/../rocrand/lib REALPATH)
  67. find_path(ROCRAND_LIBRARY_DIR
  68. NAMES librocrand.so
  69. HINTS ${PC_ROCRAND_INCLUDE_DIRS} ${ROCRAND_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_rocrand_library}
  70. PATH_SUFFIXES lib
  71. DOC "Path to ROCRAND library directory." )
  72. if(ROCRAND_LIBRARY_DIR STREQUAL "ROCRAND_LIBRARY_DIR-NOTFOUND")
  73. message(FATAL_ERROR "Can not find ROCRAND Library")
  74. endif()
  75. get_filename_component(__found_rocrand_include ${HIP_ROOT_DIR}/../rocrand/include REALPATH)
  76. find_path(ROCRAND_INCLUDE_DIR
  77. NAMES rocrand.h
  78. HINTS ${PC_ROCRAND_INCLUDE_DIRS} ${ROCRAND_ROOT_DIR} ${ROCM_TOOLKIT_INCLUDE} ${__found_rocrand_include}
  79. PATH_SUFFIXES include
  80. DOC "Path to ROCRAND include directory." )
  81. if(ROCRAND_INCLUDE_DIR STREQUAL "ROCRAND_INCLUDE_DIR-NOTFOUND")
  82. message(FATAL_ERROR "Can not find ROCRAND INCLUDE")
  83. endif()

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