From c5f87744bbedb70a9ccc6c696bf21f89165cb9a1 Mon Sep 17 00:00:00 2001 From: Aditya Atluri Date: Fri, 25 Mar 2016 13:45:28 -0500 Subject: [PATCH 1/6] Added test for C + HIP [ROCm/clr commit: 026aaf987f4fa23ac07b2e14afc0e8a10ab719f5] --- projects/clr/hipamd/tests/src/buildHIPC.sh | 3 +++ projects/clr/hipamd/tests/src/hipC.c | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100755 projects/clr/hipamd/tests/src/buildHIPC.sh create mode 100644 projects/clr/hipamd/tests/src/hipC.c diff --git a/projects/clr/hipamd/tests/src/buildHIPC.sh b/projects/clr/hipamd/tests/src/buildHIPC.sh new file mode 100755 index 0000000000..b2c9ce2a07 --- /dev/null +++ b/projects/clr/hipamd/tests/src/buildHIPC.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +$HCC_HOME/bin/hcc -I$HCC_HOME/include -I$HSA_PATH/include -I$HIP_PATH/include -std=c11 -c hipC.c diff --git a/projects/clr/hipamd/tests/src/hipC.c b/projects/clr/hipamd/tests/src/hipC.c new file mode 100644 index 0000000000..73526ecfe0 --- /dev/null +++ b/projects/clr/hipamd/tests/src/hipC.c @@ -0,0 +1,22 @@ +#include"hip_runtime.h" +#include + +#define ITER 1<<20 +#define SIZE 1024*1024*sizeof(int) + +__global__ void Iter(hipLaunchParm lp, int *Ad){ + int tx = hipThreadIdx_x + hipBlockIdx_x * hipBlockDim_x; + if(tx == 0){ + for(int i=0;i Date: Mon, 28 Mar 2016 09:18:38 -0500 Subject: [PATCH 2/6] add inline keyword to all the template functions [ROCm/clr commit: 5afa5d23fc871f6797b76e93d547004cdb9cfec9] --- .../clr/hipamd/include/hcc_detail/trace_helper.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/projects/clr/hipamd/include/hcc_detail/trace_helper.h b/projects/clr/hipamd/include/hcc_detail/trace_helper.h index 1275016188..35a8b80c0c 100644 --- a/projects/clr/hipamd/include/hcc_detail/trace_helper.h +++ b/projects/clr/hipamd/include/hcc_detail/trace_helper.h @@ -16,7 +16,7 @@ LIABILITY, WHETHER INN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR INN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - +#pragma once #include #include @@ -35,7 +35,7 @@ THE SOFTWARE. // Building block functions: template -std::string ToHexString(T v) +inline std::string ToHexString(T v) { std::ostringstream ss; ss << "0x" << std::hex << v; @@ -47,7 +47,7 @@ std::string ToHexString(T v) // Template overloads for ToString to handle various types: // Note these use C++11 variadic templates template -std::string ToString(T v) { +inline std::string ToString(T v) { std::ostringstream ss; ss << v; return ss.str(); @@ -55,7 +55,7 @@ std::string ToString(T v) { template <> -std::string ToString(hipMemcpyKind v) { +inline std::string ToString(hipMemcpyKind v) { switch(v) { CASE_STR(hipMemcpyHostToHost); CASE_STR(hipMemcpyHostToDevice); @@ -68,13 +68,13 @@ std::string ToString(hipMemcpyKind v) { template <> -std::string ToString(hipError_t v) { +inline std::string ToString(hipError_t v) { return ihipErrorString(v); }; // Catch empty arguments case -std::string ToString() { +inline std::string ToString() { return (""); } @@ -83,6 +83,6 @@ std::string ToString() { // C++11 variadic template - peels off first argument, converts to string, and calls itself again to peel the next arg. // Strings are automatically separated by comma+space. template -std::string ToString(T first, Args... args) { +inline std::string ToString(T first, Args... args) { return ToString(first) + ", " + ToString(args...) ; } From f2860e70c23bd4d3789a22e45e3e5f05a1188784 Mon Sep 17 00:00:00 2001 From: Maneesh Gupta Date: Mon, 28 Mar 2016 21:55:03 +0530 Subject: [PATCH 3/6] Improve cmake settings [ROCm/clr commit: 72751fa87c2efa3005fe16880d5c191b4adb67ec] --- projects/clr/hipamd/CMakeLists.txt | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/projects/clr/hipamd/CMakeLists.txt b/projects/clr/hipamd/CMakeLists.txt index 1011afd7a0..a69c66edc8 100644 --- a/projects/clr/hipamd/CMakeLists.txt +++ b/projects/clr/hipamd/CMakeLists.txt @@ -1,27 +1,20 @@ cmake_minimum_required(VERSION 2.6) project(hip_hcc) -# preserve HCC_HOME env in the generated +set (HCC_DIR "/opt/hcc" CACHE PATH "Path to which HCC has been installed") +message(STATUS "Looking for HCC in: " ${HCC_DIR}) -if (NOT DEFINED HCC_DIR) - set (HCC_DIR "/opt/hcc") +set(HSA_DIR "/opt/hsa" CACHE PATH "Path to which HSA runtime has been installed") +message(STATUS "Looking for HSA runtime in: " ${HSA_DIR}) + +if(CMAKE_BUILD_TYPE MATCHES Debug) + set(HIP_INSTALL_DIR ${CMAKE_SOURCE_DIR} CACHE PATH "Installation path for HIP" FORCE) +else() + set(HIP_INSTALL_DIR "/opt/hip" CACHE PATH "Installation path for HIP" FORCE) endif() -message(STATUS ${HCC_DIR}) +message(STATUS "HIP will be installed in: " ${HIP_INSTALL_DIR}) -if(NOT DEFINED HIP_INSTALL_DIR) - set(HIP_INSTALL_DIR "/opt/hip") -endif() -message(STATUS ${HIP_INSTALL_DIR}) - -if(NOT DEFINED HSA_DIR) - set(HSA_DIR "/opt/hsa") -endif() -message(STATUS ${HSA_DIR}) - - -#if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) -# set(CMAKE_INSTALL_PREFIX "${HIP_INSTALL_PATH}" CACHE PATH "Default installation path of hip" FORCE) -#endif () +set(CMAKE_INSTALL_PREFIX "${HIP_INSTALL_PATH}" CACHE INTERNAL "Installation path for HIP" FORCE) include_directories(${PROJECT_SOURCE_DIR}/include) From 34a75cc4da530358bab0f5e4689a001bc153f883 Mon Sep 17 00:00:00 2001 From: Maneesh Gupta Date: Mon, 28 Mar 2016 22:23:27 +0530 Subject: [PATCH 4/6] Fixed cmake not honoring user specified HIP_INSTALL_DIR [ROCm/clr commit: f59b9e0aaf14c97e7f215337d608e89e87d7d3b3] --- projects/clr/hipamd/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/clr/hipamd/CMakeLists.txt b/projects/clr/hipamd/CMakeLists.txt index a69c66edc8..2f11a2642f 100644 --- a/projects/clr/hipamd/CMakeLists.txt +++ b/projects/clr/hipamd/CMakeLists.txt @@ -8,9 +8,9 @@ set(HSA_DIR "/opt/hsa" CACHE PATH "Path to which HSA runtime has been installed" message(STATUS "Looking for HSA runtime in: " ${HSA_DIR}) if(CMAKE_BUILD_TYPE MATCHES Debug) - set(HIP_INSTALL_DIR ${CMAKE_SOURCE_DIR} CACHE PATH "Installation path for HIP" FORCE) + set(HIP_INSTALL_DIR ${CMAKE_SOURCE_DIR} CACHE PATH "Installation path for HIP") else() - set(HIP_INSTALL_DIR "/opt/hip" CACHE PATH "Installation path for HIP" FORCE) + set(HIP_INSTALL_DIR "/opt/hip" CACHE PATH "Installation path for HIP") endif() message(STATUS "HIP will be installed in: " ${HIP_INSTALL_DIR}) From 33cd595251be99ac9955e37b467a9918595b0163 Mon Sep 17 00:00:00 2001 From: scchan Date: Mon, 28 Mar 2016 12:56:15 -0500 Subject: [PATCH 5/6] turn off ONE_OBJECT_FILE since we are building a static library [ROCm/clr commit: 3aa542e21bd5123608d7d599d2315668fd1b9fbe] --- projects/clr/hipamd/include/hcc_detail/hip_hcc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/clr/hipamd/include/hcc_detail/hip_hcc.h b/projects/clr/hipamd/include/hcc_detail/hip_hcc.h index 9000602ff1..1784acc67f 100644 --- a/projects/clr/hipamd/include/hcc_detail/hip_hcc.h +++ b/projects/clr/hipamd/include/hcc_detail/hip_hcc.h @@ -117,7 +117,7 @@ struct ihipDevice_t; // #include CPP files to produce one object file -#define ONE_OBJECT_FILE 1 +#define ONE_OBJECT_FILE 0 // Compile support for trace markers that are displayed on CodeXL GUI at start/stop of each function boundary. From 4006b37ac5acddc422ba9d20fb9b8d542dc56cde Mon Sep 17 00:00:00 2001 From: scchan Date: Mon, 28 Mar 2016 13:56:23 -0500 Subject: [PATCH 6/6] remove the --hipcc_explicit_lib [ROCm/clr commit: 5e76b13cecb15826bc8979d2cb40d3149fc5681a] --- projects/clr/hipamd/tests/src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/clr/hipamd/tests/src/CMakeLists.txt b/projects/clr/hipamd/tests/src/CMakeLists.txt index acd2060647..5cc280cec7 100644 --- a/projects/clr/hipamd/tests/src/CMakeLists.txt +++ b/projects/clr/hipamd/tests/src/CMakeLists.txt @@ -62,7 +62,7 @@ endif() set (HIPCC ${HIP_PATH}/bin/hipcc) set (CMAKE_CXX_COMPILER ${HIPCC}) -set (CMAKE_CXX_FLAGS --hipcc_explicit_lib) +#set (CMAKE_CXX_FLAGS --hipcc_explicit_lib) add_library(test_common OBJECT test_common.cpp )