From 784ebcbc86b40e87b5342ef6e69539ae8fbdb070 Mon Sep 17 00:00:00 2001 From: Ben Sander Date: Mon, 22 Feb 2016 15:09:23 -0600 Subject: [PATCH] Fix memcpy for Titan. Add to common includes --- hipamd/include/hip_runtime.h | 5 +++++ hipamd/tests/src/CMakeLists.txt | 4 ++++ hipamd/tests/src/hipMemcpy.cpp | 13 ++++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/hipamd/include/hip_runtime.h b/hipamd/include/hip_runtime.h index 59d3d6c4c9..0594726c90 100644 --- a/hipamd/include/hip_runtime.h +++ b/hipamd/include/hip_runtime.h @@ -43,6 +43,11 @@ THE SOFTWARE. #include #include +#ifdef __cplusplus +#include +#endif + + #include #if defined(__HIP_PLATFORM_HCC__) and not defined (__HIP_PLATFORM_NVCC__) diff --git a/hipamd/tests/src/CMakeLists.txt b/hipamd/tests/src/CMakeLists.txt index 09c0ca7162..c1582ecf88 100644 --- a/hipamd/tests/src/CMakeLists.txt +++ b/hipamd/tests/src/CMakeLists.txt @@ -41,6 +41,10 @@ if (${HIP_PLATFORM} STREQUAL "hcc") elseif (${HIP_PLATFORM} STREQUAL "nvcc") MESSAGE ("HIP_PLATFORM=nvcc") + + #Need C++11 for threads in some of the tests. + add_definitions(-std=c++11) + # NVCC does not not support -rdynamic option set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS ) set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS ) diff --git a/hipamd/tests/src/hipMemcpy.cpp b/hipamd/tests/src/hipMemcpy.cpp index 8286454098..f9bde2df9f 100644 --- a/hipamd/tests/src/hipMemcpy.cpp +++ b/hipamd/tests/src/hipMemcpy.cpp @@ -63,6 +63,13 @@ void simpleTest1() } +#ifdef __HIP_PLATFORM_HCC +#define TYPENAME(T) typeid(T).name() +#else +#define TYPENAME(T) "?" +#endif + + //--- // Test many different kinds of memory copies. // THe subroutine allocates memory , copies to device, runs a vector add kernel, copies back, and checks the result. @@ -79,7 +86,7 @@ void memcpytest2(size_t numElements, bool usePinnedHost, bool useHostToHost, boo size_t sizeElements = numElements * sizeof(T); printf ("test: %s<%s> size=%lu (%6.2fMB) usePinnedHost:%d, useHostToHost:%d, useDeviceToDevice:%d, useMemkindDefault:%d\n", __func__, - typeid(T).name(), + TYPENAME(T), sizeElements, sizeElements/1024.0/1024.0, usePinnedHost, useHostToHost, useDeviceToDevice, useMemkindDefault); @@ -169,7 +176,7 @@ template void memcpytest2_sizes(size_t maxElem=0, size_t offset=0) { printSep(); - printf ("test: %s<%s>\n", __func__, typeid(T).name()); + printf ("test: %s<%s>\n", __func__, TYPENAME(T)); int deviceId; HIPCHECK(hipGetDevice(&deviceId)); @@ -199,7 +206,7 @@ template void multiThread_1(bool serialize, bool usePinnedHost) { printSep(); - printf ("test: %s<%s> serialize=%d usePinnedHost=%d\n", __func__, typeid(T).name(), serialize, usePinnedHost); + printf ("test: %s<%s> serialize=%d usePinnedHost=%d\n", __func__, TYPENAME(T), serialize, usePinnedHost); std::thread t1 (memcpytest2,N, usePinnedHost,0,0,0); if (serialize) { t1.join();