From f6f8fa7787e382a930a83c1ddf1414b6cb701875 Mon Sep 17 00:00:00 2001 From: Aaron En Ye Shi Date: Fri, 30 Apr 2021 21:38:45 +0000 Subject: [PATCH] SWDEV-283930 - Fix bugs in HIP Tests on Windows Windows doesn't have headers unistd.h, sys/wait.h, so remove them for _WIN64. Also, Windows doesn't have rand_r so define it. Fixes builds for HIP tests: d2dMemCpyWithPinnedHostMemory, hipMemset3DFunctional, hipModuleLoadMultProcessOnMultGPU, hipModuleLoadUnloadStress, hipModuleNegative, hipStreamACb_ThrdBehaviour, hipMemcpyNegativeMThrdMSize, hipStreamACb_MStrm_Mgpu, StreamAddCallback, hipStreamACb_StrmSyncTiming, hipStreamACb_MultiCalls, hipMallocConcurrency, hipMemset3DRegressMultiThread, and hipSetGetDevice. Change-Id: Id2f98d664716026c590d879e464ba467d4c071be [ROCm/clr commit: bacb89c086e472c572c9bf2f8ee921305433e7de] --- .../tests/src/runtimeApi/device/hipSetGetDevice.cpp | 12 +++++++----- .../src/runtimeApi/memory/hipMallocConcurrency.cpp | 3 ++- .../memory/hipMemcpyNegativeMThrdMSize.cpp | 2 ++ .../memory/hipMemset3DRegressMultiThread.cpp | 2 ++ .../src/runtimeApi/stream/StreamAddCallback.cpp | 2 ++ .../runtimeApi/stream/hipStreamACb_MStrm_Mgpu.cpp | 2 ++ .../runtimeApi/stream/hipStreamACb_MultiCalls.cpp | 2 ++ .../stream/hipStreamACb_StrmSyncTiming.cpp | 2 ++ .../runtimeApi/stream/hipStreamACb_ThrdBehaviour.cpp | 2 ++ .../streamOperations/hipstream_operations.cpp | 2 ++ projects/clr/hipamd/tests/src/test_common.cpp | 8 ++++++++ projects/clr/hipamd/tests/src/test_common.h | 6 +++++- 12 files changed, 38 insertions(+), 7 deletions(-) diff --git a/projects/clr/hipamd/tests/src/runtimeApi/device/hipSetGetDevice.cpp b/projects/clr/hipamd/tests/src/runtimeApi/device/hipSetGetDevice.cpp index 74bf910b72..5af7f793fb 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/device/hipSetGetDevice.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/device/hipSetGetDevice.cpp @@ -40,8 +40,10 @@ * HIT_END */ +#ifdef __linux__ #include #include +#endif #include "test_common.h" int sequence_num = 0; @@ -275,7 +277,7 @@ bool testValidDevices(int numDevices, bool useRocrEnv, int *deviceList, testResult = false; } #else - printf("skipping testcase for non unix system \n)"; + printf("skipping testcase for non unix system \n"); #endif return testResult; } @@ -365,7 +367,7 @@ bool testMaxRvdMinHvd(int numDevices, int *deviceList, int count) { testResult = false; } #else - printf("skipping testcase for non unix system \n)"; + printf("skipping testcase for non unix system \n"); #endif return testResult; } @@ -409,7 +411,7 @@ bool testRvdCvd(int numDevices, int *deviceList, int count) { testResult = false; } #else - printf("skipping testcase for non unix system \n)"; + printf("skipping testcase for non unix system \n"); #endif return testResult; } @@ -457,7 +459,7 @@ bool testMinRvdMaxHvd(int numDevices, int *deviceList, int count) { testResult = false; } #else - printf("skipping testcase for non unix system \n)"; + printf("skipping testcase for non unix system \n"); #endif return testResult; } @@ -540,7 +542,7 @@ bool testDeviceListSequence(int numDevices, bool useRocrEnv, testResult = false; } #else - printf("skipping testcase for non unix system \n)"; + printf("skipping testcase for non unix system \n"); #endif return testResult; } diff --git a/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMallocConcurrency.cpp b/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMallocConcurrency.cpp index ee856d7d77..6b47ef5b69 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMallocConcurrency.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMallocConcurrency.cpp @@ -69,9 +69,10 @@ Testcase Scenarios : */ #include +#ifdef __linux__ #include #include - +#endif #include #include #include diff --git a/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMemcpyNegativeMThrdMSize.cpp b/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMemcpyNegativeMThrdMSize.cpp index 26b455ca08..ff24fa83df 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMemcpyNegativeMThrdMSize.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMemcpyNegativeMThrdMSize.cpp @@ -31,7 +31,9 @@ THE SOFTWARE. * HIT_END */ +#ifdef __linux__ #include +#endif #include #include #include "test_common.h" diff --git a/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMemset3DRegressMultiThread.cpp b/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMemset3DRegressMultiThread.cpp index b06a77ef48..7aab6c5875 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMemset3DRegressMultiThread.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/memory/hipMemset3DRegressMultiThread.cpp @@ -40,8 +40,10 @@ Testcase Scenarios : */ #include +#ifdef __linux__ #include #include +#endif #include #include "test_common.h" diff --git a/projects/clr/hipamd/tests/src/runtimeApi/stream/StreamAddCallback.cpp b/projects/clr/hipamd/tests/src/runtimeApi/stream/StreamAddCallback.cpp index e6492c7ce2..e1fc1ffbad 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/stream/StreamAddCallback.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/stream/StreamAddCallback.cpp @@ -1,6 +1,8 @@ #include #include +#ifdef __linux__ #include +#endif #include "test_common.h" #include diff --git a/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_MStrm_Mgpu.cpp b/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_MStrm_Mgpu.cpp index c71ce345e8..6c59707f53 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_MStrm_Mgpu.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_MStrm_Mgpu.cpp @@ -27,7 +27,9 @@ */ #include +#ifdef __linux__ #include +#endif #include #include #include "hip/hip_runtime.h" diff --git a/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_MultiCalls.cpp b/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_MultiCalls.cpp index a5a1d39108..2c0b29ffec 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_MultiCalls.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_MultiCalls.cpp @@ -28,7 +28,9 @@ #include +#ifdef __linux__ #include +#endif #include #include #include "hip/hip_runtime.h" diff --git a/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_StrmSyncTiming.cpp b/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_StrmSyncTiming.cpp index bb1d9f082c..a243a6b382 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_StrmSyncTiming.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_StrmSyncTiming.cpp @@ -28,7 +28,9 @@ */ #include +#ifdef __linux__ #include +#endif #include #include #include "hip/hip_runtime.h" diff --git a/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_ThrdBehaviour.cpp b/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_ThrdBehaviour.cpp index fc723cf9b0..9b52dcadcb 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_ThrdBehaviour.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/stream/hipStreamACb_ThrdBehaviour.cpp @@ -27,7 +27,9 @@ * HIT_END */ +#ifdef __linux__ #include +#endif #include #include "hip/hip_runtime.h" #include "test_common.h" diff --git a/projects/clr/hipamd/tests/src/runtimeApi/streamOperations/hipstream_operations.cpp b/projects/clr/hipamd/tests/src/runtimeApi/streamOperations/hipstream_operations.cpp index b3e4206f18..e8eb637f96 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/streamOperations/hipstream_operations.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/streamOperations/hipstream_operations.cpp @@ -44,7 +44,9 @@ THE SOFTWARE. * HIT_END */ +#ifdef __linux__ #include +#endif #include #include "test_common.h" diff --git a/projects/clr/hipamd/tests/src/test_common.cpp b/projects/clr/hipamd/tests/src/test_common.cpp index df4adc5e88..e62ea017ec 100644 --- a/projects/clr/hipamd/tests/src/test_common.cpp +++ b/projects/clr/hipamd/tests/src/test_common.cpp @@ -53,6 +53,14 @@ const char* PATH_SEPERATOR_STR = "/"; const char* NULL_DEVICE = "/dev/null"; #endif +#ifdef _WIN64 +// Windows does not have rand_r, use srand and rand instead. +int rand_r(unsigned int* s) { + srand(*s); + return rand(); +} +#endif + // Get Free Memory from the system static size_t getMemoryAmount() { #if __linux__ diff --git a/projects/clr/hipamd/tests/src/test_common.h b/projects/clr/hipamd/tests/src/test_common.h index b6f03b1387..a98af2cc5e 100755 --- a/projects/clr/hipamd/tests/src/test_common.h +++ b/projects/clr/hipamd/tests/src/test_common.h @@ -136,8 +136,8 @@ inline int hip_skip_retcode() { #define fileno(x) _fileno(x) #define dup(x) _dup(x) #define dup2(x,y) _dup2(x,y) -#define close(x) _close(x) #define pipe(x,y,z) _pipe(x,y,z) +#define sleep(x) _sleep(x) #else #define aligned_free(x) free(x) #endif @@ -169,6 +169,10 @@ extern const char* NULL_DEVICE; #define TYPENAME(T) "?" #endif +#ifdef _WIN64 +int rand_r(unsigned int* s); +#endif + // Get Optimal Thread count size size_t getHostThreadCount(const size_t memPerThread = 200 /* MB */, const size_t maxThreads = 0);