SWDEV-514141 - Fix zero clock rate issues (#4)
1.Remove clock functions from some tests that don't need them. 2.In some memory pool tests and coherency tests, timer-based kernel delay isn't reliable, use pinned host based notification instead. 3.Add CHECK_PCIE_ATOMICS_SUPPORT before some tests. 4.catch/unit/memory/hipMemoryAllocateCoherent.cc is removed as it is useless and originally excluded in building. 5.Some tests can still pass even if clock rate =0, thus they will be kept as is. 6.Some logic and format improvement in some tests. Change-Id: I6b3c6bf54c61cffd45cd6f17c75998f751b75725
This commit is contained in:
@@ -22,7 +22,6 @@
|
||||
|
||||
#include <resource_guards.hh>
|
||||
#include <utils.hh>
|
||||
|
||||
/**
|
||||
* @addtogroup hipMemPoolTrimTo hipMemPoolTrimTo
|
||||
* @{
|
||||
@@ -72,6 +71,9 @@ TEST_CASE("Unit_hipMemPoolTrimTo_Positive_Basic") {
|
||||
int device_id = 0;
|
||||
HIP_CHECK(hipSetDevice(device_id));
|
||||
checkMempoolSupported(device_id)
|
||||
unsigned int *notified = nullptr;
|
||||
HIP_CHECK(hipHostMalloc(¬ified, sizeof(unsigned int)));
|
||||
*notified = 0;
|
||||
|
||||
const size_t allocation_size1 = kPageSize * kPageSize * 2;
|
||||
const size_t allocation_size2 = kPageSize / 2;
|
||||
@@ -87,15 +89,7 @@ TEST_CASE("Unit_hipMemPoolTrimTo_Positive_Basic") {
|
||||
mempool.mempool(), stream.stream()));
|
||||
|
||||
int blocks = 2;
|
||||
int clk_rate;
|
||||
if (IsGfx11()) {
|
||||
HIP_CHECK(hipDeviceGetAttribute(&clk_rate, hipDeviceAttributeWallClockRate, 0));
|
||||
kernel_500ms_gfx11<<<32, blocks, 0, stream.stream()>>>(alloc_mem1, clk_rate);
|
||||
} else {
|
||||
HIP_CHECK(hipDeviceGetAttribute(&clk_rate, hipDeviceAttributeClockRate, 0));
|
||||
|
||||
kernel_500ms<<<32, blocks, 0, stream.stream()>>>(alloc_mem1, clk_rate);
|
||||
}
|
||||
notifiedKernel<<<32, blocks, 0, stream.stream()>>>(alloc_mem1, notified);
|
||||
|
||||
hipMemPoolAttr attr;
|
||||
attr = hipMemPoolAttrReleaseThreshold;
|
||||
@@ -119,6 +113,8 @@ TEST_CASE("Unit_hipMemPoolTrimTo_Positive_Basic") {
|
||||
// Trim must be a nop because execution isn't done
|
||||
REQUIRE(res_before_trim == res_after_trim);
|
||||
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
||||
*notified = 1;
|
||||
HIP_CHECK(hipStreamSynchronize(stream.stream()));
|
||||
|
||||
std::uint64_t res_after_sync = 0;
|
||||
@@ -149,6 +145,7 @@ TEST_CASE("Unit_hipMemPoolTrimTo_Positive_Basic") {
|
||||
REQUIRE((allocation_size1 + allocation_size2) == value64);
|
||||
|
||||
HIP_CHECK(hipFreeAsync(reinterpret_cast<void*>(alloc_mem2), stream.stream()));
|
||||
HIP_CHECK(hipHostFree(notified));
|
||||
}
|
||||
|
||||
static bool thread_results[NUMBER_OF_THREADS];
|
||||
|
||||
Reference in New Issue
Block a user