From dbf39d1c5bd5d306df51b257e1864bd7a4ed4b28 Mon Sep 17 00:00:00 2001 From: Maneesh Gupta Date: Fri, 12 Aug 2016 23:21:37 +0530 Subject: [PATCH] Updates to HIP version string format HIP patch version is now a monotonically increasing number Change-Id: Ia6e35794b702bbd2018c502564d0a65997819687 [ROCm/clr commit: 346ae7bc4254a0870bd0206a6f6f93db0f85a0c3] --- projects/clr/hipamd/CMakeLists.txt | 35 ++++++++++++++++++-------- projects/clr/hipamd/bin/hipconfig | 40 ++++++++++++++++++++++-------- 2 files changed, 54 insertions(+), 21 deletions(-) diff --git a/projects/clr/hipamd/CMakeLists.txt b/projects/clr/hipamd/CMakeLists.txt index 62cf67dbed..f08cef3a77 100644 --- a/projects/clr/hipamd/CMakeLists.txt +++ b/projects/clr/hipamd/CMakeLists.txt @@ -1,19 +1,27 @@ cmake_minimum_required(VERSION 2.8.3) project(hip) +############################# +# Setup version information +############################# +# define HCC version information +set(HIP_VERSION_MAJOR "0") +set(HIP_VERSION_MINOR "92") + +# get date information based on UTC +# use the last two digits of year + week number + day in the week as HIP_VERSION_PATCH +# use the commit date, instead of build date +# add xargs to remove strange trailing newline character +execute_process(COMMAND git show -s --format=@%ct + COMMAND xargs + COMMAND date -f - --utc +%y%W%w + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE HIP_VERSION_PATCH + OUTPUT_STRIP_TRAILING_WHITESPACE) + ############################# # Configure variables ############################# -# Determine HIP_VERSION -execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bin/hipconfig --version - OUTPUT_VARIABLE HIP_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE) -string(REPLACE "." ";" VERSION_LIST ${HIP_VERSION}) -list(GET VERSION_LIST 0 HIP_VERSION_MAJOR) -list(GET VERSION_LIST 1 HIP_VERSION_MINOR) -list(GET VERSION_LIST 2 HIP_VERSION_PATCH) - - # Determine HIP_PLATFORM if(NOT DEFINED HIP_PLATFORM) if(NOT DEFINED ENV{HIP_PLATFORM}) @@ -115,6 +123,10 @@ if(BUILD_CLANG_HIPIFY) add_subdirectory(clang-hipify) endif() +# Generate hip version information +string(TIMESTAMP _timestamp) +file(WRITE "${PROJECT_BINARY_DIR}/.version" "# Auto-generated by cmake on ${_timestamp} local time\nHIP_VERSION_MAJOR=${HIP_VERSION_MAJOR}\nHIP_VERSION_MINOR=${HIP_VERSION_MINOR}\nHIP_VERSION_PATCH=${HIP_VERSION_PATCH}\n") + # Build hip_hcc if platform is hcc if(HIP_PLATFORM STREQUAL "hcc") include_directories(${PROJECT_SOURCE_DIR}/include) @@ -176,6 +188,9 @@ if(HIP_PLATFORM STREQUAL "hcc") install(FILES ${PROJECT_BINARY_DIR}/.hipconfig DESTINATION lib) endif() +# Install .version +install(FILES ${PROJECT_BINARY_DIR}/.version DESTINATION bin) + # Install src, bin, include if necessary execute_process(COMMAND test ${CMAKE_INSTALL_PREFIX} -ef ${CMAKE_CURRENT_SOURCE_DIR} RESULT_VARIABLE INSTALL_SOURCE) diff --git a/projects/clr/hipamd/bin/hipconfig b/projects/clr/hipamd/bin/hipconfig index 4f65d3230c..300b5a1ad7 100755 --- a/projects/clr/hipamd/bin/hipconfig +++ b/projects/clr/hipamd/bin/hipconfig @@ -1,9 +1,5 @@ #!/usr/bin/perl -w -$HIP_VERSION_MAJOR = "0"; -$HIP_VERSION_MINOR = "92"; -$HIP_VERSION_PATCH = "0"; - use Getopt::Long; use Cwd; @@ -39,8 +35,6 @@ if ($p_help) { exit(); } -$HIP_VERSION="$HIP_VERSION_MAJOR.$HIP_VERSION_MINOR.$HIP_VERSION_PATCH"; - $CUDA_PATH=$ENV{'CUDA_PATH'}; $CUDA_PATH='/usr/local/cuda' unless defined $CUDA_PATH; @@ -55,7 +49,7 @@ $HSA_PATH='/opt/rocm/hsa' unless defined $HSA_PATH; $HIP_PLATFORM=$ENV{'HIP_PLATFORM'}; if (not defined $HIP_PLATFORM) { $NAMDGPUNODES=`cat /sys/class/kfd/kfd/topology/nodes/*/properties 2>/dev/null | grep -c 'simd_count [1-9]'`; - + if ($NAMDGPUNODES > 0) { $HIP_PLATFORM = "hcc" } else { @@ -74,11 +68,35 @@ if ($HIP_PLATFORM eq "nvcc") { $CPP_CONFIG = " -D__HIP_PLATFORM_NVCC__= -I$HIP_PATH/include -I$CUDA_PATH/include"; }; +#--- +# Read .version +my %hipVersion = (); +$hipVersion{'VALID'}=0; +if (open (CONFIG, "$HIP_PATH/bin/.version")) { + while () { + my $config_line=$_; + chop ($config_line); + $config_line =~ s/^\s*//; + $config_line =~ s/\s*$//; + if (($config_line !~ /^#/) && ($config_line ne "")) { + my ($name, $value) = split (/=/, $config_line); + $hipVersion{$name} = $value; + $hipVersion{'VALID'}=1; + } + } + close(CONFIG); +} + +$HIP_VERSION_MAJOR = $hipVersion{'HIP_VERSION_MAJOR'}; +$HIP_VERSION_MINOR = $hipVersion{'HIP_VERSION_MINOR'}; +$HIP_VERSION_PATCH = $hipVersion{'HIP_VERSION_PATCH'}; +$HIP_VERSION="$HIP_VERSION_MAJOR.$HIP_VERSION_MINOR.$HIP_VERSION_PATCH"; + if ($p_path) { print "$HIP_PATH"; $printed = 1; } - + if ($p_cpp_config) { print $CPP_CONFIG; @@ -102,16 +120,16 @@ if (!$printed or $p_full) { print "HIP_PATH : ", $HIP_PATH, "\n"; print "HIP_PLATFORM : ", $HIP_PLATFORM, "\n"; print "CPP_CONFIG : ", $CPP_CONFIG, "\n"; - if ($HIP_PLATFORM eq "hcc") + if ($HIP_PLATFORM eq "hcc") { print "\n" ; print "== hcc\n"; print ("HSA_PATH : $HSA_PATH\n"); print ("HCC_HOME : $HCC_HOME\n"); system("$HCC_HOME/bin/hcc --version"); - print ("HCC-cxxflags : "); + print ("HCC-cxxflags : "); system("$HCC_HOME/bin/hcc-config --cxxflags"); - print ("HCC-ldflags : "); + print ("HCC-ldflags : "); system("$HCC_HOME/bin/hcc-config --ldflags"); printf("\n"); }