SWDEV-287830 - Remove hardcoding of /opt/rocm path
Change-Id: I3b654f46d8867651734804f19a4456e17ada740d
[ROCm/clr commit: 63cd524f1d]
Tento commit je obsažen v:
odevzdal
Anusha Godavarthy Surya
rodič
ea786b1810
revize
4a7b23b848
@@ -21,17 +21,18 @@ cmake_minimum_required(VERSION 3.16.8)
|
||||
project(hip)
|
||||
|
||||
# sample command for hip-rocclr runtime, you'll need to have rocclr built
|
||||
# ROCM_PATH is the path where ROCM is installed
|
||||
# For shared lib of hip-rocclr runtime
|
||||
# For release version
|
||||
# cmake -DHIP_COMMON_DIR="$HIP_DIR" -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DCMAKE_PREFIX_PATH="/opt/rocm/" -DCMAKE_INSTALL_PREFIX=</where/to/install/hip> ..
|
||||
# cmake -DHIP_COMMON_DIR="$HIP_DIR" -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DCMAKE_PREFIX_PATH="<ROCM_PATH>/" -DCMAKE_INSTALL_PREFIX=</where/to/install/hip> ..
|
||||
# For debug version
|
||||
# cmake -DHIP_COMMON_DIR="$HIP_DIR" -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DCMAKE_PREFIX_PATH="/opt/rocm/" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=</where/to/install/hip> ..
|
||||
# cmake -DHIP_COMMON_DIR="$HIP_DIR" -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DCMAKE_PREFIX_PATH="<ROCM_PATH>/" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=</where/to/install/hip> ..
|
||||
# For static lib of hip-rocclr runtime
|
||||
# For release version
|
||||
# cmake -DHIP_COMMON_DIR="$HIP_DIR" -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DBUILD_SHARED_LIBS=OFF -DCMAKE_PREFIX_PATH="/opt/rocm/" -DCMAKE_INSTALL_PREFIX=</where/to/install/hip> ..
|
||||
# cmake -DHIP_COMMON_DIR="$HIP_DIR" -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DBUILD_SHARED_LIBS=OFF -DCMAKE_PREFIX_PATH="<ROCM_PATH>/" -DCMAKE_INSTALL_PREFIX=</where/to/install/hip> ..
|
||||
# For debug version
|
||||
# cmake -DHIP_COMMON_DIR="$HIP_DIR" -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="/opt/rocm/" -DCMAKE_INSTALL_PREFIX=</where/to/install/hip> ..
|
||||
# If you don't specify CMAKE_INSTALL_PREFIX, hip-rocclr runtime will be installed to "/opt/rocm/hip".
|
||||
# cmake -DHIP_COMMON_DIR="$HIP_DIR" -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="<ROCM_PATH>/" -DCMAKE_INSTALL_PREFIX=</where/to/install/hip> ..
|
||||
# If you don't specify CMAKE_INSTALL_PREFIX, hip-rocclr runtime will be installed to "<ROCM_PATH>/hip".
|
||||
# By default, CMake will search for a folder named vdi or ROCclr relative to the current path. Specify -DROCCLR_PATH=$ROCCLR_DIR if rocclr source is in obscure location.
|
||||
# By default, CMake will search for a folder named opencl or ROCm-OpenCL-Runtime relative to the current path. Specify -DAMD_OPENCL_PATH=$OPENCL_DIR if opencl source is in obscure location.
|
||||
list(APPEND CMAKE_MODULE_PATH ${HIP_COMMON_DIR}/cmake)
|
||||
@@ -229,9 +230,14 @@ if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "Release")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED ROCM_PATH )
|
||||
set ( ROCM_PATH "/opt/rocm" CACHE STRING "Default ROCM installation directory." )
|
||||
endif ()
|
||||
message (STATUS "ROCM Installation path(ROCM_PATH): ${ROCM_PATH}")
|
||||
|
||||
# Determine HIP install path
|
||||
if (UNIX)
|
||||
set(HIP_DEFAULT_INSTALL_PREFIX "/opt/rocm/hip")
|
||||
set(HIP_DEFAULT_INSTALL_PREFIX "${ROCM_PATH}/hip")
|
||||
endif()
|
||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(CMAKE_INSTALL_PREFIX ${HIP_DEFAULT_INSTALL_PREFIX} CACHE PATH "Installation path for HIP" FORCE)
|
||||
@@ -241,7 +247,7 @@ if(DEV_LOG_ENABLE MATCHES "yes")
|
||||
add_definitions(-DDEV_LOG_ENABLE)
|
||||
endif()
|
||||
|
||||
# Set default install path as "/opt/rocm/hip", can override the path from cmake build.
|
||||
# Set default install path as "${ROCM_PATH}/hip", can override the path from cmake build.
|
||||
set(CPACK_INSTALL_PREFIX ${HIP_DEFAULT_INSTALL_PREFIX} CACHE PATH "Package Installation path for HIP")
|
||||
|
||||
if(IS_ABSOLUTE ${CMAKE_INSTALL_PREFIX})
|
||||
@@ -250,15 +256,10 @@ else()
|
||||
message(FATAL_ERROR "Don't know where to install HIP. Please specify absolute path using -DCMAKE_INSTALL_PREFIX")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED ROCM_PATH )
|
||||
set ( ROCM_PATH "/opt/rocm" CACHE STRING "Default ROCM installation directory." )
|
||||
endif ()
|
||||
message (STATUS "ROCM Installation path(ROCM_PATH): ${ROCM_PATH}")
|
||||
|
||||
# set the installation path for the installer package
|
||||
set(CPACK_SET_DESTDIR ON CACHE BOOL "Installer package will install hip to CMAKE_INSTALL_PREFIX instead of CPACK_PACKAGING_INSTALL_PREFIX")
|
||||
if (NOT CPACK_SET_DESTDIR)
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm/hip" CACHE PATH "Default installation path of hcc installer package")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX "${ROCM_PATH}/hip" CACHE PATH "Default installation path of hcc installer package")
|
||||
endif (NOT CPACK_SET_DESTDIR)
|
||||
|
||||
#############################
|
||||
@@ -463,16 +464,6 @@ if(POLICY CMP0037)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#############################
|
||||
# Code analysis
|
||||
#############################
|
||||
# Target: cppcheck
|
||||
find_program(CPPCHECK_EXE cppcheck)
|
||||
if(CPPCHECK_EXE)
|
||||
add_custom_target(cppcheck COMMAND ${CPPCHECK_EXE} --force --quiet --enable=warning,performance,portability,information,missingInclude src include -I /opt/rocm/include/hcc -I /opt/rocm/include --suppress=*:/opt/rocm/include/hcc/hc.hpp
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
#############################
|
||||
# Code formatting
|
||||
#############################
|
||||
@@ -519,7 +510,7 @@ endif()
|
||||
# Target: clang
|
||||
if(HIP_HIPCC_EXECUTABLE)
|
||||
add_custom_target(analyze
|
||||
COMMAND ${HIP_HIPCC_EXECUTABLE} -fvisibility=hidden -fvisibility-inlines-hidden --analyze --analyzer-outputtext -isystem /opt/rocm/include -Wno-unused-command-line-argument -I/opt/rocm/include -c src/*.cpp -Iinclude/ -I./
|
||||
COMMAND ${HIP_HIPCC_EXECUTABLE} -fvisibility=hidden -fvisibility-inlines-hidden --analyze --analyzer-outputtext -isystem ${ROCM_PATH}/include -Wno-unused-command-line-argument -I${ROCM_PATH}/include -c src/*.cpp -Iinclude/ -I./
|
||||
WORKING_DIRECTORY ${HIP_SRC_PATH})
|
||||
if(CPPCHECK_EXE)
|
||||
add_dependencies(analyze cppcheck)
|
||||
|
||||
@@ -27,7 +27,7 @@ Commands to build hipamd are as following,
|
||||
```bash
|
||||
cd "$HIPAMD_DIR"
|
||||
mkdir -p build; cd build
|
||||
cmake -DHIP_COMMON_DIR=$HIP_DIR -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DCMAKE_PREFIX_PATH="/opt/rocm/" -DCMAKE_INSTALL_PREFIX=$PWD/install ..
|
||||
cmake -DHIP_COMMON_DIR=$HIP_DIR -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DCMAKE_PREFIX_PATH="<ROCM_PATH>/" -DCMAKE_INSTALL_PREFIX=$PWD/install ..
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
```
|
||||
|
||||
@@ -188,7 +188,7 @@ if(NOT WIN32)
|
||||
find_path(HSA_HEADER hsa/hsa.h
|
||||
PATHS
|
||||
"${_IMPORT_PREFIX}/../include"
|
||||
/opt/rocm/include
|
||||
${ROCM_PATH}/include
|
||||
)
|
||||
|
||||
if (HSA_HEADER-NOTFOUND)
|
||||
|
||||
@@ -71,6 +71,7 @@ SRC_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
WORKING_DIR=$PWD
|
||||
DASH_JAY="-j $(getconf _NPROCESSORS_ONLN)"
|
||||
OS_NAME="$(cat /etc/os-release | awk -F '=' '/^NAME/{print $2}' | awk '{print $1}' | tr -d '"')"
|
||||
[[ -z "$ROCM_PATH" ]] && ROCM_PATH=/opt/rocm
|
||||
|
||||
err() {
|
||||
echo "${1-Died}." >&2
|
||||
@@ -109,7 +110,7 @@ function buildHIP()
|
||||
HIP_BUILD_DIR="$BUILD_ROOT/hip_build"
|
||||
mkdir $HIP_BUILD_DIR
|
||||
pushd $HIP_BUILD_DIR
|
||||
cmake $SRC_ROOT -DHIP_COMMON_DIR="$HIP_DIR" -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DCMAKE_PREFIX_PATH="/opt/rocm" -DCMAKE_BUILD_TYPE=Release
|
||||
cmake $SRC_ROOT -DHIP_COMMON_DIR="$HIP_DIR" -DAMD_OPENCL_PATH=$OPENCL_DIR -DROCCLR_PATH=$ROCCLR_DIR -DCMAKE_PREFIX_PATH="$ROCM_PATH" -DCMAKE_BUILD_TYPE=Release
|
||||
make $DASH_JAY
|
||||
make package
|
||||
if [ "$OS_NAME" == "Ubuntu" ]
|
||||
|
||||
@@ -162,7 +162,7 @@ endif()
|
||||
if(__HIP_ENABLE_PCH)
|
||||
find_package(LLVM REQUIRED CONFIG
|
||||
PATHS
|
||||
/opt/rocm/llvm)
|
||||
${ROCM_PATH}/llvm)
|
||||
# find_package(LLVM) returns the lib/cmake/llvm location. We require the root.
|
||||
if(NOT DEFINED HIP_LLVM_ROOT)
|
||||
set(HIP_LLVM_ROOT "${LLVM_DIR}/../../..")
|
||||
@@ -182,8 +182,8 @@ if(__HIP_ENABLE_RTC)
|
||||
message(STATUS "HIP RTC enabled.")
|
||||
include(HIPRTC RESULT_VARIABLE HIPRTC_CMAKE)
|
||||
# Requires clang and llvm-mc to create this library.
|
||||
find_package(LLVM REQUIRED CONFIG PATHS /opt/rocm/llvm)
|
||||
find_package(Clang REQUIRED CONFIG PATHS /opt/rocm/llvm)
|
||||
find_package(LLVM REQUIRED CONFIG PATHS ${ROCM_PATH}/llvm)
|
||||
find_package(Clang REQUIRED CONFIG PATHS ${ROCM_PATH}/llvm)
|
||||
set(HIPRTC_GEN_DIR "${CMAKE_CURRENT_BINARY_DIR}/hip_rtc_gen")
|
||||
set(HIPRTC_GEN_HEADER "${HIPRTC_GEN_DIR}/hipRTC_header.h")
|
||||
set(HIPRTC_GEN_MCIN "${HIPRTC_GEN_DIR}/hipRTC_header.mcin")
|
||||
@@ -309,7 +309,7 @@ target_link_libraries(host INTERFACE amdhip64)
|
||||
add_library(device INTERFACE)
|
||||
target_link_libraries(device INTERFACE host)
|
||||
|
||||
# Current packaging assumes that HIP runtime will always be installed in /opt/rocm/lib
|
||||
# Current packaging assumes that HIP runtime will always be installed in ${ROCM_PATH}/lib
|
||||
# This is false to assume, because some distros like CentOS will use the lib64 directory instead of lib
|
||||
# Relying on CMake to choose the library directory for us will default in that case to lib64
|
||||
# Hence there will be a mismatch between where HIP is installed and where CMake thinks it is
|
||||
|
||||
Odkázat v novém úkolu
Zablokovat Uživatele