SWDEV-470698 - fix formatting, add format check workflow (#657)
This commit is contained in:
committed by
GitHub
parent
5840940caa
commit
f7338717ae
@@ -46,36 +46,26 @@ Testcase Scenarios :
|
||||
|
||||
#if HT_NVIDIA
|
||||
// atomicAddNoRet is unavailable in cuda
|
||||
template <typename T>
|
||||
__device__ void atomicAddNoRet(T* x, int y) {
|
||||
template <typename T> __device__ void atomicAddNoRet(T* x, int y) {
|
||||
atomicAdd(x, static_cast<T>(y));
|
||||
}
|
||||
#endif
|
||||
|
||||
bool p_atomicNoRet = false;
|
||||
|
||||
template <typename T>
|
||||
__global__ void atomicnoret_manywaves(T* C_d) {
|
||||
template <typename T> __global__ void atomicnoret_manywaves(T* C_d) {
|
||||
atomicAddNoRet(C_d, INCREMENT_VALUE);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
__global__ void atomic_manywaves(T* C_d) {
|
||||
atomicAdd(C_d, INCREMENT_VALUE);
|
||||
}
|
||||
template <typename T> __global__ void atomic_manywaves(T* C_d) { atomicAdd(C_d, INCREMENT_VALUE); }
|
||||
|
||||
template <typename T>
|
||||
__global__ void atomicnoret_simple(T* C_d) {
|
||||
template <typename T> __global__ void atomicnoret_simple(T* C_d) {
|
||||
atomicAddNoRet(C_d, INCREMENT_VALUE);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
__global__ void atomic_simple(T* C_d) {
|
||||
atomicAdd(C_d, INCREMENT_VALUE);
|
||||
}
|
||||
template <typename T> __global__ void atomic_simple(T* C_d) { atomicAdd(C_d, INCREMENT_VALUE); }
|
||||
|
||||
template <typename T>
|
||||
bool atomictest_manywaves(const T& initial_val) {
|
||||
template <typename T> bool atomictest_manywaves(const T& initial_val) {
|
||||
unsigned int ThreadsperBlock = 10;
|
||||
unsigned int numBlocks = 1;
|
||||
T memSize = sizeof(T);
|
||||
@@ -87,13 +77,12 @@ bool atomictest_manywaves(const T& initial_val) {
|
||||
HIP_CHECK(hipMemcpy(dOData, hOData, memSize, hipMemcpyHostToDevice));
|
||||
|
||||
// execute the kernel
|
||||
hipLaunchKernelGGL(atomic_manywaves, dim3(numBlocks),
|
||||
dim3(ThreadsperBlock), 0, 0, dOData);
|
||||
hipLaunchKernelGGL(atomic_manywaves, dim3(numBlocks), dim3(ThreadsperBlock), 0, 0, dOData);
|
||||
|
||||
// Copy result from device to host
|
||||
HIP_CHECK(hipMemcpy(hOData, dOData, memSize, hipMemcpyDeviceToHost));
|
||||
REQUIRE(hOData[0] == initial_val+
|
||||
static_cast<T>(INCREMENT_VALUE*(ThreadsperBlock*numBlocks)));
|
||||
REQUIRE(hOData[0] ==
|
||||
initial_val + static_cast<T>(INCREMENT_VALUE * (ThreadsperBlock * numBlocks)));
|
||||
|
||||
// Cleanup memory
|
||||
free(hOData);
|
||||
@@ -102,8 +91,7 @@ bool atomictest_manywaves(const T& initial_val) {
|
||||
return true;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
bool atomictestnoret_manywaves(const T& initial_val) {
|
||||
template <typename T> bool atomictestnoret_manywaves(const T& initial_val) {
|
||||
unsigned int ThreadsperBlock = 10;
|
||||
unsigned int numBlocks = 1;
|
||||
T memSize = sizeof(T);
|
||||
@@ -115,13 +103,11 @@ bool atomictestnoret_manywaves(const T& initial_val) {
|
||||
HIP_CHECK(hipMemcpy(dOData, hOData, memSize, hipMemcpyHostToDevice));
|
||||
|
||||
// execute the kernel
|
||||
hipLaunchKernelGGL(atomicnoret_manywaves, dim3(numBlocks),
|
||||
dim3(ThreadsperBlock), 0, 0, dOData);
|
||||
hipLaunchKernelGGL(atomicnoret_manywaves, dim3(numBlocks), dim3(ThreadsperBlock), 0, 0, dOData);
|
||||
|
||||
// Copy result from device to host
|
||||
HIP_CHECK(hipMemcpy(hOData, dOData, memSize, hipMemcpyDeviceToHost));
|
||||
REQUIRE(hOData[0] == initial_val+
|
||||
(INCREMENT_VALUE*(ThreadsperBlock*numBlocks)));
|
||||
REQUIRE(hOData[0] == initial_val + (INCREMENT_VALUE * (ThreadsperBlock * numBlocks)));
|
||||
|
||||
// Cleanup memory
|
||||
free(hOData);
|
||||
@@ -130,8 +116,7 @@ bool atomictestnoret_manywaves(const T& initial_val) {
|
||||
return true;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
bool atomictest_simple(const T& initial_val) {
|
||||
template <typename T> bool atomictest_simple(const T& initial_val) {
|
||||
unsigned int ThreadsperBlock = 1;
|
||||
unsigned int numBlocks = 1;
|
||||
T memSize = sizeof(T);
|
||||
@@ -143,12 +128,11 @@ bool atomictest_simple(const T& initial_val) {
|
||||
HIP_CHECK(hipMemcpy(dOData, hOData, memSize, hipMemcpyHostToDevice));
|
||||
|
||||
// execute the kernel
|
||||
hipLaunchKernelGGL(atomic_simple, dim3(numBlocks),
|
||||
dim3(ThreadsperBlock), 0, 0, dOData);
|
||||
hipLaunchKernelGGL(atomic_simple, dim3(numBlocks), dim3(ThreadsperBlock), 0, 0, dOData);
|
||||
|
||||
// Copy result from device to host
|
||||
HIP_CHECK(hipMemcpy(hOData, dOData, memSize, hipMemcpyDeviceToHost));
|
||||
REQUIRE(hOData[0] == initial_val+INCREMENT_VALUE);
|
||||
REQUIRE(hOData[0] == initial_val + INCREMENT_VALUE);
|
||||
|
||||
// Cleanup memory
|
||||
free(hOData);
|
||||
@@ -157,8 +141,7 @@ bool atomictest_simple(const T& initial_val) {
|
||||
return true;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
bool atomictestnoret_simple(const T& initial_val) {
|
||||
template <typename T> bool atomictestnoret_simple(const T& initial_val) {
|
||||
unsigned int ThreadsperBlock = 1;
|
||||
unsigned int numBlocks = 1;
|
||||
T memSize = sizeof(T);
|
||||
@@ -170,12 +153,11 @@ bool atomictestnoret_simple(const T& initial_val) {
|
||||
HIP_CHECK(hipMemcpy(dOData, hOData, memSize, hipMemcpyHostToDevice));
|
||||
|
||||
// execute the kernel
|
||||
hipLaunchKernelGGL(atomicnoret_simple, dim3(numBlocks),
|
||||
dim3(ThreadsperBlock), 0, 0, dOData);
|
||||
hipLaunchKernelGGL(atomicnoret_simple, dim3(numBlocks), dim3(ThreadsperBlock), 0, 0, dOData);
|
||||
|
||||
// Copy result from device to host
|
||||
HIP_CHECK(hipMemcpy(hOData, dOData, memSize, hipMemcpyDeviceToHost));
|
||||
REQUIRE(hOData[0] == initial_val+INCREMENT_VALUE);
|
||||
REQUIRE(hOData[0] == initial_val + INCREMENT_VALUE);
|
||||
|
||||
// Cleanup memory
|
||||
free(hOData);
|
||||
@@ -189,30 +171,24 @@ TEST_CASE("Unit_hipTestAtomicAdd") {
|
||||
|
||||
SECTION("atomic tests with many waves") {
|
||||
REQUIRE(TestPassed == atomictest_manywaves<int>(INT_INITIAL_VALUE));
|
||||
REQUIRE(TestPassed ==
|
||||
atomictest_manywaves<unsigned int>(UNSIGNED_INITIAL_VALUE));
|
||||
REQUIRE(TestPassed == atomictest_manywaves<unsigned int>(UNSIGNED_INITIAL_VALUE));
|
||||
REQUIRE(TestPassed == atomictest_manywaves<float>(FLOAT_INITIAL_VALUE));
|
||||
#if HT_AMD
|
||||
REQUIRE(TestPassed ==
|
||||
atomictest_manywaves<uint64_t>(LONG_INITIAL_VALUE));
|
||||
REQUIRE(TestPassed ==
|
||||
atomictest_manywaves<double>(DOUBLE_INITIAL_VALUE));
|
||||
#endif
|
||||
#if HT_AMD
|
||||
REQUIRE(TestPassed == atomictest_manywaves<uint64_t>(LONG_INITIAL_VALUE));
|
||||
REQUIRE(TestPassed == atomictest_manywaves<double>(DOUBLE_INITIAL_VALUE));
|
||||
#endif
|
||||
}
|
||||
SECTION("atomic tests with many waves and no return") {
|
||||
REQUIRE(TestPassed ==
|
||||
atomictestnoret_manywaves<float>(FLOAT_INITIAL_VALUE));
|
||||
REQUIRE(TestPassed == atomictestnoret_manywaves<float>(FLOAT_INITIAL_VALUE));
|
||||
}
|
||||
SECTION("simple atomic tests") {
|
||||
REQUIRE(TestPassed == atomictest_simple<int>(INT_INITIAL_VALUE));
|
||||
REQUIRE(TestPassed ==
|
||||
atomictest_simple<unsigned int>(UNSIGNED_INITIAL_VALUE));
|
||||
REQUIRE(TestPassed == atomictest_simple<unsigned int>(UNSIGNED_INITIAL_VALUE));
|
||||
REQUIRE(TestPassed == atomictest_simple<float>(FLOAT_INITIAL_VALUE));
|
||||
#if HT_AMD
|
||||
REQUIRE(TestPassed ==
|
||||
atomictest_simple<uint64_t>(LONG_INITIAL_VALUE));
|
||||
#if HT_AMD
|
||||
REQUIRE(TestPassed == atomictest_simple<uint64_t>(LONG_INITIAL_VALUE));
|
||||
REQUIRE(TestPassed == atomictest_simple<double>(DOUBLE_INITIAL_VALUE));
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
SECTION("Simple atomic test with no return") {
|
||||
REQUIRE(TestPassed == atomictestnoret_simple<float>(FLOAT_INITIAL_VALUE));
|
||||
|
||||
Reference in New Issue
Block a user