SWDEV-501963 - Add missing codes for gfx950

Change-Id: I6b3c6bf54c61cffd44cd6f17b75998f751b75724


[ROCm/hip-tests commit: 1a7df073ba]
此提交包含在:
taosang2
2024-12-02 17:16:52 -05:00
提交者 Rakesh Roy
父節點 aeae2fcbb1
當前提交 f2ab8e53cc
共有 16 個檔案被更改,包括 71 行新增 和 68 行删除
+3 -3
查看文件
@@ -6,9 +6,9 @@
#include "hip_test_context.hh"
std::vector<std::unordered_set<std::string>> GCNArchFeatMap = {
{"gfx90a", "gfx940", "gfx941", "gfx942"}, // CT_FEATURE_FINEGRAIN_HWSUPPORT
{"gfx90a", "gfx940", "gfx941", "gfx942"}, // CT_FEATURE_HMM
{"gfx90a", "gfx940", "gfx941", "gfx942"}, // CT_FEATURE_TEXTURES_NOT_SUPPORTED
{"gfx90a", "gfx940", "gfx941", "gfx942", "gfx950"}, // CT_FEATURE_FINEGRAIN_HWSUPPORT
{"gfx90a", "gfx940", "gfx941", "gfx942", "gfx950"}, // CT_FEATURE_HMM
{"gfx90a", "gfx940", "gfx941", "gfx942", "gfx950"}, // CT_FEATURE_TEXTURES_NOT_SUPPORTED
};
#if HT_AMD
+3 -3
查看文件
@@ -22,7 +22,7 @@
AtomicAdd on FineGrainMemory
1. The following test scenario verifies
atomicAdd on fineGrain memory with -mno-unsafe-atomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include <hip_test_checkers.hh>
@@ -88,7 +88,7 @@ TEMPLATE_TEST_CASE("Unit_AtomicAdd_Coherentwithnounsafeflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
+3 -3
查看文件
@@ -22,7 +22,7 @@
AtomicAdd on FineGrainMemory
1. The following test scenario verifies
atomicAdd on fineGrain memory without any unsafeatomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include<hip_test_checkers.hh>
@@ -85,7 +85,7 @@ TEMPLATE_TEST_CASE("Unit_AtomicAdd_Coherentwithoutflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
+3 -3
查看文件
@@ -22,7 +22,7 @@
AtomicAdd on FineGrainMemory
1. The following test scenario verifies
atomicAdd on fineGrain memory with -munsafe-fp-atomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include<hip_test_checkers.hh>
@@ -99,7 +99,7 @@ TEMPLATE_TEST_CASE("Unit_AtomicAdd_CoherentwithUnsafeflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
+3 -3
查看文件
@@ -22,7 +22,7 @@
AtomicAdd on CoarseGrainMemory
1. The following test scenario verifies
atomicAdd on CoarseGrain memory with -mno-unsafe-atomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include<hip_test_checkers.hh>
@@ -86,7 +86,7 @@ TEMPLATE_TEST_CASE("Unit_AtomicAdd_NonCoherentwithnounsafeflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
+3 -3
查看文件
@@ -22,7 +22,7 @@
AtomicAdd on CoarseGrainMemory
1. The following test scenario verifies
atomicAdd on CoarseGrain memory without any unsafeatomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include<hip_test_checkers.hh>
@@ -87,7 +87,7 @@ TEMPLATE_TEST_CASE("Unit_AtomicAdd_NonCoherentwithoutflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
+3 -3
查看文件
@@ -22,7 +22,7 @@
AtomicAdd on CoarseGrainMemory
1. The following test scenario verifies
atomicAdd on CoarseGrain memory with -munsafe-fp-atomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include<hip_test_checkers.hh>
@@ -93,7 +93,7 @@ TEMPLATE_TEST_CASE("Unit_AtomicAdd_NonCoherentwithUnsafeflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
+7 -7
查看文件
@@ -91,8 +91,8 @@ TEST_CASE("Unit_BuiltInAtomicAdd_CoherentGlobalMem") {
HIP_CHECK(hipFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942 Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
@@ -135,7 +135,7 @@ TEST_CASE("Unit_BuiltInAtomicAdd_NonCoherentGlobalMem") {
free(B_h);
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942"
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950"
"Hence skipping the testcase for GPU-0");
}
}
@@ -219,8 +219,8 @@ TEST_CASE("Unit_BuiltInAtomicAdd_CoherentGlobalMemWithRtc") {
free(B_h);
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
@@ -299,7 +299,7 @@ TEST_CASE("Unit_BuiltInAtomicAdd_NonCoherentGlobalMemWithRtc") {
free(B_h);
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
+15 -12
查看文件
@@ -26,6 +26,9 @@ THE SOFTWARE.
#include <type_traits>
#include <vector>
#include <bitset>
#if defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)
#define __gfx94plus_local__
#endif
/*
* This catch test is meant for FP8 FNUZ conversion checking
@@ -59,7 +62,7 @@ std::string get_arch_type() {
template<typename T> __FP8_DEVICE__ void e4m3_fnuz_device(T *val)
{
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8_e4m3_fnuz tmp(*val);
*val = tmp;
#else
@@ -69,7 +72,7 @@ template<typename T> __FP8_DEVICE__ void e4m3_fnuz_device(T *val)
template<typename T> __FP8_DEVICE__ void e5m2_fnuz_device(T *val)
{
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8_e5m2_fnuz tmp(*val);
*val = tmp;
#else
@@ -148,7 +151,7 @@ TEMPLATE_TEST_CASE("Unit_fp8_fnuz_compare_host_device", "", float, double) {
__FP8_DEVICE__ void e4m3_fp8x2_fnuz_device(float2 *val)
{
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8x2_e4m3_fnuz tmp(*val);
*val = tmp;
#else
@@ -158,7 +161,7 @@ __FP8_DEVICE__ void e4m3_fp8x2_fnuz_device(float2 *val)
__FP8_DEVICE__ void e5m2_fp8x2_fnuz_device(float2 *val)
{
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8x2_e5m2_fnuz tmp(*val);
*val = tmp;
#else
@@ -298,7 +301,7 @@ TEST_CASE("Unit_fp8x2_fnuz_split_compare") {
__FP8_DEVICE__ void e4m3_fp8x4_fnuz_device(float4 *val)
{
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8x4_e4m3_fnuz tmp(*val);
*val = tmp;
#else
@@ -308,7 +311,7 @@ __FP8_DEVICE__ void e4m3_fp8x4_fnuz_device(float4 *val)
__FP8_DEVICE__ void e5m2_fp8x4_fnuz_device(float4 *val)
{
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8x4_e5m2_fnuz tmp(*val);
*val = tmp;
#else
@@ -399,7 +402,7 @@ __FP8_DEVICE__ bool e4m3_bool_fnuz_device(float val)
{
bool x = false;
float y = val;
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8_e4m3_fnuz tmp(y);
x = tmp;
#else
@@ -412,7 +415,7 @@ __FP8_DEVICE__ bool e5m2_bool_fnuz_device(float val)
{
bool x = false;
float y = val;
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8_e5m2_fnuz tmp(y);
x = tmp;
#else
@@ -499,7 +502,7 @@ __FP8_DEVICE__ __hip_fp8_storage_t e4m3_fnuz_fp8_device(float val)
{
__hip_fp8_storage_t x = 0;
float y = val;
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8_e4m3_fnuz tmp(y);
x = tmp.__x;
#else
@@ -512,7 +515,7 @@ __FP8_DEVICE__ __hip_fp8_storage_t e5m2_fnuz_fp8_device(float val)
{
__hip_fp8_storage_t x = 0;
float y = val;
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8_e5m2_fnuz tmp(y);
x = tmp.__x;
#else
@@ -627,7 +630,7 @@ TEST_CASE("Unit_all_fp8_fnuz_cvt") {
template<typename T> __FP8_DEVICE__ void e4m3_fnuz_fp8_cvt(T val, float *cvt1, float *cvt2)
{
T y = val;
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8_e4m3_fnuz tmp(y);
*cvt1 = tmp;
@@ -646,7 +649,7 @@ template<typename T> __FP8_DEVICE__ void e4m3_fnuz_fp8_cvt(T val, float *cvt1, f
template<typename T> __FP8_DEVICE__ void e5m2_fnuz_fp8_cvt(T val, float *cvt1, float *cvt2)
{
T y = val;
#if (defined(__gfx940__) || defined(__gfx941__) || defined(__gfx942__)) && __HIP_DEVICE_COMPILE__
#if defined(__gfx94plus_local__) && __HIP_DEVICE_COMPILE__
__hip_fp8_e5m2_fnuz tmp(y);
*cvt1 = tmp;
@@ -22,7 +22,7 @@
AtomicAdd on FineGrainMemory
1. The following test scenario verifies
unsafeatomicAdd on fineGrain memory with -mno-unsafe-fp-atomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include<hip_test_common.hh>
@@ -100,7 +100,7 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_CoherentwithnoUnsafeflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
+3 -3
查看文件
@@ -22,7 +22,7 @@
AtomicAdd on FineGrainMemory
1. The following test scenario verifies
unsafeatomicAdd on fineGrain memory without atomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include<hip_test_checkers.hh>
@@ -100,7 +100,7 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_Coherentwithoutflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
@@ -22,7 +22,7 @@
AtomicAdd on CoarseGrainMemory
1. The following test scenario verifies
unsafeAtomicAdd on CoarseGrain memory with -mno-unsafe-fp-atomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include<hip_test_checkers.hh>
@@ -93,7 +93,7 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_NonCoherentnounsafeatomicsflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950, "
"Hence skipping the testcase for this GPU " << device);
}
}
+3 -3
查看文件
@@ -22,7 +22,7 @@
unsafeAtomicAdd on CoarseGrainMemory
1. The following test scenario verifies
unsafeAtomicAdd on CoarseGrain memory without any unsafeatomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include<hip_test_checkers.hh>
@@ -93,7 +93,7 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_NonCoherentwithoutflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
@@ -22,7 +22,7 @@
unsafeAtomicAdd on CoarseGrainMemory
1. The following test scenario verifies
unsafeAtomicAdd on CoarseGrain memory with unsafeatomics flag
This testcase works only on gfx90a, gfx940, gfx941, gfx942.
This testcase works only on gfx90a, gfx940, gfx941, gfx942, gfx950.
*/
#include<hip_test_checkers.hh>
@@ -93,7 +93,7 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_NonCoherentwithunsafeatomicsflag", "",
HIP_CHECK(hipHostFree(result));
}
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
+12 -12
查看文件
@@ -141,8 +141,8 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_CoherentRTCnounsafeatomicflag", "",
}
HIP_CHECK(hipModuleUnload(module));
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
@@ -238,8 +238,8 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_CoherentRTCunsafeatomicflag", "",
}
HIP_CHECK(hipModuleUnload(module));
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
@@ -331,8 +331,8 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_CoherentRTCwithoutflag", "",
}
HIP_CHECK(hipModuleUnload(module));
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
@@ -417,8 +417,8 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_NonCoherentRTCnounsafeatomicflag", "",
}
HIP_CHECK(hipModuleUnload(module));
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
@@ -505,8 +505,8 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_NonCoherentRTCunsafeatomicflag", "",
}
HIP_CHECK(hipModuleUnload(module));
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
@@ -593,7 +593,7 @@ TEMPLATE_TEST_CASE("Unit_unsafeAtomicAdd_NonCoherentRTC", "",
}
HIP_CHECK(hipModuleUnload(module));
} else {
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, Hence"
"skipping the testcase for this GPU " << device);
SUCCEED("Memory model feature is only supported for gfx90a, gfx940, gfx941, gfx942, gfx950,"
"Hence skipping the testcase for this GPU " << device);
}
}
+1 -1
查看文件
@@ -207,7 +207,7 @@ if(HIP_PLATFORM MATCHES "amd")
endif()
set(NOT_FOR_gfx90a_AND_ABOVE_TEST hipMallocArray.cc hipArrayCreate.cc) # tests not for gfx90a+
set(gfx90a_AND_ABOVE_TARGETS gfx90a gfx940 gfx941 gfx942)
set(gfx90a_AND_ABOVE_TARGETS gfx90a gfx940 gfx941 gfx942 gfx950)
function(CheckRejectedArchs OFFLOAD_ARCH_STR_LOCAL)
set(ARCH_CHECK -1 PARENT_SCOPE)
set(NOT_GFX90a -1)