From 435d824582efd8aadcd3df3c9ac51ba3035aa4b6 Mon Sep 17 00:00:00 2001 From: ROCm CI Service Account <66695075+rocm-ci@users.noreply.github.com> Date: Fri, 18 Mar 2022 04:05:13 +0530 Subject: [PATCH] SWDEV-291455 - File Reorganization with backward compatibility (#2555) Related changes for HIP installation in /opt/rocm Setting HIP_PATH and ROCM_PATH Setting INTERFACE directories Depends-On: If70b61020fa3ee85bf49171c842837da05191a48 Change-Id: I30adccf7e6241dae12270156602d4b033ea99d93 [ROCm/hip commit: a296100da7bb61ae4fcf3195558b3b7c2e435124] --- projects/hip/bin/hipvars.pm | 10 +++++++--- projects/hip/cmake/FindHIP.cmake | 25 +++++++++++++++++++++---- projects/hip/hip-lang-config.cmake.in | 17 ++++++++++++----- 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/projects/hip/bin/hipvars.pm b/projects/hip/bin/hipvars.pm index f303eaf14b..f1d9b39db3 100644 --- a/projects/hip/bin/hipvars.pm +++ b/projects/hip/bin/hipvars.pm @@ -75,7 +75,9 @@ $isWindows = ($^O eq 'MSWin32' or $^O eq 'msys'); # $HIP_PATH=$ENV{'HIP_PATH'} // dirname(Cwd::abs_path("$0/../")); # use parent directory of hipcc if (-e "$HIP_PATH/../bin/rocm_agent_enumerator") { - $ROCM_PATH=$ENV{'ROCM_PATH'} // dirname("$HIP_PATH"); # use parent directory of HIP_PATH + $ROCM_PATH=$ENV{'ROCM_PATH'} // dirname("$HIP_PATH"); # use parent directory of HIP_PATH ,FILE_REORG +}elsif (-e "$HIP_PATH/bin/rocm_agent_enumerator") { + $ROCM_PATH=$ENV{'ROCM_PATH'} // "$HIP_PATH"; # use HIP_PATH } else { $ROCM_PATH=$ENV{'ROCM_PATH'} // "/opt/rocm"; } @@ -108,9 +110,11 @@ $HIP_RUNTIME = $ENV{'HIP_RUNTIME'} // $hipInfo{'HIP_RUNTIME'} // "rocclr"; # If using ROCclr runtime, need to find HIP_ROCCLR_HOME if (defined $HIP_RUNTIME and $HIP_RUNTIME eq "rocclr" and !defined $HIP_ROCCLR_HOME) { - my $hipvars_dir = dirname($0); + my $hipvars_dir = dirname(Cwd::abs_path($0)); if (-e "$hipvars_dir/../lib/bitcode") { - $HIP_ROCCLR_HOME = Cwd::abs_path($hipvars_dir . "/.."); + $HIP_ROCCLR_HOME = Cwd::abs_path($hipvars_dir . "/.."); #FILE_REORG Backward compatibility + } elsif (-e "$hipvars_dir/lib/bitcode") { + $HIP_ROCCLR_HOME = Cwd::abs_path($hipvars_dir); } else { $HIP_ROCCLR_HOME = $HIP_PATH; # use HIP_PATH } diff --git a/projects/hip/cmake/FindHIP.cmake b/projects/hip/cmake/FindHIP.cmake index d56b20f26e..d3d53a9273 100644 --- a/projects/hip/cmake/FindHIP.cmake +++ b/projects/hip/cmake/FindHIP.cmake @@ -59,6 +59,7 @@ if(NOT APPLE) HIP_ROOT_DIR NAMES bin/hipconfig PATHS + "$ENV{ROCM_PATH}" "$ENV{ROCM_PATH}/hip" ENV HIP_PATH ${_IMPORT_PREFIX} @@ -241,9 +242,17 @@ elseif("${HIP_COMPILER}" STREQUAL "clang") elseif(DEFINED ENV{ROCM_PATH}) set(HIP_CLANG_PATH "$ENV{ROCM_PATH}/llvm/bin") elseif(DEFINED ENV{HIP_PATH}) - set(HIP_CLANG_PATH "$ENV{HIP_PATH}/../llvm/bin") + if(EXISTS "$ENV{HIP_PATH}/llvm/bin") #File Reorg backward compatibility + set(HIP_CLANG_PATH "$ENV{HIP_PATH}/llvm/bin") + else() + set(HIP_CLANG_PATH "$ENV{HIP_PATH}/../llvm/bin") + endif() elseif(DEFINED HIP_PATH) - set(HIP_CLANG_PATH "${HIP_PATH}/../llvm/bin") + if(EXISTS "${HIP_PATH}/llvm/bin") #File Reorg backward compatibility + set(HIP_CLANG_PATH "${HIP_PATH}/llvm/bin") + else() + set(HIP_CLANG_PATH "${HIP_PATH}/../llvm/bin") + endif() else() set(HIP_CLANG_PATH "/opt/rocm/llvm/bin") endif() @@ -660,9 +669,17 @@ macro(HIP_ADD_EXECUTABLE hip_target) elseif(DEFINED ENV{ROCM_PATH}) set(HIP_CLANG_PATH "$ENV{ROCM_PATH}/llvm/bin") elseif(DEFINED ENV{HIP_PATH}) - set(HIP_CLANG_PATH "$ENV{HIP_PATH}/../llvm/bin") + if(EXISTS "$ENV{HIP_PATH}/llvm/bin") #file reorg backward compatibility + set(HIP_CLANG_PATH "$ENV{HIP_PATH}/llvm/bin") + else() + set(HIP_CLANG_PATH "$ENV{HIP_PATH}/../llvm/bin") + endif() elseif(DEFINED HIP_PATH) - set(HIP_CLANG_PATH "${HIP_PATH}/../llvm/bin") + if(EXISTS "${HIP_PATH}/llvm/bin") #file reorg backward compatibility + set(HIP_CLANG_PATH "${HIP_PATH}/llvm/bin") + else() + set(HIP_CLANG_PATH "${HIP_PATH}/../llvm/bin") + endif() else() set(HIP_CLANG_PATH "/opt/rocm/llvm/bin") endif() diff --git a/projects/hip/hip-lang-config.cmake.in b/projects/hip/hip-lang-config.cmake.in index 5ef7eb24dd..eee77d8a2d 100644 --- a/projects/hip/hip-lang-config.cmake.in +++ b/projects/hip/hip-lang-config.cmake.in @@ -71,10 +71,12 @@ get_filename_component(_DIR "${CMAKE_CURRENT_LIST_DIR}" REALPATH) get_filename_component(_IMPORT_PREFIX "${_DIR}/../../../" REALPATH) -#need _IMPORT_PREFIX to be set +#need _IMPORT_PREFIX to be set #FILE_REORG_BACKWARD_COMPATIBILITY file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS "${_IMPORT_PREFIX}/../llvm/lib/clang/*/include") +file(GLOB HIP_CLANG_INCLUDE_SEARCH_PATHS_REORG "${_IMPORT_PREFIX}/llvm/lib/clang/*/include") find_path(HIP_CLANG_INCLUDE_PATH __clang_cuda_math.h HINTS ${HIP_CLANG_INCLUDE_SEARCH_PATHS} + ${HIP_CLANG_INCLUDE_SEARCH_PATHS_REORG} NO_DEFAULT_PATH) get_filename_component(HIP_CLANG_INCLUDE_PATH "${HIP_CLANG_INCLUDE_PATH}" DIRECTORY) @@ -86,7 +88,8 @@ endif() #if HSA is not under ROCm then provide CMAKE_PREFIX_PATH= find_path(HSA_HEADER hsa/hsa.h PATHS - "${_IMPORT_PREFIX}/../include" + "${_IMPORT_PREFIX}/../include" #FILE_REORG_BACKWARD_COMPATIBILITY + "${_IMPORT_PREFIX}/include" "${ROCM_PATH}/include" /opt/rocm/include ) @@ -103,10 +106,14 @@ find_library(CLANGRT_BUILTINS PATHS ${HIP_CLANGRT_LIB_SEARCH_PATHS} ${HIP_CLANG_INCLUDE_PATH}/../lib/linux) - +#FILE_REORG_BACKWARD_COMPATIBILITY set_target_properties(hip-lang::device PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "$<$:${_IMPORT_PREFIX}/../include;${HIP_CLANG_INCLUDE_PATH}>" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "$<$:${_IMPORT_PREFIX}/../include;${HIP_CLANG_INCLUDE_PATH}>" + INTERFACE_INCLUDE_DIRECTORIES "$<$:${_IMPORT_PREFIX}/../include; + $:${_IMPORT_PREFIX}/include; + ${HIP_CLANG_INCLUDE_PATH}>" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "$<$:${_IMPORT_PREFIX}/../include; + $:${_IMPORT_PREFIX}/include; + ${HIP_CLANG_INCLUDE_PATH}>" ) set_target_properties(hip-lang::amdhip64 PROPERTIES