summaryrefslogtreecommitdiff
path: root/src/database/kernels
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2016-07-25 22:43:49 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2016-07-25 22:43:49 +0200
commit2582f0290a396305ee3b86fb544e999fd55fe323 (patch)
tree51f381cab79e365da5cd11b3ddbcb62e22daa618 /src/database/kernels
parent0252df731ab21d4acd5dfe53733e3c1bd0c18200 (diff)
Moved the XgemvFast and XgemvFastRot tuning database into a separate file
Diffstat (limited to 'src/database/kernels')
-rw-r--r--src/database/kernels/xgemm.hpp12
-rw-r--r--src/database/kernels/xgemv.hpp200
-rw-r--r--src/database/kernels/xgemv_fast.hpp247
-rw-r--r--src/database/kernels/xgemv_fast_rot.hpp245
4 files changed, 592 insertions, 112 deletions
diff --git a/src/database/kernels/xgemm.hpp b/src/database/kernels/xgemm.hpp
index 736f2695..61b7ff05 100644
--- a/src/database/kernels/xgemm.hpp
+++ b/src/database/kernels/xgemm.hpp
@@ -14,18 +14,6 @@
namespace clblast {
// =================================================================================================
-const Database::DatabaseEntry Database::XgemmHalf = {
- "Xgemm", Precision::kHalf, {
- { // Default
- kDeviceTypeAll, "default", {
- { "default", { {"KWG",16}, {"KWI",2}, {"MDIMA",8}, {"MDIMC",8}, {"MWG",32}, {"NDIMB",8}, {"NDIMC",8}, {"NWG",64}, {"SA",0}, {"SB",0}, {"STRM",0}, {"STRN",0}, {"VWM",1}, {"VWN",1} } },
- }
- },
- }
-};
-
-// =================================================================================================
-
const Database::DatabaseEntry Database::XgemmSingle = {
"Xgemm", Precision::kSingle, {
{ // AMD GPUs
diff --git a/src/database/kernels/xgemv.hpp b/src/database/kernels/xgemv.hpp
index 3aa1863f..6d680b06 100644
--- a/src/database/kernels/xgemv.hpp
+++ b/src/database/kernels/xgemv.hpp
@@ -18,13 +18,13 @@ const Database::DatabaseEntry Database::XgemvHalf = {
"Xgemv", Precision::kHalf, {
{ // Intel GPUs
kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics Skylake ULT GT2", { {"WGS1",128}, {"WPT1",1}, {"VW2",2}, {"WGS2",128}, {"WPT2",2}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "default", { {"WGS1",128}, {"WPT1",1}, {"VW2",2}, {"WGS2",128}, {"WPT2",2}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) HD Graphics Skylake ULT GT2", { {"WGS1",128}, {"WPT1",1} } },
+ { "default", { {"WGS1",128}, {"WPT1",1} } },
}
},
{ // Default
kDeviceTypeAll, "default", {
- { "default", { {"WGS1",128}, {"WPT1",1}, {"VW2",2}, {"WGS2",128}, {"WPT2",2}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"WGS1",128}, {"WPT1",1} } },
}
},
}
@@ -36,57 +36,57 @@ const Database::DatabaseEntry Database::XgemvSingle = {
"Xgemv", Precision::kSingle, {
{ // AMD GPUs
kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",1}, {"VW3",8}, {"WGS3",16}, {"WPT3",16} } },
- { "Hawaii", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Oland", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",4}, {"WGS3",256}, {"WPT3",4} } },
- { "Pitcairn", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Tahiti", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "default", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "AMD Radeon R9 M370X Compute Engine", { {"WGS1",128}, {"WPT1",1} } },
+ { "Hawaii", { {"WGS1",128}, {"WPT1",1} } },
+ { "Oland", { {"WGS1",128}, {"WPT1",1} } },
+ { "Pitcairn", { {"WGS1",256}, {"WPT1",1} } },
+ { "Tahiti", { {"WGS1",256}, {"WPT1",1} } },
+ { "default", { {"WGS1",128}, {"WPT1",1} } },
}
},
{ // Intel CPUs
kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"WGS1",64}, {"WPT1",1}, {"VW2",4}, {"WGS2",128}, {"WPT2",4}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"WGS1",64}, {"WPT1",4}, {"VW2",1}, {"WGS2",64}, {"WPT2",4}, {"VW3",2}, {"WGS3",64}, {"WPT3",4} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",4}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"WGS1",64}, {"WPT1",1} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"WGS1",64}, {"WPT1",4} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Intel GPUs
kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { {"WGS1",256}, {"WPT1",1}, {"VW2",4}, {"WGS2",128}, {"WPT2",4}, {"VW3",4}, {"WGS3",256}, {"WPT3",4} } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",4}, {"WGS3",64}, {"WPT3",4} } },
- { "Iris", { {"WGS1",64}, {"WPT1",2}, {"VW2",1}, {"WGS2",128}, {"WPT2",2}, {"VW3",4}, {"WGS3",64}, {"WPT3",8} } },
- { "Iris Pro", { {"WGS1",256}, {"WPT1",2}, {"VW2",1}, {"WGS2",128}, {"WPT2",2}, {"VW3",4}, {"WGS3",64}, {"WPT3",4} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) HD Graphics 530", { {"WGS1",256}, {"WPT1",1} } },
+ { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { {"WGS1",256}, {"WPT1",1} } },
+ { "Intel(R) HD Graphics Skylake ULT GT2", { {"WGS1",64}, {"WPT1",1} } },
+ { "Iris", { {"WGS1",64}, {"WPT1",2} } },
+ { "Iris Pro", { {"WGS1",256}, {"WPT1",2} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Intel accelerators
kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"WGS1",64}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // NVIDIA GPUs
kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { {"WGS1",256}, {"WPT1",1}, {"VW2",2}, {"WGS2",256}, {"WPT2",2}, {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
- { "GeForce GTX 1070", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
- { "GeForce GTX 480", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",1}, {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
- { "GeForce GTX 670", { {"WGS1",64}, {"WPT1",1}, {"VW2",2}, {"WGS2",256}, {"WPT2",2}, {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
- { "GeForce GTX 680", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",1}, {"VW3",2}, {"WGS3",128}, {"WPT3",2} } },
- { "GeForce GTX 750", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",2}, {"WGS3",128}, {"WPT3",2} } },
- { "GeForce GTX 750 Ti", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",4}, {"WGS3",128}, {"WPT3",4} } },
- { "GeForce GTX 980", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
- { "GeForce GTX TITAN", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
- { "GeForce GTX TITAN X", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
- { "Tesla K20m", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
- { "Tesla K40m", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GRID K520", { {"WGS1",256}, {"WPT1",1} } },
+ { "GeForce GTX 1070", { {"WGS1",128}, {"WPT1",1} } },
+ { "GeForce GTX 480", { {"WGS1",64}, {"WPT1",1} } },
+ { "GeForce GTX 670", { {"WGS1",64}, {"WPT1",1} } },
+ { "GeForce GTX 680", { {"WGS1",256}, {"WPT1",1} } },
+ { "GeForce GTX 750", { {"WGS1",256}, {"WPT1",1} } },
+ { "GeForce GTX 750 Ti", { {"WGS1",256}, {"WPT1",1} } },
+ { "GeForce GTX 980", { {"WGS1",128}, {"WPT1",1} } },
+ { "GeForce GTX TITAN", { {"WGS1",256}, {"WPT1",1} } },
+ { "GeForce GTX TITAN X", { {"WGS1",256}, {"WPT1",1} } },
+ { "Tesla K20m", { {"WGS1",128}, {"WPT1",1} } },
+ { "Tesla K40m", { {"WGS1",256}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Default
kDeviceTypeAll, "default", {
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
}
@@ -98,53 +98,53 @@ const Database::DatabaseEntry Database::XgemvComplexSingle = {
"Xgemv", Precision::kComplexSingle, {
{ // AMD GPUs
kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { {"WGS1",64}, {"WPT1",1}, {"VW2",2}, {"WGS2",256}, {"WPT2",2}, {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
- { "Hawaii", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Oland", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",4}, {"WGS3",64}, {"WPT3",4} } },
- { "Pitcairn", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
- { "Tahiti", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "AMD Radeon R9 M370X Compute Engine", { {"WGS1",64}, {"WPT1",1} } },
+ { "Hawaii", { {"WGS1",64}, {"WPT1",1} } },
+ { "Oland", { {"WGS1",64}, {"WPT1",1} } },
+ { "Pitcairn", { {"WGS1",64}, {"WPT1",1} } },
+ { "Tahiti", { {"WGS1",64}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Intel CPUs
kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",2}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"WGS1",64}, {"WPT1",4}, {"VW2",4}, {"WGS2",64}, {"WPT2",4}, {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",2}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"WGS1",128}, {"WPT1",1} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"WGS1",64}, {"WPT1",4} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Intel GPUs
kDeviceTypeGPU, "Intel", {
- { "Intel(R) HD Graphics 530", { {"WGS1",64}, {"WPT1",1}, {"VW2",2}, {"WGS2",128}, {"WPT2",2}, {"VW3",4}, {"WGS3",64}, {"WPT3",4} } },
- { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { {"WGS1",128}, {"WPT1",1}, {"VW2",2}, {"WGS2",128}, {"WPT2",2}, {"VW3",4}, {"WGS3",128}, {"WPT3",4} } },
- { "Intel(R) HD Graphics Skylake ULT GT2", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",4}, {"WGS3",64}, {"WPT3",4} } },
- { "Iris", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Iris Pro", { {"WGS1",64}, {"WPT1",1}, {"VW2",4}, {"WGS2",128}, {"WPT2",4}, {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) HD Graphics 530", { {"WGS1",64}, {"WPT1",1} } },
+ { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { {"WGS1",128}, {"WPT1",1} } },
+ { "Intel(R) HD Graphics Skylake ULT GT2", { {"WGS1",64}, {"WPT1",1} } },
+ { "Iris", { {"WGS1",256}, {"WPT1",1} } },
+ { "Iris Pro", { {"WGS1",64}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Intel accelerators
kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"WGS1",64}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // NVIDIA GPUs
kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "GeForce GTX 1070", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
- { "GeForce GTX 480", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "GeForce GTX 670", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "GeForce GTX 680", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GRID K520", { {"WGS1",256}, {"WPT1",1} } },
+ { "GeForce GTX 1070", { {"WGS1",64}, {"WPT1",1} } },
+ { "GeForce GTX 480", { {"WGS1",64}, {"WPT1",1} } },
+ { "GeForce GTX 670", { {"WGS1",64}, {"WPT1",1} } },
+ { "GeForce GTX 680", { {"WGS1",64}, {"WPT1",1} } },
{ "GeForce GTX 750", { {"WGS1",128}, {"WPT1",1} } },
- { "GeForce GTX 750 Ti", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "GeForce GTX 750 Ti", { {"WGS1",64}, {"WPT1",1} } },
{ "GeForce GTX TITAN", { {"WGS1",256}, {"WPT1",1} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Default
kDeviceTypeAll, "default", {
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
}
@@ -156,47 +156,47 @@ const Database::DatabaseEntry Database::XgemvDouble = {
"Xgemv", Precision::kDouble, {
{ // AMD GPUs
kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
- { "Hawaii", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Oland", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",4}, {"WGS3",256}, {"WPT3",4} } },
- { "Pitcairn", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
- { "Tahiti", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "AMD Radeon R9 M370X Compute Engine", { {"WGS1",64}, {"WPT1",1} } },
+ { "Hawaii", { {"WGS1",128}, {"WPT1",1} } },
+ { "Oland", { {"WGS1",256}, {"WPT1",1} } },
+ { "Pitcairn", { {"WGS1",256}, {"WPT1",1} } },
+ { "Tahiti", { {"WGS1",256}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Intel CPUs
kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"WGS1",64}, {"WPT1",2}, {"VW2",4}, {"WGS2",128}, {"WPT2",4}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"WGS1",64}, {"WPT1",4}, {"VW2",1}, {"WGS2",64}, {"WPT2",4}, {"VW3",1}, {"WGS3",64}, {"WPT3",2} } },
- { "default", { {"WGS1",64}, {"WPT1",2}, {"VW2",1}, {"WGS2",64}, {"WPT2",4}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"WGS1",64}, {"WPT1",2} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"WGS1",64}, {"WPT1",4} } },
+ { "default", { {"WGS1",64}, {"WPT1",2} } },
}
},
{ // Intel accelerators
kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"WGS1",64}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // NVIDIA GPUs
kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "GeForce GTX 1070", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
- { "GeForce GTX 480", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "GeForce GTX 670", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "GeForce GTX 680", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",1}, {"VW3",2}, {"WGS3",128}, {"WPT3",2} } },
- { "GeForce GTX 750", { {"WGS1",64}, {"WPT1",1}, {"VW2",2}, {"WGS2",256}, {"WPT2",2}, {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
- { "GeForce GTX 750 Ti", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",2}, {"WGS3",256}, {"WPT3",2} } },
- { "GeForce GTX 980", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "GeForce GTX TITAN", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
- { "GeForce GTX TITAN X", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",1}, {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
- { "Tesla K20m", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Tesla K40m", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GRID K520", { {"WGS1",128}, {"WPT1",1} } },
+ { "GeForce GTX 1070", { {"WGS1",64}, {"WPT1",1} } },
+ { "GeForce GTX 480", { {"WGS1",256}, {"WPT1",1} } },
+ { "GeForce GTX 670", { {"WGS1",128}, {"WPT1",1} } },
+ { "GeForce GTX 680", { {"WGS1",128}, {"WPT1",1} } },
+ { "GeForce GTX 750", { {"WGS1",64}, {"WPT1",1} } },
+ { "GeForce GTX 750 Ti", { {"WGS1",64}, {"WPT1",1} } },
+ { "GeForce GTX 980", { {"WGS1",64}, {"WPT1",1} } },
+ { "GeForce GTX TITAN", { {"WGS1",256}, {"WPT1",1} } },
+ { "GeForce GTX TITAN X", { {"WGS1",64}, {"WPT1",1} } },
+ { "Tesla K20m", { {"WGS1",256}, {"WPT1",1} } },
+ { "Tesla K40m", { {"WGS1",256}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Default
kDeviceTypeAll, "default", {
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
}
@@ -208,38 +208,38 @@ const Database::DatabaseEntry Database::XgemvComplexDouble = {
"Xgemv", Precision::kComplexDouble, {
{ // AMD GPUs
kDeviceTypeGPU, "AMD", {
- { "AMD Radeon R9 M370X Compute Engine", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
- { "Hawaii", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Oland", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",256}, {"WPT2",1}, {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
- { "Pitcairn", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "Tahiti", { {"WGS1",256}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "AMD Radeon R9 M370X Compute Engine", { {"WGS1",64}, {"WPT1",1} } },
+ { "Hawaii", { {"WGS1",64}, {"WPT1",1} } },
+ { "Oland", { {"WGS1",256}, {"WPT1",1} } },
+ { "Pitcairn", { {"WGS1",256}, {"WPT1",1} } },
+ { "Tahiti", { {"WGS1",256}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Intel CPUs
kDeviceTypeCPU, "Intel", {
- { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"WGS1",64}, {"WPT1",1}, {"VW2",2}, {"WGS2",64}, {"WPT2",4}, {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
- { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"WGS1",64}, {"WPT1",4}, {"VW2",4}, {"WGS2",64}, {"WPT2",4}, {"VW3",2}, {"WGS3",256}, {"WPT3",2} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",2}, {"WGS2",64}, {"WPT2",4}, {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"WGS1",64}, {"WPT1",1} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"WGS1",64}, {"WPT1",4} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Intel accelerators
kDeviceTypeAccelerator, "Intel", {
- { "Intel(R) Many Integrated Core Acceleration Card", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"WGS1",64}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // NVIDIA GPUs
kDeviceTypeGPU, "NVIDIA", {
- { "GRID K520", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",128}, {"WPT2",1}, {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
- { "GeForce GTX 480", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "GeForce GTX 670", { {"WGS1",128}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GRID K520", { {"WGS1",128}, {"WPT1",1} } },
+ { "GeForce GTX 480", { {"WGS1",64}, {"WPT1",1} } },
+ { "GeForce GTX 670", { {"WGS1",128}, {"WPT1",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
{ // Default
kDeviceTypeAll, "default", {
- { "default", { {"WGS1",64}, {"WPT1",1}, {"VW2",1}, {"WGS2",64}, {"WPT2",1}, {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"WGS1",64}, {"WPT1",1} } },
}
},
}
diff --git a/src/database/kernels/xgemv_fast.hpp b/src/database/kernels/xgemv_fast.hpp
new file mode 100644
index 00000000..65b15030
--- /dev/null
+++ b/src/database/kernels/xgemv_fast.hpp
@@ -0,0 +1,247 @@
+
+// =================================================================================================
+// 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):
+// Database generator <database.py>
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XgemvFastHalf = {
+ "XgemvFast", Precision::kHalf, {
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "Intel(R) HD Graphics Skylake ULT GT2", { {"VW2",2}, {"WGS2",128}, {"WPT2",2} } },
+ { "default", { {"VW2",2}, {"WGS2",128}, {"WPT2",2} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", { {"VW2",2}, {"WGS2",128}, {"WPT2",2} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XgemvFastSingle = {
+ "XgemvFast", Precision::kSingle, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "AMD Radeon R9 M370X Compute Engine", { {"VW2",1}, {"WGS2",128}, {"WPT2",1} } },
+ { "Hawaii", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Oland", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Pitcairn", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Tahiti", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"VW2",4}, {"WGS2",128}, {"WPT2",4} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"VW2",1}, {"WGS2",64}, {"WPT2",4} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",4} } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "Intel(R) HD Graphics 530", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { {"VW2",4}, {"WGS2",128}, {"WPT2",4} } },
+ { "Intel(R) HD Graphics Skylake ULT GT2", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "Iris", { {"VW2",1}, {"WGS2",128}, {"WPT2",2} } },
+ { "Iris Pro", { {"VW2",1}, {"WGS2",128}, {"WPT2",2} } },
+ { "default", { {"VW2",1}, {"WGS2",128}, {"WPT2",1} } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "GRID K520", { {"VW2",2}, {"WGS2",256}, {"WPT2",2} } },
+ { "GeForce GTX 1070", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "GeForce GTX 480", { {"VW2",1}, {"WGS2",128}, {"WPT2",1} } },
+ { "GeForce GTX 670", { {"VW2",2}, {"WGS2",256}, {"WPT2",2} } },
+ { "GeForce GTX 680", { {"VW2",1}, {"WGS2",128}, {"WPT2",1} } },
+ { "GeForce GTX 750", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "GeForce GTX 750 Ti", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "GeForce GTX 980", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "GeForce GTX TITAN", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "GeForce GTX TITAN X", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Tesla K20m", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "Tesla K40m", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XgemvFastComplexSingle = {
+ "XgemvFast", Precision::kComplexSingle, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "AMD Radeon R9 M370X Compute Engine", { {"VW2",2}, {"WGS2",256}, {"WPT2",2} } },
+ { "Hawaii", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Oland", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Pitcairn", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Tahiti", { {"VW2",1}, {"WGS2",128}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"VW2",1}, {"WGS2",128}, {"WPT2",2} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"VW2",4}, {"WGS2",64}, {"WPT2",4} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",2} } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "Intel(R) HD Graphics 530", { {"VW2",2}, {"WGS2",128}, {"WPT2",2} } },
+ { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { {"VW2",2}, {"WGS2",128}, {"WPT2",2} } },
+ { "Intel(R) HD Graphics Skylake ULT GT2", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Iris", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Iris Pro", { {"VW2",4}, {"WGS2",128}, {"WPT2",4} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "GRID K520", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "GeForce GTX 1070", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "GeForce GTX 480", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "GeForce GTX 670", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "GeForce GTX 680", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "GeForce GTX 750 Ti", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XgemvFastDouble = {
+ "XgemvFast", Precision::kDouble, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "AMD Radeon R9 M370X Compute Engine", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "Hawaii", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Oland", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Pitcairn", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Tahiti", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"VW2",4}, {"WGS2",128}, {"WPT2",4} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"VW2",1}, {"WGS2",64}, {"WPT2",4} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",4} } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "GRID K520", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "GeForce GTX 1070", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "GeForce GTX 480", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "GeForce GTX 670", { {"VW2",1}, {"WGS2",128}, {"WPT2",1} } },
+ { "GeForce GTX 680", { {"VW2",1}, {"WGS2",128}, {"WPT2",1} } },
+ { "GeForce GTX 750", { {"VW2",2}, {"WGS2",256}, {"WPT2",2} } },
+ { "GeForce GTX 750 Ti", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "GeForce GTX 980", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "GeForce GTX TITAN", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "GeForce GTX TITAN X", { {"VW2",1}, {"WGS2",128}, {"WPT2",1} } },
+ { "Tesla K20m", { {"VW2",1}, {"WGS2",128}, {"WPT2",1} } },
+ { "Tesla K40m", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XgemvFastComplexDouble = {
+ "XgemvFast", Precision::kComplexDouble, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "AMD Radeon R9 M370X Compute Engine", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "Hawaii", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Oland", { {"VW2",1}, {"WGS2",256}, {"WPT2",1} } },
+ { "Pitcairn", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "Tahiti", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"VW2",2}, {"WGS2",64}, {"WPT2",4} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"VW2",4}, {"WGS2",64}, {"WPT2",4} } },
+ { "default", { {"VW2",2}, {"WGS2",64}, {"WPT2",4} } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "GRID K520", { {"VW2",1}, {"WGS2",128}, {"WPT2",1} } },
+ { "GeForce GTX 480", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "GeForce GTX 670", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", { {"VW2",1}, {"WGS2",64}, {"WPT2",1} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+} // namespace clblast
diff --git a/src/database/kernels/xgemv_fast_rot.hpp b/src/database/kernels/xgemv_fast_rot.hpp
new file mode 100644
index 00000000..ee866e26
--- /dev/null
+++ b/src/database/kernels/xgemv_fast_rot.hpp
@@ -0,0 +1,245 @@
+
+// =================================================================================================
+// 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):
+// Database generator <database.py>
+//
+// This file populates the database with best-found tuning parameters for the 'Xgemv_Fast_Rot' kernels.
+//
+// =================================================================================================
+
+namespace clblast {
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XgemvFastRotHalf = {
+ "XgemvFastRot", Precision::kHalf, {
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "Intel(R) HD Graphics Skylake ULT GT2", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XgemvFastRotSingle = {
+ "XgemvFastRot", Precision::kSingle, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "AMD Radeon R9 M370X Compute Engine", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Hawaii", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Oland", { {"VW3",4}, {"WGS3",256}, {"WPT3",4} } },
+ { "Pitcairn", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Tahiti", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"VW3",2}, {"WGS3",64}, {"WPT3",4} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "Intel(R) HD Graphics 530", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { {"VW3",4}, {"WGS3",256}, {"WPT3",4} } },
+ { "Intel(R) HD Graphics Skylake ULT GT2", { {"VW3",4}, {"WGS3",64}, {"WPT3",4} } },
+ { "Iris", { {"VW3",4}, {"WGS3",64}, {"WPT3",8} } },
+ { "Iris Pro", { {"VW3",4}, {"WGS3",64}, {"WPT3",4} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "GRID K520", { {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
+ { "GeForce GTX 1070", { {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
+ { "GeForce GTX 480", { {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
+ { "GeForce GTX 670", { {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
+ { "GeForce GTX 680", { {"VW3",2}, {"WGS3",128}, {"WPT3",2} } },
+ { "GeForce GTX 750", { {"VW3",2}, {"WGS3",128}, {"WPT3",2} } },
+ { "GeForce GTX 750 Ti", { {"VW3",4}, {"WGS3",128}, {"WPT3",4} } },
+ { "GeForce GTX 980", { {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
+ { "GeForce GTX TITAN", { {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
+ { "GeForce GTX TITAN X", { {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
+ { "Tesla K20m", { {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
+ { "Tesla K40m", { {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XgemvFastRotComplexSingle = {
+ "XgemvFastRot", Precision::kComplexSingle, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "AMD Radeon R9 M370X Compute Engine", { {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
+ { "Hawaii", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Oland", { {"VW3",4}, {"WGS3",64}, {"WPT3",4} } },
+ { "Pitcairn", { {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
+ { "Tahiti", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Intel GPUs
+ kDeviceTypeGPU, "Intel", {
+ { "Intel(R) HD Graphics 530", { {"VW3",4}, {"WGS3",64}, {"WPT3",4} } },
+ { "Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile", { {"VW3",4}, {"WGS3",128}, {"WPT3",4} } },
+ { "Intel(R) HD Graphics Skylake ULT GT2", { {"VW3",4}, {"WGS3",64}, {"WPT3",4} } },
+ { "Iris", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Iris Pro", { {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "GRID K520", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GeForce GTX 480", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GeForce GTX 670", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GeForce GTX 680", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XgemvFastRotDouble = {
+ "XgemvFastRot", Precision::kDouble, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "AMD Radeon R9 M370X Compute Engine", { {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
+ { "Hawaii", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Oland", { {"VW3",4}, {"WGS3",256}, {"WPT3",4} } },
+ { "Pitcairn", { {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
+ { "Tahiti", { {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"VW3",1}, {"WGS3",64}, {"WPT3",2} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "GRID K520", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GeForce GTX 1070", { {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
+ { "GeForce GTX 480", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GeForce GTX 670", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GeForce GTX 680", { {"VW3",2}, {"WGS3",128}, {"WPT3",2} } },
+ { "GeForce GTX 750", { {"VW3",2}, {"WGS3",64}, {"WPT3",2} } },
+ { "GeForce GTX 750 Ti", { {"VW3",2}, {"WGS3",256}, {"WPT3",2} } },
+ { "GeForce GTX 980", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GeForce GTX TITAN", { {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
+ { "GeForce GTX TITAN X", { {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
+ { "Tesla K20m", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Tesla K40m", { {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+
+const Database::DatabaseEntry Database::XgemvFastRotComplexDouble = {
+ "XgemvFastRot", Precision::kComplexDouble, {
+ { // AMD GPUs
+ kDeviceTypeGPU, "AMD", {
+ { "AMD Radeon R9 M370X Compute Engine", { {"VW3",1}, {"WGS3",128}, {"WPT3",1} } },
+ { "Hawaii", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Oland", { {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
+ { "Pitcairn", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "Tahiti", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Intel CPUs
+ kDeviceTypeCPU, "Intel", {
+ { "Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz", { {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
+ { "Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz", { {"VW3",2}, {"WGS3",256}, {"WPT3",2} } },
+ { "default", { {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
+ }
+ },
+ { // Intel accelerators
+ kDeviceTypeAccelerator, "Intel", {
+ { "Intel(R) Many Integrated Core Acceleration Card", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // NVIDIA GPUs
+ kDeviceTypeGPU, "NVIDIA", {
+ { "GRID K520", { {"VW3",1}, {"WGS3",256}, {"WPT3",1} } },
+ { "GeForce GTX 480", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "GeForce GTX 670", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ { // Default
+ kDeviceTypeAll, "default", {
+ { "default", { {"VW3",1}, {"WGS3",64}, {"WPT3",1} } },
+ }
+ },
+ }
+};
+
+// =================================================================================================
+} // namespace clblast