From e35cc19aaf6b6c19013ce6dadd3f3c3188b98d91 Mon Sep 17 00:00:00 2001 From: Marko Arandjelovic Date: Wed, 31 Jul 2024 13:10:33 +0200 Subject: [PATCH] SWDEV-465148 - Enable Unit_hipMemcpyAsync_Positive_Synchronization_Behavior - For transfers from any host memory to any host memory, the function is fully synchronous with respect to the host. Change-Id: Ie1cb3e136334af320d2596460faed58fcb714b83 --- catch/hipTestMain/config/config_amd_linux | 1 - catch/hipTestMain/config/config_amd_windows | 1 - catch/hipTestMain/config/config_nvidia_linux.json | 1 - catch/hipTestMain/config/config_nvidia_windows.json | 1 - catch/unit/memory/hipMemcpyAsync.cc | 12 ++++++++++-- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/catch/hipTestMain/config/config_amd_linux b/catch/hipTestMain/config/config_amd_linux index 55137b991a..3ac291f2a3 100644 --- a/catch/hipTestMain/config/config_amd_linux +++ b/catch/hipTestMain/config/config_amd_linux @@ -218,7 +218,6 @@ "=== Below tests are failing PSDB ===", "Unit_hipMemcpy3D_Positive_Synchronization_Behavior", "Unit_hipMemcpyParam2D_Positive_Synchronization_Behavior", - "Unit_hipMemcpyAsync_Positive_Synchronization_Behavior", "Unit_hipDrvMemcpy3D_Positive_Synchronization_Behavior", "Unit_hipFuncSetCacheConfig_Negative_Not_Supported", "Unit_hipFuncSetSharedMemConfig_Negative_Not_Supported", diff --git a/catch/hipTestMain/config/config_amd_windows b/catch/hipTestMain/config/config_amd_windows index e984e0a678..ab5f81d70a 100644 --- a/catch/hipTestMain/config/config_amd_windows +++ b/catch/hipTestMain/config/config_amd_windows @@ -360,7 +360,6 @@ "Unit_hipFreeMipmappedArrayMultiTArray - int", "Unit_hipMemcpy3D_Positive_Synchronization_Behavior", "Unit_hipMemcpyParam2D_Positive_Synchronization_Behavior", - "Unit_hipMemcpyAsync_Positive_Synchronization_Behavior", "Unit_hipDrvMemcpy3D_Positive_Synchronization_Behavior", "Unit_Thread_Block_Tile_Dynamic_Getters_Positive_Basic", "Unit_hipFuncSetCacheConfig_Negative_Not_Supported", diff --git a/catch/hipTestMain/config/config_nvidia_linux.json b/catch/hipTestMain/config/config_nvidia_linux.json index e4f79ce800..fb8eeb4779 100644 --- a/catch/hipTestMain/config/config_nvidia_linux.json +++ b/catch/hipTestMain/config/config_nvidia_linux.json @@ -74,7 +74,6 @@ "Unit_hipDestroySurfaceObject_Negative_Parameters", "Unit_hipMemcpy3D_Positive_Synchronization_Behavior", "Unit_hipMemcpy2D_Positive_Synchronization_Behavior", - "Unit_hipMemcpyAsync_Positive_Synchronization_Behavior", "Unit_hipDrvMemcpy3D_Positive_Synchronization_Behavior", "Unit_hipFreeMipmappedArray_Negative_DoubleFree", "Unit_hipModuleLoad_Positive_Basic", diff --git a/catch/hipTestMain/config/config_nvidia_windows.json b/catch/hipTestMain/config/config_nvidia_windows.json index 6e35231d99..aee14e3a6d 100644 --- a/catch/hipTestMain/config/config_nvidia_windows.json +++ b/catch/hipTestMain/config/config_nvidia_windows.json @@ -29,7 +29,6 @@ "=== Below tests tests fail in PSDB ===", "Unit_hipMemcpy3D_Positive_Synchronization_Behavior", "Unit_hipMemcpy2D_Positive_Synchronization_Behavior", - "Unit_hipMemcpyAsync_Positive_Synchronization_Behavior", "Unit_hipDrvMemcpy3D_Positive_Synchronization_Behavior", "Unit_hipFreeMipmappedArray_Negative_DoubleFree", "Unit_hipModuleLoad_Positive_Basic", diff --git a/catch/unit/memory/hipMemcpyAsync.cc b/catch/unit/memory/hipMemcpyAsync.cc index 0b9ec7fa81..291d0a304c 100644 --- a/catch/unit/memory/hipMemcpyAsync.cc +++ b/catch/unit/memory/hipMemcpyAsync.cc @@ -38,9 +38,17 @@ TEST_CASE("Unit_hipMemcpyAsync_Positive_Synchronization_Behavior") { using namespace std::placeholders; HIP_CHECK(hipDeviceSynchronize()); + // This behavior differs on NVIDIA and AMD, on AMD the hipMemcpy calls is synchronous with + // respect to the host SECTION("Host pageable memory to device memory") { +#if HT_AMD + HipTest::HIP_SKIP_TEST( + "EXSWCPHIPT-127 - MemcpyAsync from host to device memory behavior differs on AMD and " + "Nvidia"); + return; +#endif MemcpyHPageabletoDSyncBehavior( - std::bind(hipMemcpyAsync, _1, _2, _3, hipMemcpyHostToDevice, nullptr), true); + std::bind(hipMemcpyAsync, _1, _2, _3, hipMemcpyHostToDevice, nullptr), false); } SECTION("Host pinned memory to device memory") { @@ -73,7 +81,7 @@ TEST_CASE("Unit_hipMemcpyAsync_Positive_Synchronization_Behavior") { true); MemcpyHPinnedtoHPinnedSyncBehavior( - std::bind(hipMemcpyAsync, _1, _2, _3, hipMemcpyHostToHost, nullptr), false); + std::bind(hipMemcpyAsync, _1, _2, _3, hipMemcpyHostToHost, nullptr), true); } }