From 560f7a40f6cbebf5c8d48f1d5aa5f6163b841eb2 Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Mon, 31 Dec 2018 19:05:34 +0100 Subject: Added convgemm to the CLBlast database, added initial parameters for Skylake GPU --- src/database/kernels/xconvgemm/xconvgemm.cpp | 15 ++++++++++ src/database/kernels/xconvgemm/xconvgemm.hpp | 22 +++++++++++++++ src/database/kernels/xconvgemm/xconvgemm_16.hpp | 26 +++++++++++++++++ src/database/kernels/xconvgemm/xconvgemm_32.hpp | 34 +++++++++++++++++++++++ src/database/kernels/xconvgemm/xconvgemm_3232.hpp | 26 +++++++++++++++++ src/database/kernels/xconvgemm/xconvgemm_64.hpp | 26 +++++++++++++++++ src/database/kernels/xconvgemm/xconvgemm_6464.hpp | 26 +++++++++++++++++ 7 files changed, 175 insertions(+) create mode 100644 src/database/kernels/xconvgemm/xconvgemm.cpp create mode 100644 src/database/kernels/xconvgemm/xconvgemm.hpp create mode 100644 src/database/kernels/xconvgemm/xconvgemm_16.hpp create mode 100644 src/database/kernels/xconvgemm/xconvgemm_32.hpp create mode 100644 src/database/kernels/xconvgemm/xconvgemm_3232.hpp create mode 100644 src/database/kernels/xconvgemm/xconvgemm_64.hpp create mode 100644 src/database/kernels/xconvgemm/xconvgemm_6464.hpp (limited to 'src/database/kernels') diff --git a/src/database/kernels/xconvgemm/xconvgemm.cpp b/src/database/kernels/xconvgemm/xconvgemm.cpp new file mode 100644 index 00000000..1138f8b8 --- /dev/null +++ b/src/database/kernels/xconvgemm/xconvgemm.cpp @@ -0,0 +1,15 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It +// is auto-generated by the 'scripts/database/database.py' Python script. +// +// This file populates the database with best-found tuning parameters for the 'Xconvgemm' kernels. +// +// ================================================================================================= + +#include "database/kernels/xconvgemm/xconvgemm.hpp" +#include "database/kernels/xconvgemm/xconvgemm_16.hpp" +#include "database/kernels/xconvgemm/xconvgemm_32.hpp" +#include "database/kernels/xconvgemm/xconvgemm_3232.hpp" +#include "database/kernels/xconvgemm/xconvgemm_64.hpp" +#include "database/kernels/xconvgemm/xconvgemm_6464.hpp" diff --git a/src/database/kernels/xconvgemm/xconvgemm.hpp b/src/database/kernels/xconvgemm/xconvgemm.hpp new file mode 100644 index 00000000..ac07dc42 --- /dev/null +++ b/src/database/kernels/xconvgemm/xconvgemm.hpp @@ -0,0 +1,22 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It +// is auto-generated by the 'scripts/database/database.py' Python script. +// +// This file populates the database with best-found tuning parameters for the 'Xconvgemm' kernels. +// +// ================================================================================================= + +#include "database/database_structure.hpp" + +namespace clblast { +namespace database { + +extern const DatabaseEntry XconvgemmHalf; +extern const DatabaseEntry XconvgemmSingle; +extern const DatabaseEntry XconvgemmComplexSingle; +extern const DatabaseEntry XconvgemmDouble; +extern const DatabaseEntry XconvgemmComplexDouble; + +} // namespace database +} // namespace clblast diff --git a/src/database/kernels/xconvgemm/xconvgemm_16.hpp b/src/database/kernels/xconvgemm/xconvgemm_16.hpp new file mode 100644 index 00000000..97cb442f --- /dev/null +++ b/src/database/kernels/xconvgemm/xconvgemm_16.hpp @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It +// is auto-generated by the 'scripts/database/database.py' Python script. +// +// This file populates the database with best-found tuning parameters for the 'Xconvgemm16' kernels. +// +// ================================================================================================= + +namespace clblast { +namespace database { + +const DatabaseEntry XconvgemmHalf = { + "Xconvgemm", Precision::kHalf, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, { + { // Default + kDeviceTypeAll, "default", { + { "default", { + { kDeviceNameDefault , Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, + } +}; + +} // namespace database +} // namespace clblast diff --git a/src/database/kernels/xconvgemm/xconvgemm_32.hpp b/src/database/kernels/xconvgemm/xconvgemm_32.hpp new file mode 100644 index 00000000..c8d8dfa7 --- /dev/null +++ b/src/database/kernels/xconvgemm/xconvgemm_32.hpp @@ -0,0 +1,34 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It +// is auto-generated by the 'scripts/database/database.py' Python script. +// +// This file populates the database with best-found tuning parameters for the 'Xconvgemm32' kernels. +// +// ================================================================================================= + +namespace clblast { +namespace database { + +const DatabaseEntry XconvgemmSingle = { + "Xconvgemm", Precision::kSingle, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, { + { // Intel GPUs + kDeviceTypeGPU, "Intel", { + { "default", { + { Name{"Intel(R) HD Graphics Skylake ULT GT2 "}, Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + { kDeviceNameDefault , Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, + { // Default + kDeviceTypeAll, "default", { + { "default", { + { kDeviceNameDefault , Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, + } +}; + +} // namespace database +} // namespace clblast diff --git a/src/database/kernels/xconvgemm/xconvgemm_3232.hpp b/src/database/kernels/xconvgemm/xconvgemm_3232.hpp new file mode 100644 index 00000000..bb9a5593 --- /dev/null +++ b/src/database/kernels/xconvgemm/xconvgemm_3232.hpp @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It +// is auto-generated by the 'scripts/database/database.py' Python script. +// +// This file populates the database with best-found tuning parameters for the 'Xconvgemm3232' kernels. +// +// ================================================================================================= + +namespace clblast { +namespace database { + +const DatabaseEntry XconvgemmComplexSingle = { + "Xconvgemm", Precision::kComplexSingle, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, { + { // Default + kDeviceTypeAll, "default", { + { "default", { + { kDeviceNameDefault , Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, + } +}; + +} // namespace database +} // namespace clblast diff --git a/src/database/kernels/xconvgemm/xconvgemm_64.hpp b/src/database/kernels/xconvgemm/xconvgemm_64.hpp new file mode 100644 index 00000000..dfc34160 --- /dev/null +++ b/src/database/kernels/xconvgemm/xconvgemm_64.hpp @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It +// is auto-generated by the 'scripts/database/database.py' Python script. +// +// This file populates the database with best-found tuning parameters for the 'Xconvgemm64' kernels. +// +// ================================================================================================= + +namespace clblast { +namespace database { + +const DatabaseEntry XconvgemmDouble = { + "Xconvgemm", Precision::kDouble, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, { + { // Default + kDeviceTypeAll, "default", { + { "default", { + { kDeviceNameDefault , Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, + } +}; + +} // namespace database +} // namespace clblast diff --git a/src/database/kernels/xconvgemm/xconvgemm_6464.hpp b/src/database/kernels/xconvgemm/xconvgemm_6464.hpp new file mode 100644 index 00000000..6aabe88c --- /dev/null +++ b/src/database/kernels/xconvgemm/xconvgemm_6464.hpp @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It +// is auto-generated by the 'scripts/database/database.py' Python script. +// +// This file populates the database with best-found tuning parameters for the 'Xconvgemm6464' kernels. +// +// ================================================================================================= + +namespace clblast { +namespace database { + +const DatabaseEntry XconvgemmComplexDouble = { + "Xconvgemm", Precision::kComplexDouble, {"KWID", "MDIMAD", "MDIMCD", "NDIMBD", "NDIMCD", "PADA", "PADB", "VWMD", "VWND", "WGD"}, { + { // Default + kDeviceTypeAll, "default", { + { "default", { + { kDeviceNameDefault , Params{ 1, 16, 8, 8, 16, 0, 0, 1, 1, 32, 0, 0, 0, 0, 0, 0 } }, + } }, + } + }, + } +}; + +} // namespace database +} // namespace clblast -- cgit v1.2.3