mirror of
https://github.com/CNugteren/CLBlast.git
synced 2024-07-04 21:36:57 +02:00
Added first tuning results for the single-kernel direct GEMM implementation
This commit is contained in:
parent
a3e67f2be2
commit
b698e45478
|
@ -1,8 +1,9 @@
|
||||||
|
|
||||||
Development version (next release)
|
Development version (next release)
|
||||||
- It is now possible to set OpenCL compiler options through the env variable CLBLAST_BUILD_OPTIONS
|
|
||||||
- Fixed a bug in the tests and samples related to waiting for an invalid event
|
|
||||||
- Updated to version 8.0 of the CLCudaAPI C++11 OpenCL header
|
- Updated to version 8.0 of the CLCudaAPI C++11 OpenCL header
|
||||||
|
- Improved performance of GEMM kernels for small sizes by using a direct single-kernel implementation
|
||||||
|
- Fixed a bug in the tests and samples related to waiting for an invalid event
|
||||||
|
- Added an option to set OpenCL compiler options through the env variable CLBLAST_BUILD_OPTIONS
|
||||||
- Added an option to run tuned kernels multiple times to average execution times
|
- Added an option to run tuned kernels multiple times to average execution times
|
||||||
- Various minor fixes and enhancements
|
- Various minor fixes and enhancements
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
// Author(s):
|
// Author(s):
|
||||||
// Database generator <database.py>
|
// Database generator <database.py>
|
||||||
//
|
//
|
||||||
// This file populates the database with best-found tuning parameters for the 'Xgemm' kernels.
|
// This file populates the database with best-found tuning parameters for the 'Xgemm_Direct' kernels.
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ const Database::DatabaseEntry Database::XgemmDirectHalf = {
|
||||||
"XgemmDirect", Precision::kHalf, {
|
"XgemmDirect", Precision::kHalf, {
|
||||||
{ // Default
|
{ // Default
|
||||||
kDeviceTypeAll, "default", {
|
kDeviceTypeAll, "default", {
|
||||||
{ "default", { {"WGD",32}, {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"VWMD",1}, {"VWND",1}, {"PADA",0}, {"PADB",0} } },
|
{ "default", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",4}, {"VWND",4}, {"WGD",32} } },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -28,9 +28,27 @@ const Database::DatabaseEntry Database::XgemmDirectHalf = {
|
||||||
|
|
||||||
const Database::DatabaseEntry Database::XgemmDirectSingle = {
|
const Database::DatabaseEntry Database::XgemmDirectSingle = {
|
||||||
"XgemmDirect", Precision::kSingle, {
|
"XgemmDirect", Precision::kSingle, {
|
||||||
|
{ // AMD GPUs
|
||||||
|
kDeviceTypeGPU, "AMD", {
|
||||||
|
{ "AMD Radeon R9 M370X Compute Engine", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",2}, {"VWND",2}, {"WGD",32} } },
|
||||||
|
{ "default", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",2}, {"VWND",2}, {"WGD",32} } },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ // Intel GPUs
|
||||||
|
kDeviceTypeGPU, "Intel", {
|
||||||
|
{ "Iris Pro", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",2}, {"VWND",4}, {"WGD",32} } },
|
||||||
|
{ "default", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",2}, {"VWND",4}, {"WGD",32} } },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ // NVIDIA GPUs
|
||||||
|
kDeviceTypeGPU, "NVIDIA", {
|
||||||
|
{ "GeForce GTX 750 Ti", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",4}, {"VWND",4}, {"WGD",32} } },
|
||||||
|
{ "default", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",4}, {"VWND",4}, {"WGD",32} } },
|
||||||
|
}
|
||||||
|
},
|
||||||
{ // Default
|
{ // Default
|
||||||
kDeviceTypeAll, "default", {
|
kDeviceTypeAll, "default", {
|
||||||
{ "default", { {"WGD",32}, {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"VWMD",1}, {"VWND",1}, {"PADA",0}, {"PADB",0} } },
|
{ "default", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",4}, {"VWND",4}, {"WGD",32} } },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -40,9 +58,27 @@ const Database::DatabaseEntry Database::XgemmDirectSingle = {
|
||||||
|
|
||||||
const Database::DatabaseEntry Database::XgemmDirectComplexSingle = {
|
const Database::DatabaseEntry Database::XgemmDirectComplexSingle = {
|
||||||
"XgemmDirect", Precision::kComplexSingle, {
|
"XgemmDirect", Precision::kComplexSingle, {
|
||||||
|
{ // AMD GPUs
|
||||||
|
kDeviceTypeGPU, "AMD", {
|
||||||
|
{ "AMD Radeon R9 M370X Compute Engine", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",16}, {"NDIMCD",16}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",1}, {"WGD",16} } },
|
||||||
|
{ "default", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",16}, {"NDIMCD",16}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",1}, {"WGD",16} } },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ // Intel GPUs
|
||||||
|
kDeviceTypeGPU, "Intel", {
|
||||||
|
{ "Iris Pro", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",2}, {"VWND",2}, {"WGD",32} } },
|
||||||
|
{ "default", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",2}, {"VWND",2}, {"WGD",32} } },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ // NVIDIA GPUs
|
||||||
|
kDeviceTypeGPU, "NVIDIA", {
|
||||||
|
{ "GeForce GTX 750 Ti", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",2}, {"WGD",16} } },
|
||||||
|
{ "default", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",2}, {"WGD",16} } },
|
||||||
|
}
|
||||||
|
},
|
||||||
{ // Default
|
{ // Default
|
||||||
kDeviceTypeAll, "default", {
|
kDeviceTypeAll, "default", {
|
||||||
{ "default", { {"WGD",32}, {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"VWMD",1}, {"VWND",1}, {"PADA",0}, {"PADB",0} } },
|
{ "default", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",2}, {"VWND",2}, {"WGD",32} } },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -52,9 +88,21 @@ const Database::DatabaseEntry Database::XgemmDirectComplexSingle = {
|
||||||
|
|
||||||
const Database::DatabaseEntry Database::XgemmDirectDouble = {
|
const Database::DatabaseEntry Database::XgemmDirectDouble = {
|
||||||
"XgemmDirect", Precision::kDouble, {
|
"XgemmDirect", Precision::kDouble, {
|
||||||
|
{ // AMD GPUs
|
||||||
|
kDeviceTypeGPU, "AMD", {
|
||||||
|
{ "AMD Radeon R9 M370X Compute Engine", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",1}, {"WGD",16} } },
|
||||||
|
{ "default", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",1}, {"WGD",16} } },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ // NVIDIA GPUs
|
||||||
|
kDeviceTypeGPU, "NVIDIA", {
|
||||||
|
{ "GeForce GTX 750 Ti", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",2}, {"VWND",2}, {"WGD",32} } },
|
||||||
|
{ "default", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",2}, {"VWND",2}, {"WGD",32} } },
|
||||||
|
}
|
||||||
|
},
|
||||||
{ // Default
|
{ // Default
|
||||||
kDeviceTypeAll, "default", {
|
kDeviceTypeAll, "default", {
|
||||||
{ "default", { {"WGD",32}, {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"VWMD",1}, {"VWND",1}, {"PADA",0}, {"PADB",0} } },
|
{ "default", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",1}, {"WGD",16} } },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -64,9 +112,21 @@ const Database::DatabaseEntry Database::XgemmDirectDouble = {
|
||||||
|
|
||||||
const Database::DatabaseEntry Database::XgemmDirectComplexDouble = {
|
const Database::DatabaseEntry Database::XgemmDirectComplexDouble = {
|
||||||
"XgemmDirect", Precision::kComplexDouble, {
|
"XgemmDirect", Precision::kComplexDouble, {
|
||||||
|
{ // AMD GPUs
|
||||||
|
kDeviceTypeGPU, "AMD", {
|
||||||
|
{ "AMD Radeon R9 M370X Compute Engine", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",16}, {"NDIMCD",16}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",1}, {"WGD",16} } },
|
||||||
|
{ "default", { {"KWID",2}, {"MDIMAD",16}, {"MDIMCD",16}, {"NDIMBD",16}, {"NDIMCD",16}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",1}, {"WGD",16} } },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ // NVIDIA GPUs
|
||||||
|
kDeviceTypeGPU, "NVIDIA", {
|
||||||
|
{ "GeForce GTX 750 Ti", { {"KWID",2}, {"MDIMAD",32}, {"MDIMCD",32}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",1}, {"WGD",32} } },
|
||||||
|
{ "default", { {"KWID",2}, {"MDIMAD",32}, {"MDIMCD",32}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",1}, {"WGD",32} } },
|
||||||
|
}
|
||||||
|
},
|
||||||
{ // Default
|
{ // Default
|
||||||
kDeviceTypeAll, "default", {
|
kDeviceTypeAll, "default", {
|
||||||
{ "default", { {"WGD",32}, {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"VWMD",1}, {"VWND",1}, {"PADA",0}, {"PADB",0} } },
|
{ "default", { {"KWID",2}, {"MDIMAD",8}, {"MDIMCD",8}, {"NDIMBD",8}, {"NDIMCD",8}, {"PADA",1}, {"PADB",1}, {"VWMD",1}, {"VWND",2}, {"WGD",16} } },
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue