SWDEV-234954 - Fix hipconfig on Windows

Before setting the HIP_RUNTIME and HIP_COMPILER variables, first check the environment if these are set. We should prioritize the environment settings. For windows, it will be set, and also explicitly call perl when invoking hipconfig.

Change-Id: I89ad267285239e6d8a897dc681c4af5906e7b9d8


[ROCm/clr commit: c70a32c5a7]
Этот коммит содержится в:
Aaron Enye Shi
2020-05-07 17:28:07 +00:00
родитель 8ea2da75d2
Коммит 1c669b3028
2 изменённых файлов: 21 добавлений и 6 удалений
+12 -4
Просмотреть файл
@@ -123,12 +123,20 @@ sub delete_temp_dirs {
#---
#HIP_PLATFORM controls whether to use hcc (AMD) or nvcc as the platform:
$HIP_PLATFORM= `$HIP_PATH/bin/hipconfig --platform` // "hcc";
$HIP_VERSION= `$HIP_PATH/bin/hipconfig --version`;
#HIP_COMPILER controls whether to use hcc, clang or nvcc for compilation:
$HIP_COMPILER= `$HIP_PATH/bin/hipconfig --compiler`;
#HIP_RUNTIME controls whether to use HCC, ROCclr, or NVCC as the runtime:
$HIP_RUNTIME= `$HIP_PATH/bin/hipconfig --runtime`;
if ($isWindows) {
# Windows cannot run perl natively, so hipcc will explicitly call perl
$HIP_PLATFORM= `perl $HIP_PATH/bin/hipconfig --platform`;
$HIP_VERSION= `perl $HIP_PATH/bin/hipconfig --version`;
$HIP_COMPILER= `perl $HIP_PATH/bin/hipconfig --compiler`;
$HIP_RUNTIME= `perl $HIP_PATH/bin/hipconfig --runtime`;
} else {
$HIP_PLATFORM= `$HIP_PATH/bin/hipconfig --platform`;
$HIP_VERSION= `$HIP_PATH/bin/hipconfig --version`;
$HIP_COMPILER= `$HIP_PATH/bin/hipconfig --compiler`;
$HIP_RUNTIME= `$HIP_PATH/bin/hipconfig --runtime`;
}
# If using ROCclr runtime, need to find HIP_ROCclr_HOME
if (defined $HIP_RUNTIME and $HIP_RUNTIME eq "ROCclr" and !defined $HIP_ROCclr_HOME) {
+9 -2
Просмотреть файл
@@ -85,6 +85,8 @@ $CUDA_PATH=$ENV{'CUDA_PATH'} // '/usr/local/cuda';
$HCC_HOME=$ENV{'HCC_HOME'} // "$ROCM_PATH/hcc";
$HSA_PATH=$ENV{'HSA_PATH'} // "$ROCM_PATH/hsa";
$HIP_CLANG_PATH=$ENV{'HIP_CLANG_PATH'} // "$ROCM_PATH/llvm/bin";
# HIP_ROCclr_HOME is used by Windows builds
$HIP_ROCclr_HOME=$ENV{'HIP_ROCclr_HOME'};
#---
#HIP_PLATFORM controls whether to use NVCC or HCC for compilation:
@@ -92,8 +94,9 @@ $HIP_PLATFORM=$ENV{'HIP_PLATFORM'};
# Read .hipInfo
my %hipInfo = ();
parse_config_file("$HIP_PATH/lib/.hipInfo", \%hipInfo);
$HIP_COMPILER = $hipInfo{'HIP_COMPILER'} // "hcc";
$HIP_RUNTIME = $hipInfo{'HIP_RUNTIME'} // "HCC";
# Prioritize Env first, otherwise use the hipInfo config file
$HIP_COMPILER = $ENV{'HIP_COMPILER'} // $hipInfo{'HIP_COMPILER'} // "hcc";
$HIP_RUNTIME = $ENV{'HIP_RUNTIME'} // $hipInfo{'HIP_RUNTIME'} // "HCC";
if (not defined $HIP_PLATFORM) {
if (can_run("$HCC_HOME/bin/hcc") or can_run("hcc")) {
@@ -112,6 +115,10 @@ if ($HIP_COMPILER eq "hcc") {
$CPP_CONFIG = " -D__HIP_PLATFORM_HCC__= -I$HIP_PATH/include -I$HCC_HOME/include -I$HSA_PATH/include";
}
if ($HIP_COMPILER eq "clang") {
# Windows does not have clang at linux default path
if (defined $HIP_ROCclr_HOME and (-e "$HIP_ROCclr_HOME/bin/clang" or -e "$HIP_ROCclr_HOME/bin/clang.exe")) {
$HIP_CLANG_PATH = "$HIP_ROCclr_HOME/bin";
}
$HIP_CLANG_VERSION = `$HIP_CLANG_PATH/clang++ --version`;
$HIP_CLANG_VERSION=~/.*clang version ([^ ]+).*/;
$HIP_CLANG_VERSION=$1;