summaryrefslogtreecommitdiff
path: root/include/internal/database/xdot.h
diff options
context:
space:
mode:
authorCNugteren <web@cedricnugteren.nl>2015-09-14 16:57:00 +0200
committerCNugteren <web@cedricnugteren.nl>2015-09-14 16:57:00 +0200
commita2e726d3bd4294f1eae1735f6ba23105dccc6b10 (patch)
tree2685c3204460a300088b13af66128cdda8e64c68 /include/internal/database/xdot.h
parent2a383f34501b386b8e6c4beb56c6ac694622f060 (diff)
Added xDOT/xDOTU/xDOTC dot-product routines
Diffstat (limited to 'include/internal/database/xdot.h')
-rw-r--r--include/internal/database/xdot.h113
1 files changed, 113 insertions, 0 deletions
diff --git a/include/internal/database/xdot.h b/include/internal/database/xdot.h
new file mode 100644
index 00000000..05841eb7
--- /dev/null
+++ b/include/internal/database/xdot.h
@@ -0,0 +1,113 @@
+
+// =================================================================================================
+// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
+// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
+// width of 100 characters per line.
+//
+// Author(s):
+// Cedric Nugteren <www.cedricnugteren.nl>
+//
+// This file populates the database with best-found tuning parameters for the Xdot kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XdotSingle = {
+ "Xdot", Precision::kSingle, {
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, kDeviceVendorNVIDIA, {
+ }
+ },
+ { // AMD GPUs
+ kDeviceTypeGPU, kDeviceVendorAMD, {
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, kDeviceVendorIntel, {
+ { "Iris", { {"WGS1",512}, {"WGS2",512} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, kDeviceVendorAll, {
+ { kDefaultDevice, { {"WGS1",64}, {"WGS2",64} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XdotDouble = {
+ "Xdot", Precision::kDouble, {
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, kDeviceVendorNVIDIA, {
+ }
+ },
+ { // AMD GPUs
+ kDeviceTypeGPU, kDeviceVendorAMD, {
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, kDeviceVendorIntel, {
+ }
+ },
+ { // Default
+ kDeviceTypeAll, kDeviceVendorAll, {
+ { kDefaultDevice, { {"WGS1",64}, {"WGS2",64} } },
+ }
+ },
+ }
+};
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XdotComplexSingle = {
+ "Xdot", Precision::kComplexSingle, {
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, kDeviceVendorNVIDIA, {
+ }
+ },
+ { // AMD GPUs
+ kDeviceTypeGPU, kDeviceVendorAMD, {
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, kDeviceVendorIntel, {
+ { "Iris", { {"WGS1",512}, {"WGS2",512} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, kDeviceVendorAll, {
+ { kDefaultDevice, { {"WGS1",64}, {"WGS2",64} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XdotComplexDouble = {
+ "Xdot", Precision::kComplexDouble, {
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, kDeviceVendorNVIDIA, {
+ }
+ },
+ { // AMD GPUs
+ kDeviceTypeGPU, kDeviceVendorAMD, {
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, kDeviceVendorIntel, {
+ }
+ },
+ { // Default
+ kDeviceTypeAll, kDeviceVendorAll, {
+ { kDefaultDevice, { {"WGS1",64}, {"WGS2",64} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+} // namespace clblast