From 8aa9f32b2326e2c54ed697442378d4c8b7415b11 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Thu, 13 Oct 2022 22:20:24 +0200 Subject: Fix plotting issue in case of 'inf' values --- scripts/benchmark/plot.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/benchmark/plot.py b/scripts/benchmark/plot.py index b0b63df3..c36f476f 100644 --- a/scripts/benchmark/plot.py +++ b/scripts/benchmark/plot.py @@ -90,7 +90,8 @@ def plot_graphs(results, file_name, num_rows, num_cols, x_ticks = [v if not (i % 2) else "" for i, v in enumerate(x_ticks)] # Sets the y-data - y_list = [[r[y_key] if y_key in r.keys() else 0 for r in result] for y_key in y_keys[index]] + y_list = [[r[y_key] if y_key in r.keys() and not isinstance(r[y_key], str) else 0 for r in result] + for y_key in y_keys[index]] y_max = [max(y) if len(y) else 1 for y in y_list] y_max = max(y_max) if len(y_list) > 0 else 1 -- cgit v1.2.3 From 374eba3ee22f5ee3866420afbe31d8a71a47bc9a Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Thu, 13 Oct 2022 22:24:35 +0200 Subject: Fix plotting issue with a single row or column --- scripts/benchmark/plot.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/benchmark/plot.py b/scripts/benchmark/plot.py index c36f476f..2cf5d04d 100644 --- a/scripts/benchmark/plot.py +++ b/scripts/benchmark/plot.py @@ -76,7 +76,12 @@ def plot_graphs(results, file_name, num_rows, num_cols, for col in range(num_cols): index = row * num_cols + col result = results[index] - ax = axes[row, col] + if num_rows == 1: + ax = axes[col] + elif num_cols == 1: + ax = axes[row] + else: + ax = axes[row, col] plt.sca(ax) print("[plot] Plotting subplot %d" % index) -- cgit v1.2.3 From c7d677e4a9b7090fb8abad4af83428f03432025c Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Thu, 13 Oct 2022 22:26:26 +0200 Subject: Update changelog --- CHANGELOG | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index f815d316..7088fb49 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +Development version (next version) +- Fixes two small issues in the plotting script + Version 1.5.3 - Fix a correctness issue with DGEMM on SM 7.5 Turing GPUs - Various minor fixes and enhancements -- cgit v1.2.3 From 4f394608a28f419dfd6091c704148d9e638a26f0 Mon Sep 17 00:00:00 2001 From: "Angus, Alexander" Date: Tue, 3 Jan 2023 10:56:04 -0800 Subject: implemented changes to boost Adreno performance according to https://jira-dc.qualcomm.com/jira/browse/OSR-8731 --- src/clpp11.hpp | 8 ++++ src/database/kernels/copy/copy_32.hpp | 1 + src/kernel_preprocessor.cpp | 19 +++++++++ src/kernels/common.opencl | 6 +++ src/kernels/level1/xamax.opencl | 12 +++++- src/kernels/level1/xasum.opencl | 12 +++++- src/kernels/level1/xaxpy.opencl | 24 +++++++++-- src/kernels/level1/xcopy.opencl | 12 +++++- src/kernels/level1/xdot.opencl | 12 +++++- src/kernels/level1/xhad.opencl | 18 ++++++-- src/kernels/level1/xnrm2.opencl | 12 +++++- src/kernels/level1/xscal.opencl | 12 +++++- src/kernels/level1/xswap.opencl | 12 +++++- src/kernels/level2/xgemv.opencl | 6 ++- src/kernels/level2/xgemv_fast.opencl | 12 +++++- src/kernels/level2/xger.opencl | 6 ++- src/kernels/level2/xher.opencl | 6 ++- src/kernels/level2/xher2.opencl | 6 ++- src/kernels/level2/xtrsv.opencl | 12 +++++- src/kernels/level3/convert_hermitian.opencl | 12 +++++- src/kernels/level3/convert_symmetric.opencl | 12 +++++- src/kernels/level3/convert_triangular.opencl | 12 +++++- src/kernels/level3/copy_fast.opencl | 6 ++- src/kernels/level3/copy_pad.opencl | 36 +++++++++++++--- .../level3/invert_diagonal_blocks_part1.opencl | 6 ++- src/kernels/level3/transpose_fast.opencl | 6 ++- src/kernels/level3/transpose_pad.opencl | 36 +++++++++++++--- src/kernels/level3/xgemm_batched.opencl | 12 +++++- src/kernels/level3/xgemm_direct_batched.opencl | 48 ++++++++++++++++++---- src/kernels/level3/xgemm_direct_part3.opencl | 24 +++++++++-- src/kernels/level3/xgemm_part4.opencl | 18 ++++++-- src/kernels/levelx/col2im.opencl | 12 +++++- src/kernels/levelx/im2col.opencl | 12 +++++- src/kernels/levelx/xconvgemm_part2.opencl | 18 ++++++-- src/utilities/compile.cpp | 12 ++++-- src/utilities/utilities.cpp | 3 ++ 36 files changed, 416 insertions(+), 77 deletions(-) diff --git a/src/clpp11.hpp b/src/clpp11.hpp index 2a25606c..e5b8b4a7 100644 --- a/src/clpp11.hpp +++ b/src/clpp11.hpp @@ -365,6 +365,14 @@ class Device { return false; } + // Returns the Qualcomm Adreno GPU version (i.e. a650, a730, a740, etc.) + std::string AdrenoVersion() const { + if (IsQualcomm()) { + return GetInfoString(CL_DEVICE_OPENCL_C_VERSION); + } + else { return std::string{""}; } + } + // Retrieves the above extra information (if present) std::string GetExtraInfo() const { if (HasExtension("cl_amd_device_attribute_query")) { return AMDBoardName(); } diff --git a/src/database/kernels/copy/copy_32.hpp b/src/database/kernels/copy/copy_32.hpp index f5ac8e30..f7ae1edb 100644 --- a/src/database/kernels/copy/copy_32.hpp +++ b/src/database/kernels/copy/copy_32.hpp @@ -135,6 +135,7 @@ const DatabaseEntry CopySingle = { { Name{"GeForce GTX 670 "}, Params{ 16, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"GeForce GTX 680 "}, Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"GeForce GTX 760 Ti OEM "}, Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Quadro K600 "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM3.5", { diff --git a/src/kernel_preprocessor.cpp b/src/kernel_preprocessor.cpp index abe0cd76..7271237a 100644 --- a/src/kernel_preprocessor.cpp +++ b/src/kernel_preprocessor.cpp @@ -371,6 +371,25 @@ std::vector PreprocessDefinesAndComments(const std::string& source, defines_string.emplace(name, value); } + // Detect #undef macros + // When USE_SUBGROUP_SHUFFLING is set, but kernel parameters do not satisfy the conditions + // for subgroup shuffle, USE_SUBGROUP_SHUFFLING needs to be unset in preprocessing + // to avoid GEMM kernel errors. See src/kernels/level3/xgemm_part1.opencl line 142. + // In this preprocessor, macros are not redefined because of behavior defined by std::map::emplace + const auto undef_pos = line.find("#undef "); + if (undef_pos != std::string::npos) { + const auto undef = line.substr(undef_pos + 7); // length of "#undef " + // checks if definition is found in defines_int and/or defines_string, then removes the definition + auto int_undef = defines_int.find(undef); + if (int_undef != defines_int.end()){ + defines_int.erase(int_undef); + } + auto string_undef = defines_string.find(undef); + if (string_undef != defines_string.end()){ + defines_string.erase(string_undef); + } + } + // Detect #ifndef blocks const auto ifndef_pos = line.find("#ifndef "); if (ifndef_pos != std::string::npos) { diff --git a/src/kernels/common.opencl b/src/kernels/common.opencl index 56c1dae4..0ec741ad 100644 --- a/src/kernels/common.opencl +++ b/src/kernels/common.opencl @@ -132,6 +132,12 @@ R"( #define USE_CL_MAD 0 #endif +// By default the workgroup size requirement is enabled. For Qualcomm devices the workgroup size +// requirement results in worse performance and is disabled (src/utilities/compile.cpp) +#ifndef RELAX_WORKGROUP_SIZE + #define RELAX_WORKGROUP_SIZE 0 +#endif + // Sets a variable to zero #if PRECISION == 3232 || PRECISION == 6464 #define SetToZero(a) a.x = ZERO; a.y = ZERO diff --git a/src/kernels/level1/xamax.opencl b/src/kernels/level1/xamax.opencl index 85cbdc86..3600b9d2 100644 --- a/src/kernels/level1/xamax.opencl +++ b/src/kernels/level1/xamax.opencl @@ -30,7 +30,11 @@ R"( // ================================================================================================= // The main reduction kernel, performing the loading and the majority of the operation -__kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) +#endif void Xamax(const int n, const __global real* restrict xgm, const int x_offset, const int x_inc, __global singlereal* maxgm, __global unsigned int* imaxgm) { @@ -96,7 +100,11 @@ void Xamax(const int n, // The epilogue reduction kernel, performing the final bit of the operation. This kernel has to // be launched with a single workgroup only. -__kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) +#endif void XamaxEpilogue(const __global singlereal* restrict maxgm, const __global unsigned int* restrict imaxgm, __global unsigned int* imax, const int imax_offset) { diff --git a/src/kernels/level1/xasum.opencl b/src/kernels/level1/xasum.opencl index 42e49d4c..875221f4 100644 --- a/src/kernels/level1/xasum.opencl +++ b/src/kernels/level1/xasum.opencl @@ -30,7 +30,11 @@ R"( // ================================================================================================= // The main reduction kernel, performing the loading and the majority of the operation -__kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) +#endif void Xasum(const int n, const __global real* restrict xgm, const int x_offset, const int x_inc, __global real* output) { @@ -73,7 +77,11 @@ void Xasum(const int n, // The epilogue reduction kernel, performing the final bit of the operation. This kernel has to // be launched with a single workgroup only. -__kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) +#endif void XasumEpilogue(const __global real* restrict input, __global real* asum, const int asum_offset) { __local real lm[WGS2]; diff --git a/src/kernels/level1/xaxpy.opencl b/src/kernels/level1/xaxpy.opencl index 772b57f3..b20ad200 100644 --- a/src/kernels/level1/xaxpy.opencl +++ b/src/kernels/level1/xaxpy.opencl @@ -22,7 +22,11 @@ R"( // ================================================================================================= // Full version of the kernel with offsets and strided accesses -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void Xaxpy(const int n, const real_arg arg_alpha, const __global real* restrict xgm, const int x_offset, const int x_inc, __global real* ygm, const int y_offset, const int y_inc) { @@ -37,7 +41,11 @@ void Xaxpy(const int n, const real_arg arg_alpha, // Faster version of the kernel without offsets and strided accesses but with if-statement. Also // assumes that 'n' is dividable by 'VW' and 'WPT'. -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void XaxpyFaster(const int n, const real_arg arg_alpha, const __global realV* restrict xgm, __global realV* ygm) { @@ -57,7 +65,11 @@ void XaxpyFaster(const int n, const real_arg arg_alpha, // Faster version of the kernel without offsets and strided accesses. Also assumes that 'n' is // dividable by 'VW', 'WGS' and 'WPT'. -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void XaxpyFastest(const int n, const real_arg arg_alpha, const __global realV* restrict xgm, __global realV* ygm) { @@ -75,7 +87,11 @@ void XaxpyFastest(const int n, const real_arg arg_alpha, // ================================================================================================= // Full version of the kernel with offsets and strided accesses: batched version -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void XaxpyBatched(const int n, const __constant real_arg* arg_alphas, const __global real* restrict xgm, const __constant int* x_offsets, const int x_inc, __global real* ygm, const __constant int* y_offsets, const int y_inc) { diff --git a/src/kernels/level1/xcopy.opencl b/src/kernels/level1/xcopy.opencl index aed80fc2..174bf0c6 100644 --- a/src/kernels/level1/xcopy.opencl +++ b/src/kernels/level1/xcopy.opencl @@ -22,7 +22,11 @@ R"( // ================================================================================================= // Full version of the kernel with offsets and strided accesses -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void Xcopy(const int n, const __global real* restrict xgm, const int x_offset, const int x_inc, __global real* ygm, const int y_offset, const int y_inc) { @@ -37,7 +41,11 @@ void Xcopy(const int n, // Faster version of the kernel without offsets and strided accesses. Also assumes that 'n' is // dividable by 'VW', 'WGS' and 'WPT'. -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void XcopyFast(const int n, const __global realV* restrict xgm, __global realV* ygm) { diff --git a/src/kernels/level1/xdot.opencl b/src/kernels/level1/xdot.opencl index 1a703d96..e14b6306 100644 --- a/src/kernels/level1/xdot.opencl +++ b/src/kernels/level1/xdot.opencl @@ -30,7 +30,11 @@ R"( // ================================================================================================= // The main reduction kernel, performing the multiplication and the majority of the sum operation -__kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) +#endif void Xdot(const int n, const __global real* restrict xgm, const int x_offset, const int x_inc, const __global real* restrict ygm, const int y_offset, const int y_inc, @@ -72,7 +76,11 @@ void Xdot(const int n, // The epilogue reduction kernel, performing the final bit of the sum operation. This kernel has to // be launched with a single workgroup only. -__kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) +#endif void XdotEpilogue(const __global real* restrict input, __global real* dot, const int dot_offset) { __local real lm[WGS2]; diff --git a/src/kernels/level1/xhad.opencl b/src/kernels/level1/xhad.opencl index 24e0c76c..aee98f91 100644 --- a/src/kernels/level1/xhad.opencl +++ b/src/kernels/level1/xhad.opencl @@ -66,7 +66,11 @@ INLINE_FUNC realV MultiplyVectorVector(realV cvec, const realV aval, const realV // ================================================================================================= // Full version of the kernel with offsets and strided accesses -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void Xhad(const int n, const real_arg arg_alpha, const real_arg arg_beta, const __global real* restrict xgm, const int x_offset, const int x_inc, const __global real* restrict ygm, const int y_offset, const int y_inc, @@ -90,7 +94,11 @@ void Xhad(const int n, const real_arg arg_alpha, const real_arg arg_beta, // Faster version of the kernel without offsets and strided accesses but with if-statement. Also // assumes that 'n' is dividable by 'VW' and 'WPT'. -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void XhadFaster(const int n, const real_arg arg_alpha, const real_arg arg_beta, const __global realV* restrict xgm, const __global realV* restrict ygm, __global realV* zgm) { @@ -117,7 +125,11 @@ void XhadFaster(const int n, const real_arg arg_alpha, const real_arg arg_beta, // Faster version of the kernel without offsets and strided accesses. Also assumes that 'n' is // dividable by 'VW', 'WGS' and 'WPT'. -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void XhadFastest(const int n, const real_arg arg_alpha, const real_arg arg_beta, const __global realV* restrict xgm, const __global realV* restrict ygm, __global realV* zgm) { diff --git a/src/kernels/level1/xnrm2.opencl b/src/kernels/level1/xnrm2.opencl index 6a81c150..fb45effb 100644 --- a/src/kernels/level1/xnrm2.opencl +++ b/src/kernels/level1/xnrm2.opencl @@ -30,7 +30,11 @@ R"( // ================================================================================================= // The main reduction kernel, performing the multiplication and the majority of the operation -__kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) +#endif void Xnrm2(const int n, const __global real* restrict xgm, const int x_offset, const int x_inc, __global real* output) { @@ -71,7 +75,11 @@ void Xnrm2(const int n, // The epilogue reduction kernel, performing the final bit of the operation. This kernel has to // be launched with a single workgroup only. -__kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) +#endif void Xnrm2Epilogue(const __global real* restrict input, __global real* nrm2, const int nrm2_offset) { __local real lm[WGS2]; diff --git a/src/kernels/level1/xscal.opencl b/src/kernels/level1/xscal.opencl index cb133e88..19ca9135 100644 --- a/src/kernels/level1/xscal.opencl +++ b/src/kernels/level1/xscal.opencl @@ -22,7 +22,11 @@ R"( // ================================================================================================= // Full version of the kernel with offsets and strided accesses -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void Xscal(const int n, const real_arg arg_alpha, __global real* xgm, const int x_offset, const int x_inc) { const real alpha = GetRealArg(arg_alpha); @@ -40,7 +44,11 @@ void Xscal(const int n, const real_arg arg_alpha, // Faster version of the kernel without offsets and strided accesses. Also assumes that 'n' is // dividable by 'VW', 'WGS' and 'WPT'. -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void XscalFast(const int n, const real_arg arg_alpha, __global realV* xgm) { const real alpha = GetRealArg(arg_alpha); diff --git a/src/kernels/level1/xswap.opencl b/src/kernels/level1/xswap.opencl index bf5b6194..a2b44de3 100644 --- a/src/kernels/level1/xswap.opencl +++ b/src/kernels/level1/xswap.opencl @@ -22,7 +22,11 @@ R"( // ================================================================================================= // Full version of the kernel with offsets and strided accesses -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void Xswap(const int n, __global real* xgm, const int x_offset, const int x_inc, __global real* ygm, const int y_offset, const int y_inc) { @@ -39,7 +43,11 @@ void Xswap(const int n, // Faster version of the kernel without offsets and strided accesses. Also assumes that 'n' is // dividable by 'VW', 'WGS' and 'WPT'. -__kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) +#endif void XswapFast(const int n, __global realV* xgm, __global realV* ygm) { diff --git a/src/kernels/level2/xgemv.opencl b/src/kernels/level2/xgemv.opencl index ba29aba6..16711aa4 100644 --- a/src/kernels/level2/xgemv.opencl +++ b/src/kernels/level2/xgemv.opencl @@ -210,7 +210,11 @@ INLINE_FUNC real LoadMatrixA(const __global real* restrict agm, const int x, con // ================================================================================================= // Full version of the kernel -__kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) +#endif void Xgemv(const int m, const int n, const real_arg arg_alpha, const real_arg arg_beta, diff --git a/src/kernels/level2/xgemv_fast.opencl b/src/kernels/level2/xgemv_fast.opencl index 45ceb36c..853d3d28 100644 --- a/src/kernels/level2/xgemv_fast.opencl +++ b/src/kernels/level2/xgemv_fast.opencl @@ -88,7 +88,11 @@ INLINE_FUNC realVF LoadMatrixAVF(const __global realVF* restrict agm, const int // --> 'a_ld' is a multiple of VW2 // --> 'a_rotated' is 0 // --> 'do_conjugate' is 0 -__kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) +#endif void XgemvFast(const int m, const int n, const real_arg arg_alpha, const real_arg arg_beta, @@ -191,7 +195,11 @@ void XgemvFast(const int m, const int n, // --> 'a_ld' is a multiple of VW3 // --> 'a_rotated' is 1 // --> 'do_conjugate' is 0 -__kernel __attribute__((reqd_work_group_size(WGS3, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS3, 1, 1))) +#endif void XgemvFastRot(const int m, const int n, const real_arg arg_alpha, const real_arg arg_beta, diff --git a/src/kernels/level2/xger.opencl b/src/kernels/level2/xger.opencl index ca6071cd..3620c66a 100644 --- a/src/kernels/level2/xger.opencl +++ b/src/kernels/level2/xger.opencl @@ -18,7 +18,11 @@ R"( // ================================================================================================= // Regular version of the rank-1 matrix update kernel (GER, GERU, GERC) -__kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1))) +#endif void Xger(const int max1, const int max2, const real_arg arg_alpha, const __global real* restrict xgm, const int x_offset, const int x_inc, diff --git a/src/kernels/level2/xher.opencl b/src/kernels/level2/xher.opencl index 8a57bdfc..9e460cd4 100644 --- a/src/kernels/level2/xher.opencl +++ b/src/kernels/level2/xher.opencl @@ -18,7 +18,11 @@ R"( // ================================================================================================= // Symmetric version of the rank-1 matrix update kernel (HER, HPR, SYR, SPR) -__kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1))) +#endif void Xher(const int n, const real_arg arg_alpha, const __global real* restrict xgm, const int x_offset, const int x_inc, diff --git a/src/kernels/level2/xher2.opencl b/src/kernels/level2/xher2.opencl index 73305149..c3e85c15 100644 --- a/src/kernels/level2/xher2.opencl +++ b/src/kernels/level2/xher2.opencl @@ -18,7 +18,11 @@ R"( // ================================================================================================= // Symmetric version of the rank-2 matrix update kernel (HER2, HPR2, SYR2, SPR2) -__kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1))) +#endif void Xher2(const int n, const real_arg arg_alpha, const __global real* restrict xgm, const int x_offset, const int x_inc, diff --git a/src/kernels/level2/xtrsv.opencl b/src/kernels/level2/xtrsv.opencl index e7b6ae79..e3b5418c 100644 --- a/src/kernels/level2/xtrsv.opencl +++ b/src/kernels/level2/xtrsv.opencl @@ -39,7 +39,11 @@ void FillVector(const int n, const int inc, const int offset, // ================================================================================================= -__kernel __attribute__((reqd_work_group_size(TRSV_BLOCK_SIZE, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(TRSV_BLOCK_SIZE, 1, 1))) +#endif void trsv_forward(int n, const __global real *A, const int a_offset, int a_ld, __global real *b, const int b_offset, int b_inc, @@ -87,7 +91,11 @@ void trsv_forward(int n, } } -__kernel __attribute__((reqd_work_group_size(TRSV_BLOCK_SIZE, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(TRSV_BLOCK_SIZE, 1, 1))) +#endif void trsv_backward(int n, const __global real *A, const int a_offset, int a_ld, __global real *b, const int b_offset, int b_inc, diff --git a/src/kernels/level3/convert_hermitian.opencl b/src/kernels/level3/convert_hermitian.opencl index 0e89b78b..b69be23d 100644 --- a/src/kernels/level3/convert_hermitian.opencl +++ b/src/kernels/level3/convert_hermitian.opencl @@ -21,7 +21,11 @@ R"( // Kernel to populate a squared hermitian matrix, given that the triangle which holds the data is // stored as the lower-triangle of the input matrix. This uses the padding kernel's parameters. -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void HermLowerToSquared(const int src_dim, const int src_ld, const int src_offset, __global const real* restrict src, @@ -60,7 +64,11 @@ void HermLowerToSquared(const int src_dim, } // Same as above, but now the matrix' data is stored in the upper-triangle -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void HermUpperToSquared(const int src_dim, const int src_ld, const int src_offset, __global const real* restrict src, diff --git a/src/kernels/level3/convert_symmetric.opencl b/src/kernels/level3/convert_symmetric.opencl index 83ecdd65..2ce17f40 100644 --- a/src/kernels/level3/convert_symmetric.opencl +++ b/src/kernels/level3/convert_symmetric.opencl @@ -20,7 +20,11 @@ R"( // Kernel to populate a squared symmetric matrix, given that the triangle which holds the data is // stored as the lower-triangle of the input matrix. This uses the padding kernel's parameters. -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void SymmLowerToSquared(const int src_dim, const int src_ld, const int src_offset, __global const real* restrict src, @@ -53,7 +57,11 @@ void SymmLowerToSquared(const int src_dim, } // Same as above, but now the matrix' data is stored in the upper-triangle -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void SymmUpperToSquared(const int src_dim, const int src_ld, const int src_offset, __global const real* restrict src, diff --git a/src/kernels/level3/convert_triangular.opencl b/src/kernels/level3/convert_triangular.opencl index a9d5e769..563f719f 100644 --- a/src/kernels/level3/convert_triangular.opencl +++ b/src/kernels/level3/convert_triangular.opencl @@ -20,7 +20,11 @@ R"( // Kernel to populate a squared triangular matrix, given that the triangle which holds the data is // stored as the lower-triangle of the input matrix. This uses the padding kernel's parameters. -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void TriaLowerToSquared(const int src_dim, const int src_ld, const int src_offset, __global const real* restrict src, @@ -55,7 +59,11 @@ void TriaLowerToSquared(const int src_dim, } // Same as above, but now the matrix' data is stored in the upper-triangle -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void TriaUpperToSquared(const int src_dim, const int src_ld, const int src_offset, __global const real* restrict src, diff --git a/src/kernels/level3/copy_fast.opencl b/src/kernels/level3/copy_fast.opencl index ef8a9017..e1a815f5 100644 --- a/src/kernels/level3/copy_fast.opencl +++ b/src/kernels/level3/copy_fast.opencl @@ -35,7 +35,11 @@ R"( // Fast copy kernel. Requires 'ld' and the number of threads in dimension 0 to be a multiple of // COPY_VW. Also requires both matrices to be of the same dimensions and without offset. -__kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) +#endif void CopyMatrixFast(const int ld, __global const realC* restrict src, __global realC* dest, diff --git a/src/kernels/level3/copy_pad.opencl b/src/kernels/level3/copy_pad.opencl index 3d389b74..6335bd81 100644 --- a/src/kernels/level3/copy_pad.opencl +++ b/src/kernels/level3/copy_pad.opencl @@ -59,7 +59,11 @@ INLINE_FUNC void _CopyPadMatrix(const int src_one, const int src_two, } // Interface to the above function -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void CopyPadMatrix(const int src_one, const int src_two, const int src_ld, const int src_offset, __global const real* restrict src, @@ -118,7 +122,11 @@ INLINE_FUNC void _CopyMatrix(const int src_one, const int src_two, } // Interface to the above function -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void CopyMatrix(const int src_one, const int src_two, const int src_ld, const int src_offset, __global const real* restrict src, @@ -138,7 +146,11 @@ void CopyMatrix(const int src_one, const int src_two, #if defined(ROUTINE_GEMMBATCHED) // Batched version of the above -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void CopyPadMatrixBatched(const int src_one, const int src_two, const int src_ld, const __constant int* src_offsets, __global const real* restrict src, @@ -156,7 +168,11 @@ void CopyPadMatrixBatched(const int src_one, const int src_two, } // Batched version of the above -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void CopyMatrixBatched(const int src_one, const int src_two, const int src_ld, const __constant int* src_offsets, __global const real* restrict src, @@ -177,7 +193,11 @@ void CopyMatrixBatched(const int src_one, const int src_two, #if defined(ROUTINE_GEMMSTRIDEDBATCHED) // Strided-batched version of the above -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void CopyPadMatrixStridedBatched(const int src_one, const int src_two, const int src_ld, const int src_offset, const int src_stride, __global const real* restrict src, @@ -195,7 +215,11 @@ void CopyPadMatrixStridedBatched(const int src_one, const int src_two, } // Strided-batched version of the above -__kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) +#endif void CopyMatrixStridedBatched(const int src_one, const int src_two, const int src_ld, const int src_offset, const int src_stride, __global const real* restrict src, diff --git a/src/kernels/level3/invert_diagonal_blocks_part1.opencl b/src/kernels/level3/invert_diagonal_blocks_part1.opencl index c1f96bd7..3df477d1 100644 --- a/src/kernels/level3/invert_diagonal_blocks_part1.opencl +++ b/src/kernels/level3/invert_diagonal_blocks_part1.opencl @@ -82,7 +82,11 @@ R"( // ================================================================================================= // Inverts a diagonal block of INTERNAL_BLOCK_SIZE by INTERNAL_BLOCK_SIZE elements in a larger matrix -__kernel __attribute__((reqd_work_group_size(INTERNAL_BLOCK_SIZE, 1, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(INTERNAL_BLOCK_SIZE, 1, 1))) +#endif void InvertDiagonalBlock(const int n, __global const real* restrict src, const int src_offset, const int src_ld, __global real* restrict dest, const int outer_block_size, const int unit_diagonal, const int is_upper) diff --git a/src/kernels/level3/transpose_fast.opencl b/src/kernels/level3/transpose_fast.opencl index 1b9fca45..e89984cc 100644 --- a/src/kernels/level3/transpose_fast.opencl +++ b/src/kernels/level3/transpose_fast.opencl @@ -36,7 +36,11 @@ R"( // Transposes and copies a matrix. Requires both matrices to be of the same dimensions and without // offset. A more general version is available in 'padtranspose.opencl'. -__kernel __attribute__((reqd_work_group_size(TRA_DIM, TRA_DIM, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(TRA_DIM, TRA_DIM, 1))) +#endif void TransposeMatrixFast(const int ld, __global const realT* restrict src, __global realT* dest, diff --git a/src/kernels/level3/transpose_pad.opencl b/src/kernels/level3/transpose_pad.opencl index e55a8b7c..31de0e62 100644 --- a/src/kernels/level3/transpose_pad.opencl +++ b/src/kernels/level3/transpose_pad.opencl @@ -84,7 +84,11 @@ INLINE_FUNC void _TransposePadMatrix(LOCAL_PTR real* tile, } // Interface to the above function -__kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#endif void TransposePadMatrix(const int src_one, const int src_two, const int src_ld, const int src_offset, __global const real* restrict src, @@ -172,7 +176,11 @@ INLINE_FUNC void _TransposeMatrix(LOCAL_PTR real* tile, } // Interface to the above function -__kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#endif void TransposeMatrix(const int src_one, const int src_two, const int src_ld, const int src_offset, __global const real* restrict src, @@ -193,7 +201,11 @@ void TransposeMatrix(const int src_one, const int src_two, #if defined(ROUTINE_GEMMBATCHED) // Batched version of the above -__kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#endif void TransposePadMatrixBatched(const int src_one, const int src_two, const int src_ld, const __constant int* src_offsets, __global const real* restrict src, @@ -212,7 +224,11 @@ void TransposePadMatrixBatched(const int src_one, const int src_two, } // Batched version of the above -__kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#endif void TransposeMatrixBatched(const int src_one, const int src_two, const int src_ld, const __constant int* src_offsets, __global const real* restrict src, @@ -234,7 +250,11 @@ void TransposeMatrixBatched(const int src_one, const int src_two, #if defined(ROUTINE_GEMMSTRIDEDBATCHED) // Strided-batched version of the above -__kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#endif void TransposePadMatrixStridedBatched(const int src_one, const int src_two, const int src_ld, const int src_offset, const int src_stride, __global const real* restrict src, @@ -253,7 +273,11 @@ void TransposePadMatrixStridedBatched(const int src_one, const int src_two, } // Strided-batched version of the above -__kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) +#endif void TransposeMatrixStridedBatched(const int src_one, const int src_two, const int src_ld, const int src_offset, const int src_stride, __global const real* restrict src, diff --git a/src/kernels/level3/xgemm_batched.opencl b/src/kernels/level3/xgemm_batched.opencl index b51e6298..e014b7a9 100644 --- a/src/kernels/level3/xgemm_batched.opencl +++ b/src/kernels/level3/xgemm_batched.opencl @@ -19,7 +19,11 @@ R"( // ================================================================================================= #if defined(ROUTINE_GEMMBATCHED) -__kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) +#endif void XgemmBatched(const int kSizeM, const int kSizeN, const int kSizeK, const __constant real_arg* arg_alphas, const __constant real_arg* arg_betas, @@ -62,7 +66,11 @@ void XgemmBatched(const int kSizeM, const int kSizeN, const int kSizeK, // ================================================================================================= #if defined(ROUTINE_GEMMSTRIDEDBATCHED) -__kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) +#endif void XgemmStridedBatched(const int kSizeM, const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, const __global realM* restrict agm, const int a_one, const int a_two, diff --git a/src/kernels/level3/xgemm_direct_batched.opencl b/src/kernels/level3/xgemm_direct_batched.opencl index d15ed31e..ec0b008b 100644 --- a/src/kernels/level3/xgemm_direct_batched.opencl +++ b/src/kernels/level3/xgemm_direct_batched.opencl @@ -20,7 +20,11 @@ R"( #if defined(ROUTINE_GEMMBATCHED) // Direct version of the batched GEMM kernel with [A, B] = [non-transposed, non-transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectBatchedNN(const int kSizeM, const int kSizeN, const int kSizeK, const __constant real_arg* arg_alphas, const __constant real_arg* arg_betas, const __global realMD* restrict agm, const __constant int* a_offsets, const int a_ld, @@ -41,7 +45,11 @@ void XgemmDirectBatchedNN(const int kSizeM, const int kSizeN, const int kSizeK, } // Direct version of the batched GEMM kernel with [A, B] = [non-transposed, transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectBatchedNT(const int kSizeM, const int kSizeN, const int kSizeK, const __constant real_arg* arg_alphas, const __constant real_arg* arg_betas, const __global realMD* restrict agm, const __constant int* a_offsets, const int a_ld, @@ -62,7 +70,11 @@ void XgemmDirectBatchedNT(const int kSizeM, const int kSizeN, const int kSizeK, } // Direct version of the batched GEMM kernel with [A, B] = [transposed, non-transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectBatchedTN(const int kSizeM, const int kSizeN, const int kSizeK, const __constant real_arg* arg_alphas, const __constant real_arg* arg_betas, const __global realMD* restrict agm, const __constant int* a_offsets, const int a_ld, @@ -83,7 +95,11 @@ void XgemmDirectBatchedTN(const int kSizeM, const int kSizeN, const int kSizeK, } // Direct version of the batched GEMM kernel with [A, B] = [transposed, transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectBatchedTT(const int kSizeM, const int kSizeN, const int kSizeK, const __constant real_arg* arg_alphas, const __constant real_arg* arg_betas, const __global realMD* restrict agm, const __constant int* a_offsets, const int a_ld, @@ -108,7 +124,11 @@ void XgemmDirectBatchedTT(const int kSizeM, const int kSizeN, const int kSizeK, #if defined(ROUTINE_GEMMSTRIDEDBATCHED) // Direct version of the strided-batched GEMM kernel with [A, B] = [non-transposed, non-transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectStridedBatchedNN(const int kSizeM, const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, const __global realMD* restrict agm, const int a_offset, const int a_ld, const int a_stride, @@ -127,7 +147,11 @@ void XgemmDirectStridedBatchedNN(const int kSizeM, const int kSizeN, const int k } // Direct version of the strided-batched GEMM kernel with [A, B] = [non-transposed, transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectStridedBatchedNT(const int kSizeM, const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, const __global realMD* restrict agm, const int a_offset, const int a_ld, const int a_stride, @@ -146,7 +170,11 @@ void XgemmDirectStridedBatchedNT(const int kSizeM, const int kSizeN, const int k } // Direct version of the strided-batched GEMM kernel with [A, B] = [transposed, non-transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectStridedBatchedTN(const int kSizeM, const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, const __global realMD* restrict agm, const int a_offset, const int a_ld, const int a_stride, @@ -165,7 +193,11 @@ void XgemmDirectStridedBatchedTN(const int kSizeM, const int kSizeN, const int k } // Direct version of the strided-batched GEMM kernel with [A, B] = [transposed, transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectStridedBatchedTT(const int kSizeM, const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, const __global realMD* restrict agm, const int a_offset, const int a_ld, const int a_stride, diff --git a/src/kernels/level3/xgemm_direct_part3.opencl b/src/kernels/level3/xgemm_direct_part3.opencl index 0822c95f..66b880e6 100644 --- a/src/kernels/level3/xgemm_direct_part3.opencl +++ b/src/kernels/level3/xgemm_direct_part3.opencl @@ -218,7 +218,11 @@ INLINE_FUNC void XgemmDirect(const int kSizeM, const int kSizeN, const int kSize // ================================================================================================= // Direct version of the GEMM kernel with [A, B] = [non-transposed, non-transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectNN(const int kSizeM, const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, const __global realMD* restrict agm, const int a_offset, const int a_ld, @@ -233,7 +237,11 @@ void XgemmDirectNN(const int kSizeM, const int kSizeN, const int kSizeK, } // Direct version of the GEMM kernel with [A, B] = [non-transposed, transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectNT(const int kSizeM, const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, const __global realMD* restrict agm, const int a_offset, const int a_ld, @@ -248,7 +256,11 @@ void XgemmDirectNT(const int kSizeM, const int kSizeN, const int kSizeK, } // Direct version of the GEMM kernel with [A, B] = [transposed, non-transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectTN(const int kSizeM, const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, const __global realMD* restrict agm, const int a_offset, const int a_ld, @@ -263,7 +275,11 @@ void XgemmDirectTN(const int kSizeM, const int kSizeN, const int kSizeK, } // Direct version of the GEMM kernel with [A, B] = [transposed, transposed] -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XgemmDirectTT(const int kSizeM, const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, const __global realMD* restrict agm, const int a_offset, const int a_ld, diff --git a/src/kernels/level3/xgemm_part4.opencl b/src/kernels/level3/xgemm_part4.opencl index b1f1ade6..a64e2efa 100644 --- a/src/kernels/level3/xgemm_part4.opencl +++ b/src/kernels/level3/xgemm_part4.opencl @@ -19,7 +19,11 @@ R"( #if defined(ROUTINE_SYRK) || defined(ROUTINE_HERK) || defined(ROUTINE_SYR2K) || defined(ROUTINE_HER2K) // Main entry point of the kernel. This is the upper-triangular version. -__kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) +#endif void XgemmUpper(const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, @@ -55,7 +59,11 @@ void XgemmUpper(const int kSizeN, const int kSizeK, } // Main entry point of the kernel. This is the lower-triangular version. -__kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) +#endif void XgemmLower(const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, @@ -95,7 +103,11 @@ void XgemmLower(const int kSizeN, const int kSizeK, #else // Main entry point of the kernel. This is the regular full version. -__kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) +#endif void Xgemm(const int kSizeM, const int kSizeN, const int kSizeK, const real_arg arg_alpha, const real_arg arg_beta, diff --git a/src/kernels/levelx/col2im.opencl b/src/kernels/levelx/col2im.opencl index 425ffbbc..fcc307c6 100644 --- a/src/kernels/levelx/col2im.opencl +++ b/src/kernels/levelx/col2im.opencl @@ -92,7 +92,11 @@ INLINE_FUNC void Xcol2im(const int input_h, const int input_w, const int channel // ================================================================================================= // Kernel flip version of the Xcol2im kernel (for convolution) -__kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) +#endif void Xcol2imKernelFlip(const int input_h, const int input_w, const int channels, const int output_h, const int output_w, const int kernel_h, const int kernel_w, @@ -113,7 +117,11 @@ void Xcol2imKernelFlip(const int input_h, const int input_w, const int channels, } // Normal version of the Xcol2im kernel (for cross-correlation) -__kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) +#endif void Xcol2imKernelNormal(const int input_h, const int input_w, const int channels, const int output_h, const int output_w, const int kernel_h, const int kernel_w, diff --git a/src/kernels/levelx/im2col.opencl b/src/kernels/levelx/im2col.opencl index 5db4cb5f..8324468e 100644 --- a/src/kernels/levelx/im2col.opencl +++ b/src/kernels/levelx/im2col.opencl @@ -74,7 +74,11 @@ INLINE_FUNC void Xim2col(const int input_h, const int input_w, const int channel // ================================================================================================= // Kernel flip version of the Xim2col kernel (for convolution) -__kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) +#endif void Xim2colKernelFlip(const int input_h, const int input_w, const int channels, const int output_h, const int output_w, const int kernel_h, const int kernel_w, @@ -91,7 +95,11 @@ void Xim2colKernelFlip(const int input_h, const int input_w, const int channels, } // Normal version of the Xim2col kernel (for cross-correlation) -__kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) +#endif void Xim2colKernelNormal(const int input_h, const int input_w, const int channels, const int output_h, const int output_w, const int kernel_h, const int kernel_w, diff --git a/src/kernels/levelx/xconvgemm_part2.opencl b/src/kernels/levelx/xconvgemm_part2.opencl index 693cb120..79c40f59 100644 --- a/src/kernels/levelx/xconvgemm_part2.opencl +++ b/src/kernels/levelx/xconvgemm_part2.opencl @@ -23,7 +23,11 @@ R"( // ConvGEMM kernel #if defined(CONVGEMM_WITH_IM2COL) -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void Xconvgemm(const int num_patches, const int num_kernels, const int patch_size, const __global realND* restrict kernelgm, const int kernel_offset, __global real* resultgm, const int result_offset, const int result_stride, @@ -285,7 +289,11 @@ INLINE_FUNC void Xconvgemm(const int num_patches, const int num_kernels, const i } #if !defined(CONVGEMM_WITH_IM2COL) -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XconvgemmFlip(const int num_patches, const int num_kernels, const int patch_size, const __global realND* restrict kernelgm, const int kernel_offset, __global real* resultgm, const int result_offset, const int result_stride, @@ -306,7 +314,11 @@ void XconvgemmFlip(const int num_patches, const int num_kernels, const int patch output_h, output_w, alm, blm, kernel_flip); } -__kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#if RELAX_WORKGROUP_SIZE == 1 + __kernel +#elif + __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) +#endif void XconvgemmNormal(const int num_patches, const int num_kernels, const int patch_size, const __global realND* restrict kernelgm, const int kernel_offset, __global real* resultgm, const int result_offset, const int result_stride, diff --git a/src/utilities/compile.cpp b/src/utilities/compile.cpp index aeb7a3e2..7170c30a 100644 --- a/src/utilities/compile.cpp +++ b/src/utilities/compile.cpp @@ -37,13 +37,13 @@ std::shared_ptr CompileFromSource( // Not all OpenCL compilers support the 'inline' keyword. The keyword is only used for devices on // which it is known to work with all OpenCL platforms. - if (device.IsNVIDIA() || device.IsARM()) { + if (device.IsNVIDIA() || device.IsARM() || device.IsQualcomm()) { header_string += "#define USE_INLINE_KEYWORD 1\n"; } // For specific devices, use the non-IEE754 compliant OpenCL mad() instruction. This can improve // performance, but might result in a reduced accuracy. - if (device.IsAMD() && device.IsGPU()) { + if ((device.IsAMD() && device.IsGPU()) || device.IsQualcomm()) { header_string += "#define USE_CL_MAD 1\n"; } @@ -54,7 +54,7 @@ std::shared_ptr CompileFromSource( // For specific devices add a global synchronisation barrier to the GEMM kernel to optimize // performance through better cache behaviour - if (device.IsARM() && device.IsGPU()) { + if ((device.IsARM() && device.IsGPU()) || device.IsQualcomm()) { header_string += "#define GLOBAL_MEM_FENCE 1\n"; } @@ -77,6 +77,12 @@ std::shared_ptr CompileFromSource( header_string += "#define SUBGROUP_SHUFFLING_NVIDIA_PRE_VOLTA 1\n"; } } + + // For Qualcomm devices, specifying the OpenCL kernel attribute reqd_work_group_size reduces performance. + // This option compiles without the workgroup size requirement and does not affect correctness. + if (device.IsQualcomm()) { + header_string += "#define RELAX_WORKGROUP_SIZE 1\n"; + } // Optionally adds a translation header from OpenCL kernels to CUDA kernels #ifdef CUDA_API diff --git a/src/utilities/utilities.cpp b/src/utilities/utilities.cpp index 29161e74..32de2e2e 100644 --- a/src/utilities/utilities.cpp +++ b/src/utilities/utilities.cpp @@ -463,6 +463,9 @@ std::string GetDeviceArchitecture(const Device& device) { else if (device.HasExtension(kKhronosAttributesAMD)) { device_architecture = device.Name(); // Name is architecture for AMD APP and AMD ROCm } + else if (device.IsQualcomm()) { // queries the Adreno GPU architecture version + device_architecture = device.AdrenoVersion(); + } // Note: no else - 'device_architecture' might be the empty string #endif -- cgit v1.2.3 From ff6a5689dff31ed3c1f1906a6b425252fd60a9ee Mon Sep 17 00:00:00 2001 From: "Angus, Alexander" Date: Thu, 12 Jan 2023 12:33:48 -0800 Subject: Adreno 730 + 740 CLBlast tuning results --- .gitignore | 2 +- Adreno_730_tuning_results.zip | Bin 0 -> 59988 bytes Adreno_740_tuning_results.zip | Bin 0 -> 59507 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 Adreno_730_tuning_results.zip create mode 100644 Adreno_740_tuning_results.zip diff --git a/.gitignore b/.gitignore index ab80cec1..d77318d2 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,4 @@ database_best.json cl.hpp opencl.hpp src/pyclblast/dist -*.egg-info +*.egg-info \ No newline at end of file diff --git a/Adreno_730_tuning_results.zip b/Adreno_730_tuning_results.zip new file mode 100644 index 00000000..6fa29af5 Binary files /dev/null and b/Adreno_730_tuning_results.zip differ diff --git a/Adreno_740_tuning_results.zip b/Adreno_740_tuning_results.zip new file mode 100644 index 00000000..6a5622b8 Binary files /dev/null and b/Adreno_740_tuning_results.zip differ -- cgit v1.2.3 From 73f49e9b3d4abc4214122e4b8c07a736e01626ee Mon Sep 17 00:00:00 2001 From: "Angus, Alexander" Date: Tue, 17 Jan 2023 08:35:29 -0800 Subject: Updated according to feedback from CNugteren --- Adreno_730_tuning_results.zip | Bin 59988 -> 0 bytes Adreno_740_tuning_results.zip | Bin 59507 -> 0 bytes CHANGELOG | 5 +++++ README.md | 2 -- src/kernels/level1/xamax.opencl | 4 ++-- src/kernels/level1/xasum.opencl | 4 ++-- src/kernels/level1/xaxpy.opencl | 8 ++++---- src/kernels/level1/xcopy.opencl | 4 ++-- src/kernels/level1/xdot.opencl | 4 ++-- src/kernels/level1/xhad.opencl | 6 +++--- src/kernels/level1/xnrm2.opencl | 4 ++-- src/kernels/level1/xscal.opencl | 4 ++-- src/kernels/level1/xswap.opencl | 4 ++-- src/kernels/level2/xgemv.opencl | 2 +- src/kernels/level2/xgemv_fast.opencl | 4 ++-- src/kernels/level2/xger.opencl | 2 +- src/kernels/level2/xher.opencl | 2 +- src/kernels/level2/xher2.opencl | 2 +- src/kernels/level2/xtrsv.opencl | 4 ++-- src/kernels/level3/convert_hermitian.opencl | 4 ++-- src/kernels/level3/convert_symmetric.opencl | 4 ++-- src/kernels/level3/convert_triangular.opencl | 4 ++-- src/kernels/level3/copy_fast.opencl | 2 +- src/kernels/level3/copy_pad.opencl | 12 ++++++------ src/kernels/level3/invert_diagonal_blocks_part1.opencl | 2 +- src/kernels/level3/transpose_fast.opencl | 2 +- src/kernels/level3/transpose_pad.opencl | 12 ++++++------ src/kernels/level3/xgemm_batched.opencl | 4 ++-- src/kernels/level3/xgemm_direct_batched.opencl | 16 ++++++++-------- src/kernels/level3/xgemm_direct_part3.opencl | 8 ++++---- src/kernels/level3/xgemm_part4.opencl | 6 +++--- src/kernels/levelx/col2im.opencl | 4 ++-- src/kernels/levelx/im2col.opencl | 4 ++-- src/kernels/levelx/xconvgemm_part2.opencl | 6 +++--- src/utilities/compile.cpp | 4 ++-- src/utilities/utilities.cpp | 2 +- 36 files changed, 82 insertions(+), 79 deletions(-) delete mode 100644 Adreno_730_tuning_results.zip delete mode 100644 Adreno_740_tuning_results.zip diff --git a/Adreno_730_tuning_results.zip b/Adreno_730_tuning_results.zip deleted file mode 100644 index 6fa29af5..00000000 Binary files a/Adreno_730_tuning_results.zip and /dev/null differ diff --git a/Adreno_740_tuning_results.zip b/Adreno_740_tuning_results.zip deleted file mode 100644 index 6a5622b8..00000000 Binary files a/Adreno_740_tuning_results.zip and /dev/null differ diff --git a/CHANGELOG b/CHANGELOG index 7088fb49..824f4520 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,10 @@ Development version (next version) - Fixes two small issues in the plotting script +- Modifications to improve performance on Qualcomm Adreno GPUs: + * Unique database entries for specific Adreno devices + * Toggle OpenCL kernel compilation options for Adreno + * New preprocessor directive RELAX_WORKGROUP_SIZE +- Fixed a bug in handling of #undef in CLBlast loop unrolling and array-to-register mapping functions Version 1.5.3 - Fix a correctness issue with DGEMM on SM 7.5 Turing GPUs diff --git a/README.md b/README.md index 834d6221..cbecc606 100644 --- a/README.md +++ b/README.md @@ -101,8 +101,6 @@ Known performance related issues: * Severe performance issues with Beignet v1.3.0 due to missing support for local memory. Please downgrade to v1.2.1 or upgrade to v1.3.1 or newer. -* Performance issues on Qualcomm Adreno GPUs. - Other known issues: * Routines returning an integer are currently not properly tested for half-precision FP16: IHAMAX/IHAMIN/IHMAX/IHMIN diff --git a/src/kernels/level1/xamax.opencl b/src/kernels/level1/xamax.opencl index 3600b9d2..06a6773b 100644 --- a/src/kernels/level1/xamax.opencl +++ b/src/kernels/level1/xamax.opencl @@ -32,7 +32,7 @@ R"( // The main reduction kernel, performing the loading and the majority of the operation #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) #endif void Xamax(const int n, @@ -102,7 +102,7 @@ void Xamax(const int n, // be launched with a single workgroup only. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) #endif void XamaxEpilogue(const __global singlereal* restrict maxgm, diff --git a/src/kernels/level1/xasum.opencl b/src/kernels/level1/xasum.opencl index 875221f4..683c6fad 100644 --- a/src/kernels/level1/xasum.opencl +++ b/src/kernels/level1/xasum.opencl @@ -32,7 +32,7 @@ R"( // The main reduction kernel, performing the loading and the majority of the operation #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) #endif void Xasum(const int n, @@ -79,7 +79,7 @@ void Xasum(const int n, // be launched with a single workgroup only. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) #endif void XasumEpilogue(const __global real* restrict input, diff --git a/src/kernels/level1/xaxpy.opencl b/src/kernels/level1/xaxpy.opencl index b20ad200..a106ed01 100644 --- a/src/kernels/level1/xaxpy.opencl +++ b/src/kernels/level1/xaxpy.opencl @@ -24,7 +24,7 @@ R"( // Full version of the kernel with offsets and strided accesses #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void Xaxpy(const int n, const real_arg arg_alpha, @@ -43,7 +43,7 @@ void Xaxpy(const int n, const real_arg arg_alpha, // assumes that 'n' is dividable by 'VW' and 'WPT'. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void XaxpyFaster(const int n, const real_arg arg_alpha, @@ -67,7 +67,7 @@ void XaxpyFaster(const int n, const real_arg arg_alpha, // dividable by 'VW', 'WGS' and 'WPT'. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void XaxpyFastest(const int n, const real_arg arg_alpha, @@ -89,7 +89,7 @@ void XaxpyFastest(const int n, const real_arg arg_alpha, // Full version of the kernel with offsets and strided accesses: batched version #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void XaxpyBatched(const int n, const __constant real_arg* arg_alphas, diff --git a/src/kernels/level1/xcopy.opencl b/src/kernels/level1/xcopy.opencl index 174bf0c6..493197af 100644 --- a/src/kernels/level1/xcopy.opencl +++ b/src/kernels/level1/xcopy.opencl @@ -24,7 +24,7 @@ R"( // Full version of the kernel with offsets and strided accesses #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void Xcopy(const int n, @@ -43,7 +43,7 @@ void Xcopy(const int n, // dividable by 'VW', 'WGS' and 'WPT'. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void XcopyFast(const int n, diff --git a/src/kernels/level1/xdot.opencl b/src/kernels/level1/xdot.opencl index e14b6306..64f6eb9d 100644 --- a/src/kernels/level1/xdot.opencl +++ b/src/kernels/level1/xdot.opencl @@ -32,7 +32,7 @@ R"( // The main reduction kernel, performing the multiplication and the majority of the sum operation #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) #endif void Xdot(const int n, @@ -78,7 +78,7 @@ void Xdot(const int n, // be launched with a single workgroup only. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) #endif void XdotEpilogue(const __global real* restrict input, diff --git a/src/kernels/level1/xhad.opencl b/src/kernels/level1/xhad.opencl index aee98f91..47bb5170 100644 --- a/src/kernels/level1/xhad.opencl +++ b/src/kernels/level1/xhad.opencl @@ -68,7 +68,7 @@ INLINE_FUNC realV MultiplyVectorVector(realV cvec, const realV aval, const realV // Full version of the kernel with offsets and strided accesses #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void Xhad(const int n, const real_arg arg_alpha, const real_arg arg_beta, @@ -96,7 +96,7 @@ void Xhad(const int n, const real_arg arg_alpha, const real_arg arg_beta, // assumes that 'n' is dividable by 'VW' and 'WPT'. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void XhadFaster(const int n, const real_arg arg_alpha, const real_arg arg_beta, @@ -127,7 +127,7 @@ void XhadFaster(const int n, const real_arg arg_alpha, const real_arg arg_beta, // dividable by 'VW', 'WGS' and 'WPT'. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void XhadFastest(const int n, const real_arg arg_alpha, const real_arg arg_beta, diff --git a/src/kernels/level1/xnrm2.opencl b/src/kernels/level1/xnrm2.opencl index fb45effb..36ea49b4 100644 --- a/src/kernels/level1/xnrm2.opencl +++ b/src/kernels/level1/xnrm2.opencl @@ -32,7 +32,7 @@ R"( // The main reduction kernel, performing the multiplication and the majority of the operation #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) #endif void Xnrm2(const int n, @@ -77,7 +77,7 @@ void Xnrm2(const int n, // be launched with a single workgroup only. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) #endif void Xnrm2Epilogue(const __global real* restrict input, diff --git a/src/kernels/level1/xscal.opencl b/src/kernels/level1/xscal.opencl index 19ca9135..e4260c7c 100644 --- a/src/kernels/level1/xscal.opencl +++ b/src/kernels/level1/xscal.opencl @@ -24,7 +24,7 @@ R"( // Full version of the kernel with offsets and strided accesses #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void Xscal(const int n, const real_arg arg_alpha, @@ -46,7 +46,7 @@ void Xscal(const int n, const real_arg arg_alpha, // dividable by 'VW', 'WGS' and 'WPT'. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void XscalFast(const int n, const real_arg arg_alpha, diff --git a/src/kernels/level1/xswap.opencl b/src/kernels/level1/xswap.opencl index a2b44de3..2d384423 100644 --- a/src/kernels/level1/xswap.opencl +++ b/src/kernels/level1/xswap.opencl @@ -24,7 +24,7 @@ R"( // Full version of the kernel with offsets and strided accesses #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void Xswap(const int n, @@ -45,7 +45,7 @@ void Xswap(const int n, // dividable by 'VW', 'WGS' and 'WPT'. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) #endif void XswapFast(const int n, diff --git a/src/kernels/level2/xgemv.opencl b/src/kernels/level2/xgemv.opencl index 16711aa4..15912a60 100644 --- a/src/kernels/level2/xgemv.opencl +++ b/src/kernels/level2/xgemv.opencl @@ -212,7 +212,7 @@ INLINE_FUNC real LoadMatrixA(const __global real* restrict agm, const int x, con // Full version of the kernel #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1))) #endif void Xgemv(const int m, const int n, diff --git a/src/kernels/level2/xgemv_fast.opencl b/src/kernels/level2/xgemv_fast.opencl index 853d3d28..46087af7 100644 --- a/src/kernels/level2/xgemv_fast.opencl +++ b/src/kernels/level2/xgemv_fast.opencl @@ -90,7 +90,7 @@ INLINE_FUNC realVF LoadMatrixAVF(const __global realVF* restrict agm, const int // --> 'do_conjugate' is 0 #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1))) #endif void XgemvFast(const int m, const int n, @@ -197,7 +197,7 @@ void XgemvFast(const int m, const int n, // --> 'do_conjugate' is 0 #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS3, 1, 1))) #endif void XgemvFastRot(const int m, const int n, diff --git a/src/kernels/level2/xger.opencl b/src/kernels/level2/xger.opencl index 3620c66a..b1fe8447 100644 --- a/src/kernels/level2/xger.opencl +++ b/src/kernels/level2/xger.opencl @@ -20,7 +20,7 @@ R"( // Regular version of the rank-1 matrix update kernel (GER, GERU, GERC) #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1))) #endif void Xger(const int max1, const int max2, diff --git a/src/kernels/level2/xher.opencl b/src/kernels/level2/xher.opencl index 9e460cd4..eac8c10a 100644 --- a/src/kernels/level2/xher.opencl +++ b/src/kernels/level2/xher.opencl @@ -20,7 +20,7 @@ R"( // Symmetric version of the rank-1 matrix update kernel (HER, HPR, SYR, SPR) #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1))) #endif void Xher(const int n, diff --git a/src/kernels/level2/xher2.opencl b/src/kernels/level2/xher2.opencl index c3e85c15..9e7f3c6c 100644 --- a/src/kernels/level2/xher2.opencl +++ b/src/kernels/level2/xher2.opencl @@ -20,7 +20,7 @@ R"( // Symmetric version of the rank-2 matrix update kernel (HER2, HPR2, SYR2, SPR2) #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1))) #endif void Xher2(const int n, diff --git a/src/kernels/level2/xtrsv.opencl b/src/kernels/level2/xtrsv.opencl index e3b5418c..7677377e 100644 --- a/src/kernels/level2/xtrsv.opencl +++ b/src/kernels/level2/xtrsv.opencl @@ -41,7 +41,7 @@ void FillVector(const int n, const int inc, const int offset, #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(TRSV_BLOCK_SIZE, 1, 1))) #endif void trsv_forward(int n, @@ -93,7 +93,7 @@ void trsv_forward(int n, #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(TRSV_BLOCK_SIZE, 1, 1))) #endif void trsv_backward(int n, diff --git a/src/kernels/level3/convert_hermitian.opencl b/src/kernels/level3/convert_hermitian.opencl index b69be23d..4bb61f4e 100644 --- a/src/kernels/level3/convert_hermitian.opencl +++ b/src/kernels/level3/convert_hermitian.opencl @@ -23,7 +23,7 @@ R"( // stored as the lower-triangle of the input matrix. This uses the padding kernel's parameters. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void HermLowerToSquared(const int src_dim, @@ -66,7 +66,7 @@ void HermLowerToSquared(const int src_dim, // Same as above, but now the matrix' data is stored in the upper-triangle #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void HermUpperToSquared(const int src_dim, diff --git a/src/kernels/level3/convert_symmetric.opencl b/src/kernels/level3/convert_symmetric.opencl index 2ce17f40..264bf9c5 100644 --- a/src/kernels/level3/convert_symmetric.opencl +++ b/src/kernels/level3/convert_symmetric.opencl @@ -22,7 +22,7 @@ R"( // stored as the lower-triangle of the input matrix. This uses the padding kernel's parameters. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void SymmLowerToSquared(const int src_dim, @@ -59,7 +59,7 @@ void SymmLowerToSquared(const int src_dim, // Same as above, but now the matrix' data is stored in the upper-triangle #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void SymmUpperToSquared(const int src_dim, diff --git a/src/kernels/level3/convert_triangular.opencl b/src/kernels/level3/convert_triangular.opencl index 563f719f..092e1cf2 100644 --- a/src/kernels/level3/convert_triangular.opencl +++ b/src/kernels/level3/convert_triangular.opencl @@ -22,7 +22,7 @@ R"( // stored as the lower-triangle of the input matrix. This uses the padding kernel's parameters. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void TriaLowerToSquared(const int src_dim, @@ -61,7 +61,7 @@ void TriaLowerToSquared(const int src_dim, // Same as above, but now the matrix' data is stored in the upper-triangle #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void TriaUpperToSquared(const int src_dim, diff --git a/src/kernels/level3/copy_fast.opencl b/src/kernels/level3/copy_fast.opencl index e1a815f5..04e4b2ab 100644 --- a/src/kernels/level3/copy_fast.opencl +++ b/src/kernels/level3/copy_fast.opencl @@ -37,7 +37,7 @@ R"( // COPY_VW. Also requires both matrices to be of the same dimensions and without offset. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) #endif void CopyMatrixFast(const int ld, diff --git a/src/kernels/level3/copy_pad.opencl b/src/kernels/level3/copy_pad.opencl index 6335bd81..dca93b76 100644 --- a/src/kernels/level3/copy_pad.opencl +++ b/src/kernels/level3/copy_pad.opencl @@ -61,7 +61,7 @@ INLINE_FUNC void _CopyPadMatrix(const int src_one, const int src_two, // Interface to the above function #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void CopyPadMatrix(const int src_one, const int src_two, @@ -124,7 +124,7 @@ INLINE_FUNC void _CopyMatrix(const int src_one, const int src_two, // Interface to the above function #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void CopyMatrix(const int src_one, const int src_two, @@ -148,7 +148,7 @@ void CopyMatrix(const int src_one, const int src_two, // Batched version of the above #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void CopyPadMatrixBatched(const int src_one, const int src_two, @@ -170,7 +170,7 @@ void CopyPadMatrixBatched(const int src_one, const int src_two, // Batched version of the above #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void CopyMatrixBatched(const int src_one, const int src_two, @@ -195,7 +195,7 @@ void CopyMatrixBatched(const int src_one, const int src_two, // Strided-batched version of the above #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void CopyPadMatrixStridedBatched(const int src_one, const int src_two, @@ -217,7 +217,7 @@ void CopyPadMatrixStridedBatched(const int src_one, const int src_two, // Strided-batched version of the above #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PAD_DIMX, PAD_DIMY, 1))) #endif void CopyMatrixStridedBatched(const int src_one, const int src_two, diff --git a/src/kernels/level3/invert_diagonal_blocks_part1.opencl b/src/kernels/level3/invert_diagonal_blocks_part1.opencl index 3df477d1..580f7b8b 100644 --- a/src/kernels/level3/invert_diagonal_blocks_part1.opencl +++ b/src/kernels/level3/invert_diagonal_blocks_part1.opencl @@ -84,7 +84,7 @@ R"( // Inverts a diagonal block of INTERNAL_BLOCK_SIZE by INTERNAL_BLOCK_SIZE elements in a larger matrix #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(INTERNAL_BLOCK_SIZE, 1, 1))) #endif void InvertDiagonalBlock(const int n, __global const real* restrict src, const int src_offset, const int src_ld, diff --git a/src/kernels/level3/transpose_fast.opencl b/src/kernels/level3/transpose_fast.opencl index e89984cc..9d1b7552 100644 --- a/src/kernels/level3/transpose_fast.opencl +++ b/src/kernels/level3/transpose_fast.opencl @@ -38,7 +38,7 @@ R"( // offset. A more general version is available in 'padtranspose.opencl'. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(TRA_DIM, TRA_DIM, 1))) #endif void TransposeMatrixFast(const int ld, diff --git a/src/kernels/level3/transpose_pad.opencl b/src/kernels/level3/transpose_pad.opencl index 31de0e62..3877a3d5 100644 --- a/src/kernels/level3/transpose_pad.opencl +++ b/src/kernels/level3/transpose_pad.opencl @@ -86,7 +86,7 @@ INLINE_FUNC void _TransposePadMatrix(LOCAL_PTR real* tile, // Interface to the above function #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) #endif void TransposePadMatrix(const int src_one, const int src_two, @@ -178,7 +178,7 @@ INLINE_FUNC void _TransposeMatrix(LOCAL_PTR real* tile, // Interface to the above function #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) #endif void TransposeMatrix(const int src_one, const int src_two, @@ -203,7 +203,7 @@ void TransposeMatrix(const int src_one, const int src_two, // Batched version of the above #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) #endif void TransposePadMatrixBatched(const int src_one, const int src_two, @@ -226,7 +226,7 @@ void TransposePadMatrixBatched(const int src_one, const int src_two, // Batched version of the above #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) #endif void TransposeMatrixBatched(const int src_one, const int src_two, @@ -252,7 +252,7 @@ void TransposeMatrixBatched(const int src_one, const int src_two, // Strided-batched version of the above #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) #endif void TransposePadMatrixStridedBatched(const int src_one, const int src_two, @@ -275,7 +275,7 @@ void TransposePadMatrixStridedBatched(const int src_one, const int src_two, // Strided-batched version of the above #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(PADTRA_TILE, PADTRA_TILE, 1))) #endif void TransposeMatrixStridedBatched(const int src_one, const int src_two, diff --git a/src/kernels/level3/xgemm_batched.opencl b/src/kernels/level3/xgemm_batched.opencl index e014b7a9..41d07d19 100644 --- a/src/kernels/level3/xgemm_batched.opencl +++ b/src/kernels/level3/xgemm_batched.opencl @@ -21,7 +21,7 @@ R"( #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) #endif void XgemmBatched(const int kSizeM, const int kSizeN, const int kSizeK, @@ -68,7 +68,7 @@ void XgemmBatched(const int kSizeM, const int kSizeN, const int kSizeK, #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) #endif void XgemmStridedBatched(const int kSizeM, const int kSizeN, const int kSizeK, diff --git a/src/kernels/level3/xgemm_direct_batched.opencl b/src/kernels/level3/xgemm_direct_batched.opencl index ec0b008b..102ae762 100644 --- a/src/kernels/level3/xgemm_direct_batched.opencl +++ b/src/kernels/level3/xgemm_direct_batched.opencl @@ -22,7 +22,7 @@ R"( // Direct version of the batched GEMM kernel with [A, B] = [non-transposed, non-transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectBatchedNN(const int kSizeM, const int kSizeN, const int kSizeK, @@ -47,7 +47,7 @@ void XgemmDirectBatchedNN(const int kSizeM, const int kSizeN, const int kSizeK, // Direct version of the batched GEMM kernel with [A, B] = [non-transposed, transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectBatchedNT(const int kSizeM, const int kSizeN, const int kSizeK, @@ -72,7 +72,7 @@ void XgemmDirectBatchedNT(const int kSizeM, const int kSizeN, const int kSizeK, // Direct version of the batched GEMM kernel with [A, B] = [transposed, non-transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectBatchedTN(const int kSizeM, const int kSizeN, const int kSizeK, @@ -97,7 +97,7 @@ void XgemmDirectBatchedTN(const int kSizeM, const int kSizeN, const int kSizeK, // Direct version of the batched GEMM kernel with [A, B] = [transposed, transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectBatchedTT(const int kSizeM, const int kSizeN, const int kSizeK, @@ -126,7 +126,7 @@ void XgemmDirectBatchedTT(const int kSizeM, const int kSizeN, const int kSizeK, // Direct version of the strided-batched GEMM kernel with [A, B] = [non-transposed, non-transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectStridedBatchedNN(const int kSizeM, const int kSizeN, const int kSizeK, @@ -149,7 +149,7 @@ void XgemmDirectStridedBatchedNN(const int kSizeM, const int kSizeN, const int k // Direct version of the strided-batched GEMM kernel with [A, B] = [non-transposed, transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectStridedBatchedNT(const int kSizeM, const int kSizeN, const int kSizeK, @@ -172,7 +172,7 @@ void XgemmDirectStridedBatchedNT(const int kSizeM, const int kSizeN, const int k // Direct version of the strided-batched GEMM kernel with [A, B] = [transposed, non-transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectStridedBatchedTN(const int kSizeM, const int kSizeN, const int kSizeK, @@ -195,7 +195,7 @@ void XgemmDirectStridedBatchedTN(const int kSizeM, const int kSizeN, const int k // Direct version of the strided-batched GEMM kernel with [A, B] = [transposed, transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectStridedBatchedTT(const int kSizeM, const int kSizeN, const int kSizeK, diff --git a/src/kernels/level3/xgemm_direct_part3.opencl b/src/kernels/level3/xgemm_direct_part3.opencl index 66b880e6..5508170e 100644 --- a/src/kernels/level3/xgemm_direct_part3.opencl +++ b/src/kernels/level3/xgemm_direct_part3.opencl @@ -220,7 +220,7 @@ INLINE_FUNC void XgemmDirect(const int kSizeM, const int kSizeN, const int kSize // Direct version of the GEMM kernel with [A, B] = [non-transposed, non-transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectNN(const int kSizeM, const int kSizeN, const int kSizeK, @@ -239,7 +239,7 @@ void XgemmDirectNN(const int kSizeM, const int kSizeN, const int kSizeK, // Direct version of the GEMM kernel with [A, B] = [non-transposed, transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectNT(const int kSizeM, const int kSizeN, const int kSizeK, @@ -258,7 +258,7 @@ void XgemmDirectNT(const int kSizeM, const int kSizeN, const int kSizeK, // Direct version of the GEMM kernel with [A, B] = [transposed, non-transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectTN(const int kSizeM, const int kSizeN, const int kSizeK, @@ -277,7 +277,7 @@ void XgemmDirectTN(const int kSizeM, const int kSizeN, const int kSizeK, // Direct version of the GEMM kernel with [A, B] = [transposed, transposed] #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XgemmDirectTT(const int kSizeM, const int kSizeN, const int kSizeK, diff --git a/src/kernels/level3/xgemm_part4.opencl b/src/kernels/level3/xgemm_part4.opencl index a64e2efa..05524337 100644 --- a/src/kernels/level3/xgemm_part4.opencl +++ b/src/kernels/level3/xgemm_part4.opencl @@ -21,7 +21,7 @@ R"( // Main entry point of the kernel. This is the upper-triangular version. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) #endif void XgemmUpper(const int kSizeN, const int kSizeK, @@ -61,7 +61,7 @@ void XgemmUpper(const int kSizeN, const int kSizeK, // Main entry point of the kernel. This is the lower-triangular version. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) #endif void XgemmLower(const int kSizeN, const int kSizeK, @@ -105,7 +105,7 @@ void XgemmLower(const int kSizeN, const int kSizeK, // Main entry point of the kernel. This is the regular full version. #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMC, NDIMC, 1))) #endif void Xgemm(const int kSizeM, const int kSizeN, const int kSizeK, diff --git a/src/kernels/levelx/col2im.opencl b/src/kernels/levelx/col2im.opencl index fcc307c6..ab0ffbfa 100644 --- a/src/kernels/levelx/col2im.opencl +++ b/src/kernels/levelx/col2im.opencl @@ -94,7 +94,7 @@ INLINE_FUNC void Xcol2im(const int input_h, const int input_w, const int channel // Kernel flip version of the Xcol2im kernel (for convolution) #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) #endif void Xcol2imKernelFlip(const int input_h, const int input_w, const int channels, @@ -119,7 +119,7 @@ void Xcol2imKernelFlip(const int input_h, const int input_w, const int channels, // Normal version of the Xcol2im kernel (for cross-correlation) #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) #endif void Xcol2imKernelNormal(const int input_h, const int input_w, const int channels, diff --git a/src/kernels/levelx/im2col.opencl b/src/kernels/levelx/im2col.opencl index 8324468e..59af38fc 100644 --- a/src/kernels/levelx/im2col.opencl +++ b/src/kernels/levelx/im2col.opencl @@ -76,7 +76,7 @@ INLINE_FUNC void Xim2col(const int input_h, const int input_w, const int channel // Kernel flip version of the Xim2col kernel (for convolution) #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) #endif void Xim2colKernelFlip(const int input_h, const int input_w, const int channels, @@ -97,7 +97,7 @@ void Xim2colKernelFlip(const int input_h, const int input_w, const int channels, // Normal version of the Xim2col kernel (for cross-correlation) #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(COPY_DIMX, COPY_DIMY, 1))) #endif void Xim2colKernelNormal(const int input_h, const int input_w, const int channels, diff --git a/src/kernels/levelx/xconvgemm_part2.opencl b/src/kernels/levelx/xconvgemm_part2.opencl index 79c40f59..38ddd7eb 100644 --- a/src/kernels/levelx/xconvgemm_part2.opencl +++ b/src/kernels/levelx/xconvgemm_part2.opencl @@ -25,7 +25,7 @@ R"( #if defined(CONVGEMM_WITH_IM2COL) #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void Xconvgemm(const int num_patches, const int num_kernels, const int patch_size, @@ -291,7 +291,7 @@ INLINE_FUNC void Xconvgemm(const int num_patches, const int num_kernels, const i #if !defined(CONVGEMM_WITH_IM2COL) #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XconvgemmFlip(const int num_patches, const int num_kernels, const int patch_size, @@ -316,7 +316,7 @@ void XconvgemmFlip(const int num_patches, const int num_kernels, const int patch #if RELAX_WORKGROUP_SIZE == 1 __kernel -#elif +#else __kernel __attribute__((reqd_work_group_size(MDIMCD, NDIMCD, 1))) #endif void XconvgemmNormal(const int num_patches, const int num_kernels, const int patch_size, diff --git a/src/utilities/compile.cpp b/src/utilities/compile.cpp index 7170c30a..59aa6107 100644 --- a/src/utilities/compile.cpp +++ b/src/utilities/compile.cpp @@ -43,7 +43,7 @@ std::shared_ptr CompileFromSource( // For specific devices, use the non-IEE754 compliant OpenCL mad() instruction. This can improve // performance, but might result in a reduced accuracy. - if ((device.IsAMD() && device.IsGPU()) || device.IsQualcomm()) { + if ((device.IsAMD() && device.IsGPU()) || (device.IsQualcomm() && device.IsGPU())) { header_string += "#define USE_CL_MAD 1\n"; } @@ -54,7 +54,7 @@ std::shared_ptr CompileFromSource( // For specific devices add a global synchronisation barrier to the GEMM kernel to optimize // performance through better cache behaviour - if ((device.IsARM() && device.IsGPU()) || device.IsQualcomm()) { + if ((device.IsARM() && device.IsGPU()) || (device.IsQualcomm() && device.IsGPU())) { header_string += "#define GLOBAL_MEM_FENCE 1\n"; } diff --git a/src/utilities/utilities.cpp b/src/utilities/utilities.cpp index 32de2e2e..fbdcf9c2 100644 --- a/src/utilities/utilities.cpp +++ b/src/utilities/utilities.cpp @@ -463,7 +463,7 @@ std::string GetDeviceArchitecture(const Device& device) { else if (device.HasExtension(kKhronosAttributesAMD)) { device_architecture = device.Name(); // Name is architecture for AMD APP and AMD ROCm } - else if (device.IsQualcomm()) { // queries the Adreno GPU architecture version + else if ((device.IsQualcomm() && device.IsGPU())) { // queries the Adreno GPU architecture version device_architecture = device.AdrenoVersion(); } // Note: no else - 'device_architecture' might be the empty string -- cgit v1.2.3 From d11b0c8b01cd871656b715fdafadf1eac63690cc Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sat, 21 Jan 2023 20:33:49 +0100 Subject: Add tuning results for Adreno 730 --- src/database/kernels/copy/copy_16.hpp | 4 ++++ src/database/kernels/copy/copy_32.hpp | 5 ++++- src/database/kernels/gemm_routine/gemm_routine_16.hpp | 4 ++++ src/database/kernels/gemm_routine/gemm_routine_32.hpp | 6 +++++- src/database/kernels/invert/invert_16.hpp | 6 +++++- src/database/kernels/invert/invert_32.hpp | 4 ++++ src/database/kernels/pad/pad_16.hpp | 4 ++++ src/database/kernels/pad/pad_32.hpp | 4 ++++ src/database/kernels/padtranspose/padtranspose_16.hpp | 4 ++++ src/database/kernels/padtranspose/padtranspose_32.hpp | 4 ++++ src/database/kernels/trsv_routine/trsv_routine_32.hpp | 4 ++++ src/database/kernels/xaxpy/xaxpy_16.hpp | 4 ++++ src/database/kernels/xaxpy/xaxpy_32.hpp | 6 +++++- src/database/kernels/xdot/xdot_16.hpp | 4 ++++ src/database/kernels/xdot/xdot_32.hpp | 4 ++++ src/database/kernels/xgemm/xgemm_16.hpp | 4 ++++ src/database/kernels/xgemm/xgemm_32.hpp | 4 ++++ src/database/kernels/xgemm_direct/xgemm_direct_16.hpp | 4 ++++ src/database/kernels/xgemm_direct/xgemm_direct_32.hpp | 4 ++++ src/database/kernels/xgemv/xgemv_16.hpp | 4 ++++ src/database/kernels/xgemv/xgemv_32.hpp | 4 ++++ src/database/kernels/xgemv_fast/xgemv_fast_16.hpp | 4 ++++ src/database/kernels/xgemv_fast/xgemv_fast_32.hpp | 4 ++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp | 4 ++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp | 4 ++++ src/database/kernels/xger/xger_16.hpp | 4 ++++ src/database/kernels/xger/xger_32.hpp | 4 ++++ 27 files changed, 111 insertions(+), 4 deletions(-) diff --git a/src/database/kernels/copy/copy_16.hpp b/src/database/kernels/copy/copy_16.hpp index 8e0c71a7..a95ace5a 100644 --- a/src/database/kernels/copy/copy_16.hpp +++ b/src/database/kernels/copy/copy_16.hpp @@ -60,6 +60,10 @@ const DatabaseEntry CopyHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 16, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 16, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/copy/copy_32.hpp b/src/database/kernels/copy/copy_32.hpp index f7ae1edb..84c333c1 100644 --- a/src/database/kernels/copy/copy_32.hpp +++ b/src/database/kernels/copy/copy_32.hpp @@ -135,7 +135,6 @@ const DatabaseEntry CopySingle = { { Name{"GeForce GTX 670 "}, Params{ 16, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"GeForce GTX 680 "}, Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"GeForce GTX 760 Ti OEM "}, Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { Name{"Quadro K600 "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM3.5", { @@ -195,6 +194,10 @@ const DatabaseEntry CopySingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 32, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/gemm_routine/gemm_routine_16.hpp b/src/database/kernels/gemm_routine/gemm_routine_16.hpp index 8a5ed76f..a998649e 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_16.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_16.hpp @@ -49,6 +49,10 @@ const DatabaseEntry GemmRoutineHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/gemm_routine/gemm_routine_32.hpp b/src/database/kernels/gemm_routine/gemm_routine_32.hpp index f6b2e302..507e8827 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_32.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_32.hpp @@ -103,12 +103,16 @@ const DatabaseEntry GemmRoutineSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/invert/invert_16.hpp b/src/database/kernels/invert/invert_16.hpp index 1e8ab3e7..e1837a77 100644 --- a/src/database/kernels/invert/invert_16.hpp +++ b/src/database/kernels/invert/invert_16.hpp @@ -41,12 +41,16 @@ const DatabaseEntry InvertHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/invert/invert_32.hpp b/src/database/kernels/invert/invert_32.hpp index db1bf5f9..777762d9 100644 --- a/src/database/kernels/invert/invert_32.hpp +++ b/src/database/kernels/invert/invert_32.hpp @@ -92,6 +92,10 @@ const DatabaseEntry InvertSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/pad/pad_16.hpp b/src/database/kernels/pad/pad_16.hpp index c70cded1..ec49d151 100644 --- a/src/database/kernels/pad/pad_16.hpp +++ b/src/database/kernels/pad/pad_16.hpp @@ -60,6 +60,10 @@ const DatabaseEntry PadHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/pad/pad_32.hpp b/src/database/kernels/pad/pad_32.hpp index 3970fc9d..90ccda94 100644 --- a/src/database/kernels/pad/pad_32.hpp +++ b/src/database/kernels/pad/pad_32.hpp @@ -193,6 +193,10 @@ const DatabaseEntry PadSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/padtranspose/padtranspose_16.hpp b/src/database/kernels/padtranspose/padtranspose_16.hpp index 6703db13..7e9acf70 100644 --- a/src/database/kernels/padtranspose/padtranspose_16.hpp +++ b/src/database/kernels/padtranspose/padtranspose_16.hpp @@ -60,6 +60,10 @@ const DatabaseEntry PadtransposeHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/padtranspose/padtranspose_32.hpp b/src/database/kernels/padtranspose/padtranspose_32.hpp index 6af183e2..4b3f4a5b 100644 --- a/src/database/kernels/padtranspose/padtranspose_32.hpp +++ b/src/database/kernels/padtranspose/padtranspose_32.hpp @@ -192,6 +192,10 @@ const DatabaseEntry PadtransposeSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/trsv_routine/trsv_routine_32.hpp b/src/database/kernels/trsv_routine/trsv_routine_32.hpp index b9ddd5c9..35fe6da7 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_32.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_32.hpp @@ -84,6 +84,10 @@ const DatabaseEntry TrsvRoutineSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xaxpy/xaxpy_16.hpp b/src/database/kernels/xaxpy/xaxpy_16.hpp index 29b321e4..94357f46 100644 --- a/src/database/kernels/xaxpy/xaxpy_16.hpp +++ b/src/database/kernels/xaxpy/xaxpy_16.hpp @@ -60,6 +60,10 @@ const DatabaseEntry XaxpyHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xaxpy/xaxpy_32.hpp b/src/database/kernels/xaxpy/xaxpy_32.hpp index 33ffdbfd..5a999af2 100644 --- a/src/database/kernels/xaxpy/xaxpy_32.hpp +++ b/src/database/kernels/xaxpy/xaxpy_32.hpp @@ -193,12 +193,16 @@ const DatabaseEntry XaxpySingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 4, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xdot/xdot_16.hpp b/src/database/kernels/xdot/xdot_16.hpp index bfc70ccd..75ed7ec9 100644 --- a/src/database/kernels/xdot/xdot_16.hpp +++ b/src/database/kernels/xdot/xdot_16.hpp @@ -60,6 +60,10 @@ const DatabaseEntry XdotHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xdot/xdot_32.hpp b/src/database/kernels/xdot/xdot_32.hpp index 45e84d59..0724dd37 100644 --- a/src/database/kernels/xdot/xdot_32.hpp +++ b/src/database/kernels/xdot/xdot_32.hpp @@ -176,6 +176,10 @@ const DatabaseEntry XdotSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemm/xgemm_16.hpp b/src/database/kernels/xgemm/xgemm_16.hpp index d6cb5eb2..c739578c 100644 --- a/src/database/kernels/xgemm/xgemm_16.hpp +++ b/src/database/kernels/xgemm/xgemm_16.hpp @@ -55,6 +55,10 @@ const DatabaseEntry XgemmHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 1, 32, 2, 8, 8, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 1, 32, 2, 32, 32, 128, 8, 8, 128, 0, 0, 0, 1, 2, 8 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 32, 32, 128, 8, 8, 128, 0, 0, 0, 1, 2, 8 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemm/xgemm_32.hpp b/src/database/kernels/xgemm/xgemm_32.hpp index 8c5c4e43..605a8e77 100644 --- a/src/database/kernels/xgemm/xgemm_32.hpp +++ b/src/database/kernels/xgemm/xgemm_32.hpp @@ -193,6 +193,10 @@ const DatabaseEntry XgemmSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 1, 32, 2, 8, 8, 32, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 4 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 128, 0, 0, 1, 0, 2, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 128, 0, 0, 1, 0, 2, 4 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp index f4106af0..e3a25d15 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp @@ -55,6 +55,10 @@ const DatabaseEntry XgemmDirectHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 16, 16, 8, 8, 1, 1, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 16, 8, 8, 1, 1, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp index 51ddcf24..d831e880 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp @@ -148,6 +148,10 @@ const DatabaseEntry XgemmDirectSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 2, 8, 8, 8, 8, 1, 1, 4, 4, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 16, 16, 8, 8, 0, 0, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 16, 16, 8, 8, 0, 0, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv/xgemv_16.hpp b/src/database/kernels/xgemv/xgemv_16.hpp index de40936f..8c57c9c2 100644 --- a/src/database/kernels/xgemv/xgemv_16.hpp +++ b/src/database/kernels/xgemv/xgemv_16.hpp @@ -46,6 +46,10 @@ const DatabaseEntry XgemvHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv/xgemv_32.hpp b/src/database/kernels/xgemv/xgemv_32.hpp index 60eba923..c4f01b77 100644 --- a/src/database/kernels/xgemv/xgemv_32.hpp +++ b/src/database/kernels/xgemv/xgemv_32.hpp @@ -187,6 +187,10 @@ const DatabaseEntry XgemvSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp index d8371f47..c3ef66fd 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp @@ -46,6 +46,10 @@ const DatabaseEntry XgemvFastHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp index 5a797924..35c926e3 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp @@ -187,6 +187,10 @@ const DatabaseEntry XgemvFastSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp index dabb68b2..8420b2ea 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp @@ -45,6 +45,10 @@ const DatabaseEntry XgemvFastRotHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp index 0aaefd38..7552c778 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp @@ -150,6 +150,10 @@ const DatabaseEntry XgemvFastRotSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xger/xger_16.hpp b/src/database/kernels/xger/xger_16.hpp index e747d004..0e281308 100644 --- a/src/database/kernels/xger/xger_16.hpp +++ b/src/database/kernels/xger/xger_16.hpp @@ -59,6 +59,10 @@ const DatabaseEntry XgerHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 256, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xger/xger_32.hpp b/src/database/kernels/xger/xger_32.hpp index 4d40234f..1f3db048 100644 --- a/src/database/kernels/xger/xger_32.hpp +++ b/src/database/kernels/xger/xger_32.hpp @@ -179,6 +179,10 @@ const DatabaseEntry XgerSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 730", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default -- cgit v1.2.3 From 3ca1f5176e52ad315ba2bfc5d8c2379ae8cdf6bb Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sat, 21 Jan 2023 21:09:09 +0100 Subject: Add tuning results for Adreno 740 --- CHANGELOG | 1 + src/database/kernels/copy/copy_16.hpp | 6 +++++- src/database/kernels/copy/copy_32.hpp | 4 ++++ src/database/kernels/gemm_routine/gemm_routine_16.hpp | 4 ++++ src/database/kernels/gemm_routine/gemm_routine_32.hpp | 4 ++++ src/database/kernels/invert/invert_16.hpp | 4 ++++ src/database/kernels/invert/invert_32.hpp | 4 ++++ src/database/kernels/pad/pad_16.hpp | 4 ++++ src/database/kernels/pad/pad_32.hpp | 4 ++++ src/database/kernels/padtranspose/padtranspose_16.hpp | 4 ++++ src/database/kernels/padtranspose/padtranspose_32.hpp | 4 ++++ src/database/kernels/transpose/transpose_32.hpp | 4 ++++ src/database/kernels/trsv_routine/trsv_routine_32.hpp | 4 ++++ src/database/kernels/xaxpy/xaxpy_16.hpp | 4 ++++ src/database/kernels/xaxpy/xaxpy_32.hpp | 4 ++++ src/database/kernels/xdot/xdot_16.hpp | 4 ++++ src/database/kernels/xdot/xdot_32.hpp | 4 ++++ src/database/kernels/xgemm/xgemm_16.hpp | 4 ++++ src/database/kernels/xgemm/xgemm_32.hpp | 4 ++++ src/database/kernels/xgemm_direct/xgemm_direct_16.hpp | 6 +++++- src/database/kernels/xgemm_direct/xgemm_direct_32.hpp | 4 ++++ src/database/kernels/xgemv/xgemv_16.hpp | 4 ++++ src/database/kernels/xgemv/xgemv_32.hpp | 4 ++++ src/database/kernels/xgemv_fast/xgemv_fast_16.hpp | 4 ++++ src/database/kernels/xgemv_fast/xgemv_fast_32.hpp | 4 ++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp | 4 ++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp | 4 ++++ src/database/kernels/xger/xger_16.hpp | 6 +++++- src/database/kernels/xger/xger_32.hpp | 4 ++++ 29 files changed, 116 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 824f4520..6934aca9 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,6 +5,7 @@ Development version (next version) * Toggle OpenCL kernel compilation options for Adreno * New preprocessor directive RELAX_WORKGROUP_SIZE - Fixed a bug in handling of #undef in CLBlast loop unrolling and array-to-register mapping functions +- Added tuned parameters for various devices (see doc/tuning.md) Version 1.5.3 - Fix a correctness issue with DGEMM on SM 7.5 Turing GPUs diff --git a/src/database/kernels/copy/copy_16.hpp b/src/database/kernels/copy/copy_16.hpp index a95ace5a..60817a15 100644 --- a/src/database/kernels/copy/copy_16.hpp +++ b/src/database/kernels/copy/copy_16.hpp @@ -64,12 +64,16 @@ const DatabaseEntry CopyHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 16, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 16, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 16, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 16, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/copy/copy_32.hpp b/src/database/kernels/copy/copy_32.hpp index 84c333c1..382523ca 100644 --- a/src/database/kernels/copy/copy_32.hpp +++ b/src/database/kernels/copy/copy_32.hpp @@ -198,6 +198,10 @@ const DatabaseEntry CopySingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/gemm_routine/gemm_routine_16.hpp b/src/database/kernels/gemm_routine/gemm_routine_16.hpp index a998649e..11c58a04 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_16.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_16.hpp @@ -53,6 +53,10 @@ const DatabaseEntry GemmRoutineHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/gemm_routine/gemm_routine_32.hpp b/src/database/kernels/gemm_routine/gemm_routine_32.hpp index 507e8827..1413fd04 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_32.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_32.hpp @@ -107,6 +107,10 @@ const DatabaseEntry GemmRoutineSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/invert/invert_16.hpp b/src/database/kernels/invert/invert_16.hpp index e1837a77..fbce5f53 100644 --- a/src/database/kernels/invert/invert_16.hpp +++ b/src/database/kernels/invert/invert_16.hpp @@ -45,6 +45,10 @@ const DatabaseEntry InvertHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/invert/invert_32.hpp b/src/database/kernels/invert/invert_32.hpp index 777762d9..5e96783e 100644 --- a/src/database/kernels/invert/invert_32.hpp +++ b/src/database/kernels/invert/invert_32.hpp @@ -96,6 +96,10 @@ const DatabaseEntry InvertSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/pad/pad_16.hpp b/src/database/kernels/pad/pad_16.hpp index ec49d151..521da15b 100644 --- a/src/database/kernels/pad/pad_16.hpp +++ b/src/database/kernels/pad/pad_16.hpp @@ -64,6 +64,10 @@ const DatabaseEntry PadHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/pad/pad_32.hpp b/src/database/kernels/pad/pad_32.hpp index 90ccda94..8ce53414 100644 --- a/src/database/kernels/pad/pad_32.hpp +++ b/src/database/kernels/pad/pad_32.hpp @@ -197,6 +197,10 @@ const DatabaseEntry PadSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/padtranspose/padtranspose_16.hpp b/src/database/kernels/padtranspose/padtranspose_16.hpp index 7e9acf70..e655d9ff 100644 --- a/src/database/kernels/padtranspose/padtranspose_16.hpp +++ b/src/database/kernels/padtranspose/padtranspose_16.hpp @@ -64,6 +64,10 @@ const DatabaseEntry PadtransposeHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/padtranspose/padtranspose_32.hpp b/src/database/kernels/padtranspose/padtranspose_32.hpp index 4b3f4a5b..3dd564fc 100644 --- a/src/database/kernels/padtranspose/padtranspose_32.hpp +++ b/src/database/kernels/padtranspose/padtranspose_32.hpp @@ -196,6 +196,10 @@ const DatabaseEntry PadtransposeSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/transpose/transpose_32.hpp b/src/database/kernels/transpose/transpose_32.hpp index 05e063c7..dc88aea2 100644 --- a/src/database/kernels/transpose/transpose_32.hpp +++ b/src/database/kernels/transpose/transpose_32.hpp @@ -192,6 +192,10 @@ const DatabaseEntry TransposeSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/trsv_routine/trsv_routine_32.hpp b/src/database/kernels/trsv_routine/trsv_routine_32.hpp index 35fe6da7..86b8743b 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_32.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_32.hpp @@ -88,6 +88,10 @@ const DatabaseEntry TrsvRoutineSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xaxpy/xaxpy_16.hpp b/src/database/kernels/xaxpy/xaxpy_16.hpp index 94357f46..e387f62f 100644 --- a/src/database/kernels/xaxpy/xaxpy_16.hpp +++ b/src/database/kernels/xaxpy/xaxpy_16.hpp @@ -64,6 +64,10 @@ const DatabaseEntry XaxpyHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xaxpy/xaxpy_32.hpp b/src/database/kernels/xaxpy/xaxpy_32.hpp index 5a999af2..36abd12d 100644 --- a/src/database/kernels/xaxpy/xaxpy_32.hpp +++ b/src/database/kernels/xaxpy/xaxpy_32.hpp @@ -197,6 +197,10 @@ const DatabaseEntry XaxpySingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 512, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 512, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xdot/xdot_16.hpp b/src/database/kernels/xdot/xdot_16.hpp index 75ed7ec9..bef1f01a 100644 --- a/src/database/kernels/xdot/xdot_16.hpp +++ b/src/database/kernels/xdot/xdot_16.hpp @@ -64,6 +64,10 @@ const DatabaseEntry XdotHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xdot/xdot_32.hpp b/src/database/kernels/xdot/xdot_32.hpp index 0724dd37..efd56986 100644 --- a/src/database/kernels/xdot/xdot_32.hpp +++ b/src/database/kernels/xdot/xdot_32.hpp @@ -180,6 +180,10 @@ const DatabaseEntry XdotSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemm/xgemm_16.hpp b/src/database/kernels/xgemm/xgemm_16.hpp index c739578c..5674992e 100644 --- a/src/database/kernels/xgemm/xgemm_16.hpp +++ b/src/database/kernels/xgemm/xgemm_16.hpp @@ -59,6 +59,10 @@ const DatabaseEntry XgemmHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 1, 32, 2, 32, 32, 128, 8, 8, 128, 0, 0, 0, 1, 2, 8 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 32, 32, 128, 8, 8, 128, 0, 0, 0, 1, 2, 8 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 1, 16, 2, 16, 16, 64, 8, 8, 128, 1, 0, 1, 1, 2, 8 } }, + { kDeviceNameDefault , Params{ 0, 1, 16, 2, 16, 16, 64, 8, 8, 128, 1, 0, 1, 1, 2, 8 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemm/xgemm_32.hpp b/src/database/kernels/xgemm/xgemm_32.hpp index 605a8e77..ced80a69 100644 --- a/src/database/kernels/xgemm/xgemm_32.hpp +++ b/src/database/kernels/xgemm/xgemm_32.hpp @@ -197,6 +197,10 @@ const DatabaseEntry XgemmSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 128, 0, 0, 1, 0, 2, 4 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 128, 0, 0, 1, 0, 2, 4 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 128, 0, 0, 1, 0, 2, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 128, 0, 0, 1, 0, 2, 4 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp index e3a25d15..c46ff8a3 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp @@ -59,12 +59,16 @@ const DatabaseEntry XgemmDirectHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 2, 8, 16, 8, 8, 0, 1, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 16, 8, 8, 0, 1, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp index d831e880..c9f32fbb 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp @@ -152,6 +152,10 @@ const DatabaseEntry XgemmDirectSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 16, 16, 8, 8, 0, 0, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 16, 8, 8, 0, 0, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 2, 16, 16, 8, 8, 1, 1, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv/xgemv_16.hpp b/src/database/kernels/xgemv/xgemv_16.hpp index 8c57c9c2..0304ed85 100644 --- a/src/database/kernels/xgemv/xgemv_16.hpp +++ b/src/database/kernels/xgemv/xgemv_16.hpp @@ -50,6 +50,10 @@ const DatabaseEntry XgemvHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv/xgemv_32.hpp b/src/database/kernels/xgemv/xgemv_32.hpp index c4f01b77..aa251f7f 100644 --- a/src/database/kernels/xgemv/xgemv_32.hpp +++ b/src/database/kernels/xgemv/xgemv_32.hpp @@ -191,6 +191,10 @@ const DatabaseEntry XgemvSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp index c3ef66fd..df2cf0d6 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp @@ -50,6 +50,10 @@ const DatabaseEntry XgemvFastHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp index 35c926e3..f799f3ae 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp @@ -191,6 +191,10 @@ const DatabaseEntry XgemvFastSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp index 8420b2ea..8a978e56 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp @@ -49,6 +49,10 @@ const DatabaseEntry XgemvFastRotHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 8, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 2, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp index 7552c778..44133f46 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp @@ -154,6 +154,10 @@ const DatabaseEntry XgemvFastRotSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default diff --git a/src/database/kernels/xger/xger_16.hpp b/src/database/kernels/xger/xger_16.hpp index 0e281308..4c79af0a 100644 --- a/src/database/kernels/xger/xger_16.hpp +++ b/src/database/kernels/xger/xger_16.hpp @@ -63,12 +63,16 @@ const DatabaseEntry XgerHalf = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 16, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xger/xger_32.hpp b/src/database/kernels/xger/xger_32.hpp index 1f3db048..05e10db3 100644 --- a/src/database/kernels/xger/xger_32.hpp +++ b/src/database/kernels/xger/xger_32.hpp @@ -183,6 +183,10 @@ const DatabaseEntry XgerSingle = { { Name{"QUALCOMM Adreno(TM) "}, Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "OpenCL C 3.0 Adreno(TM) 740", { + { Name{"QUALCOMM Adreno(TM) "}, Params{ 32, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Default -- cgit v1.2.3 From f4a14daf8d1e0f980f9532669647eadb91cdad65 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sat, 21 Jan 2023 21:11:38 +0100 Subject: Add tuning results for Radeon Pro 450 --- src/database/kernels/copy/copy_32.hpp | 1 + src/database/kernels/copy/copy_3232.hpp | 1 + src/database/kernels/copy/copy_64.hpp | 1 + src/database/kernels/copy/copy_6464.hpp | 1 + src/database/kernels/gemm_routine/gemm_routine_32.hpp | 5 +++-- src/database/kernels/gemm_routine/gemm_routine_3232.hpp | 1 + src/database/kernels/gemm_routine/gemm_routine_64.hpp | 3 ++- src/database/kernels/gemm_routine/gemm_routine_6464.hpp | 3 ++- src/database/kernels/invert/invert_32.hpp | 1 + src/database/kernels/invert/invert_3232.hpp | 1 + src/database/kernels/invert/invert_64.hpp | 1 + src/database/kernels/invert/invert_6464.hpp | 1 + src/database/kernels/pad/pad_32.hpp | 1 + src/database/kernels/pad/pad_3232.hpp | 1 + src/database/kernels/pad/pad_64.hpp | 1 + src/database/kernels/pad/pad_6464.hpp | 1 + src/database/kernels/padtranspose/padtranspose_32.hpp | 1 + src/database/kernels/padtranspose/padtranspose_3232.hpp | 1 + src/database/kernels/padtranspose/padtranspose_64.hpp | 1 + src/database/kernels/padtranspose/padtranspose_6464.hpp | 1 + src/database/kernels/transpose/transpose_32.hpp | 1 + src/database/kernels/transpose/transpose_3232.hpp | 1 + src/database/kernels/transpose/transpose_64.hpp | 1 + src/database/kernels/transpose/transpose_6464.hpp | 3 ++- src/database/kernels/trsv_routine/trsv_routine_32.hpp | 1 + src/database/kernels/trsv_routine/trsv_routine_3232.hpp | 1 + src/database/kernels/trsv_routine/trsv_routine_64.hpp | 1 + src/database/kernels/trsv_routine/trsv_routine_6464.hpp | 1 + src/database/kernels/xaxpy/xaxpy_32.hpp | 1 + src/database/kernels/xaxpy/xaxpy_3232.hpp | 1 + src/database/kernels/xaxpy/xaxpy_64.hpp | 3 ++- src/database/kernels/xaxpy/xaxpy_6464.hpp | 1 + src/database/kernels/xconvgemm/xconvgemm_32.hpp | 1 + src/database/kernels/xconvgemm/xconvgemm_64.hpp | 1 + src/database/kernels/xdot/xdot_32.hpp | 1 + src/database/kernels/xdot/xdot_3232.hpp | 1 + src/database/kernels/xdot/xdot_64.hpp | 1 + src/database/kernels/xdot/xdot_6464.hpp | 1 + src/database/kernels/xgemm/xgemm_32.hpp | 1 + src/database/kernels/xgemm/xgemm_3232.hpp | 1 + src/database/kernels/xgemm/xgemm_64.hpp | 3 ++- src/database/kernels/xgemm/xgemm_6464.hpp | 1 + src/database/kernels/xgemm_direct/xgemm_direct_32.hpp | 1 + src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp | 3 ++- src/database/kernels/xgemm_direct/xgemm_direct_64.hpp | 3 ++- src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp | 1 + src/database/kernels/xgemv/xgemv_32.hpp | 3 ++- src/database/kernels/xgemv/xgemv_3232.hpp | 1 + src/database/kernels/xgemv/xgemv_64.hpp | 1 + src/database/kernels/xgemv/xgemv_6464.hpp | 1 + src/database/kernels/xgemv_fast/xgemv_fast_32.hpp | 1 + src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp | 1 + src/database/kernels/xgemv_fast/xgemv_fast_64.hpp | 1 + src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp | 1 + src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp | 3 ++- src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp | 1 + src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp | 1 + src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp | 1 + src/database/kernels/xger/xger_32.hpp | 1 + src/database/kernels/xger/xger_3232.hpp | 1 + src/database/kernels/xger/xger_64.hpp | 1 + src/database/kernels/xger/xger_6464.hpp | 1 + 62 files changed, 73 insertions(+), 11 deletions(-) diff --git a/src/database/kernels/copy/copy_32.hpp b/src/database/kernels/copy/copy_32.hpp index 382523ca..75bd173a 100644 --- a/src/database/kernels/copy/copy_32.hpp +++ b/src/database/kernels/copy/copy_32.hpp @@ -56,6 +56,7 @@ const DatabaseEntry CopySingle = { { kDeviceNameDefault , Params{ 16, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/copy/copy_3232.hpp b/src/database/kernels/copy/copy_3232.hpp index 358a10bb..13bf046e 100644 --- a/src/database/kernels/copy/copy_3232.hpp +++ b/src/database/kernels/copy/copy_3232.hpp @@ -56,6 +56,7 @@ const DatabaseEntry CopyComplexSingle = { { kDeviceNameDefault , Params{ 8, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/copy/copy_64.hpp b/src/database/kernels/copy/copy_64.hpp index 5fe4a603..45fe98bd 100644 --- a/src/database/kernels/copy/copy_64.hpp +++ b/src/database/kernels/copy/copy_64.hpp @@ -48,6 +48,7 @@ const DatabaseEntry CopyDouble = { { kDeviceNameDefault , Params{ 32, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 8, 16, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/copy/copy_6464.hpp b/src/database/kernels/copy/copy_6464.hpp index 1473c93f..b04a0930 100644 --- a/src/database/kernels/copy/copy_6464.hpp +++ b/src/database/kernels/copy/copy_6464.hpp @@ -48,6 +48,7 @@ const DatabaseEntry CopyComplexDouble = { { kDeviceNameDefault , Params{ 16, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_32.hpp b/src/database/kernels/gemm_routine/gemm_routine_32.hpp index 1413fd04..17c7412b 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_32.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_32.hpp @@ -15,7 +15,8 @@ const DatabaseEntry GemmRoutineSingle = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { - { kDeviceNameDefault , Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -116,7 +117,7 @@ const DatabaseEntry GemmRoutineSingle = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_3232.hpp b/src/database/kernels/gemm_routine/gemm_routine_3232.hpp index fc33ce82..d9d16f9c 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_3232.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_3232.hpp @@ -15,6 +15,7 @@ const DatabaseEntry GemmRoutineComplexSingle = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/gemm_routine/gemm_routine_64.hpp b/src/database/kernels/gemm_routine/gemm_routine_64.hpp index d8c6c2af..c0228cfd 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_64.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_64.hpp @@ -15,7 +15,8 @@ const DatabaseEntry GemmRoutineDouble = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { - { kDeviceNameDefault , Params{ 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_6464.hpp b/src/database/kernels/gemm_routine/gemm_routine_6464.hpp index f15267ea..ce2e2802 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_6464.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_6464.hpp @@ -15,7 +15,8 @@ const DatabaseEntry GemmRoutineComplexDouble = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { - { kDeviceNameDefault , Params{ 1536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/invert/invert_32.hpp b/src/database/kernels/invert/invert_32.hpp index 5e96783e..979c51aa 100644 --- a/src/database/kernels/invert/invert_32.hpp +++ b/src/database/kernels/invert/invert_32.hpp @@ -15,6 +15,7 @@ const DatabaseEntry InvertSingle = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/invert/invert_3232.hpp b/src/database/kernels/invert/invert_3232.hpp index fff816c8..44cbe56b 100644 --- a/src/database/kernels/invert/invert_3232.hpp +++ b/src/database/kernels/invert/invert_3232.hpp @@ -15,6 +15,7 @@ const DatabaseEntry InvertComplexSingle = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/invert/invert_64.hpp b/src/database/kernels/invert/invert_64.hpp index e2cbc9e3..892952b8 100644 --- a/src/database/kernels/invert/invert_64.hpp +++ b/src/database/kernels/invert/invert_64.hpp @@ -15,6 +15,7 @@ const DatabaseEntry InvertDouble = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/invert/invert_6464.hpp b/src/database/kernels/invert/invert_6464.hpp index 7400807d..9376ad32 100644 --- a/src/database/kernels/invert/invert_6464.hpp +++ b/src/database/kernels/invert/invert_6464.hpp @@ -15,6 +15,7 @@ const DatabaseEntry InvertComplexDouble = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/pad/pad_32.hpp b/src/database/kernels/pad/pad_32.hpp index 8ce53414..23d2f5e3 100644 --- a/src/database/kernels/pad/pad_32.hpp +++ b/src/database/kernels/pad/pad_32.hpp @@ -56,6 +56,7 @@ const DatabaseEntry PadSingle = { { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/pad/pad_3232.hpp b/src/database/kernels/pad/pad_3232.hpp index 40d559ea..c4d55e02 100644 --- a/src/database/kernels/pad/pad_3232.hpp +++ b/src/database/kernels/pad/pad_3232.hpp @@ -56,6 +56,7 @@ const DatabaseEntry PadComplexSingle = { { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/pad/pad_64.hpp b/src/database/kernels/pad/pad_64.hpp index 4464adfb..a5c7aa2b 100644 --- a/src/database/kernels/pad/pad_64.hpp +++ b/src/database/kernels/pad/pad_64.hpp @@ -48,6 +48,7 @@ const DatabaseEntry PadDouble = { { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/pad/pad_6464.hpp b/src/database/kernels/pad/pad_6464.hpp index 58d82799..1b38a017 100644 --- a/src/database/kernels/pad/pad_6464.hpp +++ b/src/database/kernels/pad/pad_6464.hpp @@ -48,6 +48,7 @@ const DatabaseEntry PadComplexDouble = { { kDeviceNameDefault , Params{ 8, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_32.hpp b/src/database/kernels/padtranspose/padtranspose_32.hpp index 3dd564fc..3feba8d1 100644 --- a/src/database/kernels/padtranspose/padtranspose_32.hpp +++ b/src/database/kernels/padtranspose/padtranspose_32.hpp @@ -56,6 +56,7 @@ const DatabaseEntry PadtransposeSingle = { { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_3232.hpp b/src/database/kernels/padtranspose/padtranspose_3232.hpp index ac052b67..83521ed2 100644 --- a/src/database/kernels/padtranspose/padtranspose_3232.hpp +++ b/src/database/kernels/padtranspose/padtranspose_3232.hpp @@ -56,6 +56,7 @@ const DatabaseEntry PadtransposeComplexSingle = { { kDeviceNameDefault , Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_64.hpp b/src/database/kernels/padtranspose/padtranspose_64.hpp index 4170dca3..fa0eb19d 100644 --- a/src/database/kernels/padtranspose/padtranspose_64.hpp +++ b/src/database/kernels/padtranspose/padtranspose_64.hpp @@ -48,6 +48,7 @@ const DatabaseEntry PadtransposeDouble = { { kDeviceNameDefault , Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_6464.hpp b/src/database/kernels/padtranspose/padtranspose_6464.hpp index 05771aa6..4d834187 100644 --- a/src/database/kernels/padtranspose/padtranspose_6464.hpp +++ b/src/database/kernels/padtranspose/padtranspose_6464.hpp @@ -48,6 +48,7 @@ const DatabaseEntry PadtransposeComplexDouble = { { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/transpose/transpose_32.hpp b/src/database/kernels/transpose/transpose_32.hpp index dc88aea2..dbeb811a 100644 --- a/src/database/kernels/transpose/transpose_32.hpp +++ b/src/database/kernels/transpose/transpose_32.hpp @@ -56,6 +56,7 @@ const DatabaseEntry TransposeSingle = { { kDeviceNameDefault , Params{ 16, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 16, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/transpose/transpose_3232.hpp b/src/database/kernels/transpose/transpose_3232.hpp index 45860700..2ad3c281 100644 --- a/src/database/kernels/transpose/transpose_3232.hpp +++ b/src/database/kernels/transpose/transpose_3232.hpp @@ -56,6 +56,7 @@ const DatabaseEntry TransposeComplexSingle = { { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/transpose/transpose_64.hpp b/src/database/kernels/transpose/transpose_64.hpp index 4bd2e192..986f8693 100644 --- a/src/database/kernels/transpose/transpose_64.hpp +++ b/src/database/kernels/transpose/transpose_64.hpp @@ -48,6 +48,7 @@ const DatabaseEntry TransposeDouble = { { kDeviceNameDefault , Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 4, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/transpose/transpose_6464.hpp b/src/database/kernels/transpose/transpose_6464.hpp index ae217641..6d542430 100644 --- a/src/database/kernels/transpose/transpose_6464.hpp +++ b/src/database/kernels/transpose/transpose_6464.hpp @@ -48,8 +48,9 @@ const DatabaseEntry TransposeComplexDouble = { { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/trsv_routine/trsv_routine_32.hpp b/src/database/kernels/trsv_routine/trsv_routine_32.hpp index 86b8743b..5360d6cf 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_32.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_32.hpp @@ -15,6 +15,7 @@ const DatabaseEntry TrsvRoutineSingle = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/trsv_routine/trsv_routine_3232.hpp b/src/database/kernels/trsv_routine/trsv_routine_3232.hpp index 171516f7..8edeaf83 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_3232.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_3232.hpp @@ -15,6 +15,7 @@ const DatabaseEntry TrsvRoutineComplexSingle = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/trsv_routine/trsv_routine_64.hpp b/src/database/kernels/trsv_routine/trsv_routine_64.hpp index 7e61a66e..97bd48c6 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_64.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_64.hpp @@ -15,6 +15,7 @@ const DatabaseEntry TrsvRoutineDouble = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/trsv_routine/trsv_routine_6464.hpp b/src/database/kernels/trsv_routine/trsv_routine_6464.hpp index 237cf685..6ab3f524 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_6464.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_6464.hpp @@ -15,6 +15,7 @@ const DatabaseEntry TrsvRoutineComplexDouble = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/xaxpy/xaxpy_32.hpp b/src/database/kernels/xaxpy/xaxpy_32.hpp index 36abd12d..8b5a41ef 100644 --- a/src/database/kernels/xaxpy/xaxpy_32.hpp +++ b/src/database/kernels/xaxpy/xaxpy_32.hpp @@ -56,6 +56,7 @@ const DatabaseEntry XaxpySingle = { { kDeviceNameDefault , Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 2, 256, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xaxpy/xaxpy_3232.hpp b/src/database/kernels/xaxpy/xaxpy_3232.hpp index fff1d8db..1e811de3 100644 --- a/src/database/kernels/xaxpy/xaxpy_3232.hpp +++ b/src/database/kernels/xaxpy/xaxpy_3232.hpp @@ -56,6 +56,7 @@ const DatabaseEntry XaxpyComplexSingle = { { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 8, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xaxpy/xaxpy_64.hpp b/src/database/kernels/xaxpy/xaxpy_64.hpp index 7df4fbfa..b70885b7 100644 --- a/src/database/kernels/xaxpy/xaxpy_64.hpp +++ b/src/database/kernels/xaxpy/xaxpy_64.hpp @@ -48,8 +48,9 @@ const DatabaseEntry XaxpyDouble = { { kDeviceNameDefault , Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 2, 128, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 128, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xaxpy/xaxpy_6464.hpp b/src/database/kernels/xaxpy/xaxpy_6464.hpp index 1844df9f..8d4d9758 100644 --- a/src/database/kernels/xaxpy/xaxpy_6464.hpp +++ b/src/database/kernels/xaxpy/xaxpy_6464.hpp @@ -48,6 +48,7 @@ const DatabaseEntry XaxpyComplexDouble = { { kDeviceNameDefault , Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xconvgemm/xconvgemm_32.hpp b/src/database/kernels/xconvgemm/xconvgemm_32.hpp index fb848e6e..814c46e5 100644 --- a/src/database/kernels/xconvgemm/xconvgemm_32.hpp +++ b/src/database/kernels/xconvgemm/xconvgemm_32.hpp @@ -15,6 +15,7 @@ const DatabaseEntry XconvgemmSingle = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 8, 16, 16, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 16, 32, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/xconvgemm/xconvgemm_64.hpp b/src/database/kernels/xconvgemm/xconvgemm_64.hpp index 25cc256f..407d3eff 100644 --- a/src/database/kernels/xconvgemm/xconvgemm_64.hpp +++ b/src/database/kernels/xconvgemm/xconvgemm_64.hpp @@ -15,6 +15,7 @@ const DatabaseEntry XconvgemmDouble = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 8, 32, 8, 8, 0, 0, 1, 4, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { diff --git a/src/database/kernels/xdot/xdot_32.hpp b/src/database/kernels/xdot/xdot_32.hpp index efd56986..394dce19 100644 --- a/src/database/kernels/xdot/xdot_32.hpp +++ b/src/database/kernels/xdot/xdot_32.hpp @@ -52,6 +52,7 @@ const DatabaseEntry XdotSingle = { { kDeviceNameDefault , Params{ 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xdot/xdot_3232.hpp b/src/database/kernels/xdot/xdot_3232.hpp index b5a5f5b3..03c4b8ed 100644 --- a/src/database/kernels/xdot/xdot_3232.hpp +++ b/src/database/kernels/xdot/xdot_3232.hpp @@ -52,6 +52,7 @@ const DatabaseEntry XdotComplexSingle = { { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xdot/xdot_64.hpp b/src/database/kernels/xdot/xdot_64.hpp index 51663205..bc49aa62 100644 --- a/src/database/kernels/xdot/xdot_64.hpp +++ b/src/database/kernels/xdot/xdot_64.hpp @@ -44,6 +44,7 @@ const DatabaseEntry XdotDouble = { { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 64, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xdot/xdot_6464.hpp b/src/database/kernels/xdot/xdot_6464.hpp index 001f5fb0..4301abfe 100644 --- a/src/database/kernels/xdot/xdot_6464.hpp +++ b/src/database/kernels/xdot/xdot_6464.hpp @@ -44,6 +44,7 @@ const DatabaseEntry XdotComplexDouble = { { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 256, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemm/xgemm_32.hpp b/src/database/kernels/xgemm/xgemm_32.hpp index ced80a69..a9b2417f 100644 --- a/src/database/kernels/xgemm/xgemm_32.hpp +++ b/src/database/kernels/xgemm/xgemm_32.hpp @@ -56,6 +56,7 @@ const DatabaseEntry XgemmSingle = { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 2, 4 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 8, 8, 32, 8, 8, 64, 0, 0, 0, 0, 4, 4 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, } }, diff --git a/src/database/kernels/xgemm/xgemm_3232.hpp b/src/database/kernels/xgemm/xgemm_3232.hpp index 4a2dab52..ad6470da 100644 --- a/src/database/kernels/xgemm/xgemm_3232.hpp +++ b/src/database/kernels/xgemm/xgemm_3232.hpp @@ -52,6 +52,7 @@ const DatabaseEntry XgemmComplexSingle = { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 32, 0, 0, 0, 0, 4, 4 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 32, 0, 0, 0, 0, 2, 1 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 8, 8, 32, 0, 0, 0, 0, 4, 4 } }, } }, diff --git a/src/database/kernels/xgemm/xgemm_64.hpp b/src/database/kernels/xgemm/xgemm_64.hpp index 0cdb0ba4..69b16528 100644 --- a/src/database/kernels/xgemm/xgemm_64.hpp +++ b/src/database/kernels/xgemm/xgemm_64.hpp @@ -44,8 +44,9 @@ const DatabaseEntry XgemmDouble = { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 2, 1, 1, 16, 16, 32, 8, 8, 32, 0, 0, 0, 0, 2, 2 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 16, 16, 32, 16, 16, 64, 1, 1, 0, 0, 2, 1 } }, - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 32, 32, 32, 8, 8, 32, 1, 1, 0, 0, 1, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 64, 1, 1, 0, 0, 2, 4 } }, diff --git a/src/database/kernels/xgemm/xgemm_6464.hpp b/src/database/kernels/xgemm/xgemm_6464.hpp index 48590d9f..4cf5773d 100644 --- a/src/database/kernels/xgemm/xgemm_6464.hpp +++ b/src/database/kernels/xgemm/xgemm_6464.hpp @@ -44,6 +44,7 @@ const DatabaseEntry XgemmComplexDouble = { { kDeviceNameDefault , Params{ 0, 1, 16, 2, 32, 16, 32, 16, 16, 16, 1, 1, 1, 1, 1, 1 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 2, 1, 1, 16, 16, 32, 16, 16, 16, 0, 0, 0, 0, 1, 1 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 32, 0, 0, 0, 0, 2, 1 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 16, 0, 0, 0, 0, 2, 2 } }, } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp index c9f32fbb..30e62429 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp @@ -36,6 +36,7 @@ const DatabaseEntry XgemmDirectSingle = { { kDeviceNameDefault , Params{ 8, 8, 16, 8, 8, 1, 0, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 2, 16, 16, 8, 8, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 8, 8, 16, 16, 1, 1, 2, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp index 1e8e2929..a4226d5e 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp @@ -32,8 +32,9 @@ const DatabaseEntry XgemmDirectComplexSingle = { { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 2, 8, 8, 16, 16, 1, 1, 2, 1, 16, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp index 8ef4dd78..36e7a3a7 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp @@ -28,8 +28,9 @@ const DatabaseEntry XgemmDirectDouble = { { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp index afab0d63..501579ce 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp @@ -28,6 +28,7 @@ const DatabaseEntry XgemmDirectComplexDouble = { { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 2, 8, 16, 16, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv/xgemv_32.hpp b/src/database/kernels/xgemv/xgemv_32.hpp index aa251f7f..34519760 100644 --- a/src/database/kernels/xgemv/xgemv_32.hpp +++ b/src/database/kernels/xgemv/xgemv_32.hpp @@ -52,8 +52,9 @@ const DatabaseEntry XgemvSingle = { { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv/xgemv_3232.hpp b/src/database/kernels/xgemv/xgemv_3232.hpp index 880cea62..1836c3fe 100644 --- a/src/database/kernels/xgemv/xgemv_3232.hpp +++ b/src/database/kernels/xgemv/xgemv_3232.hpp @@ -52,6 +52,7 @@ const DatabaseEntry XgemvComplexSingle = { { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv/xgemv_64.hpp b/src/database/kernels/xgemv/xgemv_64.hpp index 5561eb1f..583d7294 100644 --- a/src/database/kernels/xgemv/xgemv_64.hpp +++ b/src/database/kernels/xgemv/xgemv_64.hpp @@ -44,6 +44,7 @@ const DatabaseEntry XgemvDouble = { { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv/xgemv_6464.hpp b/src/database/kernels/xgemv/xgemv_6464.hpp index 6e4f6805..2a35c978 100644 --- a/src/database/kernels/xgemv/xgemv_6464.hpp +++ b/src/database/kernels/xgemv/xgemv_6464.hpp @@ -44,6 +44,7 @@ const DatabaseEntry XgemvComplexDouble = { { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp index f799f3ae..24658d31 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp @@ -52,6 +52,7 @@ const DatabaseEntry XgemvFastSingle = { { kDeviceNameDefault , Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp index ae3352fa..d41f943c 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp @@ -52,6 +52,7 @@ const DatabaseEntry XgemvFastComplexSingle = { { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp index 3b666ad8..5a22b427 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp @@ -44,6 +44,7 @@ const DatabaseEntry XgemvFastDouble = { { kDeviceNameDefault , Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp index 0aecfc0d..e98c0743 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp @@ -44,6 +44,7 @@ const DatabaseEntry XgemvFastComplexDouble = { { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp index 44133f46..80c1ee7d 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp @@ -36,8 +36,9 @@ const DatabaseEntry XgemvFastRotSingle = { { kDeviceNameDefault , Params{ 8, 128, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp index 11f09f12..29d6caf3 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp @@ -36,6 +36,7 @@ const DatabaseEntry XgemvFastRotComplexSingle = { { kDeviceNameDefault , Params{ 8, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp index 4b8d8f53..4237efa0 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp @@ -28,6 +28,7 @@ const DatabaseEntry XgemvFastRotDouble = { { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp index 7aadced2..d921f480 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp @@ -28,6 +28,7 @@ const DatabaseEntry XgemvFastRotComplexDouble = { { kDeviceNameDefault , Params{ 4, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xger/xger_32.hpp b/src/database/kernels/xger/xger_32.hpp index 05e10db3..c3fde8c3 100644 --- a/src/database/kernels/xger/xger_32.hpp +++ b/src/database/kernels/xger/xger_32.hpp @@ -56,6 +56,7 @@ const DatabaseEntry XgerSingle = { { kDeviceNameDefault , Params{ 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 128, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xger/xger_3232.hpp b/src/database/kernels/xger/xger_3232.hpp index 175c36a8..6f910c18 100644 --- a/src/database/kernels/xger/xger_3232.hpp +++ b/src/database/kernels/xger/xger_3232.hpp @@ -56,6 +56,7 @@ const DatabaseEntry XgerComplexSingle = { { kDeviceNameDefault , Params{ 128, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 4, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xger/xger_64.hpp b/src/database/kernels/xger/xger_64.hpp index 253471bf..86707110 100644 --- a/src/database/kernels/xger/xger_64.hpp +++ b/src/database/kernels/xger/xger_64.hpp @@ -48,6 +48,7 @@ const DatabaseEntry XgerDouble = { { kDeviceNameDefault , Params{ 32, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xger/xger_6464.hpp b/src/database/kernels/xger/xger_6464.hpp index c8066a31..f1292daf 100644 --- a/src/database/kernels/xger/xger_6464.hpp +++ b/src/database/kernels/xger/xger_6464.hpp @@ -48,6 +48,7 @@ const DatabaseEntry XgerComplexDouble = { { kDeviceNameDefault , Params{ 64, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { + { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 256, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, -- cgit v1.2.3 From c9856758b3c83c53a1185f848f23b55de1c9a2cc Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sat, 21 Jan 2023 21:13:49 +0100 Subject: Add tuning results for Intel FPGA emulation device --- src/database/kernels/copy/copy_32.hpp | 3 ++- src/database/kernels/copy/copy_3232.hpp | 1 + src/database/kernels/gemm_routine/gemm_routine_32.hpp | 8 ++++++++ src/database/kernels/gemm_routine/gemm_routine_3232.hpp | 8 ++++++++ src/database/kernels/invert/invert_32.hpp | 8 ++++++++ src/database/kernels/invert/invert_3232.hpp | 8 ++++++++ src/database/kernels/pad/pad_32.hpp | 1 + src/database/kernels/pad/pad_3232.hpp | 1 + src/database/kernels/padtranspose/padtranspose_32.hpp | 1 + src/database/kernels/padtranspose/padtranspose_3232.hpp | 3 ++- src/database/kernels/transpose/transpose_32.hpp | 3 ++- src/database/kernels/transpose/transpose_3232.hpp | 8 ++++++++ src/database/kernels/trsv_routine/trsv_routine_32.hpp | 8 ++++++++ src/database/kernels/trsv_routine/trsv_routine_3232.hpp | 8 ++++++++ src/database/kernels/xaxpy/xaxpy_32.hpp | 3 ++- src/database/kernels/xaxpy/xaxpy_3232.hpp | 1 + src/database/kernels/xconvgemm/xconvgemm_32.hpp | 8 ++++++++ src/database/kernels/xdot/xdot_32.hpp | 8 ++++++++ src/database/kernels/xdot/xdot_3232.hpp | 8 ++++++++ src/database/kernels/xgemm/xgemm_32.hpp | 5 +++-- src/database/kernels/xgemm/xgemm_3232.hpp | 3 ++- src/database/kernels/xgemm_direct/xgemm_direct_32.hpp | 8 ++++++++ src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp | 8 ++++++++ src/database/kernels/xgemv/xgemv_32.hpp | 3 ++- src/database/kernels/xgemv/xgemv_3232.hpp | 1 + src/database/kernels/xgemv_fast/xgemv_fast_32.hpp | 1 + src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp | 1 + src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp | 8 ++++++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp | 8 ++++++++ src/database/kernels/xger/xger_32.hpp | 8 ++++++++ src/database/kernels/xger/xger_3232.hpp | 8 ++++++++ 31 files changed, 151 insertions(+), 8 deletions(-) diff --git a/src/database/kernels/copy/copy_32.hpp b/src/database/kernels/copy/copy_32.hpp index 75bd173a..1dfe3d4d 100644 --- a/src/database/kernels/copy/copy_32.hpp +++ b/src/database/kernels/copy/copy_32.hpp @@ -118,8 +118,9 @@ const DatabaseEntry CopySingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 32, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/copy/copy_3232.hpp b/src/database/kernels/copy/copy_3232.hpp index 13bf046e..cd61d720 100644 --- a/src/database/kernels/copy/copy_3232.hpp +++ b/src/database/kernels/copy/copy_3232.hpp @@ -115,6 +115,7 @@ const DatabaseEntry CopyComplexSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_32.hpp b/src/database/kernels/gemm_routine/gemm_routine_32.hpp index 17c7412b..54c2362a 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_32.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_32.hpp @@ -58,6 +58,14 @@ const DatabaseEntry GemmRoutineSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 1344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM5.0", { diff --git a/src/database/kernels/gemm_routine/gemm_routine_3232.hpp b/src/database/kernels/gemm_routine/gemm_routine_3232.hpp index d9d16f9c..a50580c7 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_3232.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_3232.hpp @@ -49,6 +49,14 @@ const DatabaseEntry GemmRoutineComplexSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM5.0", { diff --git a/src/database/kernels/invert/invert_32.hpp b/src/database/kernels/invert/invert_32.hpp index 979c51aa..c6601c18 100644 --- a/src/database/kernels/invert/invert_32.hpp +++ b/src/database/kernels/invert/invert_32.hpp @@ -49,6 +49,14 @@ const DatabaseEntry InvertSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM5.0", { diff --git a/src/database/kernels/invert/invert_3232.hpp b/src/database/kernels/invert/invert_3232.hpp index 44cbe56b..fb8e72d0 100644 --- a/src/database/kernels/invert/invert_3232.hpp +++ b/src/database/kernels/invert/invert_3232.hpp @@ -48,6 +48,14 @@ const DatabaseEntry InvertComplexSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM5.0", { diff --git a/src/database/kernels/pad/pad_32.hpp b/src/database/kernels/pad/pad_32.hpp index 23d2f5e3..f9f8c4b9 100644 --- a/src/database/kernels/pad/pad_32.hpp +++ b/src/database/kernels/pad/pad_32.hpp @@ -117,6 +117,7 @@ const DatabaseEntry PadSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 32, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/pad/pad_3232.hpp b/src/database/kernels/pad/pad_3232.hpp index c4d55e02..cae4e3e2 100644 --- a/src/database/kernels/pad/pad_3232.hpp +++ b/src/database/kernels/pad/pad_3232.hpp @@ -115,6 +115,7 @@ const DatabaseEntry PadComplexSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_32.hpp b/src/database/kernels/padtranspose/padtranspose_32.hpp index 3feba8d1..d0f424d4 100644 --- a/src/database/kernels/padtranspose/padtranspose_32.hpp +++ b/src/database/kernels/padtranspose/padtranspose_32.hpp @@ -117,6 +117,7 @@ const DatabaseEntry PadtransposeSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_3232.hpp b/src/database/kernels/padtranspose/padtranspose_3232.hpp index 83521ed2..2c67c4ab 100644 --- a/src/database/kernels/padtranspose/padtranspose_3232.hpp +++ b/src/database/kernels/padtranspose/padtranspose_3232.hpp @@ -115,8 +115,9 @@ const DatabaseEntry PadtransposeComplexSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/transpose/transpose_32.hpp b/src/database/kernels/transpose/transpose_32.hpp index dbeb811a..efdd4a98 100644 --- a/src/database/kernels/transpose/transpose_32.hpp +++ b/src/database/kernels/transpose/transpose_32.hpp @@ -116,8 +116,9 @@ const DatabaseEntry TransposeSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 8, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/transpose/transpose_3232.hpp b/src/database/kernels/transpose/transpose_3232.hpp index 2ad3c281..aca897b3 100644 --- a/src/database/kernels/transpose/transpose_3232.hpp +++ b/src/database/kernels/transpose/transpose_3232.hpp @@ -112,6 +112,14 @@ const DatabaseEntry TransposeComplexSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 8, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM2.0", { diff --git a/src/database/kernels/trsv_routine/trsv_routine_32.hpp b/src/database/kernels/trsv_routine/trsv_routine_32.hpp index 5360d6cf..ccc98856 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_32.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_32.hpp @@ -49,6 +49,14 @@ const DatabaseEntry TrsvRoutineSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM6.0", { diff --git a/src/database/kernels/trsv_routine/trsv_routine_3232.hpp b/src/database/kernels/trsv_routine/trsv_routine_3232.hpp index 8edeaf83..55328375 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_3232.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_3232.hpp @@ -48,6 +48,14 @@ const DatabaseEntry TrsvRoutineComplexSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM6.0", { diff --git a/src/database/kernels/xaxpy/xaxpy_32.hpp b/src/database/kernels/xaxpy/xaxpy_32.hpp index 8b5a41ef..2a5d291f 100644 --- a/src/database/kernels/xaxpy/xaxpy_32.hpp +++ b/src/database/kernels/xaxpy/xaxpy_32.hpp @@ -117,8 +117,9 @@ const DatabaseEntry XaxpySingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 1, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 2, 1024, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 2, 1024, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 2048, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xaxpy/xaxpy_3232.hpp b/src/database/kernels/xaxpy/xaxpy_3232.hpp index 1e811de3..83af95c8 100644 --- a/src/database/kernels/xaxpy/xaxpy_3232.hpp +++ b/src/database/kernels/xaxpy/xaxpy_3232.hpp @@ -115,6 +115,7 @@ const DatabaseEntry XaxpyComplexSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xconvgemm/xconvgemm_32.hpp b/src/database/kernels/xconvgemm/xconvgemm_32.hpp index 814c46e5..764e6b7c 100644 --- a/src/database/kernels/xconvgemm/xconvgemm_32.hpp +++ b/src/database/kernels/xconvgemm/xconvgemm_32.hpp @@ -45,6 +45,14 @@ const DatabaseEntry XconvgemmSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 1, 8, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM7.0", { diff --git a/src/database/kernels/xdot/xdot_32.hpp b/src/database/kernels/xdot/xdot_32.hpp index 394dce19..a793f869 100644 --- a/src/database/kernels/xdot/xdot_32.hpp +++ b/src/database/kernels/xdot/xdot_32.hpp @@ -107,6 +107,14 @@ const DatabaseEntry XdotSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 1024, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1024, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM2.0", { diff --git a/src/database/kernels/xdot/xdot_3232.hpp b/src/database/kernels/xdot/xdot_3232.hpp index 03c4b8ed..06d8190e 100644 --- a/src/database/kernels/xdot/xdot_3232.hpp +++ b/src/database/kernels/xdot/xdot_3232.hpp @@ -105,6 +105,14 @@ const DatabaseEntry XdotComplexSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 1024, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1024, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM2.0", { diff --git a/src/database/kernels/xgemm/xgemm_32.hpp b/src/database/kernels/xgemm/xgemm_32.hpp index a9b2417f..eb437d86 100644 --- a/src/database/kernels/xgemm/xgemm_32.hpp +++ b/src/database/kernels/xgemm/xgemm_32.hpp @@ -117,8 +117,9 @@ const DatabaseEntry XgemmSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 0, 1, 16, 2, 8, 16, 64, 8, 8, 64, 0, 0, 1, 0, 1, 4 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 0, 1, 32, 2, 32, 32, 32, 32, 8, 128, 0, 0, 1, 0, 1, 4 } }, - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 32, 32, 32, 32, 8, 128, 0, 0, 1, 0, 1, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 16, 2, 8, 16, 32, 8, 8, 64, 0, 0, 1, 0, 1, 4 } }, } }, } }, @@ -207,7 +208,7 @@ const DatabaseEntry XgemmSingle = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 16, 16, 32, 1, 1, 0, 0, 4, 2 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 2, 4 } }, } }, } }, diff --git a/src/database/kernels/xgemm/xgemm_3232.hpp b/src/database/kernels/xgemm/xgemm_3232.hpp index ad6470da..f4f43030 100644 --- a/src/database/kernels/xgemm/xgemm_3232.hpp +++ b/src/database/kernels/xgemm/xgemm_3232.hpp @@ -111,8 +111,9 @@ const DatabaseEntry XgemmComplexSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 1, 4, 1, 1, 16, 16, 16, 16, 16, 64, 0, 0, 0, 0, 1, 1 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 0, 1, 32, 2, 32, 32, 32, 32, 16, 128, 1, 0, 0, 0, 1, 4 } }, - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 32, 32, 32, 32, 16, 128, 1, 0, 0, 0, 1, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 1, 1, 16, 16, 16, 16, 16, 64, 0, 0, 0, 0, 1, 1 } }, } }, } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp index 30e62429..511961cc 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp @@ -88,6 +88,14 @@ const DatabaseEntry XgemmDirectSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 2, 8, 32, 8, 8, 0, 1, 2, 1, 64, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 32, 8, 8, 0, 1, 2, 1, 64, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM2.0", { diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp index a4226d5e..739b93d9 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp @@ -82,6 +82,14 @@ const DatabaseEntry XgemmDirectComplexSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 2, 32, 32, 8, 8, 1, 1, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 32, 32, 8, 8, 1, 1, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM2.0", { diff --git a/src/database/kernels/xgemv/xgemv_32.hpp b/src/database/kernels/xgemv/xgemv_32.hpp index 34519760..6d68708f 100644 --- a/src/database/kernels/xgemv/xgemv_32.hpp +++ b/src/database/kernels/xgemv/xgemv_32.hpp @@ -111,8 +111,9 @@ const DatabaseEntry XgemvSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xgemv/xgemv_3232.hpp b/src/database/kernels/xgemv/xgemv_3232.hpp index 1836c3fe..acfbe152 100644 --- a/src/database/kernels/xgemv/xgemv_3232.hpp +++ b/src/database/kernels/xgemv/xgemv_3232.hpp @@ -109,6 +109,7 @@ const DatabaseEntry XgemvComplexSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp index 24658d31..89555c1f 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp @@ -111,6 +111,7 @@ const DatabaseEntry XgemvFastSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp index d41f943c..b38972ac 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp @@ -109,6 +109,7 @@ const DatabaseEntry XgemvFastComplexSingle = { { // Intel accelerators kDeviceTypeAccelerator, "Intel", { { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) Many Integrated Core Acceleration Card "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp index 80c1ee7d..dfcecebf 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp @@ -89,6 +89,14 @@ const DatabaseEntry XgemvFastRotSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM2.0", { diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp index 29d6caf3..d8eee271 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp @@ -87,6 +87,14 @@ const DatabaseEntry XgemvFastRotComplexSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM2.0", { diff --git a/src/database/kernels/xger/xger_32.hpp b/src/database/kernels/xger/xger_32.hpp index c3fde8c3..857c69c7 100644 --- a/src/database/kernels/xger/xger_32.hpp +++ b/src/database/kernels/xger/xger_32.hpp @@ -112,6 +112,14 @@ const DatabaseEntry XgerSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 512, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 512, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM2.0", { diff --git a/src/database/kernels/xger/xger_3232.hpp b/src/database/kernels/xger/xger_3232.hpp index 6f910c18..f98c439a 100644 --- a/src/database/kernels/xger/xger_3232.hpp +++ b/src/database/kernels/xger/xger_3232.hpp @@ -110,6 +110,14 @@ const DatabaseEntry XgerComplexSingle = { } }, } }, + { // Intel accelerators + kDeviceTypeAccelerator, "Intel", { + { "default", { + { Name{"Intel(R) FPGA Emulation Device "}, Params{ 128, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, { // NVIDIA GPUs kDeviceTypeGPU, "NVIDIA", { { "SM2.0", { -- cgit v1.2.3 From 9eca896b05d4b5e46a9837dde581e20474efe318 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sat, 25 Mar 2023 20:24:40 +0100 Subject: Fix documentation bug w.r.t. ld values and matrix layout --- CHANGELOG | 1 + doc/api.md | 24 ++++++++++++------------ scripts/generator/generator.py | 8 ++++---- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 6934aca9..9409cae7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,6 +5,7 @@ Development version (next version) * Toggle OpenCL kernel compilation options for Adreno * New preprocessor directive RELAX_WORKGROUP_SIZE - Fixed a bug in handling of #undef in CLBlast loop unrolling and array-to-register mapping functions +- Fixed a documentation bug in the 'ld' requirements - Added tuned parameters for various devices (see doc/tuning.md) Version 1.5.3 diff --git a/doc/api.md b/doc/api.md index 9d4bedfa..40d89871 100644 --- a/doc/api.md +++ b/doc/api.md @@ -2260,8 +2260,8 @@ Arguments to GEMM: Requirements for GEMM: -* When `transpose_a == Transpose::kNo`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. -* When `transpose_b == Transpose::kNo`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. +* When `(transpose_a == Transpose::kNo && layout == Layout::kColMajor) || (transpose_a == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. +* When `(transpose_b == Transpose::kNo && layout == Layout::kColMajor) || (transpose_b == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. * The value of `c_ld` must be at least `m`. @@ -2500,7 +2500,7 @@ Arguments to SYRK: Requirements for SYRK: -* When `transpose == Transpose::kNo`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. * The value of `c_ld` must be at least `m`. @@ -2560,7 +2560,7 @@ Arguments to HERK: Requirements for HERK: -* When `transpose == Transpose::kNo`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. * The value of `c_ld` must be at least `m`. @@ -2650,8 +2650,8 @@ Arguments to SYR2K: Requirements for SYR2K: -* When `transpose == Transpose::kNo`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. -* When `transpose == Transpose::kNo`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`. * The value of `c_ld` must be at least `n`. @@ -2717,8 +2717,8 @@ Arguments to HER2K: Requirements for HER2K: -* When `transpose == Transpose::kNo`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. -* When `transpose == Transpose::kNo`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`. +* When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`. * The value of `c_ld` must be at least `n`. @@ -3370,8 +3370,8 @@ Arguments to GEMMBATCHED: Requirements for GEMMBATCHED: -* When `transpose_a == Transpose::kNo`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. -* When `transpose_b == Transpose::kNo`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. +* When `(transpose_a == Transpose::kNo && layout == Layout::kColMajor) || (transpose_a == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. +* When `(transpose_b == Transpose::kNo && layout == Layout::kColMajor) || (transpose_b == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. * The value of `c_ld` must be at least `m`. @@ -3472,8 +3472,8 @@ Arguments to GEMMSTRIDEDBATCHED: Requirements for GEMMSTRIDEDBATCHED: -* When `transpose_a == Transpose::kNo`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. -* When `transpose_b == Transpose::kNo`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. +* When `(transpose_a == Transpose::kNo && layout == Layout::kColMajor) || (transpose_a == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`. +* When `(transpose_b == Transpose::kNo && layout == Layout::kColMajor) || (transpose_b == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`. * The value of `c_ld` must be at least `m`. diff --git a/scripts/generator/generator.py b/scripts/generator/generator.py index 875b1a55..3d66960f 100755 --- a/scripts/generator/generator.py +++ b/scripts/generator/generator.py @@ -59,13 +59,13 @@ ald_m = "The value of `a_ld` must be at least `m`." ald_n = "The value of `a_ld` must be at least `n`." ald_k_one = "The value of `a_ld` must be at least `k + 1`." ald_kl_ku_one = "The value of `a_ld` must be at least `kl + ku + 1`." -ald_transa_m_k = "When `transpose_a == Transpose::kNo`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`." -ald_trans_n_k = "When `transpose == Transpose::kNo`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`." +ald_transa_m_k = "When `(transpose_a == Transpose::kNo && layout == Layout::kColMajor) || (transpose_a == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `k`." +ald_trans_n_k = "When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `a_ld` must be at least `n`, otherwise `a_ld` must be at least `k`." ald_side_m_n = "When `side = Side::kLeft` then `a_ld` must be at least `m`, otherwise `a_ld` must be at least `n`." bld_m = "The value of `b_ld` must be at least `m`." bld_n = "The value of `b_ld` must be at least `n`." -bld_transb_k_n = "When `transpose_b == Transpose::kNo`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`." -bld_trans_n_k = "When `transpose == Transpose::kNo`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`." +bld_transb_k_n = "When `(transpose_b == Transpose::kNo && layout == Layout::kColMajor) || (transpose_b == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `k`, otherwise `b_ld` must be at least `n`." +bld_trans_n_k = "When `(transpose == Transpose::kNo && layout == Layout::kColMajor) || (transpose == Transpose::kYes && layout == Layout::kRowMajor)`, then `b_ld` must be at least `n`, otherwise `b_ld` must be at least `k`." cld_m = "The value of `c_ld` must be at least `m`." cld_n = "The value of `c_ld` must be at least `n`." -- cgit v1.2.3 From 3d0c227fa5004067d857c74f7963876b34ed4170 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sun, 7 May 2023 20:02:52 +0200 Subject: AMAX/AMIN integer testing and bug fixes (#457) * Fixed a bug in XAMAX/XMIN routines that caused the increment and offset to be included in the result * Perform proper integer-output testing in XAMAX tests * A few changes towards getting it ready for a PR * Also fix compilation for clBLAS and cuBLAS references * Fix a bug that would only use the real part of complex numbers in the amax/amin routines * A few small fixes related to the AMAX tests --- CHANGELOG | 3 +++ scripts/generator/generator/cpp.py | 20 ++++++++++++-------- scripts/generator/generator/routine.py | 15 ++++++++++++--- src/kernels/level1/xamax.opencl | 4 ++-- src/utilities/utilities.hpp | 1 + test/correctness/testblas.cpp | 15 +++++++++++---- test/performance/client.cpp | 3 ++- test/routines/level1/xamax.hpp | 27 +++++++++++++++++---------- test/test_utilities.cpp | 2 ++ test/test_utilities.hpp | 2 ++ test/wrapper_cblas.hpp | 29 ++++++++++++++--------------- test/wrapper_clblas.hpp | 15 +++++++-------- test/wrapper_cublas.hpp | 12 ++++++------ 13 files changed, 91 insertions(+), 57 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 9409cae7..3b84ffc7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,6 +5,9 @@ Development version (next version) * Toggle OpenCL kernel compilation options for Adreno * New preprocessor directive RELAX_WORKGROUP_SIZE - Fixed a bug in handling of #undef in CLBlast loop unrolling and array-to-register mapping functions +- Fixed a bug in XAMAX/XAMIN routines related to inadvertently including the increment and offset in the result +- Fixed a bug in XAMAX/XAMIN routines that would cause only the real part of a complex number to be taken into account +- Fixed a bug that caused tests to not properly do integer-output testing (for XAMAX/XAMIN) - Fixed a documentation bug in the 'ld' requirements - Added tuned parameters for various devices (see doc/tuning.md) diff --git a/scripts/generator/generator/cpp.py b/scripts/generator/generator/cpp.py index 6dc3fc93..e32738ee 100644 --- a/scripts/generator/generator/cpp.py +++ b/scripts/generator/generator/cpp.py @@ -226,7 +226,10 @@ def wrapper_clblas(routine): # Convert to float (note: also integer buffers are stored as half/float) for buf in routine.inputs + routine.outputs: - result += " auto " + buf + "_buffer_bis = HalfToFloatBuffer(" + buf + "_buffer, queues[0]);" + NL + if buf not in routine.index_buffers(): + result += " auto " + buf + "_buffer_bis = HalfToFloatBuffer(" + buf + "_buffer, queues[0]);" + NL + else: + result += " auto " + buf + "_buffer_bis = " + buf + "_buffer;" + NL # Call the float routine result += " auto status = clblasX" + routine.name + "(" @@ -236,7 +239,8 @@ def wrapper_clblas(routine): # Convert back to half for buf in routine.outputs: - result += " FloatToHalfBuffer(" + buf + "_buffer, " + buf + "_buffer_bis, queues[0]);" + NL + if buf not in routine.index_buffers(): + result += " FloatToHalfBuffer(" + buf + "_buffer, " + buf + "_buffer_bis, queues[0]);" + NL result += " return status;" # Complete @@ -276,10 +280,6 @@ def wrapper_cblas(routine): extra_argument += "," + NL + indent extra_argument += "reinterpret_cast" extra_argument += "(&" + output_buffer + "_buffer[" + output_buffer + "_offset])" - elif output_buffer in routine.index_buffers(): - assignment = "reinterpret_cast(&" + output_buffer + "_buffer[0])[" + output_buffer + "_offset] = static_cast(" - postpostfix = ")" - indent += " " * (len(assignment) + 1) else: assignment = output_buffer + "_buffer[" + output_buffer + "_offset]" if flavour.name in ["Sc", "Dz"]: @@ -299,7 +299,10 @@ def wrapper_cblas(routine): # Convert to float (note: also integer buffers are stored as half/float) for buf in routine.inputs + routine.outputs: - result += " auto " + buf + "_buffer_bis = HalfToFloatBuffer(" + buf + "_buffer);" + NL + if buf not in routine.index_buffers(): + result += " auto " + buf + "_buffer_bis = HalfToFloatBuffer(" + buf + "_buffer);" + NL + else: + result += " auto " + buf + "_buffer_bis = " + buf + "_buffer;" + NL # Call the float routine result += " cblasX" + routine.name + "(" @@ -308,7 +311,8 @@ def wrapper_cblas(routine): # Convert back to half for buf in routine.outputs: - result += " FloatToHalfBuffer(" + buf + "_buffer, " + buf + "_buffer_bis);" + NL + if buf not in routine.index_buffers(): + result += " FloatToHalfBuffer(" + buf + "_buffer, " + buf + "_buffer_bis);" + NL # Complete result += "}" + NL diff --git a/scripts/generator/generator/routine.py b/scripts/generator/generator/routine.py index 8b6ab57f..c2201c0d 100644 --- a/scripts/generator/generator/routine.py +++ b/scripts/generator/generator/routine.py @@ -282,7 +282,10 @@ class Routine: """As above but for OpenCL""" prefix = "const " if name in self.inputs else "" if name in self.inputs or name in self.outputs: - a = [prefix + "Buffer<" + flavour.buffer_type + ">& " + name + "_buffer"] + if name == "imax": + a = [prefix + "Buffer& " + name + "_buffer"] + else: + a = [prefix + "Buffer<" + flavour.buffer_type + ">& " + name + "_buffer"] b = ["const size_t " + name + "_offset"] c = ["const size_t " + name + "_" + self.postfix(name)] if name not in self.buffers_without_ld_inc() else [] return [", ".join(a + b + c)] @@ -292,7 +295,10 @@ class Routine: """As above but for CUDA""" prefix = "const " if name in self.inputs else "" if name in self.inputs or name in self.outputs: - a = [prefix + flavour.buffer_type + "* " + name + "_buffer"] + if name == "imax": + a = [prefix + "unsigned int * " + name + "_buffer"] + else: + a = [prefix + flavour.buffer_type + "* " + name + "_buffer"] b = ["const size_t " + name + "_offset"] c = ["const size_t " + name + "_" + self.postfix(name)] if name not in self.buffers_without_ld_inc() else [] return [", ".join(a + b + c)] @@ -302,7 +308,10 @@ class Routine: """As above but as vectors""" prefix = "const " if name in self.inputs else "" if name in self.inputs or name in self.outputs: - a = [prefix + "std::vector<" + flavour.buffer_type + ">& " + name + "_buffer"] + if name == "imax": + a = [prefix + "std::vector& " + name + "_buffer"] + else: + a = [prefix + "std::vector<" + flavour.buffer_type + ">& " + name + "_buffer"] b = ["const size_t " + name + "_offset"] c = ["const size_t " + name + "_" + self.postfix(name)] if name not in self.buffers_without_ld_inc() else [] return [", ".join(a + b + c)] diff --git a/src/kernels/level1/xamax.opencl b/src/kernels/level1/xamax.opencl index 06a6773b..7cbbd6b5 100644 --- a/src/kernels/level1/xamax.opencl +++ b/src/kernels/level1/xamax.opencl @@ -55,7 +55,7 @@ void Xamax(const int n, while (id < n) { const int x_index = id*x_inc + x_offset; #if PRECISION == 3232 || PRECISION == 6464 - singlereal x = xgm[x_index].x; + singlereal x = fabs(xgm[x_index].x) + fabs(xgm[x_index].y); #else singlereal x = xgm[x_index]; #endif @@ -70,7 +70,7 @@ void Xamax(const int n, #endif if (x > max) { max = x; - imax = id*x_inc + x_offset; + imax = id; } id += WGS1*num_groups; } diff --git a/src/utilities/utilities.hpp b/src/utilities/utilities.hpp index b66df118..3ed51dd6 100644 --- a/src/utilities/utilities.hpp +++ b/src/utilities/utilities.hpp @@ -133,6 +133,7 @@ constexpr auto kBufMatB = "B"; constexpr auto kBufMatC = "C"; constexpr auto kBufMatAP = "AP"; constexpr auto kBufScalar = "Scalar"; +constexpr auto kBufScalarUint = "ScalarUint"; // ================================================================================================= diff --git a/test/correctness/testblas.cpp b/test/correctness/testblas.cpp index d28aba40..0d0ce7c6 100644 --- a/test/correctness/testblas.cpp +++ b/test/correctness/testblas.cpp @@ -124,6 +124,7 @@ void TestBlas::TestRegular(std::vector> &test_vector, const st auto c_mat2 = Buffer(context_, args.c_size); auto ap_mat2 = Buffer(context_, args.ap_size); auto scalar2 = Buffer(context_, args.scalar_size); + auto scalar_uint2 = Buffer(context_, args.scalar_size); x_vec2.Write(queue_, args.x_size, x_source_); y_vec2.Write(queue_, args.y_size, y_source_); a_mat2.Write(queue_, args.a_size, a_source_); @@ -131,7 +132,7 @@ void TestBlas::TestRegular(std::vector> &test_vector, const st c_mat2.Write(queue_, args.c_size, c_source_); ap_mat2.Write(queue_, args.ap_size, ap_source_); scalar2.Write(queue_, args.scalar_size, scalar_source_); - auto buffers2 = Buffers{x_vec2, y_vec2, a_mat2, b_mat2, c_mat2, ap_mat2, scalar2}; + auto buffers2 = Buffers{x_vec2, y_vec2, a_mat2, b_mat2, c_mat2, ap_mat2, scalar2, scalar_uint2}; // Runs CLBlast if (verbose_) { @@ -158,6 +159,7 @@ void TestBlas::TestRegular(std::vector> &test_vector, const st auto c_mat1 = Buffer(context_, args.c_size); auto ap_mat1 = Buffer(context_, args.ap_size); auto scalar1 = Buffer(context_, args.scalar_size); + auto scalar_uint1 = Buffer(context_, args.scalar_size); x_vec1.Write(queue_, args.x_size, x_source_); y_vec1.Write(queue_, args.y_size, y_source_); a_mat1.Write(queue_, args.a_size, a_source_); @@ -165,7 +167,7 @@ void TestBlas::TestRegular(std::vector> &test_vector, const st c_mat1.Write(queue_, args.c_size, c_source_); ap_mat1.Write(queue_, args.ap_size, ap_source_); scalar1.Write(queue_, args.scalar_size, scalar_source_); - auto buffers1 = Buffers{x_vec1, y_vec1, a_mat1, b_mat1, c_mat1, ap_mat1, scalar1}; + auto buffers1 = Buffers{x_vec1, y_vec1, a_mat1, b_mat1, c_mat1, ap_mat1, scalar1, scalar_uint1}; // Runs the reference code if (verbose_) { @@ -221,6 +223,9 @@ void TestBlas::TestRegular(std::vector> &test_vector, const st // Checks for differences in the 'canary' region to detect buffer overflows for (auto canary_id=size_t{0}; canary_id= result1.size() || index >= result2.size()) { + continue; + } if (!TestSimilarity(result1[index], result2[index])) { errors++; if (verbose_) { @@ -273,6 +278,7 @@ void TestBlas::TestInvalid(std::vector> &test_vector, const st auto c_mat1 = CreateInvalidBuffer(context_, args.c_size); auto ap_mat1 = CreateInvalidBuffer(context_, args.ap_size); auto scalar1 = CreateInvalidBuffer(context_, args.scalar_size); + auto scalar_uint1 = CreateInvalidBuffer(context_, args.scalar_size); auto x_vec2 = CreateInvalidBuffer(context_, args.x_size); auto y_vec2 = CreateInvalidBuffer(context_, args.y_size); auto a_mat2 = CreateInvalidBuffer(context_, args.a_size); @@ -280,8 +286,9 @@ void TestBlas::TestInvalid(std::vector> &test_vector, const st auto c_mat2 = CreateInvalidBuffer(context_, args.c_size); auto ap_mat2 = CreateInvalidBuffer(context_, args.ap_size); auto scalar2 = CreateInvalidBuffer(context_, args.scalar_size); - auto buffers1 = Buffers{x_vec1, y_vec1, a_mat1, b_mat1, c_mat1, ap_mat1, scalar1}; - auto buffers2 = Buffers{x_vec2, y_vec2, a_mat2, b_mat2, c_mat2, ap_mat2, scalar2}; + auto scalar_uint2 = CreateInvalidBuffer(context_, args.scalar_size); + auto buffers1 = Buffers{x_vec1, y_vec1, a_mat1, b_mat1, c_mat1, ap_mat1, scalar1, scalar_uint1}; + auto buffers2 = Buffers{x_vec2, y_vec2, a_mat2, b_mat2, c_mat2, ap_mat2, scalar2, scalar_uint2}; // Runs CLBlast if (verbose_) { diff --git a/test/performance/client.cpp b/test/performance/client.cpp index 34891429..e6930203 100644 --- a/test/performance/client.cpp +++ b/test/performance/client.cpp @@ -246,6 +246,7 @@ void Client::PerformanceTest(Arguments &args, const SetMetric set_sizes) auto c_mat = Buffer(context, args.c_size); auto ap_mat = Buffer(context, args.ap_size); auto scalar = Buffer(context, args.scalar_size); + auto scalar_uint = Buffer(context, args.scalar_size); x_vec.Write(queue, args.x_size, x_source); y_vec.Write(queue, args.y_size, y_source); a_mat.Write(queue, args.a_size, a_source); @@ -253,7 +254,7 @@ void Client::PerformanceTest(Arguments &args, const SetMetric set_sizes) c_mat.Write(queue, args.c_size, c_source); ap_mat.Write(queue, args.ap_size, ap_source); scalar.Write(queue, args.scalar_size, scalar_source); - auto buffers = Buffers{x_vec, y_vec, a_mat, b_mat, c_mat, ap_mat, scalar}; + auto buffers = Buffers{x_vec, y_vec, a_mat, b_mat, c_mat, ap_mat, scalar, scalar_uint}; // Runs the routines and collects the timings auto timings = std::vector>(); diff --git a/test/routines/level1/xamax.hpp b/test/routines/level1/xamax.hpp index 71c1a0ec..aa0f8e10 100644 --- a/test/routines/level1/xamax.hpp +++ b/test/routines/level1/xamax.hpp @@ -35,15 +35,15 @@ class TestXamax { kArgXInc, kArgXOffset, kArgImaxOffset}; } - static std::vector BuffersIn() { return {kBufVecX, kBufScalar}; } - static std::vector BuffersOut() { return {kBufScalar}; } + static std::vector BuffersIn() { return {kBufVecX, kBufScalarUint}; } + static std::vector BuffersOut() { return {kBufScalarUint}; } // Describes how to obtain the sizes of the buffers static size_t GetSizeX(const Arguments &args) { return args.n * args.x_inc + args.x_offset; } static size_t GetSizeImax(const Arguments &args) { - return (1 + args.imax_offset) * 2; // always a 4-byte integer, this is a hack for FP16 + return args.imax_offset + 1; } // Describes how to set the sizes of all the buffers @@ -73,13 +73,13 @@ class TestXamax { auto queue_plain = queue(); auto event = cl_event{}; auto status = Amax(args.n, - buffers.scalar(), args.imax_offset, + buffers.scalar_uint(), args.imax_offset, buffers.x_vec(), args.x_offset, args.x_inc, &queue_plain, &event); if (status == StatusCode::kSuccess) { clWaitForEvents(1, &event); clReleaseEvent(event); } #elif CUDA_API auto status = Amax(args.n, - buffers.scalar(), args.imax_offset, + buffers.scalar_uint(), args.imax_offset, buffers.x_vec(), args.x_offset, args.x_inc, queue.GetContext()(), queue.GetDevice()()); cuStreamSynchronize(queue()); @@ -93,7 +93,7 @@ class TestXamax { auto queue_plain = queue(); auto event = cl_event{}; auto status = clblasXamax(args.n, - buffers.scalar, args.imax_offset, + buffers.scalar_uint, args.imax_offset, buffers.x_vec, args.x_offset, args.x_inc, 1, &queue_plain, 0, nullptr, &event); clWaitForEvents(1, &event); @@ -105,7 +105,7 @@ class TestXamax { #ifdef CLBLAST_REF_CBLAS static StatusCode RunReference2(const Arguments &args, BuffersHost &buffers_host, Queue &) { cblasXamax(args.n, - buffers_host.scalar, args.imax_offset, + buffers_host.scalar_uint, args.imax_offset, buffers_host.x_vec, args.x_offset, args.x_inc); return StatusCode::kSuccess; } @@ -115,7 +115,7 @@ class TestXamax { #ifdef CLBLAST_REF_CUBLAS static StatusCode RunReference3(const Arguments &args, BuffersCUDA &buffers, Queue &) { auto status = cublasXamax(reinterpret_cast(args.cublas_handle), args.n, - buffers.scalar, args.imax_offset, + buffers.scalar_uint, args.imax_offset, buffers.x_vec, args.x_offset, args.x_inc); if (status == CUBLAS_STATUS_SUCCESS) { return StatusCode::kSuccess; } else { return StatusCode::kUnknownError; } } @@ -123,8 +123,15 @@ class TestXamax { // Describes how to download the results of the computation (more importantly: which buffer) static std::vector DownloadResult(const Arguments &args, Buffers &buffers, Queue &queue) { - std::vector result(args.scalar_size, static_cast(0)); - buffers.scalar.Read(queue, args.scalar_size, result); + std::vector result_uint(args.scalar_size, 0); + buffers.scalar_uint.Read(queue, args.scalar_size, result_uint); + // The result is an integer. However, since the test infrastructure assumes results of + // type 'T' (float/double/float2/double2/half), we store the results into T instead. + // The values might then become meaningless, but a comparison for testing should still + // be valid to verify correctness. + auto result_as_T = static_cast(result_uint[0]); + std::vector result(args.scalar_size); + result[0] = result_as_T; return result; } diff --git a/test/test_utilities.cpp b/test/test_utilities.cpp index 8029d259..f3116238 100644 --- a/test/test_utilities.cpp +++ b/test/test_utilities.cpp @@ -52,6 +52,7 @@ void DeviceToHost(const Arguments &args, Buffers &buffers, BuffersHost else if (name == kBufMatC) { buffers_host.c_mat = std::vector(args.c_size, static_cast(0)); buffers.c_mat.Read(queue, args.c_size, buffers_host.c_mat); } else if (name == kBufMatAP) { buffers_host.ap_mat = std::vector(args.ap_size, static_cast(0)); buffers.ap_mat.Read(queue, args.ap_size, buffers_host.ap_mat); } else if (name == kBufScalar) { buffers_host.scalar = std::vector(args.scalar_size, static_cast(0)); buffers.scalar.Read(queue, args.scalar_size, buffers_host.scalar); } + else if (name == kBufScalarUint) { buffers_host.scalar_uint = std::vector(args.scalar_size, 0); buffers.scalar_uint.Read(queue, args.scalar_size, buffers_host.scalar_uint); } else { throw std::runtime_error("Invalid buffer name"); } } } @@ -67,6 +68,7 @@ void HostToDevice(const Arguments &args, Buffers &buffers, BuffersHost else if (name == kBufMatC) { buffers.c_mat.Write(queue, args.c_size, buffers_host.c_mat); } else if (name == kBufMatAP) { buffers.ap_mat.Write(queue, args.ap_size, buffers_host.ap_mat); } else if (name == kBufScalar) { buffers.scalar.Write(queue, args.scalar_size, buffers_host.scalar); } + else if (name == kBufScalarUint) { buffers.scalar_uint.Write(queue, args.scalar_size, buffers_host.scalar_uint); } else { throw std::runtime_error("Invalid buffer name"); } } } diff --git a/test/test_utilities.hpp b/test/test_utilities.hpp index 7bf5e65f..4ea5cdfb 100644 --- a/test/test_utilities.hpp +++ b/test/test_utilities.hpp @@ -56,6 +56,7 @@ struct Buffers { Buffer c_mat; Buffer ap_mat; Buffer scalar; + Buffer scalar_uint; }; template struct BuffersHost { @@ -66,6 +67,7 @@ struct BuffersHost { std::vector c_mat; std::vector ap_mat; std::vector scalar; + std::vector scalar_uint; }; // ================================================================================================= diff --git a/test/wrapper_cblas.hpp b/test/wrapper_cblas.hpp index a47ff725..fe5c7a43 100644 --- a/test/wrapper_cblas.hpp +++ b/test/wrapper_cblas.hpp @@ -455,38 +455,37 @@ void cblasXasum(const size_t n, // Forwards the Netlib BLAS calls for iSAMAX/iDAMAX/iCAMAX/iZAMAX/iHAMAX void cblasXamax(const size_t n, - std::vector& imax_buffer, const size_t imax_offset, + std::vector& imax_buffer, const size_t imax_offset, const std::vector& x_buffer, const size_t x_offset, const size_t x_inc) { - reinterpret_cast(&imax_buffer[0])[imax_offset] = static_cast(cblas_isamax(static_cast(n), - &x_buffer[x_offset], static_cast(x_inc))); + imax_buffer[imax_offset] = cblas_isamax(static_cast(n), + &x_buffer[x_offset], static_cast(x_inc)); } void cblasXamax(const size_t n, - std::vector& imax_buffer, const size_t imax_offset, + std::vector& imax_buffer, const size_t imax_offset, const std::vector& x_buffer, const size_t x_offset, const size_t x_inc) { - reinterpret_cast(&imax_buffer[0])[imax_offset] = static_cast(cblas_idamax(static_cast(n), - &x_buffer[x_offset], static_cast(x_inc))); + imax_buffer[imax_offset] = cblas_idamax(static_cast(n), + &x_buffer[x_offset], static_cast(x_inc)); } void cblasXamax(const size_t n, - std::vector& imax_buffer, const size_t imax_offset, + std::vector& imax_buffer, const size_t imax_offset, const std::vector& x_buffer, const size_t x_offset, const size_t x_inc) { - reinterpret_cast(&imax_buffer[0])[imax_offset] = static_cast(cblas_icamax(static_cast(n), - reinterpret_cast(&x_buffer[x_offset]), static_cast(x_inc))); + imax_buffer[imax_offset] = cblas_icamax(static_cast(n), + reinterpret_cast(&x_buffer[x_offset]), static_cast(x_inc)); } void cblasXamax(const size_t n, - std::vector& imax_buffer, const size_t imax_offset, + std::vector& imax_buffer, const size_t imax_offset, const std::vector& x_buffer, const size_t x_offset, const size_t x_inc) { - reinterpret_cast(&imax_buffer[0])[imax_offset] = static_cast(cblas_izamax(static_cast(n), - reinterpret_cast(&x_buffer[x_offset]), static_cast(x_inc))); + imax_buffer[imax_offset] = cblas_izamax(static_cast(n), + reinterpret_cast(&x_buffer[x_offset]), static_cast(x_inc)); } void cblasXamax(const size_t n, - std::vector& imax_buffer, const size_t imax_offset, + std::vector& imax_buffer, const size_t imax_offset, const std::vector& x_buffer, const size_t x_offset, const size_t x_inc) { auto x_buffer_bis = HalfToFloatBuffer(x_buffer); - auto imax_buffer_bis = HalfToFloatBuffer(imax_buffer); + auto imax_buffer_bis = imax_buffer; cblasXamax(n, imax_buffer_bis, imax_offset, x_buffer_bis, x_offset, x_inc); - FloatToHalfBuffer(imax_buffer, imax_buffer_bis); } // ================================================================================================= diff --git a/test/wrapper_clblas.hpp b/test/wrapper_clblas.hpp index f1b3a0c4..8fdff2bc 100644 --- a/test/wrapper_clblas.hpp +++ b/test/wrapper_clblas.hpp @@ -744,13 +744,13 @@ clblasStatus clblasXasum(const size_t n, // Forwards the clBLAS calls for iSAMAX/iDAMAX/iCAMAX/iZAMAX/iHAMAX template clblasStatus clblasXamax(const size_t n, - Buffer& imax_buffer, const size_t imax_offset, + Buffer& imax_buffer, const size_t imax_offset, const Buffer& x_buffer, const size_t x_offset, const size_t x_inc, cl_uint num_queues, cl_command_queue *queues, cl_uint num_wait_events, const cl_event *wait_events, cl_event *events); template <> clblasStatus clblasXamax(const size_t n, - Buffer& imax_buffer, const size_t imax_offset, + Buffer& imax_buffer, const size_t imax_offset, const Buffer& x_buffer, const size_t x_offset, const size_t x_inc, cl_uint num_queues, cl_command_queue *queues, cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) { @@ -765,7 +765,7 @@ clblasStatus clblasXamax(const size_t n, } template <> clblasStatus clblasXamax(const size_t n, - Buffer& imax_buffer, const size_t imax_offset, + Buffer& imax_buffer, const size_t imax_offset, const Buffer& x_buffer, const size_t x_offset, const size_t x_inc, cl_uint num_queues, cl_command_queue *queues, cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) { @@ -780,7 +780,7 @@ clblasStatus clblasXamax(const size_t n, } template <> clblasStatus clblasXamax(const size_t n, - Buffer& imax_buffer, const size_t imax_offset, + Buffer& imax_buffer, const size_t imax_offset, const Buffer& x_buffer, const size_t x_offset, const size_t x_inc, cl_uint num_queues, cl_command_queue *queues, cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) { @@ -795,7 +795,7 @@ clblasStatus clblasXamax(const size_t n, } template <> clblasStatus clblasXamax(const size_t n, - Buffer& imax_buffer, const size_t imax_offset, + Buffer& imax_buffer, const size_t imax_offset, const Buffer& x_buffer, const size_t x_offset, const size_t x_inc, cl_uint num_queues, cl_command_queue *queues, cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) { @@ -810,17 +810,16 @@ clblasStatus clblasXamax(const size_t n, } template <> clblasStatus clblasXamax(const size_t n, - Buffer& imax_buffer, const size_t imax_offset, + Buffer& imax_buffer, const size_t imax_offset, const Buffer& x_buffer, const size_t x_offset, const size_t x_inc, cl_uint num_queues, cl_command_queue *queues, cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) { auto x_buffer_bis = HalfToFloatBuffer(x_buffer, queues[0]); - auto imax_buffer_bis = HalfToFloatBuffer(imax_buffer, queues[0]); + auto imax_buffer_bis = imax_buffer; auto status = clblasXamax(n, imax_buffer_bis, imax_offset, x_buffer_bis, x_offset, x_inc, num_queues, queues, num_wait_events, wait_events, events); - FloatToHalfBuffer(imax_buffer, imax_buffer_bis, queues[0]); return status; } diff --git a/test/wrapper_cublas.hpp b/test/wrapper_cublas.hpp index 35b1b9c6..0a10a5ed 100644 --- a/test/wrapper_cublas.hpp +++ b/test/wrapper_cublas.hpp @@ -576,11 +576,11 @@ cublasStatus_t cublasXasum(cublasHandle_t handle, const size_t n, // Forwards the cuBLAS calls for iSAMAX/iDAMAX/iCAMAX/iZAMAX/iHAMAX template cublasStatus_t cublasXamax(cublasHandle_t handle, const size_t n, - T* imax_buffer, const size_t imax_offset, + unsigned int * imax_buffer, const size_t imax_offset, const T* x_buffer, const size_t x_offset, const size_t x_inc); template <> cublasStatus_t cublasXamax(cublasHandle_t handle, const size_t n, - float* imax_buffer, const size_t imax_offset, + unsigned int * imax_buffer, const size_t imax_offset, const float* x_buffer, const size_t x_offset, const size_t x_inc) { auto status = cublasIsamax(handle, static_cast(n), &x_buffer[x_offset], static_cast(x_inc), @@ -590,7 +590,7 @@ cublasStatus_t cublasXamax(cublasHandle_t handle, const size_t n, } template <> cublasStatus_t cublasXamax(cublasHandle_t handle, const size_t n, - double* imax_buffer, const size_t imax_offset, + unsigned int * imax_buffer, const size_t imax_offset, const double* x_buffer, const size_t x_offset, const size_t x_inc) { auto status = cublasIdamax(handle, static_cast(n), &x_buffer[x_offset], static_cast(x_inc), @@ -600,7 +600,7 @@ cublasStatus_t cublasXamax(cublasHandle_t handle, const size_t n, } template <> cublasStatus_t cublasXamax(cublasHandle_t handle, const size_t n, - float2* imax_buffer, const size_t imax_offset, + unsigned int * imax_buffer, const size_t imax_offset, const float2* x_buffer, const size_t x_offset, const size_t x_inc) { auto status = cublasIcamax(handle, static_cast(n), reinterpret_cast(&x_buffer[x_offset]), static_cast(x_inc), @@ -610,7 +610,7 @@ cublasStatus_t cublasXamax(cublasHandle_t handle, const size_t n, } template <> cublasStatus_t cublasXamax(cublasHandle_t handle, const size_t n, - double2* imax_buffer, const size_t imax_offset, + unsigned int * imax_buffer, const size_t imax_offset, const double2* x_buffer, const size_t x_offset, const size_t x_inc) { auto status = cublasIzamax(handle, static_cast(n), reinterpret_cast(&x_buffer[x_offset]), static_cast(x_inc), @@ -620,7 +620,7 @@ cublasStatus_t cublasXamax(cublasHandle_t handle, const size_t n, } template <> cublasStatus_t cublasXamax(cublasHandle_t handle, const size_t n, - half* imax_buffer, const size_t imax_offset, + unsigned int * imax_buffer, const size_t imax_offset, const half* x_buffer, const size_t x_offset, const size_t x_inc) { return CUBLAS_STATUS_NOT_SUPPORTED; } -- cgit v1.2.3 From 4f24d927302078a416dea1bc29d714a95732b8e9 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sun, 7 May 2023 20:03:16 +0200 Subject: TRMV: Use the minimum x buffer size for copying to a temp buffer (#458) --- CHANGELOG | 1 + src/routines/level2/xtrmv.cpp | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 3b84ffc7..39813f94 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,5 @@ Development version (next version) +- Fixes a minor issue with the expected input buffer size in the TRMV routine - Fixes two small issues in the plotting script - Modifications to improve performance on Qualcomm Adreno GPUs: * Unique database entries for specific Adreno devices diff --git a/src/routines/level2/xtrmv.cpp b/src/routines/level2/xtrmv.cpp index 80e29009..3be176b0 100644 --- a/src/routines/level2/xtrmv.cpp +++ b/src/routines/level2/xtrmv.cpp @@ -36,8 +36,9 @@ void Xtrmv::DoTrmv(const Layout layout, const Triangle triangle, const Buffer &x_buffer, const size_t x_offset, const size_t x_inc) { // Creates a copy of X: a temporary scratch buffer - auto scratch_buffer = Buffer(context_, n*x_inc + x_offset); - x_buffer.CopyTo(queue_, n*x_inc + x_offset, scratch_buffer); + const auto x_size = (1 + (n - 1) * x_inc) + x_offset; + auto scratch_buffer = Buffer(context_, x_size); + x_buffer.CopyTo(queue_, x_size, scratch_buffer); // The data is either in the upper or lower triangle size_t is_upper = ((triangle == Triangle::kUpper && layout != Layout::kRowMajor) || -- cgit v1.2.3 From d94d086d6f92ff1f73bd2a8595a974f6802b3f24 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Wed, 10 May 2023 12:48:25 +0200 Subject: TBMV/TPMV/TRSV: Use the minimum x buffer size for copying to a temp buffer (#461) --- CHANGELOG | 4 ++-- src/routines/level2/xtbmv.cpp | 5 +++-- src/routines/level2/xtpmv.cpp | 5 +++-- src/routines/level2/xtrsv.cpp | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 39813f94..345bab2a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,4 @@ Development version (next version) -- Fixes a minor issue with the expected input buffer size in the TRMV routine -- Fixes two small issues in the plotting script - Modifications to improve performance on Qualcomm Adreno GPUs: * Unique database entries for specific Adreno devices * Toggle OpenCL kernel compilation options for Adreno @@ -9,6 +7,8 @@ Development version (next version) - Fixed a bug in XAMAX/XAMIN routines related to inadvertently including the increment and offset in the result - Fixed a bug in XAMAX/XAMIN routines that would cause only the real part of a complex number to be taken into account - Fixed a bug that caused tests to not properly do integer-output testing (for XAMAX/XAMIN) +- Fixes a minor issue with the expected input buffer size in the TRMV/TBMV/TPMV/TRSV routines +- Fixes two small issues in the plotting script - Fixed a documentation bug in the 'ld' requirements - Added tuned parameters for various devices (see doc/tuning.md) diff --git a/src/routines/level2/xtbmv.cpp b/src/routines/level2/xtbmv.cpp index 117d26e0..87053deb 100644 --- a/src/routines/level2/xtbmv.cpp +++ b/src/routines/level2/xtbmv.cpp @@ -36,8 +36,9 @@ void Xtbmv::DoTbmv(const Layout layout, const Triangle triangle, const Buffer &x_buffer, const size_t x_offset, const size_t x_inc) { // Creates a copy of X: a temporary scratch buffer - auto scratch_buffer = Buffer(context_, n*x_inc + x_offset); - x_buffer.CopyTo(queue_, n*x_inc + x_offset, scratch_buffer); + const auto x_size = (1 + (n - 1) * x_inc) + x_offset; + auto scratch_buffer = Buffer(context_, x_size); + x_buffer.CopyTo(queue_, x_size, scratch_buffer); // The data is either in the upper or lower triangle size_t is_upper = ((triangle == Triangle::kUpper && layout != Layout::kRowMajor) || diff --git a/src/routines/level2/xtpmv.cpp b/src/routines/level2/xtpmv.cpp index 00282378..2190a6f5 100644 --- a/src/routines/level2/xtpmv.cpp +++ b/src/routines/level2/xtpmv.cpp @@ -36,8 +36,9 @@ void Xtpmv::DoTpmv(const Layout layout, const Triangle triangle, const Buffer &x_buffer, const size_t x_offset, const size_t x_inc) { // Creates a copy of X: a temporary scratch buffer - auto scratch_buffer = Buffer(context_, n*x_inc + x_offset); - x_buffer.CopyTo(queue_, n*x_inc + x_offset, scratch_buffer); + const auto x_size = (1 + (n - 1) * x_inc) + x_offset; + auto scratch_buffer = Buffer(context_, x_size); + x_buffer.CopyTo(queue_, x_size, scratch_buffer); // The data is either in the upper or lower triangle size_t is_upper = ((triangle == Triangle::kUpper && layout != Layout::kRowMajor) || diff --git a/src/routines/level2/xtrsv.cpp b/src/routines/level2/xtrsv.cpp index 2a5a5664..b50b259b 100644 --- a/src/routines/level2/xtrsv.cpp +++ b/src/routines/level2/xtrsv.cpp @@ -99,7 +99,7 @@ void Xtrsv::DoTrsv(const Layout layout, const Triangle triangle, // TODO: Make x with 0 offset and unit increment by creating custom copy-to and copy-from kernels const auto x_offset = b_offset; const auto x_inc = b_inc; - const auto x_size = n*x_inc + x_offset; + const auto x_size = (1 + (n - 1) * x_inc) + x_offset; auto x_buffer = Buffer(context_, x_size); b_buffer.CopyTo(queue_, x_size, x_buffer); -- cgit v1.2.3 From 3baf82357552f66e35728b9bb00ca32da54125ea Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Wed, 10 May 2023 17:10:17 +0200 Subject: Fixes an issue under Android when the driver was already unloaded (#462) --- CHANGELOG | 1 + src/clpp11.hpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 345bab2a..3fe3208e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,7 @@ Development version (next version) - Fixed a bug in XAMAX/XAMIN routines that would cause only the real part of a complex number to be taken into account - Fixed a bug that caused tests to not properly do integer-output testing (for XAMAX/XAMIN) - Fixes a minor issue with the expected input buffer size in the TRMV/TBMV/TPMV/TRSV routines +- Fixes an issue with crashes on Android related to calling clReleaseProgram - Fixes two small issues in the plotting script - Fixed a documentation bug in the 'ld' requirements - Added tuned parameters for various devices (see doc/tuning.md) diff --git a/src/clpp11.hpp b/src/clpp11.hpp index e5b8b4a7..3fb89f5e 100644 --- a/src/clpp11.hpp +++ b/src/clpp11.hpp @@ -487,7 +487,8 @@ class Program { // Clean-up ~Program() { - #ifndef _MSC_VER // causes an access violation under Windows when the driver is already unloaded + // Causes an access violation under Windows or Android when the driver is already unloaded + #if !defined(__ANDROID__) && !defined(_MSC_VER) if (program_) { CheckErrorDtor(clReleaseProgram(program_)); } #endif } -- cgit v1.2.3 From 6e6efb72be86c0f390bd7dea62355e67e2731a91 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Wed, 10 May 2023 21:31:33 +0200 Subject: Fix compilation issue in override parameters test --- test/correctness/misc/override_parameters.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/correctness/misc/override_parameters.cpp b/test/correctness/misc/override_parameters.cpp index 7ed4faff..1bab8d65 100644 --- a/test/correctness/misc/override_parameters.cpp +++ b/test/correctness/misc/override_parameters.cpp @@ -92,7 +92,8 @@ size_t RunOverrideTests(int argc, char *argv[], const bool silent, const std::st device_b.Write(queue, host_b.size(), host_b); device_c.Write(queue, host_c.size(), host_c); auto dummy = Buffer(context, 1); - auto buffers = Buffers{dummy, dummy, device_a, device_b, device_c, device_temp, dummy}; + auto dummy_scalar = Buffer(context, 1); + auto buffers = Buffers{dummy, dummy, device_a, device_b, device_c, device_temp, dummy, dummy_scalar}; // Loops over the valid combinations: run before and run afterwards fprintf(stdout, "* Testing OverrideParameters for '%s'\n", routine_name.c_str()); -- cgit v1.2.3 From 221121b8407d5538cfed2f53973303f02810d856 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sun, 14 May 2023 11:25:15 +0200 Subject: Add Github Actions CI (#464) This replaces the old Travis CI builds with Github Actions that test on both Ubuntu and MacOS, with both Clang and GCC. The builds on macOS also run the tests and some other programs, on Ubuntu OpenCL is not working at the moment. Because these tests use new/different compilers, I fixed a few warnings and errors along the way. --- .github/workflows/build_and_test.yml | 59 ++++++++++++++++++++++++++++++ .travis.yml | 69 ------------------------------------ CMakeLists.txt | 4 +-- README.md | 4 +-- include/clblast_half.h | 9 ++--- samples/cache.c | 1 + samples/dgemv.c | 1 + samples/dtrsm.cpp | 5 +-- samples/haxpy.c | 1 + samples/samax.c | 4 +-- samples/sasum.c | 1 + samples/sgemm.c | 1 + samples/sgemm.cpp | 5 +-- samples/sgemm_batched.cpp | 5 +-- samples/tuning_api.cpp | 7 ++-- test/correctness/testblas.hpp | 9 +++++ test/performance/client.cpp | 2 +- test/routines/levelx/xcol2im.hpp | 3 +- test/routines/levelx/xconvgemm.hpp | 3 +- test/routines/levelx/xhad.hpp | 5 +-- test/routines/levelx/xim2col.hpp | 3 +- test/routines/levelx/xinvert.hpp | 3 +- test/routines/levelx/xomatcopy.hpp | 3 +- 23 files changed, 108 insertions(+), 99 deletions(-) create mode 100644 .github/workflows/build_and_test.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml new file mode 100644 index 00000000..5fe1eb25 --- /dev/null +++ b/.github/workflows/build_and_test.yml @@ -0,0 +1,59 @@ +name: CLBlast build + +on: + pull_request: {} + push: + branches: ['master'] + +jobs: + + build_and_test: + strategy: + matrix: + config: [ + {os: ubuntu-latest, c_compiler: gcc, cpp_compiler: g++}, + {os: ubuntu-latest, c_compiler: clang, cpp_compiler: clang++}, + {os: macos-latest, c_compiler: clang, cpp_compiler: clang++}, + ] + runs-on: ${{ matrix.config.os }} + steps: + - uses: actions/checkout@v3 + + - name: Install requirements for Ubuntu + run: | + sudo apt-get update + sudo apt-get install -yq cmake ninja-build ocl-icd-opencl-dev opencl-c-headers libopenblas-dev --no-install-recommends + if: ${{ matrix.config.os == 'ubuntu-latest' }} + + - name: Install requirements for macOS + run: brew install ninja + if: ${{ matrix.config.os == 'macos-latest' }} + + - name: Run CMake + run: | + export CC=${{ matrix.config.c_compiler }} + export CXX=${{ matrix.config.cpp_compiler }} + cmake -S . -B build -G Ninja -DTESTS=ON -DCLIENTS=ON -DSAMPLES=ON + + - name: Compile the code + run: cmake --build build + + - name: Get the diagnostics info + run: ./build/clblast_test_diagnostics + if: ${{ matrix.config.os == 'macos-latest' }} + + - name: Run an example client + run: ./build/clblast_client_xgemm + if: ${{ matrix.config.os == 'macos-latest' }} + + - name: Run an example sample program + run: ./build/clblast_sample_dgemv_c + if: ${{ matrix.config.os == 'macos-latest' }} + + - name: Run an example tuner + run: ./build/clblast_tuner_xdot + if: ${{ matrix.config.os == 'macos-latest' }} + + - name: Run the unittests + run: ctest --test-dir build + if: ${{ matrix.config.os == 'macos-latest' }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index dbdae42e..00000000 --- a/.travis.yml +++ /dev/null @@ -1,69 +0,0 @@ -language: cpp -sudo: required -dist: trusty - -addons: - apt: - sources: - # kubuntu-backports contains newer versions of cmake to install - - kubuntu-backports - packages: - - cmake - - ocl-icd-opencl-dev - -matrix: - include: - - os: linux - compiler: gcc - - os: linux - compiler: clang - - os: osx - -env: - global: - - CLBLAST_VERSION=1.5.3 - - CLBLAST_ROOT=${TRAVIS_BUILD_DIR}/bin/clblast - - CLBLAST_INSTALL=${TRAVIS_BUILD_DIR}/bin/CLBlast-${CLBLAST_VERSION} - - CLBLAST_TAR=CLBlast-${CLBLAST_VERSION}-${TRAVIS_OS_NAME}-x64.tar.gz - -before_install: - - cmake --version; - - ${CC} --version; - - ${CXX} --version; - -before_script: - - mkdir -p ${CLBLAST_INSTALL} - - mkdir -p ${CLBLAST_ROOT} - - pushd ${CLBLAST_ROOT} - - cmake -DTESTS=ON -DCLIENTS=ON -DSAMPLES=ON -DCMAKE_INSTALL_PREFIX=${CLBLAST_INSTALL} ${TRAVIS_BUILD_DIR} - -script: - - make - - make install - -after_success: - - pushd ${TRAVIS_BUILD_DIR}/bin - - rm ${CLBLAST_INSTALL}/bin/clblast_client_* - - rm ${CLBLAST_INSTALL}/bin/clblast_test_* - - echo ${CLBLAST_TAR} - - tar -cvf ${CLBLAST_TAR} CLBlast-${CLBLAST_VERSION} - - cp ${CLBLAST_TAR} ${TRAVIS_BUILD_DIR} - - pushd ${TRAVIS_BUILD_DIR} - - ls -l - -branches: - only: - - master - -notifications: - email: false - -deploy: - provider: releases - api_key: - secure: oBnP56zfFTiON0v6nm6qiRevtTsojqaxV2E/+ahUP4iyZxZgn1zf9reGNEbB/s6wfHCwXpXKlCk3A0cEQzbfoZeQy3oMzyWHV/xgu+etOENe3z18oVEiVBe/WAd1/hMVmQvX65kHR+q12rce6K6rDm1mEIJC/udf5Dbdl2alVWgiL20Hrj/PSQAYZZuTmZLuMm7OBc1G2xhRmRo5FYgI2u1ZALUHDRov/yLQkoKwxAlzBhURoNTHW2wTAr3Pq01Fk2kfQFRmg7YFieu3cit/JGNzaDdgmT0U5pLRzhuPiD3qziNnC3rG7tnYV0jHQOLKH+AJ0csbNncG47JrUQrKDJGUs0fLBxHG4ErEdVc/s+l/ZTGBT6kOEjk5GLQviNuAzP51em+TATR6YJ4JdgnZEU3iwbyeY/lLPPWhOVDfUgLNVKHX7Sijf83Wp+cqspAdIcnT5lWMXUe7jciKQLC0B+jD6IQ/hCqF0/yX/H8Sa8jA+qSIrXWt/qSy1viKaQ3Sf8+rXyxG6dqYc0jUweQ248FOgUCtzmaZP48SoMBATN7JPCLzhGnY8IiMErGzc6jsevmoqB0MRqZhc2qsLEfTclxsMmfx2yVKt93G+zRMtQuYmf36MvDNbPaH+/tzE8pWxufSY0672qhL0sfvNO+FuCJ8Bsk4UwKV3lTeGjCwN5o= - file: ${CLBLAST_TAR} - skip_cleanup: true - on: - repo: CNugteren/CLBlast - tags: true diff --git a/CMakeLists.txt b/CMakeLists.txt index cde7ace0..169e6852 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,7 +124,7 @@ else() set(FLAGS "${FLAGS} -O2") endif() if(CMAKE_CXX_COMPILER_ID STREQUAL GNU) - set(FLAGS "${FLAGS} -Wall -Wno-comment -Wno-return-type -Wno-switch -Wno-missing-noreturn") + set(FLAGS "${FLAGS} -Wall -Wno-comment -Wno-return-type -Wno-switch -Wno-missing-noreturn -Wno-unused-function") if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9.0) set(FLAGS "${FLAGS} -Wno-attributes -Wno-unused-variable") endif() @@ -138,7 +138,7 @@ else() set(FLAGS "${FLAGS} -Wextra -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded") set(FLAGS "${FLAGS} -Wno-missing-prototypes -Wno-float-equal -Wno-switch-enum -Wno-switch") set(FLAGS "${FLAGS} -Wno-exit-time-destructors -Wno-global-constructors -Wno-missing-noreturn") - set(FLAGS "${FLAGS} -Wno-deprecated-declarations") + set(FLAGS "${FLAGS} -Wno-deprecated-declarations -Wno-unused-function") if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 3.9.0) # clang 4.0 or higher if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0) # but not for AppleClang set(FLAGS "${FLAGS} -Wno-undefined-var-template") diff --git a/README.md b/README.md index cbecc606..bad6d9f7 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@ CLBlast: The tuned OpenCL BLAS library | Platform | Build status | |-----|-----| | Windows | [![Build Status](https://ci.appveyor.com/api/projects/status/github/cnugteren/clblast?branch=master&svg=true)](https://ci.appveyor.com/project/CNugteren/clblast) | -| Linux | [![Build Status](https://travis-ci.org/CNugteren/CLBlast.svg?branch=master)](https://travis-ci.org/CNugteren/CLBlast/branches) | -| OS X | [![Build Status](https://travis-ci.org/CNugteren/CLBlast.svg?branch=master)](https://travis-ci.org/CNugteren/CLBlast/branches) | +| Linux/macOS | ![Build Status](https://github.com/cnugteren/clblast/actions/workflows/build_and_test.yml/badge.svg?branch=master) + | | Test machine (thanks to [ArrayFire](https://ci.arrayfire.org:8010/#/builders)) | Test status | |-----|-----| diff --git a/include/clblast_half.h b/include/clblast_half.h index b8de8537..cbea1723 100644 --- a/include/clblast_half.h +++ b/include/clblast_half.h @@ -18,11 +18,6 @@ #ifndef CLBLAST_HALF_H_ #define CLBLAST_HALF_H_ -// MSVC 2013 doesn't fully support C99 -#ifdef _MSC_VER - #define inline __inline -#endif - // ================================================================================================= // The host data-type for half-precision floating-point (16-bit) is based on the `cl_half` OpenCL @@ -40,7 +35,7 @@ typedef union ConversionBits_ { // Converts a IEEE-compliant single-precision value to half-precision floating-point. This function // applies simple truncation (round toward zero, but with overflows set to infinity) as rounding // mode. -inline half FloatToHalf(const float value) { +static half FloatToHalf(const float value) { static const unsigned short base_table[512] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -101,7 +96,7 @@ inline half FloatToHalf(const float value) { } // Converts a half-precision value to IEEE-compliant single-precision floating-point -inline float HalfToFloat(const half value) { +static float HalfToFloat(const half value) { static const unsigned int mantissa_table[2048] = { 0x00000000, 0x33800000, 0x34000000, 0x34400000, 0x34800000, 0x34A00000, 0x34C00000, 0x34E00000, 0x35000000, 0x35100000, 0x35200000, 0x35300000, 0x35400000, 0x35500000, 0x35600000, 0x35700000, 0x35800000, 0x35880000, 0x35900000, 0x35980000, 0x35A00000, 0x35A80000, 0x35B00000, 0x35B80000, 0x35C00000, 0x35C80000, 0x35D00000, 0x35D80000, 0x35E00000, 0x35E80000, 0x35F00000, 0x35F80000, diff --git a/samples/cache.c b/samples/cache.c index 980c7cf3..2a48c321 100644 --- a/samples/cache.c +++ b/samples/cache.c @@ -20,6 +20,7 @@ #include #include +#define CL_TARGET_OPENCL_VERSION 120 #define CL_USE_DEPRECATED_OPENCL_1_2_APIS // to disable deprecation warnings // Includes the CLBlast library (C interface) diff --git a/samples/dgemv.c b/samples/dgemv.c index 975cb7ac..b579b25a 100644 --- a/samples/dgemv.c +++ b/samples/dgemv.c @@ -19,6 +19,7 @@ #include #include +#define CL_TARGET_OPENCL_VERSION 120 #define CL_USE_DEPRECATED_OPENCL_1_2_APIS // to disable deprecation warnings // Includes the CLBlast library (C interface) diff --git a/samples/dtrsm.cpp b/samples/dtrsm.cpp index c558d1f5..e207e5d3 100644 --- a/samples/dtrsm.cpp +++ b/samples/dtrsm.cpp @@ -24,8 +24,9 @@ // Includes the C++ OpenCL API. If not yet available, it can be found here: // https://raw.githubusercontent.com/KhronosGroup/OpenCL-CLHPP/main/include/CL/opencl.hpp -#define CL_HPP_TARGET_OPENCL_VERSION 210 -#define CL_TARGET_OPENCL_VERSION 210 +#define CL_HPP_TARGET_OPENCL_VERSION 120 +#define CL_HPP_MINIMUM_OPENCL_VERSION 120 +#define CL_TARGET_OPENCL_VERSION 120 #include "opencl.hpp" // Includes the CLBlast library diff --git a/samples/haxpy.c b/samples/haxpy.c index 4f2bb400..ad3eabae 100644 --- a/samples/haxpy.c +++ b/samples/haxpy.c @@ -18,6 +18,7 @@ #include #include +#define CL_TARGET_OPENCL_VERSION 120 #define CL_USE_DEPRECATED_OPENCL_1_2_APIS // to disable deprecation warnings // Includes the CLBlast library (C interface) diff --git a/samples/samax.c b/samples/samax.c index 36e78846..27a8f133 100644 --- a/samples/samax.c +++ b/samples/samax.c @@ -19,7 +19,7 @@ #include #include -#define CL_TARGET_OPENCL_VERSION 110 +#define CL_TARGET_OPENCL_VERSION 120 #define CL_USE_DEPRECATED_OPENCL_1_2_APIS // to disable deprecation warnings // Includes the CLBlast library (C interface) @@ -84,7 +84,7 @@ int main(void) { clEnqueueReadBuffer(queue, device_output, CL_TRUE, 0, 1*sizeof(unsigned int), host_output, 0, NULL, NULL); // Example completed. See "clblast_c.h" for status codes (0 -> success). - printf("Completed iSAMAX with status %d: array of %d values with staircases from 0..9 repeated, max at index %zu with value %.0lf\n", + printf("Completed iSAMAX with status %d: array of %zu values with staircases from 0..9 repeated, max at index %u with value %.0lf\n", status, n, host_output[0], host_input[host_output[0]]); // Clean-up diff --git a/samples/sasum.c b/samples/sasum.c index 78377336..36efef4c 100644 --- a/samples/sasum.c +++ b/samples/sasum.c @@ -19,6 +19,7 @@ #include #include +#define CL_TARGET_OPENCL_VERSION 120 #define CL_USE_DEPRECATED_OPENCL_1_2_APIS // to disable deprecation warnings // Includes the CLBlast library (C interface) diff --git a/samples/sgemm.c b/samples/sgemm.c index 92f3057d..df105f17 100644 --- a/samples/sgemm.c +++ b/samples/sgemm.c @@ -19,6 +19,7 @@ #include #include +#define CL_TARGET_OPENCL_VERSION 120 #define CL_USE_DEPRECATED_OPENCL_1_2_APIS // to disable deprecation warnings // Includes the CLBlast library (C interface) diff --git a/samples/sgemm.cpp b/samples/sgemm.cpp index 534ffa78..f2acfff6 100644 --- a/samples/sgemm.cpp +++ b/samples/sgemm.cpp @@ -25,8 +25,9 @@ // Includes the C++ OpenCL API. If not yet available, it can be found here: // https://raw.githubusercontent.com/KhronosGroup/OpenCL-CLHPP/main/include/CL/opencl.hpp -#define CL_HPP_TARGET_OPENCL_VERSION 210 -#define CL_TARGET_OPENCL_VERSION 210 +#define CL_HPP_TARGET_OPENCL_VERSION 120 +#define CL_HPP_MINIMUM_OPENCL_VERSION 120 +#define CL_TARGET_OPENCL_VERSION 120 #include "opencl.hpp" // Includes the CLBlast library diff --git a/samples/sgemm_batched.cpp b/samples/sgemm_batched.cpp index a839d305..d17d31c3 100644 --- a/samples/sgemm_batched.cpp +++ b/samples/sgemm_batched.cpp @@ -25,8 +25,9 @@ // Includes the C++ OpenCL API. If not yet available, it can be found here: // https://raw.githubusercontent.com/KhronosGroup/OpenCL-CLHPP/main/include/CL/opencl.hpp -#define CL_HPP_TARGET_OPENCL_VERSION 210 -#define CL_TARGET_OPENCL_VERSION 210 +#define CL_HPP_TARGET_OPENCL_VERSION 120 +#define CL_HPP_MINIMUM_OPENCL_VERSION 120 +#define CL_TARGET_OPENCL_VERSION 120 #include "opencl.hpp" // Includes the CLBlast library diff --git a/samples/tuning_api.cpp b/samples/tuning_api.cpp index 7d7294ad..a9968101 100644 --- a/samples/tuning_api.cpp +++ b/samples/tuning_api.cpp @@ -21,8 +21,9 @@ // Includes the C++ OpenCL API. If not yet available, it can be found here: // https://raw.githubusercontent.com/KhronosGroup/OpenCL-CLHPP/main/include/CL/opencl.hpp -#define CL_HPP_TARGET_OPENCL_VERSION 210 -#define CL_TARGET_OPENCL_VERSION 210 +#define CL_HPP_TARGET_OPENCL_VERSION 120 +#define CL_HPP_MINIMUM_OPENCL_VERSION 120 +#define CL_TARGET_OPENCL_VERSION 120 #include "opencl.hpp" // Includes the CLBlast library @@ -66,7 +67,7 @@ int main() { // Tuning completed. See "clblast.h" for status codes (0 -> success). printf("Completed TuneCopy with status %d (0 == OK), found parameters:\n", static_cast(status)); - for (const auto parameter: parameters) { + for (const auto ¶meter: parameters) { printf("> %s = %zu\n", parameter.first.c_str(), parameter.second); } diff --git a/test/correctness/testblas.hpp b/test/correctness/testblas.hpp index b2dc6e7a..bfefadc5 100644 --- a/test/correctness/testblas.hpp +++ b/test/correctness/testblas.hpp @@ -157,6 +157,15 @@ template const std::vector TestBlas::kTr template const std::vector TestBlas::kSides = {Side::kLeft, Side::kRight}; template const std::vector TestBlas::kDiagonals = {Diagonal::kUnit, Diagonal::kNonUnit}; +// The transpose configurations to test with: template parameter dependent, see .cpp file for implementation +template <> const std::vector TestBlas::kTransposes; +template <> const std::vector TestBlas::kTransposes; +template <> const std::vector TestBlas::kTransposes; +template <> const std::vector TestBlas::kTransposes; +template <> const std::vector TestBlas::kTransposes; +template <> const std::vector TestBlas::kTransposes; +template <> const std::vector TestBlas::kTransposes; + // ================================================================================================= // Bogus reference function, in case a comparison library is not available diff --git a/test/performance/client.cpp b/test/performance/client.cpp index e6930203..e0c99fa9 100644 --- a/test/performance/client.cpp +++ b/test/performance/client.cpp @@ -279,7 +279,7 @@ void Client::PerformanceTest(Arguments &args, const SetMetric set_sizes) TimeResult time_cublas; try { time_cublas = TimedExecution(args.num_runs, args, buffers_cuda, queue, run_reference3_, "cuBLAS"); - } catch (std::runtime_error e) { } + } catch (std::runtime_error &e) { } CUDAToHost(args, buffers_cuda, buffers_host, buffers_out_); HostToDevice(args, buffers, buffers_host, queue, buffers_out_); timings.push_back(std::pair("cuBLAS", time_cublas)); diff --git a/test/routines/levelx/xcol2im.hpp b/test/routines/levelx/xcol2im.hpp index c740e4c7..cdac3493 100644 --- a/test/routines/levelx/xcol2im.hpp +++ b/test/routines/levelx/xcol2im.hpp @@ -201,7 +201,8 @@ StatusCode RunReference(const Arguments &args, BuffersHost &bu auto a_buffer2 = HalfToFloatBuffer(buffers_host.a_mat); auto b_buffer2 = HalfToFloatBuffer(buffers_host.b_mat); auto dummy = std::vector(0); - auto buffers2 = BuffersHost{dummy, dummy, a_buffer2, b_buffer2, dummy, dummy, dummy}; + auto dummy_uint = std::vector(0); + auto buffers2 = BuffersHost{dummy, dummy, a_buffer2, b_buffer2, dummy, dummy, dummy, dummy_uint}; auto args2 = Arguments(); args2.a_size = args.a_size; args2.b_size = args.b_size; args2.kernel_mode = args.kernel_mode; diff --git a/test/routines/levelx/xconvgemm.hpp b/test/routines/levelx/xconvgemm.hpp index 786bb733..9085d927 100644 --- a/test/routines/levelx/xconvgemm.hpp +++ b/test/routines/levelx/xconvgemm.hpp @@ -230,7 +230,8 @@ StatusCode RunReference(const Arguments &args, BuffersHost &bu auto b_buffer2 = HalfToFloatBuffer(buffers_host.b_mat); auto c_buffer2 = HalfToFloatBuffer(buffers_host.c_mat); auto dummy = std::vector(0); - auto buffers2 = BuffersHost{dummy, dummy, a_buffer2, b_buffer2, c_buffer2, dummy, dummy}; + auto dummy_uint = std::vector(0); + auto buffers2 = BuffersHost{dummy, dummy, a_buffer2, b_buffer2, c_buffer2, dummy, dummy, dummy_uint}; auto args2 = Arguments(); args2.a_size = args.a_size; args2.b_size = args.b_size; args2.c_size = args.c_size; args2.kernel_mode = args.kernel_mode; diff --git a/test/routines/levelx/xhad.hpp b/test/routines/levelx/xhad.hpp index 3e40de87..49629452 100644 --- a/test/routines/levelx/xhad.hpp +++ b/test/routines/levelx/xhad.hpp @@ -39,7 +39,8 @@ StatusCode RunReference(const Arguments &args, BuffersHost &bu auto y_buffer2 = HalfToFloatBuffer(buffers_host.y_vec); auto c_buffer2 = HalfToFloatBuffer(buffers_host.c_mat); auto dummy = std::vector(0); - auto buffers2 = BuffersHost{x_buffer2, y_buffer2, dummy, dummy, c_buffer2, dummy, dummy}; + auto dummy_uint = std::vector(0); + auto buffers2 = BuffersHost{x_buffer2, y_buffer2, dummy, dummy, c_buffer2, dummy, dummy, dummy_uint}; auto args2 = Arguments(); args2.x_size = args.x_size; args2.y_size = args.y_size; args2.c_size = args.c_size; args2.x_inc = args.x_inc; args2.y_inc = args.y_inc; args2.n = args.n; @@ -152,7 +153,7 @@ public: // Describes how to compute the indices of the result buffer static size_t ResultID1(const Arguments &args) { return args.n; } static size_t ResultID2(const Arguments &) { return 1; } // N/A for this routine - static size_t GetResultIndex(const Arguments &args, const size_t id1, const size_t) { + static size_t GetResultIndex(const Arguments &, const size_t id1, const size_t) { return id1; // * args.z_inc + args.z_offset; } diff --git a/test/routines/levelx/xim2col.hpp b/test/routines/levelx/xim2col.hpp index 2a5ebf8e..ab3b6a0f 100644 --- a/test/routines/levelx/xim2col.hpp +++ b/test/routines/levelx/xim2col.hpp @@ -200,7 +200,8 @@ StatusCode RunReference(const Arguments &args, BuffersHost &bu auto a_buffer2 = HalfToFloatBuffer(buffers_host.a_mat); auto b_buffer2 = HalfToFloatBuffer(buffers_host.b_mat); auto dummy = std::vector(0); - auto buffers2 = BuffersHost{dummy, dummy, a_buffer2, b_buffer2, dummy, dummy, dummy}; + auto dummy_uint = std::vector(0); + auto buffers2 = BuffersHost{dummy, dummy, a_buffer2, b_buffer2, dummy, dummy, dummy, dummy_uint}; auto args2 = Arguments(); args2.a_size = args.a_size; args2.b_size = args.b_size; args2.kernel_mode = args.kernel_mode; diff --git a/test/routines/levelx/xinvert.hpp b/test/routines/levelx/xinvert.hpp index 126856ac..54905de1 100644 --- a/test/routines/levelx/xinvert.hpp +++ b/test/routines/levelx/xinvert.hpp @@ -108,7 +108,8 @@ StatusCode RunReference(const Arguments &args, BuffersHost &bu auto a_buffer2 = HalfToFloatBuffer(buffers_host.a_mat); auto b_buffer2 = HalfToFloatBuffer(buffers_host.b_mat); auto dummy = std::vector(0); - auto buffers2 = BuffersHost{dummy, dummy, a_buffer2, b_buffer2, dummy, dummy, dummy}; + auto dummy_uint = std::vector(0); + auto buffers2 = BuffersHost{dummy, dummy, a_buffer2, b_buffer2, dummy, dummy, dummy, dummy_uint}; auto args2 = Arguments(); args2.a_size = args.a_size; args2.b_size = args.b_size; args2.a_ld = args.a_ld; args2.m = args.m; args2.n = args.n; diff --git a/test/routines/levelx/xomatcopy.hpp b/test/routines/levelx/xomatcopy.hpp index 4a93b29d..a4d98e79 100644 --- a/test/routines/levelx/xomatcopy.hpp +++ b/test/routines/levelx/xomatcopy.hpp @@ -59,7 +59,8 @@ StatusCode RunReference(const Arguments &args, BuffersHost &bu auto a_buffer2 = HalfToFloatBuffer(buffers_host.a_mat); auto b_buffer2 = HalfToFloatBuffer(buffers_host.b_mat); auto dummy = std::vector(0); - auto buffers2 = BuffersHost{dummy, dummy, a_buffer2, b_buffer2, dummy, dummy, dummy}; + auto dummy_uint = std::vector(0); + auto buffers2 = BuffersHost{dummy, dummy, a_buffer2, b_buffer2, dummy, dummy, dummy, dummy_uint}; auto args2 = Arguments(); args2.a_size = args.a_size; args2.b_size = args.b_size; args2.a_ld = args.a_ld; args2.b_ld = args.b_ld; args2.m = args.m; args2.n = args.n; -- cgit v1.2.3 From 7a3ef92ff26dfd76dc877c1f32d43a73d00d4dd4 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Wed, 17 May 2023 10:31:47 +0200 Subject: Add 3 sets of tuning results: RX 5700 XT, 2080 Ti, and 3090 (#468) * Add tuning results for AMD Radeon RX 5700 XT * Add tuning results for NVIDIA GeForce RTX 2080 Ti * Add tuning results for NVIDIA GeForce RTX 3090 --- src/database/kernels/copy/copy_16.hpp | 4 ++++ src/database/kernels/copy/copy_32.hpp | 13 +++++++++++-- src/database/kernels/copy/copy_3232.hpp | 9 +++++++++ src/database/kernels/copy/copy_64.hpp | 9 +++++++++ src/database/kernels/copy/copy_6464.hpp | 11 ++++++++++- src/database/kernels/gemm_routine/gemm_routine_16.hpp | 6 +++++- src/database/kernels/gemm_routine/gemm_routine_32.hpp | 13 +++++++++++-- src/database/kernels/gemm_routine/gemm_routine_3232.hpp | 13 +++++++++++-- src/database/kernels/gemm_routine/gemm_routine_64.hpp | 15 ++++++++++++--- src/database/kernels/gemm_routine/gemm_routine_6464.hpp | 15 ++++++++++++--- src/database/kernels/invert/invert_16.hpp | 4 ++++ src/database/kernels/invert/invert_32.hpp | 11 ++++++++++- src/database/kernels/invert/invert_3232.hpp | 9 +++++++++ src/database/kernels/invert/invert_64.hpp | 9 +++++++++ src/database/kernels/invert/invert_6464.hpp | 9 +++++++++ src/database/kernels/pad/pad_16.hpp | 6 +++++- src/database/kernels/pad/pad_32.hpp | 11 ++++++++++- src/database/kernels/pad/pad_3232.hpp | 11 ++++++++++- src/database/kernels/pad/pad_64.hpp | 9 +++++++++ src/database/kernels/pad/pad_6464.hpp | 11 ++++++++++- src/database/kernels/padtranspose/padtranspose_16.hpp | 4 ++++ src/database/kernels/padtranspose/padtranspose_32.hpp | 11 ++++++++++- src/database/kernels/padtranspose/padtranspose_3232.hpp | 9 +++++++++ src/database/kernels/padtranspose/padtranspose_64.hpp | 9 +++++++++ src/database/kernels/padtranspose/padtranspose_6464.hpp | 9 +++++++++ src/database/kernels/transpose/transpose_16.hpp | 6 +++++- src/database/kernels/transpose/transpose_32.hpp | 11 ++++++++++- src/database/kernels/transpose/transpose_3232.hpp | 9 +++++++++ src/database/kernels/transpose/transpose_64.hpp | 11 ++++++++++- src/database/kernels/transpose/transpose_6464.hpp | 11 ++++++++++- src/database/kernels/trsv_routine/trsv_routine_32.hpp | 9 +++++++++ src/database/kernels/trsv_routine/trsv_routine_3232.hpp | 9 +++++++++ src/database/kernels/trsv_routine/trsv_routine_64.hpp | 9 +++++++++ src/database/kernels/trsv_routine/trsv_routine_6464.hpp | 9 +++++++++ src/database/kernels/xaxpy/xaxpy_16.hpp | 6 +++++- src/database/kernels/xaxpy/xaxpy_32.hpp | 11 ++++++++++- src/database/kernels/xaxpy/xaxpy_3232.hpp | 11 ++++++++++- src/database/kernels/xaxpy/xaxpy_64.hpp | 9 +++++++++ src/database/kernels/xaxpy/xaxpy_6464.hpp | 11 ++++++++++- src/database/kernels/xconvgemm/xconvgemm_16.hpp | 8 ++++++-- src/database/kernels/xconvgemm/xconvgemm_32.hpp | 13 +++++++++++-- src/database/kernels/xconvgemm/xconvgemm_64.hpp | 9 +++++++++ src/database/kernels/xdot/xdot_16.hpp | 4 ++++ src/database/kernels/xdot/xdot_32.hpp | 9 +++++++++ src/database/kernels/xdot/xdot_3232.hpp | 9 +++++++++ src/database/kernels/xdot/xdot_64.hpp | 11 ++++++++++- src/database/kernels/xdot/xdot_6464.hpp | 9 +++++++++ src/database/kernels/xgemm/xgemm_16.hpp | 6 +++++- src/database/kernels/xgemm/xgemm_32.hpp | 9 +++++++++ src/database/kernels/xgemm/xgemm_3232.hpp | 13 +++++++++++-- src/database/kernels/xgemm/xgemm_64.hpp | 9 +++++++++ src/database/kernels/xgemm/xgemm_6464.hpp | 11 ++++++++++- src/database/kernels/xgemm_direct/xgemm_direct_16.hpp | 6 +++++- src/database/kernels/xgemm_direct/xgemm_direct_32.hpp | 11 ++++++++++- src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp | 9 +++++++++ src/database/kernels/xgemm_direct/xgemm_direct_64.hpp | 11 ++++++++++- src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp | 11 ++++++++++- src/database/kernels/xgemv/xgemv_16.hpp | 4 ++++ src/database/kernels/xgemv/xgemv_32.hpp | 11 ++++++++++- src/database/kernels/xgemv/xgemv_3232.hpp | 9 +++++++++ src/database/kernels/xgemv/xgemv_64.hpp | 13 +++++++++++-- src/database/kernels/xgemv/xgemv_6464.hpp | 9 +++++++++ src/database/kernels/xgemv_fast/xgemv_fast_16.hpp | 4 ++++ src/database/kernels/xgemv_fast/xgemv_fast_32.hpp | 9 +++++++++ src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp | 9 +++++++++ src/database/kernels/xgemv_fast/xgemv_fast_64.hpp | 9 +++++++++ src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp | 9 +++++++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp | 4 ++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp | 9 +++++++++ .../kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp | 13 +++++++++++-- src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp | 9 +++++++++ .../kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp | 11 ++++++++++- src/database/kernels/xger/xger_16.hpp | 4 ++++ src/database/kernels/xger/xger_32.hpp | 13 +++++++++++-- src/database/kernels/xger/xger_3232.hpp | 9 +++++++++ src/database/kernels/xger/xger_64.hpp | 11 ++++++++++- src/database/kernels/xger/xger_6464.hpp | 9 +++++++++ 77 files changed, 668 insertions(+), 50 deletions(-) diff --git a/src/database/kernels/copy/copy_16.hpp b/src/database/kernels/copy/copy_16.hpp index 60817a15..7b7edebc 100644 --- a/src/database/kernels/copy/copy_16.hpp +++ b/src/database/kernels/copy/copy_16.hpp @@ -25,6 +25,10 @@ const DatabaseEntry CopyHalf = { { "default", { { kDeviceNameDefault , Params{ 16, 16, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 16, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/copy/copy_32.hpp b/src/database/kernels/copy/copy_32.hpp index 1dfe3d4d..d97cd072 100644 --- a/src/database/kernels/copy/copy_32.hpp +++ b/src/database/kernels/copy/copy_32.hpp @@ -60,6 +60,10 @@ const DatabaseEntry CopySingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -176,15 +180,20 @@ const DatabaseEntry CopySingle = { { kDeviceNameDefault , Params{ 16, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 32, 32, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 8, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, @@ -209,7 +218,7 @@ const DatabaseEntry CopySingle = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 16, 16, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/copy/copy_3232.hpp b/src/database/kernels/copy/copy_3232.hpp index cd61d720..a8132a21 100644 --- a/src/database/kernels/copy/copy_3232.hpp +++ b/src/database/kernels/copy/copy_3232.hpp @@ -60,6 +60,10 @@ const DatabaseEntry CopyComplexSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -170,6 +174,7 @@ const DatabaseEntry CopyComplexSingle = { { kDeviceNameDefault , Params{ 16, 8, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 32, 32, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 32, 32, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -179,6 +184,10 @@ const DatabaseEntry CopyComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 16, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 8, 8, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/copy/copy_64.hpp b/src/database/kernels/copy/copy_64.hpp index 45fe98bd..7df294f4 100644 --- a/src/database/kernels/copy/copy_64.hpp +++ b/src/database/kernels/copy/copy_64.hpp @@ -52,6 +52,10 @@ const DatabaseEntry CopyDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -156,6 +160,7 @@ const DatabaseEntry CopyDouble = { { kDeviceNameDefault , Params{ 32, 32, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 32, 32, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 32, 32, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -165,6 +170,10 @@ const DatabaseEntry CopyDouble = { { Name{"A100-PCIE-40GB "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 32, 32, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 32, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/copy/copy_6464.hpp b/src/database/kernels/copy/copy_6464.hpp index b04a0930..fe37a867 100644 --- a/src/database/kernels/copy/copy_6464.hpp +++ b/src/database/kernels/copy/copy_6464.hpp @@ -52,6 +52,10 @@ const DatabaseEntry CopyComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 8, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -156,6 +160,7 @@ const DatabaseEntry CopyComplexDouble = { { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 32, 32, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 32, 32, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -165,8 +170,12 @@ const DatabaseEntry CopyComplexDouble = { { Name{"A100-PCIE-40GB "}, Params{ 8, 16, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { - { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_16.hpp b/src/database/kernels/gemm_routine/gemm_routine_16.hpp index 11c58a04..da8816e6 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_16.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_16.hpp @@ -15,7 +15,11 @@ const DatabaseEntry GemmRoutineHalf = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { - { kDeviceNameDefault , Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_32.hpp b/src/database/kernels/gemm_routine/gemm_routine_32.hpp index 54c2362a..277a6f65 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_32.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_32.hpp @@ -18,6 +18,10 @@ const DatabaseEntry GemmRoutineSingle = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -92,15 +96,20 @@ const DatabaseEntry GemmRoutineSingle = { { kDeviceNameDefault , Params{ 1728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 1600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, @@ -125,7 +134,7 @@ const DatabaseEntry GemmRoutineSingle = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_3232.hpp b/src/database/kernels/gemm_routine/gemm_routine_3232.hpp index a50580c7..ea101e13 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_3232.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_3232.hpp @@ -16,7 +16,11 @@ const DatabaseEntry GemmRoutineComplexSingle = { kDeviceTypeGPU, "AMD", { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -79,15 +83,20 @@ const DatabaseEntry GemmRoutineComplexSingle = { { kDeviceNameDefault , Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 1152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_64.hpp b/src/database/kernels/gemm_routine/gemm_routine_64.hpp index c0228cfd..81ba801f 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_64.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_64.hpp @@ -18,6 +18,10 @@ const DatabaseEntry GemmRoutineDouble = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -62,24 +66,29 @@ const DatabaseEntry GemmRoutineDouble = { { kDeviceNameDefault , Params{ 1728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 1792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 1600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { - { kDeviceNameDefault , Params{ 1344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 1152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_6464.hpp b/src/database/kernels/gemm_routine/gemm_routine_6464.hpp index ce2e2802..984ea5f0 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_6464.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_6464.hpp @@ -18,6 +18,10 @@ const DatabaseEntry GemmRoutineComplexDouble = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -62,24 +66,29 @@ const DatabaseEntry GemmRoutineComplexDouble = { { kDeviceNameDefault , Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 1728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { - { kDeviceNameDefault , Params{ 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/invert/invert_16.hpp b/src/database/kernels/invert/invert_16.hpp index fbce5f53..8d54580e 100644 --- a/src/database/kernels/invert/invert_16.hpp +++ b/src/database/kernels/invert/invert_16.hpp @@ -17,6 +17,10 @@ const DatabaseEntry InvertHalf = { { "default", { { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/invert/invert_32.hpp b/src/database/kernels/invert/invert_32.hpp index c6601c18..5cdc936f 100644 --- a/src/database/kernels/invert/invert_32.hpp +++ b/src/database/kernels/invert/invert_32.hpp @@ -18,6 +18,10 @@ const DatabaseEntry InvertSingle = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -81,15 +85,20 @@ const DatabaseEntry InvertSingle = { { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/invert/invert_3232.hpp b/src/database/kernels/invert/invert_3232.hpp index fb8e72d0..42e5ff42 100644 --- a/src/database/kernels/invert/invert_3232.hpp +++ b/src/database/kernels/invert/invert_3232.hpp @@ -18,6 +18,10 @@ const DatabaseEntry InvertComplexSingle = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -80,6 +84,7 @@ const DatabaseEntry InvertComplexSingle = { { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -89,6 +94,10 @@ const DatabaseEntry InvertComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/invert/invert_64.hpp b/src/database/kernels/invert/invert_64.hpp index 892952b8..72765f9a 100644 --- a/src/database/kernels/invert/invert_64.hpp +++ b/src/database/kernels/invert/invert_64.hpp @@ -18,6 +18,10 @@ const DatabaseEntry InvertDouble = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -63,6 +67,7 @@ const DatabaseEntry InvertDouble = { { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -72,6 +77,10 @@ const DatabaseEntry InvertDouble = { { Name{"A100-PCIE-40GB "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/invert/invert_6464.hpp b/src/database/kernels/invert/invert_6464.hpp index 9376ad32..7cbfdddb 100644 --- a/src/database/kernels/invert/invert_6464.hpp +++ b/src/database/kernels/invert/invert_6464.hpp @@ -18,6 +18,10 @@ const DatabaseEntry InvertComplexDouble = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -63,6 +67,7 @@ const DatabaseEntry InvertComplexDouble = { { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -72,6 +77,10 @@ const DatabaseEntry InvertComplexDouble = { { Name{"A100-PCIE-40GB "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/pad/pad_16.hpp b/src/database/kernels/pad/pad_16.hpp index 521da15b..a0198adb 100644 --- a/src/database/kernels/pad/pad_16.hpp +++ b/src/database/kernels/pad/pad_16.hpp @@ -25,6 +25,10 @@ const DatabaseEntry PadHalf = { { "default", { { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -73,7 +77,7 @@ const DatabaseEntry PadHalf = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/pad/pad_32.hpp b/src/database/kernels/pad/pad_32.hpp index f9f8c4b9..41648265 100644 --- a/src/database/kernels/pad/pad_32.hpp +++ b/src/database/kernels/pad/pad_32.hpp @@ -60,6 +60,10 @@ const DatabaseEntry PadSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -175,15 +179,20 @@ const DatabaseEntry PadSingle = { { kDeviceNameDefault , Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 16, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 32, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/pad/pad_3232.hpp b/src/database/kernels/pad/pad_3232.hpp index cae4e3e2..0ec686c4 100644 --- a/src/database/kernels/pad/pad_3232.hpp +++ b/src/database/kernels/pad/pad_3232.hpp @@ -60,6 +60,10 @@ const DatabaseEntry PadComplexSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -172,15 +176,20 @@ const DatabaseEntry PadComplexSingle = { { kDeviceNameDefault , Params{ 32, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/pad/pad_64.hpp b/src/database/kernels/pad/pad_64.hpp index a5c7aa2b..4c51107e 100644 --- a/src/database/kernels/pad/pad_64.hpp +++ b/src/database/kernels/pad/pad_64.hpp @@ -52,6 +52,10 @@ const DatabaseEntry PadDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -156,6 +160,7 @@ const DatabaseEntry PadDouble = { { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -165,6 +170,10 @@ const DatabaseEntry PadDouble = { { Name{"A100-PCIE-40GB "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/pad/pad_6464.hpp b/src/database/kernels/pad/pad_6464.hpp index 1b38a017..7099d7b6 100644 --- a/src/database/kernels/pad/pad_6464.hpp +++ b/src/database/kernels/pad/pad_6464.hpp @@ -52,6 +52,10 @@ const DatabaseEntry PadComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -156,15 +160,20 @@ const DatabaseEntry PadComplexDouble = { { kDeviceNameDefault , Params{ 16, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 8, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_16.hpp b/src/database/kernels/padtranspose/padtranspose_16.hpp index e655d9ff..970ccbec 100644 --- a/src/database/kernels/padtranspose/padtranspose_16.hpp +++ b/src/database/kernels/padtranspose/padtranspose_16.hpp @@ -25,6 +25,10 @@ const DatabaseEntry PadtransposeHalf = { { "default", { { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/padtranspose/padtranspose_32.hpp b/src/database/kernels/padtranspose/padtranspose_32.hpp index d0f424d4..080ab69c 100644 --- a/src/database/kernels/padtranspose/padtranspose_32.hpp +++ b/src/database/kernels/padtranspose/padtranspose_32.hpp @@ -60,6 +60,10 @@ const DatabaseEntry PadtransposeSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -174,15 +178,20 @@ const DatabaseEntry PadtransposeSingle = { { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_3232.hpp b/src/database/kernels/padtranspose/padtranspose_3232.hpp index 2c67c4ab..df4ce1f8 100644 --- a/src/database/kernels/padtranspose/padtranspose_3232.hpp +++ b/src/database/kernels/padtranspose/padtranspose_3232.hpp @@ -60,6 +60,10 @@ const DatabaseEntry PadtransposeComplexSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -172,6 +176,7 @@ const DatabaseEntry PadtransposeComplexSingle = { { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -181,6 +186,10 @@ const DatabaseEntry PadtransposeComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_64.hpp b/src/database/kernels/padtranspose/padtranspose_64.hpp index fa0eb19d..53198e3b 100644 --- a/src/database/kernels/padtranspose/padtranspose_64.hpp +++ b/src/database/kernels/padtranspose/padtranspose_64.hpp @@ -52,6 +52,10 @@ const DatabaseEntry PadtransposeDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -156,6 +160,7 @@ const DatabaseEntry PadtransposeDouble = { { kDeviceNameDefault , Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -165,6 +170,10 @@ const DatabaseEntry PadtransposeDouble = { { Name{"A100-PCIE-40GB "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_6464.hpp b/src/database/kernels/padtranspose/padtranspose_6464.hpp index 4d834187..197b8629 100644 --- a/src/database/kernels/padtranspose/padtranspose_6464.hpp +++ b/src/database/kernels/padtranspose/padtranspose_6464.hpp @@ -52,6 +52,10 @@ const DatabaseEntry PadtransposeComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -156,6 +160,7 @@ const DatabaseEntry PadtransposeComplexDouble = { { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -165,6 +170,10 @@ const DatabaseEntry PadtransposeComplexDouble = { { Name{"A100-PCIE-40GB "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/transpose/transpose_16.hpp b/src/database/kernels/transpose/transpose_16.hpp index 450300db..79735019 100644 --- a/src/database/kernels/transpose/transpose_16.hpp +++ b/src/database/kernels/transpose/transpose_16.hpp @@ -25,6 +25,10 @@ const DatabaseEntry TransposeHalf = { { "default", { { kDeviceNameDefault , Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -65,7 +69,7 @@ const DatabaseEntry TransposeHalf = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 8, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/transpose/transpose_32.hpp b/src/database/kernels/transpose/transpose_32.hpp index efdd4a98..40faf7f7 100644 --- a/src/database/kernels/transpose/transpose_32.hpp +++ b/src/database/kernels/transpose/transpose_32.hpp @@ -60,6 +60,10 @@ const DatabaseEntry TransposeSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 16, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -174,15 +178,20 @@ const DatabaseEntry TransposeSingle = { { kDeviceNameDefault , Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 4, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 16, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 4, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 16, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/transpose/transpose_3232.hpp b/src/database/kernels/transpose/transpose_3232.hpp index aca897b3..3a065dc3 100644 --- a/src/database/kernels/transpose/transpose_3232.hpp +++ b/src/database/kernels/transpose/transpose_3232.hpp @@ -60,6 +60,10 @@ const DatabaseEntry TransposeComplexSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -171,6 +175,7 @@ const DatabaseEntry TransposeComplexSingle = { { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 4, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 4, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -180,6 +185,10 @@ const DatabaseEntry TransposeComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 4, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/transpose/transpose_64.hpp b/src/database/kernels/transpose/transpose_64.hpp index 986f8693..56f60b60 100644 --- a/src/database/kernels/transpose/transpose_64.hpp +++ b/src/database/kernels/transpose/transpose_64.hpp @@ -52,6 +52,10 @@ const DatabaseEntry TransposeDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -156,15 +160,20 @@ const DatabaseEntry TransposeDouble = { { kDeviceNameDefault , Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/transpose/transpose_6464.hpp b/src/database/kernels/transpose/transpose_6464.hpp index 6d542430..06af7ffa 100644 --- a/src/database/kernels/transpose/transpose_6464.hpp +++ b/src/database/kernels/transpose/transpose_6464.hpp @@ -52,6 +52,10 @@ const DatabaseEntry TransposeComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -147,15 +151,20 @@ const DatabaseEntry TransposeComplexDouble = { { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 4, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/trsv_routine/trsv_routine_32.hpp b/src/database/kernels/trsv_routine/trsv_routine_32.hpp index ccc98856..c178bd2b 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_32.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_32.hpp @@ -18,6 +18,10 @@ const DatabaseEntry TrsvRoutineSingle = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -73,6 +77,7 @@ const DatabaseEntry TrsvRoutineSingle = { { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -82,6 +87,10 @@ const DatabaseEntry TrsvRoutineSingle = { { Name{"A100-PCIE-40GB "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/trsv_routine/trsv_routine_3232.hpp b/src/database/kernels/trsv_routine/trsv_routine_3232.hpp index 55328375..53b512a8 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_3232.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_3232.hpp @@ -18,6 +18,10 @@ const DatabaseEntry TrsvRoutineComplexSingle = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -72,6 +76,7 @@ const DatabaseEntry TrsvRoutineComplexSingle = { { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -81,6 +86,10 @@ const DatabaseEntry TrsvRoutineComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/trsv_routine/trsv_routine_64.hpp b/src/database/kernels/trsv_routine/trsv_routine_64.hpp index 97bd48c6..5cf477f7 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_64.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_64.hpp @@ -18,6 +18,10 @@ const DatabaseEntry TrsvRoutineDouble = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -55,6 +59,7 @@ const DatabaseEntry TrsvRoutineDouble = { { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -64,6 +69,10 @@ const DatabaseEntry TrsvRoutineDouble = { { Name{"A100-PCIE-40GB "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/trsv_routine/trsv_routine_6464.hpp b/src/database/kernels/trsv_routine/trsv_routine_6464.hpp index 6ab3f524..fcb6f7d8 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_6464.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_6464.hpp @@ -18,6 +18,10 @@ const DatabaseEntry TrsvRoutineComplexDouble = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -55,6 +59,7 @@ const DatabaseEntry TrsvRoutineComplexDouble = { { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -64,6 +69,10 @@ const DatabaseEntry TrsvRoutineComplexDouble = { { Name{"A100-PCIE-40GB "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xaxpy/xaxpy_16.hpp b/src/database/kernels/xaxpy/xaxpy_16.hpp index e387f62f..c5bc8e8d 100644 --- a/src/database/kernels/xaxpy/xaxpy_16.hpp +++ b/src/database/kernels/xaxpy/xaxpy_16.hpp @@ -23,7 +23,11 @@ const DatabaseEntry XaxpyHalf = { { kDeviceNameDefault , Params{ 4, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { - { kDeviceNameDefault , Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xaxpy/xaxpy_32.hpp b/src/database/kernels/xaxpy/xaxpy_32.hpp index 2a5d291f..60a6b0f6 100644 --- a/src/database/kernels/xaxpy/xaxpy_32.hpp +++ b/src/database/kernels/xaxpy/xaxpy_32.hpp @@ -60,6 +60,10 @@ const DatabaseEntry XaxpySingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 256, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 256, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -175,15 +179,20 @@ const DatabaseEntry XaxpySingle = { { kDeviceNameDefault , Params{ 4, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 8, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 4, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 4, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xaxpy/xaxpy_3232.hpp b/src/database/kernels/xaxpy/xaxpy_3232.hpp index 83af95c8..00211d12 100644 --- a/src/database/kernels/xaxpy/xaxpy_3232.hpp +++ b/src/database/kernels/xaxpy/xaxpy_3232.hpp @@ -60,6 +60,10 @@ const DatabaseEntry XaxpyComplexSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 2, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -172,6 +176,7 @@ const DatabaseEntry XaxpyComplexSingle = { { kDeviceNameDefault , Params{ 1, 1024, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -181,6 +186,10 @@ const DatabaseEntry XaxpyComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 2, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, @@ -197,7 +206,7 @@ const DatabaseEntry XaxpyComplexSingle = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xaxpy/xaxpy_64.hpp b/src/database/kernels/xaxpy/xaxpy_64.hpp index b70885b7..67a7bbc8 100644 --- a/src/database/kernels/xaxpy/xaxpy_64.hpp +++ b/src/database/kernels/xaxpy/xaxpy_64.hpp @@ -52,6 +52,10 @@ const DatabaseEntry XaxpyDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 128, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 128, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -156,6 +160,7 @@ const DatabaseEntry XaxpyDouble = { { kDeviceNameDefault , Params{ 1, 512, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -165,6 +170,10 @@ const DatabaseEntry XaxpyDouble = { { Name{"A100-PCIE-40GB "}, Params{ 2, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xaxpy/xaxpy_6464.hpp b/src/database/kernels/xaxpy/xaxpy_6464.hpp index 8d4d9758..8f82d3b7 100644 --- a/src/database/kernels/xaxpy/xaxpy_6464.hpp +++ b/src/database/kernels/xaxpy/xaxpy_6464.hpp @@ -52,6 +52,10 @@ const DatabaseEntry XaxpyComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -156,15 +160,20 @@ const DatabaseEntry XaxpyComplexDouble = { { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 1, 1024, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 256, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 1, 1024, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 1024, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xconvgemm/xconvgemm_16.hpp b/src/database/kernels/xconvgemm/xconvgemm_16.hpp index 60bc53de..aff1fb28 100644 --- a/src/database/kernels/xconvgemm/xconvgemm_16.hpp +++ b/src/database/kernels/xconvgemm/xconvgemm_16.hpp @@ -15,7 +15,11 @@ const DatabaseEntry XconvgemmHalf = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { - { kDeviceNameDefault , Params{ 1, 16, 16, 16, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 16, 8, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 8, 16, 16, 8, 0, 0, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 16, 16, 8, 0, 0, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 16, 16, 16, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, @@ -34,7 +38,7 @@ const DatabaseEntry XconvgemmHalf = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 1, 16, 16, 16, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 16, 8, 8, 0, 0, 1, 4, 32, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xconvgemm/xconvgemm_32.hpp b/src/database/kernels/xconvgemm/xconvgemm_32.hpp index 764e6b7c..6f3a4f97 100644 --- a/src/database/kernels/xconvgemm/xconvgemm_32.hpp +++ b/src/database/kernels/xconvgemm/xconvgemm_32.hpp @@ -16,7 +16,11 @@ const DatabaseEntry XconvgemmSingle = { kDeviceTypeGPU, "AMD", { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 8, 16, 16, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 1, 8, 16, 32, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 16, 8, 8, 0, 0, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 8, 8, 16, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 8, 16, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 8, 16, 32, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, @@ -61,6 +65,7 @@ const DatabaseEntry XconvgemmSingle = { { kDeviceNameDefault , Params{ 1, 8, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 32, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1, 32, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1, 32, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, @@ -69,8 +74,12 @@ const DatabaseEntry XconvgemmSingle = { { Name{"A100-PCIE-40GB "}, Params{ 1, 8, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 1, 8, 32, 16, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 32, 16, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { - { kDeviceNameDefault , Params{ 1, 8, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 32, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xconvgemm/xconvgemm_64.hpp b/src/database/kernels/xconvgemm/xconvgemm_64.hpp index 407d3eff..f01ec2e3 100644 --- a/src/database/kernels/xconvgemm/xconvgemm_64.hpp +++ b/src/database/kernels/xconvgemm/xconvgemm_64.hpp @@ -18,6 +18,10 @@ const DatabaseEntry XconvgemmDouble = { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 8, 32, 8, 8, 0, 0, 1, 4, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 8, 16, 8, 8, 0, 0, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 16, 8, 8, 0, 0, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, @@ -48,6 +52,7 @@ const DatabaseEntry XconvgemmDouble = { { kDeviceNameDefault , Params{ 1, 32, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 16, 8, 16, 8, 0, 0, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1, 8, 16, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1, 8, 16, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 16, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, @@ -56,6 +61,10 @@ const DatabaseEntry XconvgemmDouble = { { Name{"A100-PCIE-40GB "}, Params{ 1, 32, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 1, 8, 16, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 16, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 32, 32, 32, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xdot/xdot_16.hpp b/src/database/kernels/xdot/xdot_16.hpp index bef1f01a..4395d6ca 100644 --- a/src/database/kernels/xdot/xdot_16.hpp +++ b/src/database/kernels/xdot/xdot_16.hpp @@ -25,6 +25,10 @@ const DatabaseEntry XdotHalf = { { "default", { { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xdot/xdot_32.hpp b/src/database/kernels/xdot/xdot_32.hpp index a793f869..5c8ae6aa 100644 --- a/src/database/kernels/xdot/xdot_32.hpp +++ b/src/database/kernels/xdot/xdot_32.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XdotSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -165,6 +169,7 @@ const DatabaseEntry XdotSingle = { { kDeviceNameDefault , Params{ 1024, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -174,6 +179,10 @@ const DatabaseEntry XdotSingle = { { Name{"A100-PCIE-40GB "}, Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xdot/xdot_3232.hpp b/src/database/kernels/xdot/xdot_3232.hpp index 06d8190e..561db89b 100644 --- a/src/database/kernels/xdot/xdot_3232.hpp +++ b/src/database/kernels/xdot/xdot_3232.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XdotComplexSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -162,6 +166,7 @@ const DatabaseEntry XdotComplexSingle = { { kDeviceNameDefault , Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -171,6 +176,10 @@ const DatabaseEntry XdotComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 1024, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1024, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 512, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xdot/xdot_64.hpp b/src/database/kernels/xdot/xdot_64.hpp index bc49aa62..25885f1d 100644 --- a/src/database/kernels/xdot/xdot_64.hpp +++ b/src/database/kernels/xdot/xdot_64.hpp @@ -48,6 +48,10 @@ const DatabaseEntry XdotDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -140,15 +144,20 @@ const DatabaseEntry XdotDouble = { { kDeviceNameDefault , Params{ 512, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1024, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 512, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xdot/xdot_6464.hpp b/src/database/kernels/xdot/xdot_6464.hpp index 4301abfe..bbb6289e 100644 --- a/src/database/kernels/xdot/xdot_6464.hpp +++ b/src/database/kernels/xdot/xdot_6464.hpp @@ -48,6 +48,10 @@ const DatabaseEntry XdotComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -140,6 +144,7 @@ const DatabaseEntry XdotComplexDouble = { { kDeviceNameDefault , Params{ 512, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -149,6 +154,10 @@ const DatabaseEntry XdotComplexDouble = { { Name{"A100-PCIE-40GB "}, Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 512, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemm/xgemm_16.hpp b/src/database/kernels/xgemm/xgemm_16.hpp index 5674992e..89b24797 100644 --- a/src/database/kernels/xgemm/xgemm_16.hpp +++ b/src/database/kernels/xgemm/xgemm_16.hpp @@ -19,7 +19,11 @@ const DatabaseEntry XgemmHalf = { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, } }, { "default", { - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 2, 2 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 1, 32, 2, 8, 16, 128, 16, 16, 128, 1, 1, 1, 0, 8, 8 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 16, 128, 16, 16, 128, 1, 1, 1, 0, 8, 8 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 1, 32, 2, 8, 16, 128, 16, 16, 128, 1, 1, 1, 0, 8, 8 } }, diff --git a/src/database/kernels/xgemm/xgemm_32.hpp b/src/database/kernels/xgemm/xgemm_32.hpp index eb437d86..c6d106b3 100644 --- a/src/database/kernels/xgemm/xgemm_32.hpp +++ b/src/database/kernels/xgemm/xgemm_32.hpp @@ -60,6 +60,10 @@ const DatabaseEntry XgemmSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 8, 8, 32, 8, 8, 64, 0, 0, 0, 0, 4, 4 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 1, 16, 2, 16, 8, 64, 8, 8, 64, 1, 1, 0, 1, 2, 2 } }, + { kDeviceNameDefault , Params{ 0, 1, 16, 2, 16, 8, 64, 8, 8, 64, 1, 1, 0, 1, 2, 2 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 1, 16, 2, 8, 8, 128, 32, 8, 64, 1, 0, 1, 1, 4, 1 } }, { kDeviceNameDefault , Params{ 0, 1, 16, 2, 8, 8, 128, 32, 8, 64, 1, 0, 1, 1, 4, 1 } }, @@ -175,6 +179,7 @@ const DatabaseEntry XgemmSingle = { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 32, 1, 1, 0, 0, 4, 4 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 0, 1, 32, 2, 8, 32, 128, 16, 8, 128, 1, 1, 1, 1, 2, 2 } }, { Name{"Quadro T2000 "}, Params{ 0, 1, 16, 2, 16, 16, 128, 32, 16, 128, 1, 1, 1, 1, 1, 2 } }, { Name{"TITAN RTX "}, Params{ 0, 1, 32, 2, 8, 32, 128, 16, 8, 128, 1, 1, 1, 1, 2, 2 } }, { Name{"Tesla T4 "}, Params{ 0, 1, 16, 2, 16, 16, 128, 32, 16, 128, 1, 1, 1, 1, 1, 2 } }, @@ -184,6 +189,10 @@ const DatabaseEntry XgemmSingle = { { Name{"A100-PCIE-40GB "}, Params{ 0, 1, 32, 2, 8, 8, 32, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, } }, diff --git a/src/database/kernels/xgemm/xgemm_3232.hpp b/src/database/kernels/xgemm/xgemm_3232.hpp index f4f43030..6db3f885 100644 --- a/src/database/kernels/xgemm/xgemm_3232.hpp +++ b/src/database/kernels/xgemm/xgemm_3232.hpp @@ -54,7 +54,11 @@ const DatabaseEntry XgemmComplexSingle = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 32, 0, 0, 0, 0, 4, 4 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 32, 0, 0, 0, 0, 2, 1 } }, - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 8, 8, 32, 0, 0, 0, 0, 4, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 16, 16, 64, 0, 0, 0, 0, 4, 4 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 1, 32, 2, 8, 16, 32, 8, 8, 128, 0, 0, 0, 0, 2, 1 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 16, 32, 8, 8, 128, 0, 0, 0, 0, 2, 1 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 2, 1, 1, 16, 16, 32, 16, 16, 16, 0, 0, 0, 0, 1, 1 } }, @@ -168,15 +172,20 @@ const DatabaseEntry XgemmComplexSingle = { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 16, 16, 64, 0, 0, 0, 0, 4, 4 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 4, 1, 1, 8, 8, 32, 16, 16, 128, 0, 0, 0, 0, 4, 2 } }, { Name{"Quadro T2000 "}, Params{ 0, 1, 32, 2, 16, 8, 64, 8, 32, 128, 0, 0, 1, 0, 2, 2 } }, { Name{"TITAN RTX "}, Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 64, 1, 0, 0, 1, 2, 2 } }, { Name{"Tesla T4 "}, Params{ 0, 1, 32, 2, 16, 8, 64, 8, 32, 128, 0, 0, 1, 0, 2, 2 } }, - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 64, 1, 0, 0, 1, 2, 2 } }, + { kDeviceNameDefault , Params{ 1, 4, 1, 1, 8, 8, 32, 16, 16, 128, 0, 0, 0, 0, 4, 2 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 32, 1, 1, 0, 0, 2, 2 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 32, 1, 1, 0, 0, 2, 2 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 1, 4, 1, 1, 8, 8, 32, 16, 16, 128, 0, 0, 0, 0, 4, 2 } }, + { kDeviceNameDefault , Params{ 1, 4, 1, 1, 8, 8, 32, 16, 16, 128, 0, 0, 0, 0, 4, 2 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 16, 32, 32, 64, 1, 1, 0, 0, 1, 1 } }, } }, diff --git a/src/database/kernels/xgemm/xgemm_64.hpp b/src/database/kernels/xgemm/xgemm_64.hpp index 69b16528..29fb3679 100644 --- a/src/database/kernels/xgemm/xgemm_64.hpp +++ b/src/database/kernels/xgemm/xgemm_64.hpp @@ -48,6 +48,10 @@ const DatabaseEntry XgemmDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 16, 16, 32, 16, 16, 64, 1, 1, 0, 0, 2, 1 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 1, 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 4, 2 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 4, 2 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 64, 1, 1, 0, 0, 2, 4 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 64, 1, 1, 0, 0, 2, 4 } }, @@ -152,6 +156,7 @@ const DatabaseEntry XgemmDouble = { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 8, 8, 64, 0, 0, 0, 0, 2, 4 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 1, 1, 1, 4, 4, 8, 16, 16, 16, 0, 0, 0, 0, 1, 1 } }, { Name{"Quadro T2000 "}, Params{ 0, 1, 32, 2, 8, 16, 128, 8, 8, 64, 0, 0, 1, 1, 4, 4 } }, { Name{"TITAN RTX "}, Params{ 1, 2, 1, 1, 16, 16, 32, 8, 8, 16, 0, 0, 0, 0, 2, 1 } }, { Name{"Tesla T4 "}, Params{ 0, 1, 32, 2, 8, 16, 128, 8, 8, 64, 0, 0, 1, 1, 4, 4 } }, @@ -161,6 +166,10 @@ const DatabaseEntry XgemmDouble = { { Name{"A100-PCIE-40GB "}, Params{ 0, 1, 32, 2, 32, 32, 64, 8, 8, 32, 1, 1, 0, 0, 2, 2 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 32, 32, 64, 8, 8, 32, 1, 1, 0, 0, 2, 2 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 0, 1, 32, 2, 8, 8, 16, 8, 8, 16, 1, 1, 0, 0, 1, 1 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 16, 8, 8, 16, 1, 1, 0, 0, 1, 1 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 32, 32, 64, 8, 8, 32, 1, 1, 0, 0, 2, 2 } }, } }, diff --git a/src/database/kernels/xgemm/xgemm_6464.hpp b/src/database/kernels/xgemm/xgemm_6464.hpp index 4cf5773d..2ffdc7aa 100644 --- a/src/database/kernels/xgemm/xgemm_6464.hpp +++ b/src/database/kernels/xgemm/xgemm_6464.hpp @@ -48,6 +48,10 @@ const DatabaseEntry XgemmComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 32, 0, 0, 0, 0, 2, 1 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 16, 0, 0, 0, 0, 2, 2 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 32, 1, 1, 0, 0, 2, 2 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 32, 1, 1, 0, 0, 2, 2 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 16, 1, 1, 0, 1, 2, 2 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 16, 1, 1, 0, 1, 2, 2 } }, @@ -151,15 +155,20 @@ const DatabaseEntry XgemmComplexDouble = { { kDeviceNameDefault , Params{ 1, 2, 1, 1, 16, 16, 32, 8, 8, 16, 0, 0, 0, 0, 2, 1 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 0, 1, 32, 2, 16, 16, 16, 8, 8, 16, 0, 0, 0, 0, 1, 1 } }, { Name{"Quadro T2000 "}, Params{ 0, 1, 32, 2, 8, 8, 32, 8, 8, 64, 0, 0, 0, 0, 4, 2 } }, { Name{"TITAN RTX "}, Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 16, 0, 0, 0, 0, 1, 1 } }, { Name{"Tesla T4 "}, Params{ 0, 1, 32, 2, 8, 8, 32, 8, 8, 64, 0, 0, 0, 0, 4, 2 } }, - { kDeviceNameDefault , Params{ 1, 2, 1, 1, 8, 8, 16, 16, 16, 16, 0, 0, 0, 0, 1, 1 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 16, 8, 8, 16, 0, 0, 0, 0, 1, 1 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 0, 1, 16, 2, 8, 8, 16, 32, 16, 32, 1, 1, 1, 1, 2, 1 } }, { kDeviceNameDefault , Params{ 0, 1, 16, 2, 8, 8, 16, 32, 16, 32, 1, 1, 1, 1, 2, 1 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 0, 1, 32, 2, 8, 8, 16, 8, 8, 16, 1, 1, 0, 0, 1, 1 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 16, 8, 8, 16, 1, 1, 0, 0, 1, 1 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 16, 8, 8, 16, 1, 1, 0, 0, 1, 2 } }, } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp index c46ff8a3..c3c0f2ea 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp @@ -19,7 +19,11 @@ const DatabaseEntry XgemmDirectHalf = { { kDeviceNameDefault , Params{ 8, 32, 8, 8, 32, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { - { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp index 511961cc..39e89779 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp @@ -40,6 +40,10 @@ const DatabaseEntry XgemmDirectSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 8, 8, 16, 16, 1, 1, 2, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, @@ -137,6 +141,7 @@ const DatabaseEntry XgemmDirectSingle = { { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 16, 8, 16, 8, 1, 0, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 16, 8, 16, 8, 1, 0, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 16, 8, 16, 32, 8, 1, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 16, 8, 16, 8, 1, 0, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, @@ -146,6 +151,10 @@ const DatabaseEntry XgemmDirectSingle = { { Name{"A100-PCIE-40GB "}, Params{ 8, 8, 16, 32, 16, 1, 1, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 8, 16, 32, 16, 1, 1, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, @@ -170,7 +179,7 @@ const DatabaseEntry XgemmDirectSingle = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp index 739b93d9..4762a6ce 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp @@ -36,6 +36,10 @@ const DatabaseEntry XgemmDirectComplexSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, @@ -130,6 +134,7 @@ const DatabaseEntry XgemmDirectComplexSingle = { { kDeviceNameDefault , Params{ 16, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 2, 8, 8, 16, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 2, 8, 8, 16, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 2, 8, 8, 16, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 2, 8, 8, 16, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, @@ -139,6 +144,10 @@ const DatabaseEntry XgemmDirectComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 2, 8, 16, 16, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 8, 16, 16, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 2, 8, 8, 16, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 16, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp index 36e7a3a7..07fafd89 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp @@ -32,6 +32,10 @@ const DatabaseEntry XgemmDirectDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, @@ -115,6 +119,7 @@ const DatabaseEntry XgemmDirectDouble = { { kDeviceNameDefault , Params{ 2, 32, 32, 8, 8, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 2, 8, 8, 16, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, @@ -124,8 +129,12 @@ const DatabaseEntry XgemmDirectDouble = { { Name{"A100-PCIE-40GB "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { - { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp index 501579ce..03e1a998 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp @@ -32,6 +32,10 @@ const DatabaseEntry XgemmDirectComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 2, 16, 16, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 8, 16, 8, 8, 0, 0, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 16, 8, 8, 0, 0, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, @@ -115,6 +119,7 @@ const DatabaseEntry XgemmDirectComplexDouble = { { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 2, 32, 32, 16, 16, 1, 1, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 2, 8, 8, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 2, 8, 8, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, @@ -124,6 +129,10 @@ const DatabaseEntry XgemmDirectComplexDouble = { { Name{"A100-PCIE-40GB "}, Params{ 16, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, @@ -132,7 +141,7 @@ const DatabaseEntry XgemmDirectComplexDouble = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xgemv/xgemv_16.hpp b/src/database/kernels/xgemv/xgemv_16.hpp index 0304ed85..74a094fb 100644 --- a/src/database/kernels/xgemv/xgemv_16.hpp +++ b/src/database/kernels/xgemv/xgemv_16.hpp @@ -21,6 +21,10 @@ const DatabaseEntry XgemvHalf = { { "default", { { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv/xgemv_32.hpp b/src/database/kernels/xgemv/xgemv_32.hpp index 6d68708f..a882f548 100644 --- a/src/database/kernels/xgemv/xgemv_32.hpp +++ b/src/database/kernels/xgemv/xgemv_32.hpp @@ -54,7 +54,11 @@ const DatabaseEntry XgemvSingle = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -169,6 +173,7 @@ const DatabaseEntry XgemvSingle = { { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -178,6 +183,10 @@ const DatabaseEntry XgemvSingle = { { Name{"A100-PCIE-40GB "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv/xgemv_3232.hpp b/src/database/kernels/xgemv/xgemv_3232.hpp index acfbe152..3546a9a1 100644 --- a/src/database/kernels/xgemv/xgemv_3232.hpp +++ b/src/database/kernels/xgemv/xgemv_3232.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XgemvComplexSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -162,6 +166,7 @@ const DatabaseEntry XgemvComplexSingle = { { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -171,6 +176,10 @@ const DatabaseEntry XgemvComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv/xgemv_64.hpp b/src/database/kernels/xgemv/xgemv_64.hpp index 583d7294..d8baee0b 100644 --- a/src/database/kernels/xgemv/xgemv_64.hpp +++ b/src/database/kernels/xgemv/xgemv_64.hpp @@ -46,7 +46,11 @@ const DatabaseEntry XgemvDouble = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -143,6 +147,7 @@ const DatabaseEntry XgemvDouble = { { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -152,8 +157,12 @@ const DatabaseEntry XgemvDouble = { { Name{"A100-PCIE-40GB "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { - { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xgemv/xgemv_6464.hpp b/src/database/kernels/xgemv/xgemv_6464.hpp index 2a35c978..27ee5ee8 100644 --- a/src/database/kernels/xgemv/xgemv_6464.hpp +++ b/src/database/kernels/xgemv/xgemv_6464.hpp @@ -48,6 +48,10 @@ const DatabaseEntry XgemvComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -124,6 +128,7 @@ const DatabaseEntry XgemvComplexDouble = { { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -133,6 +138,10 @@ const DatabaseEntry XgemvComplexDouble = { { Name{"A100-PCIE-40GB "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp index df2cf0d6..5ca3eb9d 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp @@ -21,6 +21,10 @@ const DatabaseEntry XgemvFastHalf = { { "default", { { kDeviceNameDefault , Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp index 89555c1f..b340f185 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XgemvFastSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -169,6 +173,7 @@ const DatabaseEntry XgemvFastSingle = { { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -178,6 +183,10 @@ const DatabaseEntry XgemvFastSingle = { { Name{"A100-PCIE-40GB "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp index b38972ac..29699ad2 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XgemvFastComplexSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -145,6 +149,7 @@ const DatabaseEntry XgemvFastComplexSingle = { { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -154,6 +159,10 @@ const DatabaseEntry XgemvFastComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp index 5a22b427..8679b9c9 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp @@ -48,6 +48,10 @@ const DatabaseEntry XgemvFastDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -143,6 +147,7 @@ const DatabaseEntry XgemvFastDouble = { { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -152,6 +157,10 @@ const DatabaseEntry XgemvFastDouble = { { Name{"A100-PCIE-40GB "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp index e98c0743..2a2a30c4 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp @@ -48,6 +48,10 @@ const DatabaseEntry XgemvFastComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -120,6 +124,7 @@ const DatabaseEntry XgemvFastComplexDouble = { { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -129,6 +134,10 @@ const DatabaseEntry XgemvFastComplexDouble = { { Name{"A100-PCIE-40GB "}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp index 8a978e56..6130cc91 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp @@ -21,6 +21,10 @@ const DatabaseEntry XgemvFastRotHalf = { { "default", { { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp index dfcecebf..0f460573 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp @@ -40,6 +40,10 @@ const DatabaseEntry XgemvFastRotSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -139,6 +143,7 @@ const DatabaseEntry XgemvFastRotSingle = { { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -148,6 +153,10 @@ const DatabaseEntry XgemvFastRotSingle = { { Name{"A100-PCIE-40GB "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp index d8eee271..141f7cd7 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp @@ -38,7 +38,11 @@ const DatabaseEntry XgemvFastRotComplexSingle = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -120,6 +124,7 @@ const DatabaseEntry XgemvFastRotComplexSingle = { { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -129,8 +134,12 @@ const DatabaseEntry XgemvFastRotComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { - { kDeviceNameDefault , Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp index 4237efa0..8f76ba50 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp @@ -32,6 +32,10 @@ const DatabaseEntry XgemvFastRotDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -108,6 +112,7 @@ const DatabaseEntry XgemvFastRotDouble = { { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 2, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 2, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -117,6 +122,10 @@ const DatabaseEntry XgemvFastRotDouble = { { Name{"A100-PCIE-40GB "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp index d921f480..b7767a1b 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp @@ -30,7 +30,11 @@ const DatabaseEntry XgemvFastRotComplexDouble = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -92,6 +96,7 @@ const DatabaseEntry XgemvFastRotComplexDouble = { { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 1, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 1, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 1, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 1, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -101,6 +106,10 @@ const DatabaseEntry XgemvFastRotComplexDouble = { { Name{"A100-PCIE-40GB "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 2, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xger/xger_16.hpp b/src/database/kernels/xger/xger_16.hpp index 4c79af0a..76ee1fa3 100644 --- a/src/database/kernels/xger/xger_16.hpp +++ b/src/database/kernels/xger/xger_16.hpp @@ -25,6 +25,10 @@ const DatabaseEntry XgerHalf = { { "default", { { kDeviceNameDefault , Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 128, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xger/xger_32.hpp b/src/database/kernels/xger/xger_32.hpp index 857c69c7..880fdacc 100644 --- a/src/database/kernels/xger/xger_32.hpp +++ b/src/database/kernels/xger/xger_32.hpp @@ -58,7 +58,11 @@ const DatabaseEntry XgerSingle = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 128, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 128, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -168,15 +172,20 @@ const DatabaseEntry XgerSingle = { { kDeviceNameDefault , Params{ 256, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 16, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 32, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 32, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM8.0", { { Name{"A100-PCIE-40GB "}, Params{ 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 128, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xger/xger_3232.hpp b/src/database/kernels/xger/xger_3232.hpp index f98c439a..ee3563b9 100644 --- a/src/database/kernels/xger/xger_3232.hpp +++ b/src/database/kernels/xger/xger_3232.hpp @@ -60,6 +60,10 @@ const DatabaseEntry XgerComplexSingle = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 4, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -165,6 +169,7 @@ const DatabaseEntry XgerComplexSingle = { { kDeviceNameDefault , Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 4, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 8, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 8, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 8, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -174,6 +179,10 @@ const DatabaseEntry XgerComplexSingle = { { Name{"A100-PCIE-40GB "}, Params{ 16, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 32, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xger/xger_64.hpp b/src/database/kernels/xger/xger_64.hpp index 86707110..023d1fce 100644 --- a/src/database/kernels/xger/xger_64.hpp +++ b/src/database/kernels/xger/xger_64.hpp @@ -52,6 +52,10 @@ const DatabaseEntry XgerDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -143,6 +147,7 @@ const DatabaseEntry XgerDouble = { { kDeviceNameDefault , Params{ 64, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 4, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 4, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 4, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 4, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -152,8 +157,12 @@ const DatabaseEntry XgerDouble = { { Name{"A100-PCIE-40GB "}, Params{ 16, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { - { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xger/xger_6464.hpp b/src/database/kernels/xger/xger_6464.hpp index f1292daf..8daf11d9 100644 --- a/src/database/kernels/xger/xger_6464.hpp +++ b/src/database/kernels/xger/xger_6464.hpp @@ -52,6 +52,10 @@ const DatabaseEntry XgerComplexDouble = { { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1010:xnack-", { + { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1030", { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -143,6 +147,7 @@ const DatabaseEntry XgerComplexDouble = { { kDeviceNameDefault , Params{ 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "SM7.5", { + { Name{"NVIDIA GeForce RTX 2080 Ti "}, Params{ 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Quadro T2000 "}, Params{ 4, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"TITAN RTX "}, Params{ 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Tesla T4 "}, Params{ 4, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -152,6 +157,10 @@ const DatabaseEntry XgerComplexDouble = { { Name{"A100-PCIE-40GB "}, Params{ 16, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "SM8.6", { + { Name{"NVIDIA GeForce RTX 3090 "}, Params{ 8, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "default", { { kDeviceNameDefault , Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, -- cgit v1.2.3 From e73f0b51310186c513846ce08c5d70b90d5e7583 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Wed, 17 May 2023 17:10:51 +0200 Subject: Add Github Actions release script (#469) * Add first version of release script * Several fixes for the Windows release job * Install OpenCL for Windows release * Fix issue with environment variable * Set OpenCL root * Fix zipping in Windows build --- .github/workflows/build_and_test.yml | 2 +- .github/workflows/release.yml | 97 ++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 5fe1eb25..59487fd8 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -22,7 +22,7 @@ jobs: - name: Install requirements for Ubuntu run: | sudo apt-get update - sudo apt-get install -yq cmake ninja-build ocl-icd-opencl-dev opencl-c-headers libopenblas-dev --no-install-recommends + sudo apt-get install -yq ninja-build ocl-icd-opencl-dev opencl-c-headers libopenblas-dev --no-install-recommends if: ${{ matrix.config.os == 'ubuntu-latest' }} - name: Install requirements for macOS diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..98c8c536 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,97 @@ +name: CLBlast release + +on: + workflow_dispatch: + inputs: + version: + description: "Version of the form 1.5.3" + required: true + + +jobs: + + release_linux_and_macos: + + strategy: + matrix: + config: [ + {name: linux, os: ubuntu-20.04, arch: x86_64, c_compiler: gcc-9, cpp_compiler: g++-9}, + {name: macos, os: macos-11, arch: x86_64, c_compiler: clang, cpp_compiler: clang++}, + ] + + runs-on: ${{ matrix.config.os }} + + env: + RELEASE_NAME: CLBlast-${{ github.event.inputs.version }}-${{ matrix.config.name }}-${{ matrix.config.arch }} + + steps: + - uses: actions/checkout@v3 + + - name: Install requirements for Ubuntu + run: | + sudo apt-get update + sudo apt-get install -yq ocl-icd-opencl-dev opencl-c-headers --no-install-recommends + if: ${{ matrix.config.name == 'linux' }} + + - name: Run CMake + run: | + mkdir ${{env.RELEASE_NAME}} + export CC=${{ matrix.config.c_compiler }} + export CXX=${{ matrix.config.cpp_compiler }} + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DTESTS=OFF -DCLIENTS=OFF -DSAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{env.RELEASE_NAME}} + + - name: Compile the code + run: cmake --build build + + - name: Package the code + run: | + cmake --build build --target install + tar -cvf ${{env.RELEASE_NAME}}.tar.gz ${{env.RELEASE_NAME}} + + - name: Upload the release + uses: actions/upload-artifact@v3 + with: + name: ${{env.RELEASE_NAME}} + path: ${{env.RELEASE_NAME}}.tar.gz + + + release_windows: + + strategy: + matrix: + config: [ + {name: windows, os: windows-2019, arch: x64}, + ] + + runs-on: ${{ matrix.config.os }} + + env: + RELEASE_NAME: CLBlast-${{ github.event.inputs.version }}-${{ matrix.config.name }}-${{ matrix.config.arch }} + + steps: + - uses: actions/checkout@v3 + + - name: Set up MSVC + uses: ilammy/msvc-dev-cmd@v1 + + - name: Install OpenCL + run: vcpkg.exe --triplet=${{ matrix.config.arch }}-windows install opencl + + - name: Run CMake + run: | + mkdir ${{env.RELEASE_NAME}} + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DTESTS=OFF -DCLIENTS=OFF -DSAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{env.RELEASE_NAME}} -DOPENCL_ROOT=C:/vcpkg/packages/opencl_x64-windows + + - name: Compile the code + run: cmake --build build + + - name: Package the code + run: | + cmake --build build --target install + 7z a -r ${{env.RELEASE_NAME}}.7z ${{env.RELEASE_NAME}} + + - name: Upload the release + uses: actions/upload-artifact@v3 + with: + name: ${{env.RELEASE_NAME}} + path: ${{env.RELEASE_NAME}}.7z -- cgit v1.2.3 From db3bd0a32ef16d5bf9f047887242a9f94310425b Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Thu, 18 May 2023 16:58:31 +0200 Subject: Add Windows builds to Github Actions and fix Windows compilation issue (#470) * Add Windows builds to Github Actions CI * Fix failing Windows builds --- .github/workflows/build_and_test.yml | 30 +++++++++++++++++++++++++++++- test/correctness/testblas.hpp | 9 --------- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 59487fd8..2d74ed24 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -7,7 +7,7 @@ on: jobs: - build_and_test: + build_and_test_linux_and_macos: strategy: matrix: config: [ @@ -57,3 +57,31 @@ jobs: - name: Run the unittests run: ctest --test-dir build if: ${{ matrix.config.os == 'macos-latest' }} + + build_windows: + + strategy: + matrix: + config: [ + {os: windows-2019, arch: x64}, + ] + + runs-on: ${{ matrix.config.os }} + + steps: + - uses: actions/checkout@v3 + + - name: Set up MSVC + uses: ilammy/msvc-dev-cmd@v1 + + - name: Install OpenBLAS + run: vcpkg.exe --triplet=${{ matrix.config.arch }}-windows install openblas + + - name: Install OpenCL + run: vcpkg.exe --triplet=${{ matrix.config.arch }}-windows install opencl + + - name: Run CMake + run: cmake -S . -B build -DTESTS=ON -DCLIENTS=ON -DSAMPLES=ON -DOPENCL_ROOT=C:/vcpkg/packages/opencl_x64-windows -DCBLAS_ROOT=C:/vcpkg/packages/openblas_x64-windows + + - name: Compile the code + run: cmake --build build diff --git a/test/correctness/testblas.hpp b/test/correctness/testblas.hpp index bfefadc5..b2dc6e7a 100644 --- a/test/correctness/testblas.hpp +++ b/test/correctness/testblas.hpp @@ -157,15 +157,6 @@ template const std::vector TestBlas::kTr template const std::vector TestBlas::kSides = {Side::kLeft, Side::kRight}; template const std::vector TestBlas::kDiagonals = {Diagonal::kUnit, Diagonal::kNonUnit}; -// The transpose configurations to test with: template parameter dependent, see .cpp file for implementation -template <> const std::vector TestBlas::kTransposes; -template <> const std::vector TestBlas::kTransposes; -template <> const std::vector TestBlas::kTransposes; -template <> const std::vector TestBlas::kTransposes; -template <> const std::vector TestBlas::kTransposes; -template <> const std::vector TestBlas::kTransposes; -template <> const std::vector TestBlas::kTransposes; - // ================================================================================================= // Bogus reference function, in case a comparison library is not available -- cgit v1.2.3 From ce5e446fbe9221b4888a199403a40d4293df97b8 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Thu, 18 May 2023 18:10:12 +0200 Subject: Actualize the README and remove the old ROADMAP (#471) --- README.md | 26 ++++++-------------------- ROADMAP.md | 25 ------------------------- 2 files changed, 6 insertions(+), 45 deletions(-) delete mode 100644 ROADMAP.md diff --git a/README.md b/README.md index bad6d9f7..a1ff2791 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@ CLBlast: The tuned OpenCL BLAS library | Platform | Build status | |-----|-----| | Windows | [![Build Status](https://ci.appveyor.com/api/projects/status/github/cnugteren/clblast?branch=master&svg=true)](https://ci.appveyor.com/project/CNugteren/clblast) | -| Linux/macOS | ![Build Status](https://github.com/cnugteren/clblast/actions/workflows/build_and_test.yml/badge.svg?branch=master) - | +| Linux/macOS | [![Build Status](https://github.com/cnugteren/clblast/actions/workflows/build_and_test.yml/badge.svg?branch=master)](https://github.com/CNugteren/CLBlast/actions/workflows/build_and_test.yml) | + | Test machine (thanks to [ArrayFire](https://ci.arrayfire.org:8010/#/builders)) | Test status | |-----|-----| @@ -18,9 +18,9 @@ CLBlast: The tuned OpenCL BLAS library | clblast-windows-amd-r9 | [![Test Status](http://ci.arrayfire.org:8010/badges/clblast-windows-amd-r9.svg)](http://ci.arrayfire.org:8010/#/builders/clblast-windows-amd-r9) | | clblast-windows-nvidia-m6000 | [![Test Status](http://ci.arrayfire.org:8010/badges/clblast-windows-nvidia-m6000.svg)](http://ci.arrayfire.org:8010/#/builders/clblast-windows-nvidia-m6000) | -CLBlast is a modern, lightweight, performant and tunable OpenCL BLAS library written in C++11. It is designed to leverage the full performance potential of a wide variety of OpenCL devices from different vendors, including desktop and laptop GPUs, embedded GPUs, and other accelerators. CLBlast implements BLAS routines: basic linear algebra subprograms operating on vectors and matrices. See [the CLBlast website](https://cnugteren.github.io/clblast) for performance reports on various devices as well as the latest CLBlast news. +CLBlast is a lightweight, performant and tunable OpenCL BLAS library written in C++11. It is designed to leverage the full performance potential of a wide variety of OpenCL devices from different vendors, including desktop and laptop GPUs, embedded GPUs, and other accelerators. CLBlast implements BLAS routines: basic linear algebra subprograms operating on vectors and matrices. See [the CLBlast website](https://cnugteren.github.io/clblast) for performance reports on some devices. -The library is not tuned for all possible OpenCL devices: __if out-of-the-box performance is poor, please run the tuners first__. See below for a list of already tuned devices and instructions on how to tune yourself and contribute to future releases of the CLBlast library. See also the [CLBlast feature roadmap](ROADMAP.md) to get an indication of the future of CLBlast. +The library is not tuned for all possible OpenCL devices: __if out-of-the-box performance is poor, please run the tuners first__. See below for a list of already tuned devices and instructions on how to tune yourself and contribute to future releases of the CLBlast library. Why CLBlast and not clBLAS or cuBLAS? @@ -121,21 +121,7 @@ Contributing Contributions are welcome in the form of tuning results for OpenCL devices previously untested or pull requests. See [the contributing guidelines](CONTRIBUTING.md) for more details. -The main contributing authors (code, pull requests, testing) are: - -* [Cedric Nugteren](http://cnugteren.github.io) - main author -* [Anton Lokhmotov](https://github.com/psyhtest) -* [Dragan Djuric](https://github.com/blueberry) -* [Marco Hutter](http://marco-hutter.de/) -* [Hugh Perkins](https://github.com/hughperkins) -* [Gian-Carlo Pascutto](https://github.com/gcp) -* [Ivan Shapovalov](https://github.com/intelfx) -* [Dimitri Van Assche](https://github.com/dvasschemacq) -* [Shehzan Mohammed](https://shehzan10.github.io) -* [Marco Cianfriglia](https://github.com/mcian) -* [Kodonnell](https://github.com/kodonnell) -* [Koichi Akabe](https://github.com/vbkaisetsu) -* Everyone else listed as a [GitHub contributor](https://github.com/CNugteren/CLBlast/graphs/contributors) +The main contributing authors (code, pull requests, testing) can be found in the list of[GitHub contributors](https://github.com/CNugteren/CLBlast/graphs/contributors). Tuning and testing on a variety of OpenCL devices was made possible by: @@ -172,4 +158,4 @@ How to cite this work: Support us ------------- -This project started in March 2015 as an evenings and weekends free-time project next to a full-time job for Cedric Nugteren. If you are in the position to support the project by OpenCL-hardware donations or otherwise, please find contact information on the [website of the main author](http://cnugteren.github.io). +This project started in March 2015 as an evenings and weekends free-time project next to a full-time job for Cedric Nugteren. You can find contact information on the [website of the main author](http://cnugteren.github.io). diff --git a/ROADMAP.md b/ROADMAP.md deleted file mode 100644 index c1db9850..00000000 --- a/ROADMAP.md +++ /dev/null @@ -1,25 +0,0 @@ -CLBlast feature road-map -================ - -This file gives an overview of the main features planned for addition to CLBlast. A first-order indication time-frame for development time is provided: - -| Issue# | When | Who | Status | What | -| ---------------------------------------------------------------|-------------|-----------|--------|---------------| -| - | Oct '17 | CNugteren | ✔ | CUDA API for CLBlast | -| [#169](https://github.com/CNugteren/CLBlast/issues/169) & #195 | Oct-Nov '17 | CNugteren | ✔ | Auto-tuning the kernel selection parameter | -| [#181](https://github.com/CNugteren/CLBlast/issues/181) & #201 | Nov '17 | CNugteren | ✔ | Compilation for Android and testing on a device | -| - | Nov '17 | CNugteren | ✔ | Integration of CLTune for easy testing on Android / fewer dependencies | -| [#128](https://github.com/CNugteren/CLBlast/issues/128) & #205 | Nov-Dec '17 | CNugteren | ✔ | Pre-processor for loop unrolling and array-to-register-promotion for e.g. ARM Mali | -| [#207](https://github.com/CNugteren/CLBlast/issues/207) | Dec '17 | CNugteren | ✔ | Tuning of the TRSM/TRSV routines | -| [#195](https://github.com/CNugteren/CLBlast/issues/195) | Jan '18 | CNugteren | ✔ | Extra GEMM API with pre-allocated temporary buffer | -| [#95](https://github.com/CNugteren/CLBlast/issues/95) & #237 | Jan '18 | CNugteren | ✔ | Implement strided batch GEMM | -| [#224](https://github.com/CNugteren/CLBlast/issues/224) | Jan-Feb '18 | CNugteren | ✔ | Implement Hadamard product (element-wise vector-vector product) | -| [#233](https://github.com/CNugteren/CLBlast/issues/233) | Feb '18 | CNugteren | ✔ | Add CLBlast to common package managers | -| [#223](https://github.com/CNugteren/CLBlast/issues/223) | Feb '18 | CNugteren | ✔ | Python OpenCL interface | -| [#237](https://github.com/CNugteren/CLBlast/issues/237) | Mar '18 | CNugteren | ✔ | Making tuning possible from the CLBlast API | -| [#228](https://github.com/CNugteren/CLBlast/issues/228) | Mar-Apr '18 | CNugteren | ✔ | Improving performance for Qualcomm Adreno GPUs | -| [#270](https://github.com/CNugteren/CLBlast/issues/270) | Oct '18 | CNugteren | ✔ | Implement col2im | -| - | ?? | CNugteren | | Add support for OpenCL image buffers | -| [#267](https://github.com/CNugteren/CLBlast/issues/267) | Jan '19 | vbkaisetsu| ✔ | Merge im2col and GEMM into a direct kernel | -| [#136](https://github.com/CNugteren/CLBlast/issues/136) | ?? | CNugteren | | Implement xAXPBY and xSET | -| [#169](https://github.com/CNugteren/CLBlast/issues/169) | ?? | dividiti | | Problem-specific tuning parameter selection | -- cgit v1.2.3 From 0832ed6a16b909d92503009e437ad60d9d12b6c6 Mon Sep 17 00:00:00 2001 From: Mikko Vedru Date: Sun, 21 May 2023 11:07:43 +0300 Subject: Documentation: tuning.md: Add a useful link (#473) --- doc/tuning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/tuning.md b/doc/tuning.md index eaafa536..e7c91e26 100644 --- a/doc/tuning.md +++ b/doc/tuning.md @@ -173,7 +173,7 @@ Here are all the tuners included in the `make alltuners` target (in the same ord Using the tuning results ------------- -The tuners output a JSON-file with the results. The best results need to be added to `src/database/kernels/xxxxx.hpp` in the appropriate section. However, this can be done automatically based on the JSON-data using a Python (2.7 or 3.x) script in `scripts/database/database.py`. If you want the found parameters to be included in future releases of CLBlast, please attach the JSON files to the corresponding issue on GitHub or [email the main author](http://www.cedricnugteren.nl). +The tuners output a JSON-file with the results. The best results need to be added to `src/database/kernels/xxxxx.hpp` in the appropriate section. However, this can be done automatically based on the JSON-data using a Python (2.7 or 3.x) script in `scripts/database/database.py`. If you want the found parameters to be included in future releases of CLBlast, please attach the JSON files [to the corresponding issue](https://github.com/CNugteren/CLBlast/issues/1) on GitHub or [email the main author](http://www.cedricnugteren.nl). In summary, tuning the entire library for your device can be done as follows (starting from the root of the CLBlast folder): -- cgit v1.2.3 From 63eb127bada3a9ef8aa0ab1f48112e8830f74a19 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sun, 21 May 2023 14:25:15 +0200 Subject: Intel HD Graphics 770 and AMD RX 6600 XT tuning results (#474) * Add tuning results for AMD Radeon RX 6600 XT * Add tuning results for Intel HD Graphics 770 * Update list of tuned devices --- doc/tuning.md | 8 ++++++++ src/database/kernels/copy/copy_16.hpp | 5 +++++ src/database/kernels/copy/copy_32.hpp | 5 +++++ src/database/kernels/copy/copy_3232.hpp | 7 ++++++- src/database/kernels/copy/copy_64.hpp | 4 ++++ src/database/kernels/copy/copy_6464.hpp | 4 ++++ src/database/kernels/gemm_routine/gemm_routine_16.hpp | 7 ++++++- src/database/kernels/gemm_routine/gemm_routine_32.hpp | 7 ++++++- src/database/kernels/gemm_routine/gemm_routine_3232.hpp | 7 ++++++- src/database/kernels/gemm_routine/gemm_routine_64.hpp | 6 +++++- src/database/kernels/gemm_routine/gemm_routine_6464.hpp | 8 ++++++-- src/database/kernels/invert/invert_16.hpp | 5 +++++ src/database/kernels/invert/invert_32.hpp | 5 +++++ src/database/kernels/invert/invert_3232.hpp | 7 ++++++- src/database/kernels/invert/invert_64.hpp | 4 ++++ src/database/kernels/invert/invert_6464.hpp | 4 ++++ src/database/kernels/pad/pad_16.hpp | 5 +++++ src/database/kernels/pad/pad_32.hpp | 5 +++++ src/database/kernels/pad/pad_3232.hpp | 7 ++++++- src/database/kernels/pad/pad_64.hpp | 6 +++++- src/database/kernels/pad/pad_6464.hpp | 4 ++++ src/database/kernels/padtranspose/padtranspose_16.hpp | 5 +++++ src/database/kernels/padtranspose/padtranspose_32.hpp | 5 +++++ src/database/kernels/padtranspose/padtranspose_3232.hpp | 7 ++++++- src/database/kernels/padtranspose/padtranspose_64.hpp | 4 ++++ src/database/kernels/padtranspose/padtranspose_6464.hpp | 4 ++++ src/database/kernels/transpose/transpose_16.hpp | 7 ++++++- src/database/kernels/transpose/transpose_32.hpp | 5 +++++ src/database/kernels/transpose/transpose_3232.hpp | 5 +++++ src/database/kernels/transpose/transpose_64.hpp | 4 ++++ src/database/kernels/transpose/transpose_6464.hpp | 4 ++++ src/database/kernels/trsv_routine/trsv_routine_32.hpp | 5 +++++ src/database/kernels/trsv_routine/trsv_routine_3232.hpp | 5 +++++ src/database/kernels/trsv_routine/trsv_routine_64.hpp | 4 ++++ src/database/kernels/trsv_routine/trsv_routine_6464.hpp | 4 ++++ src/database/kernels/xaxpy/xaxpy_16.hpp | 5 +++++ src/database/kernels/xaxpy/xaxpy_32.hpp | 7 ++++++- src/database/kernels/xaxpy/xaxpy_3232.hpp | 5 +++++ src/database/kernels/xaxpy/xaxpy_64.hpp | 4 ++++ src/database/kernels/xaxpy/xaxpy_6464.hpp | 4 ++++ src/database/kernels/xconvgemm/xconvgemm_16.hpp | 8 ++++++-- src/database/kernels/xconvgemm/xconvgemm_32.hpp | 4 ++++ src/database/kernels/xconvgemm/xconvgemm_64.hpp | 4 ++++ src/database/kernels/xdot/xdot_16.hpp | 5 +++++ src/database/kernels/xdot/xdot_32.hpp | 7 ++++++- src/database/kernels/xdot/xdot_3232.hpp | 7 ++++++- src/database/kernels/xdot/xdot_64.hpp | 4 ++++ src/database/kernels/xdot/xdot_6464.hpp | 4 ++++ src/database/kernels/xgemm/xgemm_16.hpp | 11 ++++++++--- src/database/kernels/xgemm/xgemm_32.hpp | 5 +++++ src/database/kernels/xgemm/xgemm_3232.hpp | 9 +++++++-- src/database/kernels/xgemm/xgemm_64.hpp | 6 +++++- src/database/kernels/xgemm/xgemm_6464.hpp | 6 +++++- src/database/kernels/xgemm_direct/xgemm_direct_16.hpp | 8 ++++++-- src/database/kernels/xgemm_direct/xgemm_direct_32.hpp | 7 ++++++- src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp | 4 ++++ src/database/kernels/xgemm_direct/xgemm_direct_64.hpp | 4 ++++ src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp | 4 ++++ src/database/kernels/xgemv/xgemv_16.hpp | 5 +++++ src/database/kernels/xgemv/xgemv_32.hpp | 5 +++++ src/database/kernels/xgemv/xgemv_3232.hpp | 5 +++++ src/database/kernels/xgemv/xgemv_64.hpp | 4 ++++ src/database/kernels/xgemv/xgemv_6464.hpp | 4 ++++ src/database/kernels/xgemv_fast/xgemv_fast_16.hpp | 5 +++++ src/database/kernels/xgemv_fast/xgemv_fast_32.hpp | 7 ++++++- src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp | 5 +++++ src/database/kernels/xgemv_fast/xgemv_fast_64.hpp | 4 ++++ src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp | 4 ++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp | 7 ++++++- src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp | 5 +++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp | 5 +++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp | 4 ++++ src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp | 6 +++++- src/database/kernels/xger/xger_16.hpp | 7 ++++++- src/database/kernels/xger/xger_32.hpp | 5 +++++ src/database/kernels/xger/xger_3232.hpp | 7 ++++++- src/database/kernels/xger/xger_64.hpp | 6 +++++- src/database/kernels/xger/xger_6464.hpp | 4 ++++ 78 files changed, 391 insertions(+), 33 deletions(-) diff --git a/doc/tuning.md b/doc/tuning.md index e7c91e26..36aee530 100644 --- a/doc/tuning.md +++ b/doc/tuning.md @@ -26,15 +26,19 @@ The CLBlast library is already tuned for the most commonly used OpenCL devices a - GeForce GTX 1070 Ti - GeForce GTX 1080 - GeForce GTX 1080 Ti + - GeForce GTX 2080 Ti + - GeForce GTX 3090 - GeForce GTX TITAN - GeForce GTX TITAN Black - GeForce GTX TITAN X - TITAN X (Pascal) - TITAN RTX + - Tesla A100 - Tesla K20m - Tesla K40m - Tesla P100 16GB - Tesla T4 + - Tesla T2000 - Tesla V100 - Quadro T2000 - Quadro GV100 @@ -49,15 +53,19 @@ The CLBlast library is already tuned for the most commonly used OpenCL devices a - Radeon R9 380 - Radeon RX 480 - Radeon R9 Fury X + - Radeon Pro 450 - Radeon Pro 580 - Radeon RX Vega + - Radeon RX 5700 XT - Radeon RX 6500 XT + - Radeon RX 6600 XT - Radeon RX 6800 XT * Intel GPUs: - HD Graphics 530 - HD Graphics 5500 BroadWell U-Processor GT2 - HD Graphics 6000 BroadWell U-Processor GT3 - HD Graphics 630 + - HD Graphics 770 - HD Graphics Haswell Ultrabook GT2 Mobile - HD Graphics IvyBridge M GT2 - HD Graphics Skylake ULT GT2 diff --git a/src/database/kernels/copy/copy_16.hpp b/src/database/kernels/copy/copy_16.hpp index 7b7edebc..a81197f8 100644 --- a/src/database/kernels/copy/copy_16.hpp +++ b/src/database/kernels/copy/copy_16.hpp @@ -33,6 +33,10 @@ const DatabaseEntry CopyHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 16, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 8, 16, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -54,6 +58,7 @@ const DatabaseEntry CopyHalf = { { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 8, 16, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics 620 "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 32, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 16, 16, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/copy/copy_32.hpp b/src/database/kernels/copy/copy_32.hpp index d97cd072..09b7b3da 100644 --- a/src/database/kernels/copy/copy_32.hpp +++ b/src/database/kernels/copy/copy_32.hpp @@ -68,6 +68,10 @@ const DatabaseEntry CopySingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 8, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -113,6 +117,7 @@ const DatabaseEntry CopySingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 32, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 16, 16, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 8, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 32, 8, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 32, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/copy/copy_3232.hpp b/src/database/kernels/copy/copy_3232.hpp index a8132a21..bb73027c 100644 --- a/src/database/kernels/copy/copy_3232.hpp +++ b/src/database/kernels/copy/copy_3232.hpp @@ -68,6 +68,10 @@ const DatabaseEntry CopyComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -110,9 +114,10 @@ const DatabaseEntry CopyComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 32, 16, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/copy/copy_64.hpp b/src/database/kernels/copy/copy_64.hpp index 7df294f4..e511a4e1 100644 --- a/src/database/kernels/copy/copy_64.hpp +++ b/src/database/kernels/copy/copy_64.hpp @@ -60,6 +60,10 @@ const DatabaseEntry CopyDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 8, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/copy/copy_6464.hpp b/src/database/kernels/copy/copy_6464.hpp index fe37a867..ce22bf1c 100644 --- a/src/database/kernels/copy/copy_6464.hpp +++ b/src/database/kernels/copy/copy_6464.hpp @@ -60,6 +60,10 @@ const DatabaseEntry CopyComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 8, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 8, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 8, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_16.hpp b/src/database/kernels/gemm_routine/gemm_routine_16.hpp index da8816e6..a4fd15a9 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_16.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_16.hpp @@ -25,6 +25,10 @@ const DatabaseEntry GemmRoutineHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -43,6 +47,7 @@ const DatabaseEntry GemmRoutineHalf = { kDeviceTypeGPU, "Intel", { { "default", { { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } @@ -66,7 +71,7 @@ const DatabaseEntry GemmRoutineHalf = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_32.hpp b/src/database/kernels/gemm_routine/gemm_routine_32.hpp index 277a6f65..4ca004c7 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_32.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_32.hpp @@ -26,6 +26,10 @@ const DatabaseEntry GemmRoutineSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -58,6 +62,7 @@ const DatabaseEntry GemmRoutineSingle = { { Name{"Intel(R) HD Graphics 6000 BroadWell U-Processor GT"}, Params{ 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } @@ -134,7 +139,7 @@ const DatabaseEntry GemmRoutineSingle = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_3232.hpp b/src/database/kernels/gemm_routine/gemm_routine_3232.hpp index ea101e13..f24145a3 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_3232.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_3232.hpp @@ -16,7 +16,7 @@ const DatabaseEntry GemmRoutineComplexSingle = { kDeviceTypeGPU, "AMD", { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -26,6 +26,10 @@ const DatabaseEntry GemmRoutineComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -49,6 +53,7 @@ const DatabaseEntry GemmRoutineComplexSingle = { { "default", { { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/gemm_routine/gemm_routine_64.hpp b/src/database/kernels/gemm_routine/gemm_routine_64.hpp index 81ba801f..ba4b3420 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_64.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_64.hpp @@ -16,7 +16,7 @@ const DatabaseEntry GemmRoutineDouble = { kDeviceTypeGPU, "AMD", { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -26,6 +26,10 @@ const DatabaseEntry GemmRoutineDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/gemm_routine/gemm_routine_6464.hpp b/src/database/kernels/gemm_routine/gemm_routine_6464.hpp index 984ea5f0..86751b99 100644 --- a/src/database/kernels/gemm_routine/gemm_routine_6464.hpp +++ b/src/database/kernels/gemm_routine/gemm_routine_6464.hpp @@ -16,7 +16,7 @@ const DatabaseEntry GemmRoutineComplexDouble = { kDeviceTypeGPU, "AMD", { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 1344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -26,6 +26,10 @@ const DatabaseEntry GemmRoutineComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -88,7 +92,7 @@ const DatabaseEntry GemmRoutineComplexDouble = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/invert/invert_16.hpp b/src/database/kernels/invert/invert_16.hpp index 8d54580e..3303d4c0 100644 --- a/src/database/kernels/invert/invert_16.hpp +++ b/src/database/kernels/invert/invert_16.hpp @@ -25,6 +25,10 @@ const DatabaseEntry InvertHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -35,6 +39,7 @@ const DatabaseEntry InvertHalf = { kDeviceTypeGPU, "Intel", { { "default", { { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/invert/invert_32.hpp b/src/database/kernels/invert/invert_32.hpp index 5cdc936f..adeba821 100644 --- a/src/database/kernels/invert/invert_32.hpp +++ b/src/database/kernels/invert/invert_32.hpp @@ -26,6 +26,10 @@ const DatabaseEntry InvertSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -49,6 +53,7 @@ const DatabaseEntry InvertSingle = { { Name{"Intel(R) HD Graphics 6000 BroadWell U-Processor GT"}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/invert/invert_3232.hpp b/src/database/kernels/invert/invert_3232.hpp index 42e5ff42..0d3b624a 100644 --- a/src/database/kernels/invert/invert_3232.hpp +++ b/src/database/kernels/invert/invert_3232.hpp @@ -26,6 +26,10 @@ const DatabaseEntry InvertComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -48,7 +52,8 @@ const DatabaseEntry InvertComplexSingle = { { "default", { { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/invert/invert_64.hpp b/src/database/kernels/invert/invert_64.hpp index 72765f9a..6c52c3f0 100644 --- a/src/database/kernels/invert/invert_64.hpp +++ b/src/database/kernels/invert/invert_64.hpp @@ -26,6 +26,10 @@ const DatabaseEntry InvertDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/invert/invert_6464.hpp b/src/database/kernels/invert/invert_6464.hpp index 7cbfdddb..e14a24a2 100644 --- a/src/database/kernels/invert/invert_6464.hpp +++ b/src/database/kernels/invert/invert_6464.hpp @@ -26,6 +26,10 @@ const DatabaseEntry InvertComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/pad/pad_16.hpp b/src/database/kernels/pad/pad_16.hpp index a0198adb..dceef8ba 100644 --- a/src/database/kernels/pad/pad_16.hpp +++ b/src/database/kernels/pad/pad_16.hpp @@ -33,6 +33,10 @@ const DatabaseEntry PadHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 32, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 8, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -54,6 +58,7 @@ const DatabaseEntry PadHalf = { { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 8, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics 620 "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 32, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 16, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/pad/pad_32.hpp b/src/database/kernels/pad/pad_32.hpp index 41648265..7a91b8f0 100644 --- a/src/database/kernels/pad/pad_32.hpp +++ b/src/database/kernels/pad/pad_32.hpp @@ -68,6 +68,10 @@ const DatabaseEntry PadSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -112,6 +116,7 @@ const DatabaseEntry PadSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 32, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 32, 16, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 16, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/pad/pad_3232.hpp b/src/database/kernels/pad/pad_3232.hpp index 0ec686c4..38a91e94 100644 --- a/src/database/kernels/pad/pad_3232.hpp +++ b/src/database/kernels/pad/pad_3232.hpp @@ -58,7 +58,7 @@ const DatabaseEntry PadComplexSingle = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 8, 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 16, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -68,6 +68,10 @@ const DatabaseEntry PadComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 16, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -110,6 +114,7 @@ const DatabaseEntry PadComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 32, 16, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 16, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 32, 16, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 32, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/pad/pad_64.hpp b/src/database/kernels/pad/pad_64.hpp index 4c51107e..cd9eab2d 100644 --- a/src/database/kernels/pad/pad_64.hpp +++ b/src/database/kernels/pad/pad_64.hpp @@ -50,7 +50,7 @@ const DatabaseEntry PadDouble = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 8, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 32, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 16, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 16, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -60,6 +60,10 @@ const DatabaseEntry PadDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 16, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 16, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/pad/pad_6464.hpp b/src/database/kernels/pad/pad_6464.hpp index 7099d7b6..2a1dbd7e 100644 --- a/src/database/kernels/pad/pad_6464.hpp +++ b/src/database/kernels/pad/pad_6464.hpp @@ -60,6 +60,10 @@ const DatabaseEntry PadComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 8, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/padtranspose/padtranspose_16.hpp b/src/database/kernels/padtranspose/padtranspose_16.hpp index 970ccbec..97f9fdee 100644 --- a/src/database/kernels/padtranspose/padtranspose_16.hpp +++ b/src/database/kernels/padtranspose/padtranspose_16.hpp @@ -33,6 +33,10 @@ const DatabaseEntry PadtransposeHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -54,6 +58,7 @@ const DatabaseEntry PadtransposeHalf = { { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics 620 "}, Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/padtranspose/padtranspose_32.hpp b/src/database/kernels/padtranspose/padtranspose_32.hpp index 080ab69c..519c0cd2 100644 --- a/src/database/kernels/padtranspose/padtranspose_32.hpp +++ b/src/database/kernels/padtranspose/padtranspose_32.hpp @@ -68,6 +68,10 @@ const DatabaseEntry PadtransposeSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -112,6 +116,7 @@ const DatabaseEntry PadtransposeSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/padtranspose/padtranspose_3232.hpp b/src/database/kernels/padtranspose/padtranspose_3232.hpp index df4ce1f8..99f43754 100644 --- a/src/database/kernels/padtranspose/padtranspose_3232.hpp +++ b/src/database/kernels/padtranspose/padtranspose_3232.hpp @@ -68,6 +68,10 @@ const DatabaseEntry PadtransposeComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -110,9 +114,10 @@ const DatabaseEntry PadtransposeComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 0, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/padtranspose/padtranspose_64.hpp b/src/database/kernels/padtranspose/padtranspose_64.hpp index 53198e3b..cb96069a 100644 --- a/src/database/kernels/padtranspose/padtranspose_64.hpp +++ b/src/database/kernels/padtranspose/padtranspose_64.hpp @@ -60,6 +60,10 @@ const DatabaseEntry PadtransposeDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/padtranspose/padtranspose_6464.hpp b/src/database/kernels/padtranspose/padtranspose_6464.hpp index 197b8629..c664d131 100644 --- a/src/database/kernels/padtranspose/padtranspose_6464.hpp +++ b/src/database/kernels/padtranspose/padtranspose_6464.hpp @@ -60,6 +60,10 @@ const DatabaseEntry PadtransposeComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/transpose/transpose_16.hpp b/src/database/kernels/transpose/transpose_16.hpp index 79735019..eac0b2cb 100644 --- a/src/database/kernels/transpose/transpose_16.hpp +++ b/src/database/kernels/transpose/transpose_16.hpp @@ -33,6 +33,10 @@ const DatabaseEntry TransposeHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -54,7 +58,8 @@ const DatabaseEntry TransposeHalf = { { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 8, 1, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics 620 "}, Params{ 8, 1, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 16, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 1, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/transpose/transpose_32.hpp b/src/database/kernels/transpose/transpose_32.hpp index 40faf7f7..bad52c53 100644 --- a/src/database/kernels/transpose/transpose_32.hpp +++ b/src/database/kernels/transpose/transpose_32.hpp @@ -68,6 +68,10 @@ const DatabaseEntry TransposeSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 16, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -111,6 +115,7 @@ const DatabaseEntry TransposeSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 8, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 8, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 16, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/transpose/transpose_3232.hpp b/src/database/kernels/transpose/transpose_3232.hpp index 3a065dc3..985ab161 100644 --- a/src/database/kernels/transpose/transpose_3232.hpp +++ b/src/database/kernels/transpose/transpose_3232.hpp @@ -68,6 +68,10 @@ const DatabaseEntry TransposeComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -110,6 +114,7 @@ const DatabaseEntry TransposeComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 16, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/transpose/transpose_64.hpp b/src/database/kernels/transpose/transpose_64.hpp index 56f60b60..6efedf8f 100644 --- a/src/database/kernels/transpose/transpose_64.hpp +++ b/src/database/kernels/transpose/transpose_64.hpp @@ -60,6 +60,10 @@ const DatabaseEntry TransposeDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/transpose/transpose_6464.hpp b/src/database/kernels/transpose/transpose_6464.hpp index 06af7ffa..bd92b46d 100644 --- a/src/database/kernels/transpose/transpose_6464.hpp +++ b/src/database/kernels/transpose/transpose_6464.hpp @@ -60,6 +60,10 @@ const DatabaseEntry TransposeComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 8, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/trsv_routine/trsv_routine_32.hpp b/src/database/kernels/trsv_routine/trsv_routine_32.hpp index c178bd2b..b722f914 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_32.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_32.hpp @@ -26,6 +26,10 @@ const DatabaseEntry TrsvRoutineSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -49,6 +53,7 @@ const DatabaseEntry TrsvRoutineSingle = { { Name{"Intel(R) HD Graphics 6000 BroadWell U-Processor GT"}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/trsv_routine/trsv_routine_3232.hpp b/src/database/kernels/trsv_routine/trsv_routine_3232.hpp index 53b512a8..77b87783 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_3232.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_3232.hpp @@ -26,6 +26,10 @@ const DatabaseEntry TrsvRoutineComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -48,6 +52,7 @@ const DatabaseEntry TrsvRoutineComplexSingle = { { "default", { { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/trsv_routine/trsv_routine_64.hpp b/src/database/kernels/trsv_routine/trsv_routine_64.hpp index 5cf477f7..abd9d927 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_64.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_64.hpp @@ -26,6 +26,10 @@ const DatabaseEntry TrsvRoutineDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/trsv_routine/trsv_routine_6464.hpp b/src/database/kernels/trsv_routine/trsv_routine_6464.hpp index fcb6f7d8..56aa8e54 100644 --- a/src/database/kernels/trsv_routine/trsv_routine_6464.hpp +++ b/src/database/kernels/trsv_routine/trsv_routine_6464.hpp @@ -26,6 +26,10 @@ const DatabaseEntry TrsvRoutineComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xaxpy/xaxpy_16.hpp b/src/database/kernels/xaxpy/xaxpy_16.hpp index c5bc8e8d..c4a56098 100644 --- a/src/database/kernels/xaxpy/xaxpy_16.hpp +++ b/src/database/kernels/xaxpy/xaxpy_16.hpp @@ -33,6 +33,10 @@ const DatabaseEntry XaxpyHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 4, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 4, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -54,6 +58,7 @@ const DatabaseEntry XaxpyHalf = { { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics 620 "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 2, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/xaxpy/xaxpy_32.hpp b/src/database/kernels/xaxpy/xaxpy_32.hpp index 60a6b0f6..fee62f5b 100644 --- a/src/database/kernels/xaxpy/xaxpy_32.hpp +++ b/src/database/kernels/xaxpy/xaxpy_32.hpp @@ -68,6 +68,10 @@ const DatabaseEntry XaxpySingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 256, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 256, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -112,6 +116,7 @@ const DatabaseEntry XaxpySingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 8, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 512, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 1, 256, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -217,7 +222,7 @@ const DatabaseEntry XaxpySingle = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xaxpy/xaxpy_3232.hpp b/src/database/kernels/xaxpy/xaxpy_3232.hpp index 00211d12..f5cacea9 100644 --- a/src/database/kernels/xaxpy/xaxpy_3232.hpp +++ b/src/database/kernels/xaxpy/xaxpy_3232.hpp @@ -68,6 +68,10 @@ const DatabaseEntry XaxpyComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -110,6 +114,7 @@ const DatabaseEntry XaxpyComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 1, 256, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 2, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 1, 256, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xaxpy/xaxpy_64.hpp b/src/database/kernels/xaxpy/xaxpy_64.hpp index 67a7bbc8..8ee9b4c2 100644 --- a/src/database/kernels/xaxpy/xaxpy_64.hpp +++ b/src/database/kernels/xaxpy/xaxpy_64.hpp @@ -60,6 +60,10 @@ const DatabaseEntry XaxpyDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 128, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 128, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xaxpy/xaxpy_6464.hpp b/src/database/kernels/xaxpy/xaxpy_6464.hpp index 8f82d3b7..c5b82bc0 100644 --- a/src/database/kernels/xaxpy/xaxpy_6464.hpp +++ b/src/database/kernels/xaxpy/xaxpy_6464.hpp @@ -60,6 +60,10 @@ const DatabaseEntry XaxpyComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xconvgemm/xconvgemm_16.hpp b/src/database/kernels/xconvgemm/xconvgemm_16.hpp index aff1fb28..dcc3bdbd 100644 --- a/src/database/kernels/xconvgemm/xconvgemm_16.hpp +++ b/src/database/kernels/xconvgemm/xconvgemm_16.hpp @@ -15,7 +15,7 @@ const DatabaseEntry XconvgemmHalf = { { // AMD GPUs kDeviceTypeGPU, "AMD", { { "default", { - { kDeviceNameDefault , Params{ 1, 16, 16, 8, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 16, 16, 8, 0, 0, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 1, 8, 16, 16, 8, 0, 0, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, @@ -25,6 +25,10 @@ const DatabaseEntry XconvgemmHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 16, 16, 16, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 16, 16, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 8, 16, 8, 8, 0, 0, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 16, 8, 8, 0, 0, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Intel GPUs @@ -38,7 +42,7 @@ const DatabaseEntry XconvgemmHalf = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 1, 16, 16, 8, 8, 0, 0, 1, 4, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 16, 16, 8, 0, 0, 1, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xconvgemm/xconvgemm_32.hpp b/src/database/kernels/xconvgemm/xconvgemm_32.hpp index 6f3a4f97..71a279d7 100644 --- a/src/database/kernels/xconvgemm/xconvgemm_32.hpp +++ b/src/database/kernels/xconvgemm/xconvgemm_32.hpp @@ -26,6 +26,10 @@ const DatabaseEntry XconvgemmSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 8, 16, 32, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 16, 32, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 8, 8, 8, 8, 0, 0, 4, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 8, 8, 8, 0, 0, 4, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 8, 8, 8, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 8, 8, 8, 8, 0, 0, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xconvgemm/xconvgemm_64.hpp b/src/database/kernels/xconvgemm/xconvgemm_64.hpp index f01ec2e3..0a3016e2 100644 --- a/src/database/kernels/xconvgemm/xconvgemm_64.hpp +++ b/src/database/kernels/xconvgemm/xconvgemm_64.hpp @@ -26,6 +26,10 @@ const DatabaseEntry XconvgemmDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 8, 16, 8, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 8, 16, 8, 8, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, } }, { // Intel CPUs diff --git a/src/database/kernels/xdot/xdot_16.hpp b/src/database/kernels/xdot/xdot_16.hpp index 4395d6ca..5ff1dd7e 100644 --- a/src/database/kernels/xdot/xdot_16.hpp +++ b/src/database/kernels/xdot/xdot_16.hpp @@ -33,6 +33,10 @@ const DatabaseEntry XdotHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 256, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -54,6 +58,7 @@ const DatabaseEntry XdotHalf = { { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics 620 "}, Params{ 64, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 256, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/xdot/xdot_32.hpp b/src/database/kernels/xdot/xdot_32.hpp index 5c8ae6aa..56f9c430 100644 --- a/src/database/kernels/xdot/xdot_32.hpp +++ b/src/database/kernels/xdot/xdot_32.hpp @@ -54,7 +54,7 @@ const DatabaseEntry XdotSingle = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 256, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -64,6 +64,10 @@ const DatabaseEntry XdotSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -106,6 +110,7 @@ const DatabaseEntry XdotSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 512, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xdot/xdot_3232.hpp b/src/database/kernels/xdot/xdot_3232.hpp index 561db89b..14ba956d 100644 --- a/src/database/kernels/xdot/xdot_3232.hpp +++ b/src/database/kernels/xdot/xdot_3232.hpp @@ -64,6 +64,10 @@ const DatabaseEntry XdotComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -104,8 +108,9 @@ const DatabaseEntry XdotComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xdot/xdot_64.hpp b/src/database/kernels/xdot/xdot_64.hpp index 25885f1d..10d4321a 100644 --- a/src/database/kernels/xdot/xdot_64.hpp +++ b/src/database/kernels/xdot/xdot_64.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XdotDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 256, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xdot/xdot_6464.hpp b/src/database/kernels/xdot/xdot_6464.hpp index bbb6289e..b4a73c5b 100644 --- a/src/database/kernels/xdot/xdot_6464.hpp +++ b/src/database/kernels/xdot/xdot_6464.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XdotComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemm/xgemm_16.hpp b/src/database/kernels/xgemm/xgemm_16.hpp index 89b24797..3e8f99f9 100644 --- a/src/database/kernels/xgemm/xgemm_16.hpp +++ b/src/database/kernels/xgemm/xgemm_16.hpp @@ -19,7 +19,7 @@ const DatabaseEntry XgemmHalf = { { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, } }, { "default", { - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 2, 2 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 1, 32, 2, 8, 16, 128, 16, 16, 128, 1, 1, 1, 0, 8, 8 } }, @@ -29,6 +29,10 @@ const DatabaseEntry XgemmHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 1, 32, 2, 8, 16, 128, 16, 16, 128, 1, 1, 1, 0, 8, 8 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 16, 128, 16, 16, 128, 1, 1, 1, 0, 8, 8 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 0, 1, 32, 2, 8, 16, 128, 16, 16, 128, 1, 1, 1, 0, 8, 8 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 16, 128, 16, 16, 128, 1, 1, 1, 0, 8, 8 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 0, 1, 32, 2, 16, 16, 128, 32, 8, 128, 1, 1, 0, 0, 2, 4 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 128, 32, 8, 128, 1, 1, 0, 0, 2, 4 } }, @@ -49,7 +53,8 @@ const DatabaseEntry XgemmHalf = { { "default", { { Name{"Intel(R) HD Graphics 620 "}, Params{ 0, 1, 32, 2, 8, 8, 64, 8, 8, 64, 0, 0, 0, 0, 1, 1 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 0, 1, 16, 2, 8, 8, 32, 16, 16, 128, 0, 1, 1, 0, 4, 8 } }, - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 16, 128, 8, 8, 32, 0, 1, 0, 1, 8, 4 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 0, 1, 32, 2, 8, 16, 64, 8, 8, 128, 1, 1, 0, 1, 1, 8 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 2, 2 } }, } }, } }, @@ -72,7 +77,7 @@ const DatabaseEntry XgemmHalf = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, } }, } }, diff --git a/src/database/kernels/xgemm/xgemm_32.hpp b/src/database/kernels/xgemm/xgemm_32.hpp index c6d106b3..079b12bb 100644 --- a/src/database/kernels/xgemm/xgemm_32.hpp +++ b/src/database/kernels/xgemm/xgemm_32.hpp @@ -68,6 +68,10 @@ const DatabaseEntry XgemmSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 1, 16, 2, 8, 8, 128, 32, 8, 64, 1, 0, 1, 1, 4, 1 } }, { kDeviceNameDefault , Params{ 0, 1, 16, 2, 8, 8, 128, 32, 8, 64, 1, 0, 1, 1, 4, 1 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 0, 1, 32, 2, 8, 8, 128, 32, 16, 128, 1, 1, 1, 1, 4, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 128, 32, 16, 128, 1, 1, 1, 1, 4, 4 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 0, 1, 32, 2, 16, 16, 128, 16, 8, 64, 1, 1, 1, 0, 4, 1 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 128, 16, 8, 64, 1, 1, 1, 0, 4, 1 } }, @@ -112,6 +116,7 @@ const DatabaseEntry XgemmSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 0, 1, 16, 2, 16, 8, 32, 8, 16, 128, 1, 1, 1, 1, 2, 4 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 1, 2, 1, 1, 4, 4, 32, 8, 8, 64, 0, 0, 0, 0, 2, 2 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 0, 1, 32, 2, 8, 16, 64, 8, 8, 128, 1, 1, 0, 1, 1, 8 } }, { Name{"Iris "}, Params{ 0, 1, 16, 8, 16, 8, 128, 32, 16, 64, 1, 1, 1, 1, 4, 1 } }, { Name{"Iris Pro "}, Params{ 0, 1, 16, 2, 16, 8, 64, 32, 32, 128, 1, 1, 1, 0, 4, 4 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 64, 1, 1, 0, 0, 4, 4 } }, diff --git a/src/database/kernels/xgemm/xgemm_3232.hpp b/src/database/kernels/xgemm/xgemm_3232.hpp index 6db3f885..108a5ff3 100644 --- a/src/database/kernels/xgemm/xgemm_3232.hpp +++ b/src/database/kernels/xgemm/xgemm_3232.hpp @@ -54,7 +54,7 @@ const DatabaseEntry XgemmComplexSingle = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 0, 1, 32, 2, 16, 16, 64, 8, 8, 32, 0, 0, 0, 0, 4, 4 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 32, 0, 0, 0, 0, 2, 1 } }, - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 16, 16, 64, 0, 0, 0, 0, 4, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 8, 8, 32, 0, 0, 0, 0, 4, 4 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 1, 32, 2, 8, 16, 32, 8, 8, 128, 0, 0, 0, 0, 2, 1 } }, @@ -64,6 +64,10 @@ const DatabaseEntry XgemmComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 2, 1, 1, 16, 16, 32, 16, 16, 16, 0, 0, 0, 0, 1, 1 } }, { kDeviceNameDefault , Params{ 1, 2, 1, 1, 16, 16, 32, 16, 16, 16, 0, 0, 0, 0, 1, 1 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 32, 0, 0, 0, 0, 2, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 32, 0, 0, 0, 0, 2, 4 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 0, 1, 16, 2, 8, 16, 64, 32, 8, 64, 1, 1, 1, 0, 1, 2 } }, { kDeviceNameDefault , Params{ 0, 1, 16, 2, 8, 16, 64, 32, 8, 64, 1, 1, 1, 0, 1, 2 } }, @@ -106,9 +110,10 @@ const DatabaseEntry XgemmComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 0, 1, 32, 8, 16, 16, 64, 16, 16, 64, 1, 1, 1, 1, 2, 1 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 1, 4, 1, 1, 32, 32, 128, 16, 16, 128, 0, 0, 0, 0, 4, 1 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 1, 2, 1, 1, 4, 4, 16, 8, 8, 64, 0, 0, 0, 0, 2, 2 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 1, 2, 1, 1, 4, 4, 16, 8, 8, 64, 0, 0, 0, 0, 2, 2 } }, { Name{"Iris "}, Params{ 0, 1, 32, 8, 32, 16, 64, 8, 16, 64, 1, 0, 1, 0, 1, 1 } }, { Name{"Iris Pro "}, Params{ 0, 1, 16, 2, 8, 8, 32, 32, 8, 32, 1, 1, 1, 1, 1, 1 } }, - { kDeviceNameDefault , Params{ 0, 1, 16, 2, 16, 8, 32, 8, 8, 32, 0, 0, 1, 0, 1, 1 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 32, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, } }, } }, diff --git a/src/database/kernels/xgemm/xgemm_64.hpp b/src/database/kernels/xgemm/xgemm_64.hpp index 29fb3679..5b51622e 100644 --- a/src/database/kernels/xgemm/xgemm_64.hpp +++ b/src/database/kernels/xgemm/xgemm_64.hpp @@ -46,7 +46,7 @@ const DatabaseEntry XgemmDouble = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 2, 1, 1, 16, 16, 32, 8, 8, 32, 0, 0, 0, 0, 2, 2 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 16, 16, 32, 16, 16, 64, 1, 1, 0, 0, 2, 1 } }, - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 2, 2 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 32, 32, 32, 8, 8, 32, 1, 1, 0, 0, 1, 4 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 1, 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 4, 2 } }, @@ -56,6 +56,10 @@ const DatabaseEntry XgemmDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 64, 1, 1, 0, 0, 2, 4 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 64, 1, 1, 0, 0, 2, 4 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 0, 1, 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 0, 1, 16, 2, 8, 8, 64, 8, 16, 128, 1, 1, 0, 1, 8, 2 } }, { kDeviceNameDefault , Params{ 0, 1, 16, 2, 8, 8, 64, 8, 16, 128, 1, 1, 0, 1, 8, 2 } }, diff --git a/src/database/kernels/xgemm/xgemm_6464.hpp b/src/database/kernels/xgemm/xgemm_6464.hpp index 2ffdc7aa..cc75d9ff 100644 --- a/src/database/kernels/xgemm/xgemm_6464.hpp +++ b/src/database/kernels/xgemm/xgemm_6464.hpp @@ -46,7 +46,7 @@ const DatabaseEntry XgemmComplexDouble = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 1, 2, 1, 1, 16, 16, 32, 16, 16, 16, 0, 0, 0, 0, 1, 1 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 32, 0, 0, 0, 0, 2, 1 } }, - { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 16, 0, 0, 0, 0, 2, 2 } }, + { kDeviceNameDefault , Params{ 0, 1, 32, 2, 8, 8, 16, 8, 8, 16, 0, 0, 0, 0, 2, 2 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 0, 1, 32, 2, 8, 8, 16, 16, 16, 32, 1, 1, 0, 0, 2, 2 } }, @@ -56,6 +56,10 @@ const DatabaseEntry XgemmComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 16, 1, 1, 0, 1, 2, 2 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 16, 1, 1, 0, 1, 2, 2 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 0, 1, 16, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 1, 4, 4 } }, + { kDeviceNameDefault , Params{ 0, 1, 16, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 1, 4, 4 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 1, 2 } }, { kDeviceNameDefault , Params{ 0, 1, 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 1, 2 } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp index c3c0f2ea..8718db1d 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_16.hpp @@ -19,7 +19,7 @@ const DatabaseEntry XgemmDirectHalf = { { kDeviceNameDefault , Params{ 8, 32, 8, 8, 32, 1, 1, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "default", { - { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, @@ -29,6 +29,10 @@ const DatabaseEntry XgemmDirectHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 4, 64, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 4, 64, 0, 0, 0, 0, 0, 0 } }, @@ -72,7 +76,7 @@ const DatabaseEntry XgemmDirectHalf = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 8, 8, 1, 1, 1, 4, 32, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp index 39e89779..5694e819 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_32.hpp @@ -38,7 +38,7 @@ const DatabaseEntry XgemmDirectSingle = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 2, 16, 16, 8, 8, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 2, 8, 8, 16, 16, 1, 1, 2, 1, 16, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, @@ -48,6 +48,10 @@ const DatabaseEntry XgemmDirectSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 2, 32, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 8, 16, 16, 32, 16, 1, 1, 4, 1, 64, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 16, 32, 16, 1, 1, 4, 1, 64, 0, 0, 0, 0, 0, 0 } }, @@ -87,6 +91,7 @@ const DatabaseEntry XgemmDirectSingle = { { Name{"Intel(R) HD Graphics 620 "}, Params{ 2, 16, 16, 8, 8, 1, 1, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 8, 16, 32, 16, 8, 1, 0, 1, 1, 64, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 2, 8, 8, 8, 8, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 2, 16, 16, 8, 8, 1, 1, 2, 4, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp index 4762a6ce..1dc03e3e 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_3232.hpp @@ -44,6 +44,10 @@ const DatabaseEntry XgemmDirectComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 2, 2, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 16, 16, 1, 1, 4, 2, 32, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 2, 1, 32, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp index 07fafd89..7f985068 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_64.hpp @@ -40,6 +40,10 @@ const DatabaseEntry XgemmDirectDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 16, 16, 16, 16, 1, 1, 1, 1, 16, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp b/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp index 03e1a998..2a41b070 100644 --- a/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp +++ b/src/database/kernels/xgemm_direct/xgemm_direct_6464.hpp @@ -40,6 +40,10 @@ const DatabaseEntry XgemmDirectComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 8, 16, 8, 8, 0, 0, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 8, 16, 8, 8, 0, 0, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 1, 8, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 2, 8, 8, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 8, 8, 8, 8, 1, 1, 1, 2, 16, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv/xgemv_16.hpp b/src/database/kernels/xgemv/xgemv_16.hpp index 74a094fb..65368218 100644 --- a/src/database/kernels/xgemv/xgemv_16.hpp +++ b/src/database/kernels/xgemv/xgemv_16.hpp @@ -29,6 +29,10 @@ const DatabaseEntry XgemvHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -40,6 +44,7 @@ const DatabaseEntry XgemvHalf = { { "default", { { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/xgemv/xgemv_32.hpp b/src/database/kernels/xgemv/xgemv_32.hpp index a882f548..07f05716 100644 --- a/src/database/kernels/xgemv/xgemv_32.hpp +++ b/src/database/kernels/xgemv/xgemv_32.hpp @@ -64,6 +64,10 @@ const DatabaseEntry XgemvSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -106,6 +110,7 @@ const DatabaseEntry XgemvSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv/xgemv_3232.hpp b/src/database/kernels/xgemv/xgemv_3232.hpp index 3546a9a1..560a362d 100644 --- a/src/database/kernels/xgemv/xgemv_3232.hpp +++ b/src/database/kernels/xgemv/xgemv_3232.hpp @@ -64,6 +64,10 @@ const DatabaseEntry XgemvComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -104,6 +108,7 @@ const DatabaseEntry XgemvComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv/xgemv_64.hpp b/src/database/kernels/xgemv/xgemv_64.hpp index d8baee0b..5b481173 100644 --- a/src/database/kernels/xgemv/xgemv_64.hpp +++ b/src/database/kernels/xgemv/xgemv_64.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XgemvDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv/xgemv_6464.hpp b/src/database/kernels/xgemv/xgemv_6464.hpp index 27ee5ee8..3319682e 100644 --- a/src/database/kernels/xgemv/xgemv_6464.hpp +++ b/src/database/kernels/xgemv/xgemv_6464.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XgemvComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp index 5ca3eb9d..a187fb01 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_16.hpp @@ -29,6 +29,10 @@ const DatabaseEntry XgemvFastHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -40,6 +44,7 @@ const DatabaseEntry XgemvFastHalf = { { "default", { { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 4, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 4, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp index b340f185..5e60f217 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_32.hpp @@ -64,6 +64,10 @@ const DatabaseEntry XgemvFastSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -106,9 +110,10 @@ const DatabaseEntry XgemvFastSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 1, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 2, 32, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 2, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 4, 64, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 2, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 2, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp index 29699ad2..4dc7e348 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_3232.hpp @@ -64,6 +64,10 @@ const DatabaseEntry XgemvFastComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -104,6 +108,7 @@ const DatabaseEntry XgemvFastComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 2, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 1, 128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 1, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 4, 128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp index 8679b9c9..9021a557 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_64.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XgemvFastDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp b/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp index 2a2a30c4..7fb0d6f8 100644 --- a/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp +++ b/src/database/kernels/xgemv_fast/xgemv_fast_6464.hpp @@ -56,6 +56,10 @@ const DatabaseEntry XgemvFastComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp index 6130cc91..9a6c0ec8 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_16.hpp @@ -29,6 +29,10 @@ const DatabaseEntry XgemvFastRotHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 2, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -39,6 +43,7 @@ const DatabaseEntry XgemvFastRotHalf = { kDeviceTypeGPU, "Intel", { { "default", { { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 8, 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 2, 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } @@ -62,7 +67,7 @@ const DatabaseEntry XgemvFastRotHalf = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp index 0f460573..3f70a451 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_32.hpp @@ -48,6 +48,10 @@ const DatabaseEntry XgemvFastRotSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 1, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 1, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -88,6 +92,7 @@ const DatabaseEntry XgemvFastRotSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 4, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 2, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 4, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 2, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp index 141f7cd7..319360bf 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_3232.hpp @@ -48,6 +48,10 @@ const DatabaseEntry XgemvFastRotComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 4, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -86,6 +90,7 @@ const DatabaseEntry XgemvFastRotComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 4, 128, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 2, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 4, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 1, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 2, 32, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp index 8f76ba50..2f227bb4 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_64.hpp @@ -40,6 +40,10 @@ const DatabaseEntry XgemvFastRotDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 8, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp index b7767a1b..ec876eb4 100644 --- a/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp +++ b/src/database/kernels/xgemv_fast_rot/xgemv_fast_rot_6464.hpp @@ -40,6 +40,10 @@ const DatabaseEntry XgemvFastRotComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 4, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 1, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 8, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -118,7 +122,7 @@ const DatabaseEntry XgemvFastRotComplexDouble = { { // Default kDeviceTypeAll, "default", { { "default", { - { kDeviceNameDefault , Params{ 4, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 4, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xger/xger_16.hpp b/src/database/kernels/xger/xger_16.hpp index 76ee1fa3..009b3b4f 100644 --- a/src/database/kernels/xger/xger_16.hpp +++ b/src/database/kernels/xger/xger_16.hpp @@ -33,6 +33,10 @@ const DatabaseEntry XgerHalf = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 128, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 128, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 32, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 32, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -53,7 +57,8 @@ const DatabaseEntry XgerHalf = { { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 256, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics 620 "}, Params{ 32, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 4, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 16, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, } }, diff --git a/src/database/kernels/xger/xger_32.hpp b/src/database/kernels/xger/xger_32.hpp index 880fdacc..ed889043 100644 --- a/src/database/kernels/xger/xger_32.hpp +++ b/src/database/kernels/xger/xger_32.hpp @@ -68,6 +68,10 @@ const DatabaseEntry XgerSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 32, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -111,6 +115,7 @@ const DatabaseEntry XgerSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 32, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 16, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 64, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xger/xger_3232.hpp b/src/database/kernels/xger/xger_3232.hpp index ee3563b9..c982a102 100644 --- a/src/database/kernels/xger/xger_3232.hpp +++ b/src/database/kernels/xger/xger_3232.hpp @@ -58,7 +58,7 @@ const DatabaseEntry XgerComplexSingle = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 4, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 64, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -68,6 +68,10 @@ const DatabaseEntry XgerComplexSingle = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 16, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 128, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 128, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 64, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -109,6 +113,7 @@ const DatabaseEntry XgerComplexSingle = { { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 512, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics IvyBridge M GT2 "}, Params{ 16, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 16, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { Name{"Intel(R) UHD Graphics 770 "}, Params{ 8, 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"Iris Pro "}, Params{ 16, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, diff --git a/src/database/kernels/xger/xger_64.hpp b/src/database/kernels/xger/xger_64.hpp index 023d1fce..34da3c88 100644 --- a/src/database/kernels/xger/xger_64.hpp +++ b/src/database/kernels/xger/xger_64.hpp @@ -50,7 +50,7 @@ const DatabaseEntry XgerDouble = { { "default", { { Name{"AMD Radeon Pro 450 Compute Engine "}, Params{ 128, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { Name{"AMD Radeon Pro 580 Compute Engine "}, Params{ 32, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { kDeviceNameDefault , Params{ 128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, { "gfx1010:xnack-", { { Name{"AMD Radeon RX 5700 XT "}, Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -60,6 +60,10 @@ const DatabaseEntry XgerDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 32, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, diff --git a/src/database/kernels/xger/xger_6464.hpp b/src/database/kernels/xger/xger_6464.hpp index 8daf11d9..bf5ad7c4 100644 --- a/src/database/kernels/xger/xger_6464.hpp +++ b/src/database/kernels/xger/xger_6464.hpp @@ -60,6 +60,10 @@ const DatabaseEntry XgerComplexDouble = { { Name{"AMD Radeon RX 6800 XT "}, Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, } }, + { "gfx1032", { + { Name{"AMD Radeon RX 6600 XT "}, Params{ 8, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 8, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + } }, { "gfx1034", { { Name{"AMD Radeon RX 6500 XT "}, Params{ 256, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { kDeviceNameDefault , Params{ 256, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, -- cgit v1.2.3 From 036684204e01a28bd8056a8c63c91948f3c39006 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sun, 21 May 2023 17:07:31 +0200 Subject: Github Actions Windows builds with tests (#472) * Set CMake CMP0074 policy * Attempt to use pre-compiled OpenBLAS on Windows CI * Fix an issue and add some debugging * Improve FindCBLAS for OpenBLAS on Windows --- .github/workflows/build_and_test.yml | 10 ++++++++-- CMakeLists.txt | 3 +++ cmake/Modules/FindCBLAS.cmake | 6 +++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 2d74ed24..e1f59a0e 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -75,13 +75,19 @@ jobs: uses: ilammy/msvc-dev-cmd@v1 - name: Install OpenBLAS - run: vcpkg.exe --triplet=${{ matrix.config.arch }}-windows install openblas + run: | + mkdir openblas + cd openblas + C:\msys64\usr\bin\wget.exe https://github.com/xianyi/OpenBLAS/releases/download/v0.3.23/OpenBLAS-0.3.23-x64.zip + 7z x OpenBLAS-0.3.23-x64.zip + pwd + ls - name: Install OpenCL run: vcpkg.exe --triplet=${{ matrix.config.arch }}-windows install opencl - name: Run CMake - run: cmake -S . -B build -DTESTS=ON -DCLIENTS=ON -DSAMPLES=ON -DOPENCL_ROOT=C:/vcpkg/packages/opencl_x64-windows -DCBLAS_ROOT=C:/vcpkg/packages/openblas_x64-windows + run: cmake -S . -B build -DTESTS=ON -DCLIENTS=ON -DSAMPLES=ON -DOPENCL_ROOT=C:\vcpkg\packages\opencl_x64-windows -DCBLAS_ROOT=${{ github.workspace }}\openblas - name: Compile the code run: cmake --build build diff --git a/CMakeLists.txt b/CMakeLists.txt index 169e6852..8e60bf22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,9 @@ set(clblast_VERSION_PATCH 3) set(clblast_VERSION "${clblast_VERSION_MAJOR}.${clblast_VERSION_MINOR}.${clblast_VERSION_PATCH}") set(clblast_SOVERSION ${clblast_VERSION_MAJOR}) +# Policies +cmake_policy(SET CMP0074 NEW) # to make -DCBLAS_ROOT= work with newer CMake versions as well + # Options and their default values option(BUILD_SHARED_LIBS "Build a shared (ON) or static library (OFF)" ON) option(SAMPLES "Enable compilation of the examples" OFF) diff --git a/cmake/Modules/FindCBLAS.cmake b/cmake/Modules/FindCBLAS.cmake index fa97ce9f..ee6419e6 100644 --- a/cmake/Modules/FindCBLAS.cmake +++ b/cmake/Modules/FindCBLAS.cmake @@ -48,11 +48,11 @@ mark_as_advanced(CBLAS_INCLUDE_DIRS) # Finds the library find_library(CBLAS_LIBRARIES - NAMES cblas blas blis openblas accelerate + NAMES cblas blas blis openblas libopenblas accelerate HINTS ${CBLAS_HINTS} PATH_SUFFIXES - lib lib64 lib/x86_64 lib/x64 lib/x86 lib/Win32 lib/import lib64/import - openblas/lib blis/lib lib/atlas-base + lib lib64 bin lib/x86_64 lib/x64 lib/x86 lib/Win32 lib/import lib64/import + openblas/bin openblas/lib blis/lib lib/atlas-base PATHS ${CBLAS_PATHS} DOC "Netlib BLAS library" ) -- cgit v1.2.3 From b0b302889cc786907efb080c4e1beea30d2fa39f Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sun, 21 May 2023 20:51:05 +0200 Subject: Update to version 1.6.0 (#475) --- .appveyor.yml | 4 ++-- CHANGELOG | 5 +++++ CMakeLists.txt | 4 ++-- include/clblast.h | 6 +++--- include/clblast_c.h | 6 +++--- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index a27b3070..c120a9a1 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -55,8 +55,8 @@ build_script: after_build: - ps: pushd $env:CLBLAST_BUILD - - 7z a CLBlast-1.5.3-Windows-x64.zip .\install_dir\* - - ps: mv CLBlast-1.5.3-Windows-x64.zip $env:APPVEYOR_BUILD_FOLDER + - 7z a CLBlast-1.6.0-Windows-x64.zip .\install_dir\* + - ps: mv CLBlast-1.6.0-Windows-x64.zip $env:APPVEYOR_BUILD_FOLDER artifacts: - path: '*.zip' diff --git a/CHANGELOG b/CHANGELOG index 3fe3208e..3b8b1123 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,7 @@ Development version (next version) +- + +Version 1.6.0 - Modifications to improve performance on Qualcomm Adreno GPUs: * Unique database entries for specific Adreno devices * Toggle OpenCL kernel compilation options for Adreno @@ -11,6 +14,8 @@ Development version (next version) - Fixes an issue with crashes on Android related to calling clReleaseProgram - Fixes two small issues in the plotting script - Fixed a documentation bug in the 'ld' requirements +- Enabled Github Actions CI builds for testing and releasing +- Various minor fixes and enhancements - Added tuned parameters for various devices (see doc/tuning.md) Version 1.5.3 diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e60bf22..414fd0b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,8 +21,8 @@ endif() # CMake project details project("clblast" C CXX) set(clblast_VERSION_MAJOR 1) -set(clblast_VERSION_MINOR 5) -set(clblast_VERSION_PATCH 3) +set(clblast_VERSION_MINOR 6) +set(clblast_VERSION_PATCH 0) set(clblast_VERSION "${clblast_VERSION_MAJOR}.${clblast_VERSION_MINOR}.${clblast_VERSION_PATCH}") set(clblast_SOVERSION ${clblast_VERSION_MAJOR}) diff --git a/include/clblast.h b/include/clblast.h index 99364ec6..6c7481af 100644 --- a/include/clblast.h +++ b/include/clblast.h @@ -39,10 +39,10 @@ #define PUBLIC_API #endif -// Version numbering (v1.5.3) +// Version numbering (v1.6.0) #define CLBLAST_VERSION_MAJOR 1 -#define CLBLAST_VERSION_MINOR 5 -#define CLBLAST_VERSION_PATCH 3 +#define CLBLAST_VERSION_MINOR 6 +#define CLBLAST_VERSION_PATCH 0 namespace clblast { // ================================================================================================= diff --git a/include/clblast_c.h b/include/clblast_c.h index 07f1fd0c..c779c556 100644 --- a/include/clblast_c.h +++ b/include/clblast_c.h @@ -34,10 +34,10 @@ #define PUBLIC_API #endif -// Version numbering (v1.5.3) +// Version numbering (v1.6.0) #define CLBLAST_VERSION_MAJOR 1 -#define CLBLAST_VERSION_MINOR 5 -#define CLBLAST_VERSION_PATCH 3 +#define CLBLAST_VERSION_MINOR 6 +#define CLBLAST_VERSION_PATCH 0 // The C interface #ifdef __cplusplus -- cgit v1.2.3