SWDEV-411064 - check if image is supported before running image specific tests
Change-Id: I62b3f7489f2f33b4b4e02f42a46e66c8940f2277
Этот коммит содержится в:
коммит произвёл
Jatin Jaikishan Chaudhary
родитель
b6b43db172
Коммит
ee3c94faf2
@@ -66,6 +66,8 @@ Testcase Scenarios : Functional
|
||||
*/
|
||||
|
||||
TEST_CASE("Unit_hipGraphAddMemcpyNode_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int width{10}, height{10}, depth{10};
|
||||
hipArray *devArray1;
|
||||
hipChannelFormatKind formatKind = hipChannelFormatKindSigned;
|
||||
@@ -479,6 +481,8 @@ static void validateMemcpyNode1DArray(bool peerAccess = false) {
|
||||
* Tests also verify memcpy node addition with 1D, 2D and 3D objects.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphAddMemcpyNode_BasicFunctional") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
SECTION("Memcpy with 3D array on default device") {
|
||||
validateMemcpyNode3DArray();
|
||||
}
|
||||
@@ -499,6 +503,8 @@ TEST_CASE("Unit_hipGraphAddMemcpyNode_BasicFunctional") {
|
||||
* Tests also verify memcpy node addition with 1D, 2D and 3D objects.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphAddMemcpyNode_PeerAccessFunctional") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices{}, peerAccess{};
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
|
||||
@@ -56,6 +56,8 @@ static char memSetVal = 'a';
|
||||
* - HIP_VERSION >= 5.2
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipGraphAddMemsetNode_Positive_Basic", "", uint8_t, uint16_t, uint32_t) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const auto f = [](hipMemsetParams* params) {
|
||||
hipGraph_t graph = nullptr;
|
||||
HIP_CHECK(hipGraphCreate(&graph, 0));
|
||||
@@ -129,6 +131,8 @@ TEST_CASE("Unit_hipGraphAddMemsetNode_Negative_Parameters") {
|
||||
* hipGraphAddMemcpyNode. Verify the results.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphAddMemsetNode_hipMallocPitch_2D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t width = SIZE * sizeof(char), numW{SIZE},
|
||||
numH{SIZE}, pitch_A;
|
||||
char *A_d;
|
||||
@@ -198,6 +202,8 @@ TEST_CASE("Unit_hipGraphAddMemsetNode_hipMallocPitch_2D") {
|
||||
* hipGraphAddMemcpyNode. Verify the results.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphAddMemsetNode_hipMallocPitch_1D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t width = SIZE * sizeof(char), numW{SIZE}, pitch_A;
|
||||
char *A_d;
|
||||
|
||||
@@ -260,6 +266,8 @@ TEST_CASE("Unit_hipGraphAddMemsetNode_hipMallocPitch_1D") {
|
||||
* hipGraphAddMemcpyNode. Verify the results.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphAddMemsetNode_hipMalloc3D_2D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t width = SIZE * sizeof(char);
|
||||
size_t numW = SIZE, numH = SIZE;
|
||||
|
||||
@@ -337,6 +345,8 @@ TEST_CASE("Unit_hipGraphAddMemsetNode_hipMalloc3D_2D") {
|
||||
* memory to host using hipGraphAddMemcpyNode. Verify the results.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphAddMemsetNode_hipMalloc3D_1D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t width = SIZE * sizeof(char);
|
||||
size_t numW = SIZE;
|
||||
|
||||
|
||||
@@ -482,6 +482,8 @@ static void hipGraphClone_Test_hipGraphMemcpyNodeSetParams() {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipGraphClone_Test_hipGraphMemcpyNodeSetParams") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipGraphClone_Test_hipGraphMemcpyNodeSetParams();
|
||||
}
|
||||
|
||||
@@ -1873,6 +1875,9 @@ static void hipGraphClone_Test_All_API(int dev) {
|
||||
Run all the above writen test cases for multiple GPU scenarios */
|
||||
|
||||
TEST_CASE("Unit_hipGraphClone_multi_GPU_test") {
|
||||
//FIXME: This test tests 3D as well, decouple it
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int devcount = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&devcount));
|
||||
// If only single GPU is detected then return
|
||||
|
||||
@@ -295,6 +295,8 @@ static void hipGraphDebugDotPrint_Functional(const char* fName,
|
||||
Verify that DOT file get created or not for each flag passed. */
|
||||
|
||||
TEST_CASE("Unit_hipGraphDebugDotPrint_Functional") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
SECTION("Call with hipGraphDebugDotFlagsVerbose flag") {
|
||||
hipGraphDebugDotPrint_Functional("./graphDotFileFuncVerbose.dot",
|
||||
hipGraphDebugDotFlagsVerbose);
|
||||
|
||||
@@ -38,6 +38,8 @@ Negative-
|
||||
/* Test verifies hipGraphExecMemcpyNodeSetParams API Negative scenarios.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphExecMemcpyNodeSetParams_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int width{10}, height{10}, depth{10};
|
||||
hipArray *devArray, *devArray2;
|
||||
hipChannelFormatKind formatKind = hipChannelFormatKindSigned;
|
||||
@@ -152,6 +154,8 @@ TEST_CASE("Unit_hipGraphExecMemcpyNodeSetParams_Negative") {
|
||||
/* Test verifies hipGraphExecMemcpyNodeSetParams API Functional scenarios.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphExecMemcpyNodeSetParams_Functional") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int XSIZE = 1024;
|
||||
int harray1D[XSIZE]{};
|
||||
int harray1Dres[XSIZE]{};
|
||||
|
||||
@@ -184,17 +184,6 @@ TEST_CASE("Unit_hipGraphExecMemcpyNodeSetParamsFromSymbol_Negative_Parameters")
|
||||
}
|
||||
#endif
|
||||
|
||||
if (HipTest::getDeviceCount() >= 2) {
|
||||
SECTION("Changing dst allocation device") {
|
||||
HIP_CHECK(hipSetDevice(1));
|
||||
LinearAllocGuard<int> new_var(LinearAllocs::hipMalloc, sizeof(int));
|
||||
HIP_CHECK_ERROR(hipGraphExecMemcpyNodeSetParamsFromSymbol(
|
||||
graph_exec, node, new_var.ptr(), SYMBOL(int_device_var),
|
||||
sizeof(*new_var.ptr()), 0, hipMemcpyDeviceToDevice),
|
||||
hipErrorInvalidValue);
|
||||
}
|
||||
}
|
||||
|
||||
HIP_CHECK(hipGraphExecDestroy(graph_exec));
|
||||
HIP_CHECK(hipGraphDestroy(graph));
|
||||
}
|
||||
|
||||
@@ -56,6 +56,8 @@ THE SOFTWARE.
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipGraphExecMemsetNodeSetParams_Positive_Basic", "", uint8_t, uint16_t,
|
||||
uint32_t) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const size_t width = GENERATE(1, 64, kPageSize / sizeof(TestType) + 1);
|
||||
|
||||
hipGraph_t graph = nullptr;
|
||||
@@ -129,6 +131,10 @@ TEMPLATE_TEST_CASE("Unit_hipGraphExecMemsetNodeSetParams_Positive_Basic", "", ui
|
||||
* - HIP_VERSION >= 5.2
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphExecMemsetNodeSetParams_Negative_Parameters") {
|
||||
// FIXME: this test tests 1D/2D/3D stuff in one single go, need to decouple it so that it can run
|
||||
// on devices with no image support
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
hipGraph_t graph = nullptr;
|
||||
@@ -187,6 +193,8 @@ TEST_CASE("Unit_hipGraphExecMemsetNodeSetParams_Negative_Parameters") {
|
||||
* - HIP_VERSION >= 5.2
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphExecMemsetNodeSetParams_Negative_Updating_Non1D_Node") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipGraph_t graph = nullptr;
|
||||
HIP_CHECK(hipGraphCreate(&graph, 0));
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@ Functional -
|
||||
/* Test verifies hipGraphMemcpyNodeGetParams API Negative scenarios.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphMemcpyNodeGetParams_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int width{SIZE}, height{SIZE}, depth{SIZE};
|
||||
hipArray *devArray;
|
||||
hipChannelFormatKind formatKind = hipChannelFormatKindSigned;
|
||||
@@ -145,6 +147,8 @@ static bool memcpyNodeCompare(hipMemcpy3DParms *mNode1,
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipGraphMemcpyNodeGetParams_Functional") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int width{SIZE}, height{SIZE}, depth{SIZE};
|
||||
hipArray *devArray;
|
||||
hipChannelFormatKind formatKind = hipChannelFormatKindSigned;
|
||||
|
||||
@@ -38,6 +38,8 @@ Functional -
|
||||
/* Test verifies hipGraphMemcpyNodeSetParams API Negative scenarios.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphMemcpyNodeSetParams_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int width{SIZE}, height{SIZE}, depth{SIZE};
|
||||
hipArray *devArray;
|
||||
hipChannelFormatKind formatKind = hipChannelFormatKindSigned;
|
||||
@@ -94,6 +96,8 @@ TEST_CASE("Unit_hipGraphMemcpyNodeSetParams_Negative") {
|
||||
/* Test verifies hipGraphMemcpyNodeSetParams API Functional scenarios.
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphMemcpyNodeSetParams_Functional") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int width{SIZE}, height{SIZE}, depth{SIZE};
|
||||
hipArray *devArray;
|
||||
hipChannelFormatKind formatKind = hipChannelFormatKindSigned;
|
||||
|
||||
@@ -50,6 +50,8 @@ THE SOFTWARE.
|
||||
* - HIP_VERSION >= 5.2
|
||||
*/
|
||||
TEST_CASE("Unit_hipGraphMemsetNodeGetParams_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
LinearAllocGuard2D<int> alloc(1, 1);
|
||||
hipMemsetParams params = {};
|
||||
params.dst = alloc.ptr();
|
||||
|
||||
@@ -54,6 +54,8 @@ THE SOFTWARE.
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipGraphMemsetNodeSetParams_Positive_Basic", "", uint8_t, uint16_t,
|
||||
uint32_t) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const auto f = [](hipMemsetParams* params) {
|
||||
hipGraph_t graph = nullptr;
|
||||
HIP_CHECK(hipGraphCreate(&graph, 0));
|
||||
|
||||
@@ -18,6 +18,8 @@ THE SOFTWARE.
|
||||
*/
|
||||
#include <hip_test_common.hh>
|
||||
TEST_CASE("Unit_hipArray_Valid") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray* array = nullptr;
|
||||
HIP_ARRAY_DESCRIPTOR desc;
|
||||
desc.Format = HIP_AD_FORMAT_FLOAT;
|
||||
@@ -27,17 +29,24 @@ TEST_CASE("Unit_hipArray_Valid") {
|
||||
HIP_CHECK(hipArrayCreate(&array, &desc));
|
||||
HIP_CHECK(hipFreeArray(array));
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipArray_Invalid") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
void* data = malloc(sizeof(char));
|
||||
hipArray_t arrayPtr = static_cast<hipArray*>(data);
|
||||
REQUIRE(hipFreeArray(arrayPtr) == hipErrorContextIsDestroyed);
|
||||
free(data);
|
||||
}
|
||||
TEST_CASE("Unit_hipArray_Nullptr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray* array = nullptr;
|
||||
REQUIRE(hipFreeArray(array) == hipErrorInvalidValue);
|
||||
}
|
||||
TEST_CASE("Unit_hipArray_DoubleFree") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray* array = nullptr;
|
||||
HIP_ARRAY_DESCRIPTOR desc;
|
||||
desc.Format = HIP_AD_FORMAT_FLOAT;
|
||||
@@ -49,6 +58,8 @@ TEST_CASE("Unit_hipArray_DoubleFree") {
|
||||
REQUIRE(hipFreeArray(array) == hipErrorContextIsDestroyed);
|
||||
}
|
||||
TEST_CASE("Unit_hipArray_TrippleDestroy") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray* array = nullptr;
|
||||
HIP_ARRAY_DESCRIPTOR desc;
|
||||
desc.Format = HIP_AD_FORMAT_FLOAT;
|
||||
@@ -61,11 +72,15 @@ TEST_CASE("Unit_hipArray_TrippleDestroy") {
|
||||
REQUIRE(hipArrayDestroy(array) == hipErrorContextIsDestroyed);
|
||||
}
|
||||
TEST_CASE("Unit_hipArray_DoubleNullptr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray* array = nullptr;
|
||||
REQUIRE(hipFreeArray(array) == hipErrorInvalidValue);
|
||||
REQUIRE(hipFreeArray(array) == hipErrorInvalidValue);
|
||||
}
|
||||
TEST_CASE("Unit_hipArray_DoubleInvalid") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
void* data = malloc(sizeof(char));
|
||||
hipArray_t arrayPtr = static_cast<hipArray*>(data);
|
||||
REQUIRE(hipFreeArray(arrayPtr) == hipErrorContextIsDestroyed);
|
||||
|
||||
@@ -50,6 +50,8 @@ void testInvalidDescription(HIP_ARRAY3D_DESCRIPTOR desc) {
|
||||
|
||||
TEMPLATE_TEST_CASE("Unit_hipArray3DCreate_happy", "", char, uchar2, uint2, int4, short4, float,
|
||||
float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using vec_info = vector_info<TestType>;
|
||||
DriverContext ctx;
|
||||
|
||||
@@ -88,6 +90,8 @@ TEMPLATE_TEST_CASE("Unit_hipArray3DCreate_happy", "", char, uchar2, uint2, int4,
|
||||
|
||||
TEMPLATE_TEST_CASE("Unit_hipArray3DCreate_MaxTexture", "", int, uint4, short, ushort2,
|
||||
unsigned char, float, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using vec_info = vector_info<TestType>;
|
||||
DriverContext ctx;
|
||||
|
||||
@@ -207,6 +211,8 @@ constexpr HIP_ARRAY3D_DESCRIPTOR defaultDescriptor(unsigned int flags, size_t si
|
||||
|
||||
// Providing the array pointer as nullptr should return an error
|
||||
TEST_CASE("Unit_hipArray3DCreate_Negative_NullArrayPtr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
auto desc = defaultDescriptor(0, 64);
|
||||
|
||||
DriverContext ctx;
|
||||
@@ -215,6 +221,8 @@ TEST_CASE("Unit_hipArray3DCreate_Negative_NullArrayPtr") {
|
||||
|
||||
// Providing the description pointer as nullptr should return an error
|
||||
TEST_CASE("Unit_hipArray3DCreate_Negative_NullDescPtr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
hiparray array;
|
||||
HIP_CHECK_ERROR(hipArray3DCreate(&array, nullptr), hipErrorInvalidValue);
|
||||
@@ -223,6 +231,8 @@ TEST_CASE("Unit_hipArray3DCreate_Negative_NullDescPtr") {
|
||||
|
||||
// Zero width arrays are not allowed
|
||||
TEST_CASE("Unit_hipArray3DCreate_Negative_ZeroWidth") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
|
||||
unsigned int flags = GENERATE(from_range(std::begin(validFlags), std::end(validFlags)));
|
||||
@@ -235,6 +245,8 @@ TEST_CASE("Unit_hipArray3DCreate_Negative_ZeroWidth") {
|
||||
|
||||
// Zero height arrays are only allowed for 1D arrays and layered arrays
|
||||
TEST_CASE("Unit_hipArray3DCreate_Negative_ZeroHeight") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
|
||||
unsigned int flags = GENERATE(from_range(std::begin(validFlags), std::end(validFlags)));
|
||||
@@ -255,6 +267,8 @@ TEST_CASE("Unit_hipArray3DCreate_Negative_ZeroHeight") {
|
||||
|
||||
// Arrays must be created with a valid data format
|
||||
TEST_CASE("Unit_hipArray3DCreate_Negative_InvalidFormat") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
|
||||
unsigned int flags = GENERATE(from_range(std::begin(validFlags), std::end(validFlags)));
|
||||
@@ -269,6 +283,8 @@ TEST_CASE("Unit_hipArray3DCreate_Negative_InvalidFormat") {
|
||||
|
||||
// An array must have either 1,2, or 4 channels
|
||||
TEST_CASE("Unit_hipArray3DCreate_Negative_NumChannels") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
unsigned int flags = GENERATE(from_range(std::begin(validFlags), std::end(validFlags)));
|
||||
auto desc = defaultDescriptor(flags, 6);
|
||||
@@ -279,6 +295,8 @@ TEST_CASE("Unit_hipArray3DCreate_Negative_NumChannels") {
|
||||
|
||||
// Using invalid flags should result in an error
|
||||
TEST_CASE("Unit_hipArray3DCreate_Negative_InvalidFlags") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
|
||||
// FIXME: use the same flags for both tests when the values exist for hip
|
||||
@@ -304,6 +322,8 @@ TEST_CASE("Unit_hipArray3DCreate_Negative_InvalidFlags") {
|
||||
|
||||
// hipArray3DCreate should handle the max numeric value gracefully.
|
||||
TEST_CASE("Unit_hipArray3DCreate_Negative_NumericLimit") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
|
||||
unsigned int flags = GENERATE(from_range(std::begin(validFlags), std::end(validFlags)));
|
||||
@@ -315,6 +335,8 @@ TEST_CASE("Unit_hipArray3DCreate_Negative_NumericLimit") {
|
||||
// texture gather arrays may only be 2D
|
||||
TEMPLATE_TEST_CASE("Unit_hipArray3DCreate_Negative_Non2DTextureGather", "", char, uint2, int4,
|
||||
float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
#if HT_AMD
|
||||
HipTest::HIP_SKIP_TEST("Texture Gather arrays not supported using AMD backend");
|
||||
return;
|
||||
|
||||
@@ -73,6 +73,8 @@ static void ArrayCreate_DiffSizes(int gpu) {
|
||||
|
||||
/* This testcase verifies hipArrayCreate API for small and big chunks data*/
|
||||
TEST_CASE("Unit_hipArrayCreate_DiffSizes") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
ArrayCreate_DiffSizes(0);
|
||||
HIP_CHECK_THREAD_FINALIZE();
|
||||
}
|
||||
@@ -83,6 +85,8 @@ scenario by launching threads in parallel on multiple GPUs
|
||||
and verifies the hipArrayCreate API with small and big chunks data
|
||||
*/
|
||||
TEST_CASE("Unit_hipArrayCreate_MultiThread") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
std::vector<std::thread> threadlist;
|
||||
int devCnt = 0;
|
||||
|
||||
@@ -200,6 +204,8 @@ void testArrayAsTexture(hiparray array, const size_t width, const size_t height)
|
||||
// Test the happy path of the hipArrayCreate
|
||||
TEMPLATE_TEST_CASE("Unit_hipArrayCreate_happy", "", uint, int, int4, ushort, short2, char, uchar2,
|
||||
char4, float, float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using vec_info = vector_info<TestType>;
|
||||
DriverContext ctx;
|
||||
|
||||
@@ -223,6 +229,8 @@ TEMPLATE_TEST_CASE("Unit_hipArrayCreate_happy", "", uint, int, int4, ushort, sho
|
||||
// Only widths and Heights up to the maxTexture size is supported
|
||||
TEMPLATE_TEST_CASE("Unit_hipArrayCreate_maxTexture", "", uint, int, int4, ushort, short2, char,
|
||||
uchar2, char4, float, float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using vec_info = vector_info<TestType>;
|
||||
DriverContext ctx;
|
||||
|
||||
@@ -281,6 +289,8 @@ TEMPLATE_TEST_CASE("Unit_hipArrayCreate_maxTexture", "", uint, int, int4, ushort
|
||||
|
||||
// zero-width array is not supported
|
||||
TEST_CASE("Unit_hipArrayCreate_ZeroWidth") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
HIP_ARRAY_DESCRIPTOR desc;
|
||||
desc.Format = driverFormats[0];
|
||||
@@ -295,6 +305,8 @@ TEST_CASE("Unit_hipArrayCreate_ZeroWidth") {
|
||||
|
||||
// HipArrayCreate will return an error when nullptr is used as the array argument
|
||||
TEST_CASE("Unit_hipArrayCreate_Nullptr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
SECTION("Null array") {
|
||||
HIP_ARRAY_DESCRIPTOR desc;
|
||||
@@ -313,6 +325,8 @@ TEST_CASE("Unit_hipArrayCreate_Nullptr") {
|
||||
|
||||
// Only elements with 1,2, or 4 channels is supported
|
||||
TEST_CASE("Unit_hipArrayCreate_BadNumberChannelElement") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
HIP_ARRAY_DESCRIPTOR desc;
|
||||
desc.Format = GENERATE(from_range(std::begin(driverFormats), std::end(driverFormats)));
|
||||
@@ -329,6 +343,8 @@ TEST_CASE("Unit_hipArrayCreate_BadNumberChannelElement") {
|
||||
|
||||
// Only certain channel formats are acceptable.
|
||||
TEST_CASE("Unit_hipArrayCreate_BadChannelFormat") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DriverContext ctx;
|
||||
HIP_ARRAY_DESCRIPTOR desc;
|
||||
|
||||
|
||||
@@ -29,6 +29,8 @@ THE SOFTWARE.
|
||||
#include <utils.hh>
|
||||
|
||||
TEST_CASE("Unit_hipDrvMemcpy3D_Positive_Basic") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = false;
|
||||
|
||||
#if HT_NVIDIA // Disabled on AMD due to defect - EXSWHTEC-236
|
||||
@@ -52,6 +54,8 @@ TEST_CASE("Unit_hipDrvMemcpy3D_Positive_Basic") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipDrvMemcpy3D_Positive_Synchronization_Behavior") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipDeviceSynchronize());
|
||||
|
||||
SECTION("Host to Device") { Memcpy3DHtoDSyncBehavior(DrvMemcpy3DWrapper<>, true); }
|
||||
@@ -78,18 +82,24 @@ TEST_CASE("Unit_hipDrvMemcpy3D_Positive_Synchronization_Behavior") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipDrvMemcpy3D_Positive_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = false;
|
||||
Memcpy3DZeroWidthHeightDepth<async>(DrvMemcpy3DWrapper<async>);
|
||||
}
|
||||
|
||||
// Disabled on AMD due to defect - EXSWHTEC-238
|
||||
TEST_CASE("Unit_hipDrvMemcpy3D_Positive_Array") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = false;
|
||||
SECTION("Array from/to Host") { DrvMemcpy3DArrayHostShell<async>(DrvMemcpy3DWrapper<async>); }
|
||||
SECTION("Array from/to Device") { DrvMemcpy3DArrayDeviceShell<async>(DrvMemcpy3DWrapper<async>); }
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipDrvMemcpy3D_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr hipExtent extent{128 * sizeof(int), 128, 8};
|
||||
|
||||
constexpr auto NegativeTests = [](hipPitchedPtr dst_ptr, hipPos dst_pos, hipPitchedPtr src_ptr,
|
||||
|
||||
@@ -29,6 +29,8 @@ THE SOFTWARE.
|
||||
#include <utils.hh>
|
||||
|
||||
TEST_CASE("Unit_hipDrvMemcpy3DAsync_Positive_Basic") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = true;
|
||||
|
||||
const auto stream_type = GENERATE(Streams::nullstream, Streams::perThread, Streams::created);
|
||||
@@ -56,6 +58,8 @@ TEST_CASE("Unit_hipDrvMemcpy3DAsync_Positive_Basic") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipDrvMemcpy3DAsync_Positive_Synchronization_Behavior") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = true;
|
||||
|
||||
HIP_CHECK(hipDeviceSynchronize());
|
||||
@@ -82,18 +86,24 @@ TEST_CASE("Unit_hipDrvMemcpy3DAsync_Positive_Synchronization_Behavior") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipDrvMemcpy3DAsync_Positive_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = true;
|
||||
Memcpy3DZeroWidthHeightDepth<async>(DrvMemcpy3DWrapper<async>);
|
||||
}
|
||||
|
||||
// Disabled on AMD due to defect - EXSWHTEC-238
|
||||
TEST_CASE("Unit_hipDrvMemcpy3DAsync_Positive_Array") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = true;
|
||||
SECTION("Array from/to Host") { DrvMemcpy3DArrayHostShell<async>(DrvMemcpy3DWrapper<async>); }
|
||||
SECTION("Array from/to Device") { DrvMemcpy3DArrayDeviceShell<async>(DrvMemcpy3DWrapper<async>); }
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipDrvMemcpy3DAsync_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = true;
|
||||
constexpr hipExtent extent{128 * sizeof(int), 128, 8};
|
||||
|
||||
|
||||
@@ -522,8 +522,9 @@ void DrvMemcpy3DAsync<T>::DeAllocateMemory() {
|
||||
}
|
||||
|
||||
/* Verifying hipDrvMemcpy3DAsync API Host to Array for different datatypes */
|
||||
TEMPLATE_TEST_CASE("Unit_hipDrvMemcpy3DAsync_MultipleDataTypes", "",
|
||||
uint8_t, int, float) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipDrvMemcpy3DAsync_MultipleDataTypes", "", uint8_t, int, float) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
for (int i = 1; i < 25; i++) {
|
||||
if (std::is_same<TestType, float>::value) {
|
||||
DrvMemcpy3DAsync<TestType> memcpy3d_float(i, i, i,
|
||||
@@ -543,6 +544,8 @@ TEMPLATE_TEST_CASE("Unit_hipDrvMemcpy3DAsync_MultipleDataTypes", "",
|
||||
|
||||
/* This testcase verifies H2D copy of hipDrvMemcpy3DAsync API */
|
||||
TEST_CASE("Unit_hipDrvMemcpy3DAsync_HosttoDevice") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DrvMemcpy3DAsync<float> memcpy3d_D2H_float(10, 10, 1, HIP_AD_FORMAT_FLOAT);
|
||||
memcpy3d_D2H_float.HostDevice_DrvMemcpy3DAsync();
|
||||
}
|
||||
@@ -558,6 +561,8 @@ TEST_CASE("Unit_hipDrvMemcpy3DAsync_Negative") {
|
||||
/* This testcase verifies extent validation scenarios of
|
||||
hipDrvMemcpy3DAsync API */
|
||||
TEST_CASE("Unit_hipDrvMemcpy3DAsync_ExtentValidation") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DrvMemcpy3DAsync<float> memcpy3d(10, 10, 1, HIP_AD_FORMAT_FLOAT);
|
||||
memcpy3d.Extent_Validation();
|
||||
}
|
||||
@@ -566,6 +571,8 @@ TEST_CASE("Unit_hipDrvMemcpy3DAsync_ExtentValidation") {
|
||||
change scenario for hipDrvMemcpy3DAsync API */
|
||||
#if HT_AMD
|
||||
TEST_CASE("Unit_hipDrvMemcpy3DAsync_H2DDeviceContextChange") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -580,6 +587,8 @@ TEST_CASE("Unit_hipDrvMemcpy3DAsync_H2DDeviceContextChange") {
|
||||
/* This testcase verifies Host to Array copy in device context
|
||||
change scenario for hipDrvMemcpy3DAsync API */
|
||||
TEST_CASE("Unit_hipDrvMemcpy3DAsync_Host2ArrayDeviceContextChange") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
|
||||
@@ -507,8 +507,9 @@ void DrvMemcpy3D<T>::DeAllocateMemory() {
|
||||
}
|
||||
|
||||
/* Verifying hipDrvMemcpy3D API Host to Array for different datatypes */
|
||||
TEMPLATE_TEST_CASE("Unit_hipDrvMemcpy3D_MultipleDataTypes", "",
|
||||
uint8_t, int, float) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipDrvMemcpy3D_MultipleDataTypes", "", uint8_t, int, float) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
for (int i = 1; i < 25; i++) {
|
||||
if (std::is_same<TestType, float>::value) {
|
||||
DrvMemcpy3D<TestType> memcpy3d_float(i, i, i, HIP_AD_FORMAT_FLOAT);
|
||||
@@ -525,6 +526,8 @@ TEMPLATE_TEST_CASE("Unit_hipDrvMemcpy3D_MultipleDataTypes", "",
|
||||
|
||||
/* This testcase verifies H2D copy of hipDrvMemcpy3D API */
|
||||
TEST_CASE("Unit_hipDrvMemcpy3D_HosttoDevice") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DrvMemcpy3D<float> memcpy3d_D2H_float(10, 10, 1, HIP_AD_FORMAT_FLOAT);
|
||||
memcpy3d_D2H_float.HostDevice_DrvMemcpy3D();
|
||||
}
|
||||
@@ -539,6 +542,8 @@ TEST_CASE("Unit_hipDrvMemcpy3D_Negative") {
|
||||
|
||||
/* This testcase verifies extent validation scenarios of hipDrvMemcpy3D API */
|
||||
TEST_CASE("Unit_hipDrvMemcpy3D_ExtentValidation") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
DrvMemcpy3D<float> memcpy3d(10, 10, 1, HIP_AD_FORMAT_FLOAT);
|
||||
memcpy3d.Extent_Validation();
|
||||
}
|
||||
@@ -547,6 +552,8 @@ TEST_CASE("Unit_hipDrvMemcpy3D_ExtentValidation") {
|
||||
/* This testcase verifies H2D copy in device context
|
||||
change scenario for hipDrvMemcpy3D API */
|
||||
TEST_CASE("Unit_hipDrvMemcpy3D_H2DDeviceContextChange") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -561,6 +568,8 @@ TEST_CASE("Unit_hipDrvMemcpy3D_H2DDeviceContextChange") {
|
||||
/* This testcase verifies Host to Array copy in device context
|
||||
change scenario for hipDrvMemcpy3D API */
|
||||
TEST_CASE("Unit_hipDrvMemcpy3D_Host2ArrayDeviceContextChange") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
|
||||
@@ -76,6 +76,8 @@ TEST_CASE("Unit_hipFreeImplicitSyncHost") {
|
||||
|
||||
#if HT_NVIDIA
|
||||
TEMPLATE_TEST_CASE("Unit_hipFreeImplicitSyncArray", "", char, float, float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using vec_info = vector_info<TestType>;
|
||||
DriverContext ctx;
|
||||
|
||||
@@ -113,6 +115,8 @@ TEMPLATE_TEST_CASE("Unit_hipFreeImplicitSyncArray", "", char, float, float2, flo
|
||||
#else // AMD
|
||||
|
||||
TEMPLATE_TEST_CASE("Unit_hipFreeImplicitSyncArray", "", char, float, float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray_t arrayPtr{};
|
||||
hipExtent extent{};
|
||||
extent.width = GENERATE(32, 128, 256, 512, 1024);
|
||||
@@ -242,6 +246,8 @@ TEST_CASE("Unit_hipFreeDoubleArrayDestroy") {
|
||||
#else // AMD
|
||||
|
||||
TEST_CASE("Unit_hipFreeDoubleArray") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t width = GENERATE(32, 512, 1024);
|
||||
size_t height = GENERATE(0, 32, 512, 1024);
|
||||
hipArray_t arrayPtr{};
|
||||
@@ -373,6 +379,8 @@ TEMPLATE_TEST_CASE("Unit_hipFreeMultiTArray", "", char, int, float2, float4) {
|
||||
#else
|
||||
|
||||
TEMPLATE_TEST_CASE("Unit_hipFreeMultiTArray", "", char, int, float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using vec_info = vector_info<TestType>;
|
||||
|
||||
hipExtent extent{};
|
||||
|
||||
@@ -63,6 +63,8 @@ static void Malloc3DThreadFunc(int gpu) {
|
||||
* assigning width,height and depth as 10
|
||||
*/
|
||||
TEST_CASE("Unit_hipMalloc3D_Basic") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t width = SMALL_SIZE * sizeof(char);
|
||||
size_t height{SMALL_SIZE}, depth{SMALL_SIZE};
|
||||
hipPitchedPtr devPitchedPtr;
|
||||
@@ -75,6 +77,8 @@ This testcase verifies the hipMalloc3D API by allocating
|
||||
smaller and big chunk data.
|
||||
*/
|
||||
TEST_CASE("Unit_hipMalloc3D_SmallandBigChunks") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
MemoryAlloc3DDiffSizes(0);
|
||||
}
|
||||
|
||||
@@ -84,6 +88,8 @@ scenario by launching threads in parallel on multiple GPUs
|
||||
and verifies the hipMalloc3D API with small and big chunks data
|
||||
*/
|
||||
TEST_CASE("Unit_hipMalloc3D_MultiThread") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
std::vector<std::thread> threadlist;
|
||||
int devCnt = 0;
|
||||
|
||||
|
||||
@@ -67,6 +67,8 @@ static void Malloc3DArray_DiffSizes(int gpu) {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMalloc3DArray_DiffSizes") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
Malloc3DArray_DiffSizes(0);
|
||||
HIP_CHECK_THREAD_FINALIZE();
|
||||
}
|
||||
@@ -77,6 +79,8 @@ scenario by launching threads in parallel on multiple GPUs
|
||||
and verifies the hipMalloc3DArray API with small and big chunks data
|
||||
*/
|
||||
TEST_CASE("Unit_hipMalloc3DArray_MultiThread") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
std::vector<std::thread> threadlist;
|
||||
int devCnt = 0;
|
||||
devCnt = HipTest::getDeviceCount();
|
||||
@@ -122,6 +126,8 @@ void checkArrayIsExpected(hipArray_t array, const hipChannelFormatDesc& expected
|
||||
|
||||
TEMPLATE_TEST_CASE("Unit_hipMalloc3DArray_happy", "", char, uchar2, uint2, int4, short4, float,
|
||||
float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray_t array;
|
||||
const auto desc = hipCreateChannelDesc<TestType>();
|
||||
#if HT_AMD
|
||||
@@ -151,6 +157,8 @@ TEMPLATE_TEST_CASE("Unit_hipMalloc3DArray_happy", "", char, uchar2, uint2, int4,
|
||||
|
||||
TEMPLATE_TEST_CASE("Unit_hipMalloc3DArray_MaxTexture", "", int, uint4, short, ushort2,
|
||||
unsigned char, float, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray_t array;
|
||||
const hipChannelFormatDesc desc = hipCreateChannelDesc<TestType>();
|
||||
#if HT_AMD
|
||||
@@ -241,6 +249,8 @@ hipExtent makeExtent(unsigned int flag, size_t s) {
|
||||
|
||||
// Providing the array pointer as nullptr should return an error
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_NullArrayPtr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<float4>();
|
||||
constexpr size_t s = 6;
|
||||
|
||||
@@ -251,6 +261,8 @@ TEST_CASE("Unit_hipMalloc3DArray_Negative_NullArrayPtr") {
|
||||
|
||||
// Providing the description pointer as nullptr should return an error
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_NullDescPtr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr size_t s = 6; // 6 to keep cubemap happy
|
||||
hipArray_t array;
|
||||
|
||||
@@ -262,6 +274,8 @@ TEST_CASE("Unit_hipMalloc3DArray_Negative_NullDescPtr") {
|
||||
|
||||
// Zero width arrays are not allowed
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_ZeroWidth") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr size_t s = 6; // 6 to keep cubemap happy
|
||||
hipArray_t array;
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<float4>();
|
||||
@@ -274,6 +288,8 @@ TEST_CASE("Unit_hipMalloc3DArray_Negative_ZeroWidth") {
|
||||
|
||||
// Zero height arrays are only allowed for 1D arrays and layered arrays
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_ZeroHeight") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr size_t s = 6; // 6 to keep cubemap happy
|
||||
hipArray_t array;
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<float4>();
|
||||
@@ -290,6 +306,8 @@ TEST_CASE("Unit_hipMalloc3DArray_Negative_ZeroHeight") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_InvalidFlags") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr size_t s = 6; // 6 to keep cubemap happy
|
||||
hipArray_t array;
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<float4>();
|
||||
@@ -325,12 +343,16 @@ void testInvalidDescription(hipChannelFormatDesc desc) {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_InvalidFormat") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<float4>();
|
||||
desc.f = GENERATE(hipChannelFormatKindNone, 0xBEEF);
|
||||
testInvalidDescription(desc);
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_BadChannelLayout") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const int bits = GENERATE(8, 16, 32);
|
||||
const hipChannelFormatKind formatKind =
|
||||
GENERATE(hipChannelFormatKindSigned, hipChannelFormatKindUnsigned, hipChannelFormatKindFloat);
|
||||
@@ -352,6 +374,8 @@ TEST_CASE("Unit_hipMalloc3DArray_Negative_BadChannelLayout") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_8BitFloat") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipChannelFormatDesc desc = GENERATE(hipCreateChannelDesc(8, 0, 0, 0, hipChannelFormatKindFloat),
|
||||
hipCreateChannelDesc(8, 8, 0, 0, hipChannelFormatKindFloat),
|
||||
hipCreateChannelDesc(8, 8, 8, 8, hipChannelFormatKindFloat));
|
||||
@@ -360,6 +384,8 @@ TEST_CASE("Unit_hipMalloc3DArray_Negative_8BitFloat") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_DifferentChannelSizes") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const int bitsX = GENERATE(8, 16, 32);
|
||||
const int bitsY = GENERATE(8, 16, 32);
|
||||
const int bitsZ = GENERATE(8, 16, 32);
|
||||
@@ -383,6 +409,8 @@ TEST_CASE("Unit_hipMalloc3DArray_Negative_DifferentChannelSizes") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_BadChannelSize") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const int badBits = GENERATE(-1, 0, 10, 100);
|
||||
const hipChannelFormatKind formatKind =
|
||||
GENERATE(hipChannelFormatKindSigned, hipChannelFormatKindUnsigned, hipChannelFormatKindFloat);
|
||||
@@ -396,6 +424,8 @@ TEST_CASE("Unit_hipMalloc3DArray_Negative_BadChannelSize") {
|
||||
|
||||
// hipMalloc3DArray should handle the max numeric value gracefully.
|
||||
TEST_CASE("Unit_hipMalloc3DArray_Negative_NumericLimit") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray_t arrayPtr;
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<float>();
|
||||
|
||||
|
||||
@@ -68,6 +68,8 @@ static void MallocArray_DiffSizes(int gpu) {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMallocArray_DiffSizes") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
MallocArray_DiffSizes(0);
|
||||
HIP_CHECK_THREAD_FINALIZE();
|
||||
}
|
||||
@@ -78,6 +80,8 @@ scenario by launching threads in parallel on multiple GPUs
|
||||
and verifies the hipMallocArray API with small and big chunks data
|
||||
*/
|
||||
TEST_CASE("Unit_hipMallocArray_MultiThread") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
std::vector<std::thread> threadlist;
|
||||
int devCnt = 0;
|
||||
devCnt = HipTest::getDeviceCount();
|
||||
@@ -373,6 +377,7 @@ void testArrayAsSurface(hipArray_t arrayPtr, const size_t width, const size_t he
|
||||
// Selection of types chosen to reduce compile times
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocArray_happy", "", uint, int, int4, ushort, short2, char, uchar2,
|
||||
char4, float, float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<TestType>();
|
||||
|
||||
@@ -425,6 +430,8 @@ TEMPLATE_TEST_CASE("Unit_hipMallocArray_happy", "", uint, int, int4, ushort, sho
|
||||
// EXSWCPHIPT-71 - no equivalent value for maxSurface and maxTexture2DGather.
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocArray_MaxTexture_Default", "", uint, int4, ushort, short2, char,
|
||||
char4, float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t width, height;
|
||||
hipArray_t array{};
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<TestType>();
|
||||
@@ -482,6 +489,8 @@ TEMPLATE_TEST_CASE("Unit_hipMallocArray_MaxTexture_Default", "", uint, int4, ush
|
||||
|
||||
// Arrays with channels of different size are not allowed.
|
||||
TEST_CASE("Unit_hipMallocArray_Negative_DifferentChannelSizes") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const int bitsX = GENERATE(8, 16, 32);
|
||||
const int bitsY = GENERATE(8, 16, 32);
|
||||
const int bitsZ = GENERATE(8, 16, 32);
|
||||
@@ -520,6 +529,8 @@ TEST_CASE("Unit_hipMallocArray_Negative_DifferentChannelSizes") {
|
||||
|
||||
// Zero-width array is not supported
|
||||
TEST_CASE("Unit_hipMallocArray_Negative_ZeroWidth") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<float4>();
|
||||
|
||||
// pointer to the array in device memory
|
||||
@@ -534,6 +545,8 @@ TEST_CASE("Unit_hipMallocArray_Negative_ZeroWidth") {
|
||||
|
||||
// Providing the array pointer as nullptr should return an error
|
||||
TEST_CASE("Unit_hipMallocArray_Negative_NullArrayPtr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<float4>();
|
||||
|
||||
HIP_CHECK_ERROR(hipMallocArray(nullptr, &desc, 1024, 0, hipArrayDefault), hipErrorInvalidValue);
|
||||
@@ -541,6 +554,8 @@ TEST_CASE("Unit_hipMallocArray_Negative_NullArrayPtr") {
|
||||
|
||||
// Providing the desc pointer as nullptr should return an error
|
||||
TEST_CASE("Unit_hipMallocArray_Negative_NullDescPtr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray_t arrayPtr;
|
||||
HIP_CHECK_ERROR(hipMallocArray(&arrayPtr, nullptr, 1024, 0, hipArrayDefault),
|
||||
hipErrorInvalidValue);
|
||||
@@ -548,6 +563,8 @@ TEST_CASE("Unit_hipMallocArray_Negative_NullDescPtr") {
|
||||
|
||||
// Inappropriate but related flags should still return an error
|
||||
TEST_CASE("Unit_hipMallocArray_Negative_BadFlags") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<float4>();
|
||||
|
||||
hipArray_t arrayPtr;
|
||||
@@ -574,6 +591,8 @@ TEST_CASE("Unit_hipMallocArray_Negative_BadFlags") {
|
||||
|
||||
// 8-bit float channels are not supported
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocArray_Negative_8bitFloat", "", float, float2, float4) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipChannelFormatDesc desc = GENERATE(hipCreateChannelDesc(8, 0, 0, 0, hipChannelFormatKindFloat),
|
||||
hipCreateChannelDesc(8, 8, 0, 0, hipChannelFormatKindFloat),
|
||||
hipCreateChannelDesc(8, 8, 8, 8, hipChannelFormatKindFloat));
|
||||
@@ -592,6 +611,8 @@ TEMPLATE_TEST_CASE("Unit_hipMallocArray_Negative_8bitFloat", "", float, float2,
|
||||
|
||||
// Only 8, 16, and 32 bit channels are supported
|
||||
TEST_CASE("Unit_hipMallocArray_Negative_BadNumberOfBits") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const int badBits = GENERATE(-1, 0, 10, 100);
|
||||
const hipChannelFormatKind formatKind =
|
||||
GENERATE(hipChannelFormatKindSigned, hipChannelFormatKindUnsigned, hipChannelFormatKindFloat);
|
||||
@@ -618,6 +639,8 @@ TEST_CASE("Unit_hipMallocArray_Negative_BadNumberOfBits") {
|
||||
|
||||
// creating elements with 3 channels is not supported.
|
||||
TEST_CASE("Unit_hipMallocArray_Negative_3ChannelElement") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const int bits = GENERATE(8, 16, 32);
|
||||
hipChannelFormatKind formatKind =
|
||||
GENERATE(hipChannelFormatKindSigned, hipChannelFormatKindUnsigned, hipChannelFormatKindFloat);
|
||||
@@ -644,6 +667,8 @@ TEST_CASE("Unit_hipMallocArray_Negative_3ChannelElement") {
|
||||
|
||||
// The bit channel description should not allow any channels after a zero channel
|
||||
TEST_CASE("Unit_hipMallocArray_Negative_ChannelAfterZeroChannel") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const int bits = GENERATE(8, 16, 32);
|
||||
const hipChannelFormatKind formatKind =
|
||||
GENERATE(hipChannelFormatKindSigned, hipChannelFormatKindUnsigned, hipChannelFormatKindFloat);
|
||||
@@ -671,6 +696,8 @@ TEST_CASE("Unit_hipMallocArray_Negative_ChannelAfterZeroChannel") {
|
||||
|
||||
// The channel format should be one of the defined formats
|
||||
TEST_CASE("Unit_hipMallocArray_Negative_InvalidChannelFormat") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const int bits = 32;
|
||||
hipChannelFormatKind formatKind = static_cast<hipChannelFormatKind>(0xFF);
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc(bits, bits, bits, bits, formatKind);
|
||||
@@ -695,6 +722,8 @@ TEST_CASE("Unit_hipMallocArray_Negative_InvalidChannelFormat") {
|
||||
|
||||
// hipMallocArray should handle the max numeric value gracefully.
|
||||
TEST_CASE("Unit_hipMallocArray_Negative_NumericLimit") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipArray_t arrayPtr;
|
||||
hipChannelFormatDesc desc = hipCreateChannelDesc<float>();
|
||||
|
||||
|
||||
@@ -131,6 +131,8 @@ hipExtent generateExtent(AllocationApi api) {
|
||||
|
||||
|
||||
TEST_CASE("Unit_hipMalloc3D_ValidatePitch") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipPitchedPtr hipPitchedPtr;
|
||||
hipExtent validExtent{generateExtent(AllocationApi::hipMalloc3D)};
|
||||
|
||||
@@ -140,6 +142,8 @@ TEST_CASE("Unit_hipMalloc3D_ValidatePitch") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemAllocPitch_ValidatePitch") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t pitch = 0;
|
||||
hipDeviceptr_t ptr;
|
||||
hipExtent validExtent{generateExtent(AllocationApi::hipMemAllocPitch)};
|
||||
@@ -159,6 +163,8 @@ TEST_CASE("Unit_hipMemAllocPitch_ValidatePitch") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMallocPitch_ValidatePitch") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t pitch = 0;
|
||||
void* ptr;
|
||||
hipExtent validExtent{generateExtent(AllocationApi::hipMemAllocPitch)};
|
||||
@@ -168,6 +174,8 @@ TEST_CASE("Unit_hipMallocPitch_ValidatePitch") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMalloc3D_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
SECTION("Invalid ptr") {
|
||||
hipExtent validExtent{1, 1, 1};
|
||||
HIP_CHECK_ERROR(hipMalloc3D(nullptr, validExtent), hipErrorInvalidValue);
|
||||
@@ -204,6 +212,8 @@ TEST_CASE("Unit_hipMalloc3D_Negative") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMallocPitch_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t pitch = 0;
|
||||
void* ptr;
|
||||
constexpr size_t maxSizeT = std::numeric_limits<size_t>::max();
|
||||
@@ -229,6 +239,8 @@ TEST_CASE("Unit_hipMallocPitch_Negative") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMallocPitch_Zero_Dims") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
void* ptr = nullptr;
|
||||
size_t pitch = 0;
|
||||
|
||||
@@ -244,6 +256,8 @@ TEST_CASE("Unit_hipMallocPitch_Zero_Dims") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemAllocPitch_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t pitch = 0;
|
||||
hipDeviceptr_t ptr{};
|
||||
unsigned int validElementSizeBytes{4};
|
||||
@@ -381,8 +395,9 @@ static void threadFunc(int gpu) {
|
||||
* hipMallocPitch API for different datatypes
|
||||
*
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocPitch_Basic",
|
||||
"[hipMallocPitch]", int, unsigned int, float) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocPitch_Basic", "[hipMallocPitch]", int, unsigned int, float) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
TestType* A_d;
|
||||
size_t pitch_A = 0;
|
||||
size_t width{NUM_W * sizeof(TestType)};
|
||||
@@ -396,8 +411,10 @@ TEMPLATE_TEST_CASE("Unit_hipMallocPitch_Basic",
|
||||
* This testcase verifies hipMallocPitch API for small
|
||||
* and big chunks of data.
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocPitch_SmallandBigChunks",
|
||||
"[hipMallocPitch]", int, unsigned int, float) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocPitch_SmallandBigChunks", "[hipMallocPitch]", int, unsigned int,
|
||||
float) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
MemoryAllocDiffSizes<TestType>(0);
|
||||
}
|
||||
|
||||
@@ -405,8 +422,9 @@ TEMPLATE_TEST_CASE("Unit_hipMallocPitch_SmallandBigChunks",
|
||||
* This testcase verifies the memory allocated by hipMallocPitch API
|
||||
* by performing Memcpy2D on the allocated memory.
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocPitch_Memcpy2D", ""
|
||||
, int, float, double) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocPitch_Memcpy2D", "", int, float, double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
TestType *A_h{nullptr}, *B_h{nullptr}, *C_h{nullptr}, *A_d{nullptr},
|
||||
*B_d{nullptr};
|
||||
@@ -450,7 +468,6 @@ TEMPLATE_TEST_CASE("Unit_hipMallocPitch_Memcpy2D", ""
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
This testcase verifies the hipMallocPitch API in multithreaded
|
||||
scenario by launching threads in parallel on multiple GPUs
|
||||
@@ -458,6 +475,8 @@ and verifies the hipMallocPitch API with small and big chunks data
|
||||
*/
|
||||
|
||||
TEST_CASE("Unit_hipMallocPitch_MultiThread", "") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
std::vector<std::thread> threadlist;
|
||||
int devCnt = 0;
|
||||
|
||||
@@ -478,8 +497,9 @@ TEST_CASE("Unit_hipMallocPitch_MultiThread", "") {
|
||||
* variable to another kernel variable.
|
||||
* 3. Validating the result
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocPitch_KernelLaunch", ""
|
||||
, int, float, double) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMallocPitch_KernelLaunch", "", int, float, double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
TestType *A_h{nullptr}, *B_h{nullptr}, *C_h{nullptr}, *A_d{nullptr},
|
||||
*B_d{nullptr};
|
||||
|
||||
@@ -55,8 +55,9 @@ Input : "A_h" initialized based on data type
|
||||
Output: Validating A_h with B_h both should be equal for
|
||||
the number of COLUMNS and ROWS copied
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2D_H2D-D2D-D2H", ""
|
||||
, int, float, double) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2D_H2D-D2D-D2H", "", int, float, double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
// 1 refers to pinned host memory
|
||||
auto mem_type = GENERATE(0, 1);
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
@@ -124,8 +125,9 @@ Input : "A_h" initialized based on data type
|
||||
Output: Validating A_h with B_h both should be equal for
|
||||
the number of COLUMNS and ROWS copied
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2D_H2D-D2D-D2H_WithOffset", ""
|
||||
, int, float, double) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2D_H2D-D2D-D2H_WithOffset", "", int, float, double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
// 1 refers to pinned host memory
|
||||
auto mem_type = GENERATE(0, 1);
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
@@ -195,8 +197,9 @@ Input : "A_h" initialized based on data type
|
||||
Output: Validating A_h with B_h both should be equal for
|
||||
the number of COLUMNS and ROWS copied
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2D_multiDevice-D2D", ""
|
||||
, int, float, double) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2D_multiDevice-D2D", "", int, float, double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
auto mem_type = GENERATE(0, 1);
|
||||
int numDevices = 0;
|
||||
int canAccessPeer = 0;
|
||||
@@ -269,6 +272,8 @@ TEMPLATE_TEST_CASE("Unit_hipMemcpy2D_multiDevice-D2D", ""
|
||||
This Testcase verifies the null size checks of hipMemcpy2D API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2D_SizeCheck") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
int* A_h{nullptr}, *A_d{nullptr};
|
||||
size_t pitch_A;
|
||||
@@ -316,6 +321,8 @@ TEST_CASE("Unit_hipMemcpy2D_SizeCheck") {
|
||||
This Testcase verifies all the negative scenarios of hipMemcpy2D API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2D_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
int* A_h{nullptr}, *A_d{nullptr};
|
||||
size_t pitch_A;
|
||||
|
||||
@@ -56,8 +56,9 @@ Input : "A_h" initialized based on data type
|
||||
Output: Validating A_h with B_h both should be equal for
|
||||
the number of COLUMNS and ROWS copied
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2DAsync_Host&PinnedMem", ""
|
||||
, int, float, double) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2DAsync_Host&PinnedMem", "", int, float, double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
// 1 refers to pinned host memory
|
||||
auto mem_type = GENERATE(0, 1);
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
@@ -148,8 +149,9 @@ Input : "A_h" initialized based on data type
|
||||
Output: Validating A_h with B_h both should be equal for
|
||||
the number of COLUMNS and ROWS copied
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2DAsync_multiDevice-Host&PinnedMem", ""
|
||||
, int, float, double) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2DAsync_multiDevice-Host&PinnedMem", "", int, float, double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
auto mem_type = GENERATE(0, 1);
|
||||
int numDevices = 0;
|
||||
int canAccessPeer = 0;
|
||||
@@ -238,8 +240,9 @@ Input : "A_h" initialized based on data type
|
||||
Output: Validating A_h with B_h both should be equal for
|
||||
the number of COLUMNS and ROWS copied
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2DAsync_multiDevice-StreamOnDiffDevice", ""
|
||||
, int, float, double) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy2DAsync_multiDevice-StreamOnDiffDevice", "", int, float, double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
auto mem_type = GENERATE(0, 1);
|
||||
int numDevices = 0;
|
||||
int canAccessPeer = 0;
|
||||
@@ -319,6 +322,8 @@ TEMPLATE_TEST_CASE("Unit_hipMemcpy2DAsync_multiDevice-StreamOnDiffDevice", ""
|
||||
This testcase verifies the null checks of hipMemcpy2DAsync API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DAsync_SizeCheck") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
int* A_h{nullptr}, *A_d{nullptr};
|
||||
size_t pitch_A;
|
||||
@@ -368,6 +373,8 @@ TEST_CASE("Unit_hipMemcpy2DAsync_SizeCheck") {
|
||||
This testcase performs the negative scenarios of hipMemcpy2DAsync API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DAsync_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
int* A_h{nullptr}, *A_d{nullptr};
|
||||
size_t pitch_A;
|
||||
|
||||
@@ -36,6 +36,8 @@ invalid
|
||||
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArray_Positive_Default") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = GENERATE(16, 32, 48);
|
||||
@@ -87,6 +89,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArray_Positive_Default") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArray_Positive_Synchronization_Behavior") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
HIP_CHECK(hipDeviceSynchronize());
|
||||
|
||||
@@ -114,6 +118,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArray_Positive_Synchronization_Behavior") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArray_Positive_ZeroWidthHeight") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
const auto width = 16;
|
||||
const auto height = 16;
|
||||
@@ -147,6 +153,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArray_Positive_ZeroWidthHeight") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArray_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = 32;
|
||||
|
||||
@@ -35,6 +35,8 @@ of hipMemcpy2DFromArrayAsync api when parameters are invalid
|
||||
#include <utils.hh>
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_Positive_Default") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto stream_type = GENERATE(Streams::nullstream, Streams::perThread, Streams::created);
|
||||
@@ -91,6 +93,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_Positive_Default") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_Positive_Synchronization_Behavior") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
HIP_CHECK(hipDeviceSynchronize());
|
||||
|
||||
@@ -119,6 +123,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_Positive_Synchronization_Behavior") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_Positive_ZeroWidthHeight") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto stream_type = GENERATE(Streams::nullstream, Streams::perThread, Streams::created);
|
||||
@@ -157,6 +163,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_Positive_ZeroWidthHeight") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = 32;
|
||||
|
||||
@@ -44,6 +44,8 @@ static constexpr auto NUM_H{10};
|
||||
* and verifying A_h with Phi
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_Basic") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
@@ -88,6 +90,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_Basic") {
|
||||
* of hipMemcpy2DFromArrayAsync API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_ExtentValidation") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
@@ -167,6 +171,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_ExtentValidation") {
|
||||
* and verifying A_h with PinnedMem[0](i.e., 10)
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_PinnedHostMemSameGpu") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
constexpr auto def_val{10};
|
||||
@@ -212,6 +218,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_PinnedHostMemSameGpu") {
|
||||
* OUTPUT: validating the result by comparing A_h and E_h
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_multiDevicePinnedHostMem") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
constexpr auto def_val{10};
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
@@ -273,6 +281,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_multiDevicePinnedHostMem") {
|
||||
* and verifying A_h with Phi
|
||||
* */
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_multiDeviceContextChange") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -320,6 +330,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_multiDeviceContextChange") {
|
||||
* of hipMemcpy2DFromArrayAsync API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArrayAsync_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
|
||||
@@ -41,6 +41,8 @@ static constexpr auto NUM_H{10};
|
||||
* and verifying A_h with Phi
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArray_Basic") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
@@ -73,6 +75,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArray_Basic") {
|
||||
* of hipMemcpy2DFromArray API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArray_ExtentValidation") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
@@ -143,6 +147,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArray_ExtentValidation") {
|
||||
* and verifying A_h with PinnedMem[0](i.e., 10)
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArray_PinnedMemSameGPU") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
constexpr auto def_val{10};
|
||||
@@ -185,6 +191,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArray_PinnedMemSameGPU") {
|
||||
* and verifying A_h with E_h
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArray_multiDevicePinnedMemPeerGpu") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
constexpr auto def_val{10};
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
@@ -242,6 +250,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArray_multiDevicePinnedMemPeerGpu") {
|
||||
* and verifying A_h with Phi
|
||||
* */
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArray_multiDeviceContextChange") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -286,6 +296,8 @@ TEST_CASE("Unit_hipMemcpy2DFromArray_multiDeviceContextChange") {
|
||||
* hipMemcpy2DFromArray API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DFromArray_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
|
||||
@@ -35,6 +35,8 @@ unsuccessful execution of hipMemcpy2DToArray api when parameters are invalid
|
||||
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DToArray_Positive_Default") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = GENERATE(16, 32, 48);
|
||||
@@ -85,6 +87,8 @@ TEST_CASE("Unit_hipMemcpy2DToArray_Positive_Default") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DToArray_Positive_Synchronization_Behavior") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
HIP_CHECK(hipDeviceSynchronize());
|
||||
|
||||
@@ -109,6 +113,8 @@ TEST_CASE("Unit_hipMemcpy2DToArray_Positive_Synchronization_Behavior") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DToArray_Positive_ZeroWidthHeight") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
const auto width = 16;
|
||||
const auto height = 16;
|
||||
@@ -142,6 +148,8 @@ TEST_CASE("Unit_hipMemcpy2DToArray_Positive_ZeroWidthHeight") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DToArray_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = 32;
|
||||
|
||||
@@ -36,6 +36,8 @@ of hipMemcpy2DToArrayAsync api when parameters are invalid
|
||||
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DToArrayAsync_Positive_Default") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto stream_type = GENERATE(Streams::nullstream, Streams::perThread, Streams::created);
|
||||
@@ -92,6 +94,8 @@ TEST_CASE("Unit_hipMemcpy2DToArrayAsync_Positive_Default") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DToArrayAsync_Positive_Synchronization_Behavior") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
HIP_CHECK(hipDeviceSynchronize());
|
||||
|
||||
@@ -115,6 +119,8 @@ TEST_CASE("Unit_hipMemcpy2DToArrayAsync_Positive_Synchronization_Behavior") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DToArrayAsync_Positive_ZeroWidthHeight") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
const auto width = 16;
|
||||
const auto height = 16;
|
||||
@@ -152,6 +158,8 @@ TEST_CASE("Unit_hipMemcpy2DToArrayAsync_Positive_ZeroWidthHeight") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy2DToArrayAsync_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = 32;
|
||||
|
||||
@@ -44,6 +44,8 @@ static constexpr auto NUM_H{10};
|
||||
* and verifying A_h with Phi
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DToArrayAsync_Basic") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
@@ -86,6 +88,8 @@ TEST_CASE("Unit_hipMemcpy2DToArrayAsync_Basic") {
|
||||
* This testcase verifies the extent validation scenarios
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DToArrayAsync_ExtentValidation") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
@@ -163,6 +167,8 @@ TEST_CASE("Unit_hipMemcpy2DToArrayAsync_ExtentValidation") {
|
||||
* and verifying A_h with PinnedMem[0](i.e., 10)
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DToArrayAsync_PinnedHostMemSameGpu") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
constexpr auto def_val{10};
|
||||
@@ -211,6 +217,8 @@ TEST_CASE("Unit_hipMemcpy2DToArrayAsync_PinnedHostMemSameGpu") {
|
||||
* and verifying A_h with E_h[0]+i(i.e., 10+i)
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DToArrayAsync_multiDevicePinnedHostMem") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
constexpr auto def_val{10};
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
@@ -274,6 +282,8 @@ TEST_CASE("Unit_hipMemcpy2DToArrayAsync_multiDevicePinnedHostMem") {
|
||||
* and verifying A_h with Phi
|
||||
* */
|
||||
TEST_CASE("Unit_hipMemcpy2DToArrayAsync_multiDeviceDeviceContextChange") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -321,6 +331,8 @@ TEST_CASE("Unit_hipMemcpy2DToArrayAsync_multiDeviceDeviceContextChange") {
|
||||
/* This testcase verifies the negative scenarios
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DToArrayAsync_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
|
||||
@@ -42,6 +42,8 @@ static constexpr auto NUM_H{10};
|
||||
* and verifying A_h with Phi
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DToArray_Basic") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
@@ -73,6 +75,8 @@ TEST_CASE("Unit_hipMemcpy2DToArray_Basic") {
|
||||
* This testcase verifies the extent validation scenarios
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DToArray_ExtentValidation") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
@@ -143,6 +147,8 @@ TEST_CASE("Unit_hipMemcpy2DToArray_ExtentValidation") {
|
||||
* and verifying A_h with PinnedMem[0](i.e., 10)
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DToArray_PinnedMemSameGPU") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
constexpr auto def_val{10};
|
||||
@@ -186,6 +192,8 @@ TEST_CASE("Unit_hipMemcpy2DToArray_PinnedMemSameGPU") {
|
||||
* and verifying A_h with E_h[0]+i(i.e., 10+i)
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DToArray_multiDevicePinnedMemPeerGpu") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
constexpr auto def_val{10};
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
@@ -244,6 +252,8 @@ TEST_CASE("Unit_hipMemcpy2DToArray_multiDevicePinnedMemPeerGpu") {
|
||||
* and verifying A_h with Phi
|
||||
* */
|
||||
TEST_CASE("Unit_hipMemcpy2DToArray_multiDeviceDeviceContextChange") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -287,6 +297,8 @@ TEST_CASE("Unit_hipMemcpy2DToArray_multiDeviceDeviceContextChange") {
|
||||
/* This testcase verifies the negative scenarios
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy2DToArray_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d{nullptr};
|
||||
size_t width{sizeof(float)*NUM_W};
|
||||
|
||||
@@ -31,6 +31,8 @@ THE SOFTWARE.
|
||||
#pragma clang diagnostic ignored "-Wunused-variable"
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy3D_Positive_Basic") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = false;
|
||||
|
||||
SECTION("Device to Host") { Memcpy3DDeviceToHostShell<async>(Memcpy3DWrapper<>); }
|
||||
@@ -48,6 +50,8 @@ TEST_CASE("Unit_hipMemcpy3D_Positive_Basic") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy3D_Positive_Synchronization_Behavior") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipDeviceSynchronize());
|
||||
|
||||
SECTION("Host to Device") { Memcpy3DHtoDSyncBehavior(Memcpy3DWrapper<>, true); }
|
||||
@@ -70,11 +74,15 @@ TEST_CASE("Unit_hipMemcpy3D_Positive_Synchronization_Behavior") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy3D_Positive_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = false;
|
||||
Memcpy3DZeroWidthHeightDepth<async>(Memcpy3DWrapper<async>);
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy3D_Positive_Array") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = false;
|
||||
SECTION("Array from/to Host") { Memcpy3DArrayHostShell<async>(Memcpy3DWrapper<async>); }
|
||||
#if HT_NVIDIA // Disabled on AMD due to defect - EXSWHTEC-238
|
||||
@@ -83,6 +91,8 @@ TEST_CASE("Unit_hipMemcpy3D_Positive_Array") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy3D_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr hipExtent extent{128 * sizeof(int), 128, 8};
|
||||
|
||||
constexpr auto NegativeTests = [](hipPitchedPtr dst_ptr, hipPos dst_pos, hipPitchedPtr src_ptr,
|
||||
|
||||
@@ -31,6 +31,8 @@ THE SOFTWARE.
|
||||
#pragma clang diagnostic ignored "-Wunused-variable"
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy3DAsync_Positive_Basic") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = true;
|
||||
|
||||
const auto stream_type = GENERATE(Streams::nullstream, Streams::perThread, Streams::created);
|
||||
@@ -54,6 +56,8 @@ TEST_CASE("Unit_hipMemcpy3DAsync_Positive_Basic") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy3DAsync_Positive_Synchronization_Behavior") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = true;
|
||||
|
||||
HIP_CHECK(hipDeviceSynchronize());
|
||||
@@ -78,6 +82,8 @@ TEST_CASE("Unit_hipMemcpy3DAsync_Positive_Synchronization_Behavior") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy3DAsync_Positive_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = true;
|
||||
Memcpy3DZeroWidthHeightDepth<async>(Memcpy3DWrapper<async>);
|
||||
}
|
||||
@@ -91,6 +97,8 @@ TEST_CASE("Unit_hipMemcpy3DAsync_Positive_Array") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpy3DAsync_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr bool async = true;
|
||||
constexpr hipExtent extent{128 * sizeof(int), 128, 8};
|
||||
|
||||
|
||||
@@ -657,9 +657,9 @@ void Memcpy3DAsync<T>::simple_Memcpy3DAsync() {
|
||||
This testcase verifies hipMemcpyAsync for different datatypes
|
||||
and different sizes
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy3DAsync_Basic",
|
||||
"[hipMemcpy3DAsync]",
|
||||
int, unsigned int, float) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy3DAsync_Basic", "[hipMemcpy3DAsync]", int, unsigned int, float) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
int device = -1;
|
||||
@@ -692,6 +692,8 @@ This testcase performs the extent validation scenarios of
|
||||
hipMemcpy3D API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy3DAsync_ExtentValidation") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
Memcpy3DAsync<int> memcpy3d(width, height, depth,
|
||||
hipChannelFormatKindSigned);
|
||||
memcpy3d.Extent_Validation();
|
||||
@@ -702,6 +704,8 @@ This testcase performs the negative scenarios of
|
||||
hipMemcpy3DAsync API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy3DAsync_multiDevice-Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -718,6 +722,8 @@ This testcase performs the D2H,H2D and D2D on peer
|
||||
GPU device
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy3DAsync_multiDevice-D2D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -743,6 +749,8 @@ allocating memory in one GPU and creating stream
|
||||
in another GPU
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy3DAsync_multiDevice-DiffStream") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
|
||||
@@ -550,8 +550,9 @@ void Memcpy3D<T>::simple_Memcpy3D() {
|
||||
This testcase performs hipMemcpy3D API validation for
|
||||
different datatypes and different sizes
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy3D_Basic", "[hipMemcpy3D]",
|
||||
int, unsigned int, float) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpy3D_Basic", "[hipMemcpy3D]", int, unsigned int, float) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int device = -1;
|
||||
HIP_CHECK(hipGetDevice(&device));
|
||||
hipDeviceProp_t prop;
|
||||
@@ -581,6 +582,8 @@ This testcase performs the extent validation scenarios of
|
||||
hipMemcpy3D API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy3D_ExtentValidation") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
Memcpy3D<int> memcpy3d(width, height, depth,
|
||||
hipChannelFormatKindSigned);
|
||||
memcpy3d.Extent_Validation();
|
||||
@@ -591,6 +594,8 @@ This testcase performs the negative scenarios of
|
||||
hipMemcpy3D API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy3D_multiDevice-Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -607,6 +612,8 @@ This testcase performs the D2H,H2D and D2D on peer
|
||||
GPU device
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpy3D_multiDevice-OnPeerDevice") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
|
||||
@@ -16,17 +16,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
/*
|
||||
Testcase Scenarios :
|
||||
Unit_hipMemcpy2DFromArray_Positive_Default - Test basic memcpy between 2D array
|
||||
and host/device with hipMemcpy2DFromArray api
|
||||
Unit_hipMemcpy2DFromArray_Positive_Synchronization_Behavior - Test
|
||||
synchronization behavior for hipMemcpy2DFromArray api
|
||||
Unit_hipMemcpy2DFromArray_Positive_ZeroWidthHeight - Test that no data is copied
|
||||
when width/height is set to 0 Unit_hipMemcpy2DFromArray_Negative_Parameters -
|
||||
Test unsuccessful execution of hipMemcpy2DFromArray api when parameters are
|
||||
invalid
|
||||
*/
|
||||
|
||||
#include "array_memcpy_tests_common.hh"
|
||||
|
||||
#include <hip/hip_runtime_api.h>
|
||||
@@ -35,6 +25,8 @@ invalid
|
||||
#include <utils.hh>
|
||||
|
||||
TEST_CASE("Unit_hipMemcpyAtoH_Positive_Default") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = GENERATE(512, 1024, 2048);
|
||||
@@ -44,6 +36,8 @@ TEST_CASE("Unit_hipMemcpyAtoH_Positive_Default") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpyAtoH_Positive_Synchronization_Behavior") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = GENERATE(512, 1024, 2048);
|
||||
@@ -63,6 +57,8 @@ SWDEV-274683
|
||||
*/
|
||||
#if HT_NVIDIA
|
||||
TEST_CASE("Unit_hipMemcpyAtoH_Positive_ZeroCount") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const auto width = 1024;
|
||||
const auto height = 0;
|
||||
const auto allocation_size = width * sizeof(int);
|
||||
@@ -85,6 +81,8 @@ TEST_CASE("Unit_hipMemcpyAtoH_Positive_ZeroCount") {
|
||||
#endif
|
||||
|
||||
TEST_CASE("Unit_hipMemcpyAtoH_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = 1024;
|
||||
|
||||
@@ -43,8 +43,9 @@ Output:"B_h" host variable output of hipMemcpyAtoH API
|
||||
The same scenario is then verified with pinned host memory
|
||||
*/
|
||||
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyAtoH_Basic", "[hipMemcpyAtoH]",
|
||||
char, int, float) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyAtoH_Basic", "[hipMemcpyAtoH]", char, int, float) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
// 1 refers to pinned host memory scenario
|
||||
auto memtype_check = GENERATE(0, 1);
|
||||
@@ -93,9 +94,10 @@ Output:"B_h" host variable output of hipMemcpyAtoH API
|
||||
is then validated with "hData"
|
||||
*/
|
||||
#if HT_AMD
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyAtoH_multiDevice-PeerDeviceContext",
|
||||
"[hipMemcpyAtoH]",
|
||||
char, int, float) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyAtoH_multiDevice-PeerDeviceContext", "[hipMemcpyAtoH]", char, int,
|
||||
float) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -143,6 +145,8 @@ TEMPLATE_TEST_CASE("Unit_hipMemcpyAtoH_multiDevice-PeerDeviceContext",
|
||||
This testcase verifies the negative scenarios of hipMemcpyAtoH API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpyAtoH_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d;
|
||||
float *hData{nullptr}, *B_h{nullptr};
|
||||
@@ -184,6 +188,8 @@ SWDEV-274683
|
||||
*/
|
||||
#if HT_NVIDIA
|
||||
TEST_CASE("Unit_hipMemcpyAtoH_SizeCheck") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d;
|
||||
float *hData{nullptr}, *B_h{nullptr}, *def_data{nullptr};
|
||||
|
||||
@@ -35,6 +35,8 @@ hipMemcpyHtoA api when parameters are invalid
|
||||
|
||||
|
||||
TEST_CASE("Unit_hipMemcpyHtoA_Positive_Default") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = GENERATE(512, 1024, 2048);
|
||||
@@ -44,6 +46,8 @@ TEST_CASE("Unit_hipMemcpyHtoA_Positive_Default") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemcpyHtoA_Positive_Synchronization_Behavior") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = GENERATE(512, 1024, 2048);
|
||||
@@ -60,6 +64,8 @@ SWDEV-274683
|
||||
*/
|
||||
#if HT_NVIDIA
|
||||
TEST_CASE("Unit_hipMemcpyHtoA_Positive_ZeroCount") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
const auto width = 1024;
|
||||
const auto height = 0;
|
||||
const auto allocation_size = width * sizeof(int);
|
||||
@@ -85,6 +91,8 @@ TEST_CASE("Unit_hipMemcpyHtoA_Positive_ZeroCount") {
|
||||
#endif
|
||||
|
||||
TEST_CASE("Unit_hipMemcpyHtoA_Negative_Parameters") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
const auto width = 1024;
|
||||
|
||||
@@ -43,8 +43,9 @@ Output: "A_d" output of hipMemcpyHtoA is copied to "hData" host variable
|
||||
|
||||
The same scenario is then verified with pinned host memory
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyHtoA_Basic", "[hipMemcpyHtoA]",
|
||||
char, int, float) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyHtoA_Basic", "[hipMemcpyHtoA]", char, int, float) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
auto memtype_check = GENERATE(0, 1);
|
||||
hipArray *A_d;
|
||||
@@ -95,9 +96,9 @@ Output: "A_d" output of hipMemcpyHtoA is copied to "hData" host variable
|
||||
validated the result with "B_h"
|
||||
*/
|
||||
#if HT_AMD
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyHtoA_multiDevice-PeerDeviceContext",
|
||||
"[hipMemcpyHtoA]",
|
||||
char, int, float) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyHtoA_multiDevice-PeerDeviceContext", "[hipMemcpyHtoA]", char, int,
|
||||
float) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -149,6 +150,8 @@ TEMPLATE_TEST_CASE("Unit_hipMemcpyHtoA_multiDevice-PeerDeviceContext",
|
||||
This testcase verifies the negative scenarios of hipMemcpyHtoA API
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpyHtoA_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d;
|
||||
float *hData{nullptr}, *B_h{nullptr};
|
||||
@@ -190,6 +193,8 @@ SWDEV-274683
|
||||
*/
|
||||
#if HT_NVIDIA
|
||||
TEST_CASE("Unit_hipMemcpyHtoA_SizeCheck") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
hipArray *A_d;
|
||||
float *hData{nullptr}, *B_h{nullptr}, *def_data{nullptr};
|
||||
|
||||
@@ -39,10 +39,10 @@ static constexpr size_t NUM_H{10};
|
||||
* it with the initalized data "C_h".
|
||||
*
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2D_multiDevice-D2D",
|
||||
"[hipMemcpyParam2D]",
|
||||
char, float, int,
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2D_multiDevice-D2D", "[hipMemcpyParam2D]", char, float, int,
|
||||
double, long double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -125,9 +125,10 @@ TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2D_multiDevice-D2D",
|
||||
*
|
||||
* Validating the result by comparing "A_h" to "C_h"
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2D_multiDevice-H2D-D2H",
|
||||
"[hipMemcpyParam2D]", char, float,
|
||||
int, double, long double) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2D_multiDevice-H2D-D2H", "[hipMemcpyParam2D]", char, float,
|
||||
int, double, long double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
// 1 refers to pinned host memory and 0 refers
|
||||
// to unpinned memory
|
||||
auto memory_type = GENERATE(0, 1);
|
||||
@@ -226,6 +227,8 @@ TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2D_multiDevice-H2D-D2H",
|
||||
* This testcase verifies the extent validation scenarios
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpyParam2D_ExtentValidation") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
// Allocating memory and Initializing the data
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
char* A_h{nullptr}, *B_h{nullptr}, *C_h{nullptr},
|
||||
@@ -298,6 +301,8 @@ TEST_CASE("Unit_hipMemcpyParam2D_ExtentValidation") {
|
||||
* This testcase verifies the negative scenarios
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpyParam2D_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
|
||||
// Allocating and Initializing the data
|
||||
|
||||
@@ -44,8 +44,9 @@ static constexpr size_t NUM_H{10};
|
||||
*
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2DAsync_multiDevice-StreamOnDiffDevice",
|
||||
"[hipMemcpyParam2DAsync]", char, float, int,
|
||||
double, long double) {
|
||||
"[hipMemcpyParam2DAsync]", char, float, int, double, long double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -131,9 +132,10 @@ TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2DAsync_multiDevice-StreamOnDiffDevice",
|
||||
* it with the initalized data "C_h".
|
||||
*
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2DAsync_multiDevice-D2D",
|
||||
"[hipMemcpyParam2DAsync]", char,
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2DAsync_multiDevice-D2D", "[hipMemcpyParam2DAsync]", char,
|
||||
int, float, double, long double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int numDevices = 0;
|
||||
HIP_CHECK(hipGetDeviceCount(&numDevices));
|
||||
if (numDevices > 1) {
|
||||
@@ -219,9 +221,10 @@ TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2DAsync_multiDevice-D2D",
|
||||
*
|
||||
* Validating the result by comparing "A_h" to "C_h"
|
||||
*/
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2DAsync_multiDevice-H2D-D2H",
|
||||
"[hipMemcpyParam2DAsync]", char,
|
||||
int, float, double, long double) {
|
||||
TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2DAsync_multiDevice-H2D-D2H", "[hipMemcpyParam2DAsync]",
|
||||
char, int, float, double, long double) {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
// 1 refers to pinned host memory and 0 refers
|
||||
// to unpinned memory
|
||||
auto memory_type = GENERATE(0, 1);
|
||||
@@ -324,6 +327,8 @@ TEMPLATE_TEST_CASE("Unit_hipMemcpyParam2DAsync_multiDevice-H2D-D2H",
|
||||
* This testcase verifies the extent validation scenarios
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpyParam2DAsync_ExtentValidation") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
char* A_h{nullptr}, *B_h{nullptr}, *C_h{nullptr},
|
||||
* A_d{nullptr};
|
||||
@@ -402,6 +407,8 @@ TEST_CASE("Unit_hipMemcpyParam2DAsync_ExtentValidation") {
|
||||
* This testcase verifies the negative scenarios
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemcpyParam2DAsync_Negative") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
float* A_h{nullptr}, *B_h{nullptr}, *C_h{nullptr},
|
||||
* A_d{nullptr};
|
||||
|
||||
@@ -48,6 +48,8 @@ static constexpr std::initializer_list<tupletype> tableItems {
|
||||
* Basic Functionality of hipMemset2D
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset2D_BasicFunctional") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int memsetval = 0x24;
|
||||
constexpr size_t numH = 256;
|
||||
constexpr size_t numW = 256;
|
||||
@@ -87,6 +89,8 @@ TEST_CASE("Unit_hipMemset2D_BasicFunctional") {
|
||||
* Basic Functionality of hipMemset2DAsync
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset2DAsync_BasicFunctional") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int memsetval = 0x26;
|
||||
constexpr size_t numH = 256;
|
||||
constexpr size_t numW = 256;
|
||||
@@ -130,6 +134,8 @@ TEST_CASE("Unit_hipMemset2DAsync_BasicFunctional") {
|
||||
* Memset partial buffer with unique Width and Height
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset2D_UniqueWidthHeight") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
int width2D, height2D;
|
||||
int memsetWidth, memsetHeight;
|
||||
char *A_d, *A_h;
|
||||
|
||||
@@ -50,6 +50,8 @@ void queueJobsForhipMemset2DAsync(char* A_d, char* A_h, size_t pitch,
|
||||
* Order of execution of device kernel and hipMemset2DAsync api.
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset2DAsync_WithKernel") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr auto N = 4 * 1024 * 1024;
|
||||
constexpr auto blocksPerCU = 6; // to hide latency
|
||||
constexpr auto threadsPerBlock = 256;
|
||||
@@ -132,6 +134,8 @@ TEST_CASE("Unit_hipMemset2DAsync_WithKernel") {
|
||||
* hipMemSet2DAsync execution in multiple threads.
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset2DAsync_MultiThread") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr auto memPerThread = 200;
|
||||
constexpr int memsetval = 0x22;
|
||||
char *A_d, *A_h, *B_d, *B_h, *C_d;
|
||||
|
||||
@@ -32,6 +32,8 @@ THE SOFTWARE.
|
||||
* Basic Functional test of hipMemset3D
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3D_BasicFunctional") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int memsetval = 0x22;
|
||||
constexpr size_t numH = 256;
|
||||
constexpr size_t numW = 256;
|
||||
@@ -80,6 +82,8 @@ TEST_CASE("Unit_hipMemset3D_BasicFunctional") {
|
||||
* Basic Functional test of hipMemset3DAsync
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3DAsync_BasicFunctional") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr int memsetval = 0x22;
|
||||
constexpr size_t numH = 256;
|
||||
constexpr size_t numW = 256;
|
||||
|
||||
@@ -416,6 +416,8 @@ static void seekAndSet3DArrayPortion(bool bAsync) {
|
||||
* taking zero and non-zero fields.
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3D_MemsetWithExtent") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipExtent testExtent;
|
||||
size_t numH = NUMH_EXT, numW = NUMW_EXT, depth = DEPTH_EXT;
|
||||
|
||||
@@ -450,6 +452,8 @@ TEST_CASE("Unit_hipMemset3D_MemsetWithExtent") {
|
||||
* taking zero and non-zero fields.
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3DAsync_MemsetWithExtent") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipExtent testExtent;
|
||||
size_t numH = NUMH_EXT, numW = NUMW_EXT, depth = DEPTH_EXT;
|
||||
|
||||
@@ -482,6 +486,8 @@ TEST_CASE("Unit_hipMemset3DAsync_MemsetWithExtent") {
|
||||
* Memset3D with max unsigned char and verify memset operation is success
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3D_MemsetMaxValue") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
testMemsetMaxValue(0);
|
||||
}
|
||||
|
||||
@@ -489,6 +495,8 @@ TEST_CASE("Unit_hipMemset3D_MemsetMaxValue") {
|
||||
* Memset3DAsync with max unsigned char and verify memset operation is success
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3DAsync_MemsetMaxValue") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
testMemsetMaxValue(1);
|
||||
}
|
||||
|
||||
@@ -496,6 +504,8 @@ TEST_CASE("Unit_hipMemset3DAsync_MemsetMaxValue") {
|
||||
* Seek and set random slice of 3d array, verify memset is success
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3D_SeekSetSlice") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
seekAndSet3DArraySlice(0);
|
||||
}
|
||||
|
||||
@@ -503,6 +513,8 @@ TEST_CASE("Unit_hipMemset3D_SeekSetSlice") {
|
||||
* Seek and set random slice of 3d array with async, verify memset is success
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3DAsync_SeekSetSlice") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
seekAndSet3DArraySlice(1);
|
||||
}
|
||||
|
||||
@@ -510,6 +522,8 @@ TEST_CASE("Unit_hipMemset3DAsync_SeekSetSlice") {
|
||||
* Memset3D selected portion of 3d array
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3D_SeekSetArrayPortion") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
seekAndSet3DArrayPortion(0);
|
||||
}
|
||||
|
||||
@@ -517,5 +531,7 @@ TEST_CASE("Unit_hipMemset3D_SeekSetArrayPortion") {
|
||||
* Memset3DAsync selected portion of 3d array
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3DAsync_SeekSetArrayPortion") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
seekAndSet3DArrayPortion(1);
|
||||
}
|
||||
|
||||
@@ -188,6 +188,8 @@ bool loopRegression(bool bAsync) {
|
||||
* on different gpus.
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3D_RegressInLoop") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
bool TestPassed = false;
|
||||
|
||||
TestPassed = loopRegression(0);
|
||||
@@ -199,6 +201,8 @@ TEST_CASE("Unit_hipMemset3D_RegressInLoop") {
|
||||
* on different gpus.
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3DAsync_RegressInLoop") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
bool TestPassed = false;
|
||||
|
||||
TestPassed = loopRegression(1);
|
||||
@@ -209,6 +213,8 @@ TEST_CASE("Unit_hipMemset3DAsync_RegressInLoop") {
|
||||
* Async commands queued concurrently and executed
|
||||
*/
|
||||
TEST_CASE("Unit_hipMemset3DAsync_ConcurrencyMthread") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
char *A_h;
|
||||
constexpr int memsetval = 1, testval = 2;
|
||||
constexpr size_t numH = 256, numW = 100, depth = 10;
|
||||
|
||||
@@ -281,6 +281,8 @@ void checkMemset2D(T value, size_t width, size_t height, bool async = false, siz
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemsetFunctional_ZeroValue_2D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr size_t width{128};
|
||||
constexpr size_t height{128};
|
||||
constexpr char memsetVal = 0;
|
||||
@@ -289,12 +291,16 @@ TEST_CASE("Unit_hipMemsetFunctional_ZeroValue_2D") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemsetFunctional_SmallSize_2D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr char memsetVal = 0x42;
|
||||
SECTION("hipMemset2D - Small Size") { checkMemset2D(memsetVal, 1, 1, false); }
|
||||
SECTION("hipMemset2DAsync - Small Size") { checkMemset2D(memsetVal, 1, 1, true); }
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemsetFunctional_ZeroSize_2D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
size_t pitch{0};
|
||||
size_t width{10};
|
||||
size_t height{10};
|
||||
@@ -375,6 +381,8 @@ void partialMemsetTest2D(T valA, T valB, size_t width, size_t height, size_t wid
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemsetFunctional_PartialSet_2D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
for (auto widthOffset = 8; widthOffset <= 128; widthOffset *= 2) {
|
||||
for (auto heightOffset = 8; heightOffset <= 128; heightOffset *= 2) {
|
||||
SECTION("hipMemset2D - Partial Set") {
|
||||
@@ -487,12 +495,20 @@ void check_memset_3D(std::string sectionStr, size_t width, size_t height, size_t
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemsetFunctional_ZeroValue_3D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
check_memset_3D("Zero Value", 128, 128, 10, 0);
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemsetFunctional_SmallSize_3D") { check_memset_3D("Small Size", 1, 1, 1, 0x42); }
|
||||
TEST_CASE("Unit_hipMemsetFunctional_SmallSize_3D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
check_memset_3D("Small Size", 1, 1, 1, 0x42);
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemsetFunctional_ZeroSize_3D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
constexpr size_t elementSize = sizeof(char);
|
||||
check_memset_3D("Zero Width", 0, FULL_DIM, FULL_DIM, 0x23);
|
||||
check_memset_3D("Zero Height", FULL_DIM * elementSize, 0, FULL_DIM, 0x23);
|
||||
@@ -543,6 +559,8 @@ void partialMemsetTest3D(T valA, T valB, size_t width, size_t height, size_t dep
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemsetFunctional_PartialSet_3D") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
for (auto widthOffset = 8; widthOffset <= 128; widthOffset *= 2) {
|
||||
for (auto heightOffset = 8; heightOffset <= 128; heightOffset *= 2) {
|
||||
for (auto depthOffset = 2; depthOffset <= 5; depthOffset++) {
|
||||
|
||||
@@ -91,6 +91,8 @@ TEST_CASE("Unit_hipMemset_Negative_OutOfBoundsPtr") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemset2D_Negative_InvalidPtr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
void* dst;
|
||||
SECTION("Uninitialized Dst") {}
|
||||
SECTION("Nullptr as Dst") { dst = nullptr; }
|
||||
@@ -109,6 +111,8 @@ TEST_CASE("Unit_hipMemset2D_Negative_InvalidPtr") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemset2D_Negative_InvalidSizes") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
void* dst;
|
||||
size_t realPitch;
|
||||
HIP_CHECK(hipMallocPitch(&dst, &realPitch, width, height));
|
||||
@@ -133,6 +137,8 @@ TEST_CASE("Unit_hipMemset2D_Negative_InvalidSizes") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemset2D_Negative_OutOfBoundsPtr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
void* dst;
|
||||
size_t realPitch;
|
||||
|
||||
@@ -144,6 +150,8 @@ TEST_CASE("Unit_hipMemset2D_Negative_OutOfBoundsPtr") {
|
||||
|
||||
|
||||
TEST_CASE("Unit_hipMemset3D_Negative_InvalidPtr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipPitchedPtr pitchedDevPtr;
|
||||
|
||||
SECTION("Uninitialized PitchedDevPtr") {}
|
||||
@@ -153,6 +161,8 @@ TEST_CASE("Unit_hipMemset3D_Negative_InvalidPtr") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemset3D_Negative_ModifiedPtr") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipPitchedPtr pitchedDevPtr;
|
||||
|
||||
HIP_CHECK(hipMalloc3D(&pitchedDevPtr, validExtent));
|
||||
@@ -174,6 +184,8 @@ TEST_CASE("Unit_hipMemset3D_Negative_ModifiedPtr") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemset3D_Negative_InvalidSizes") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipPitchedPtr pitchedDevPtr;
|
||||
HIP_CHECK(hipMalloc3D(&pitchedDevPtr, validExtent));
|
||||
hipExtent invalidExtent{validExtent};
|
||||
@@ -200,6 +212,8 @@ TEST_CASE("Unit_hipMemset3D_Negative_InvalidSizes") {
|
||||
}
|
||||
|
||||
TEST_CASE("Unit_hipMemset3D_Negative_OutOfBounds") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
hipPitchedPtr pitchedDevPtr;
|
||||
|
||||
HIP_CHECK(hipMalloc3D(&pitchedDevPtr, validExtent));
|
||||
|
||||
@@ -59,6 +59,8 @@ static __global__ void var_update(int* data) {
|
||||
/* Allocate memory using different Allocation APIs and check whether
|
||||
correct memory type and device oridinal are returned */
|
||||
TEST_CASE("Unit_hipPointerGetAttribute_MemoryTypes") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
HIP_CHECK(hipSetDevice(0));
|
||||
size_t pitch_A;
|
||||
size_t width{NUM_W * sizeof(char)};
|
||||
|
||||
@@ -713,6 +713,8 @@ void DefaultPT2_hipMemcpy3D() {
|
||||
|
||||
|
||||
TEST_CASE("Unit_hipStrmPerThrdDefault") {
|
||||
CHECK_IMAGE_SUPPORT
|
||||
|
||||
SECTION("Testing hipMemset/Memcpy() and their async version") {
|
||||
REQUIRE(DefaultPT2_Memcpy_MemSet(1, 0));
|
||||
REQUIRE(DefaultPT2_Memcpy_MemSet(1, 1));
|
||||
|
||||
Ссылка в новой задаче
Block a user