1 
2 // =================================================================================================
3 // This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. It
4 // is auto-generated by the 'scripts/database/database.py' Python script.
5 //
6 // This file populates the database with best-found tuning parameters for the 'Xgemm3232' kernels.
7 //
8 // =================================================================================================
9 
10 namespace clblast {
11 namespace database {
12 
13 const DatabaseEntry XgemmComplexSingle = {
14   "Xgemm", Precision::kComplexSingle, {"KWG", "KWI", "MDIMA", "MDIMC", "MWG", "NDIMB", "NDIMC", "NWG", "SA", "SB", "STRM", "STRN", "VWM", "VWN"}, {
15     { // AMD GPUs
16       kDeviceTypeGPU, "AMD", {
17         { "Ellesmere", {
18           { Name{"AMD Radeon RX 480                                 "}, Params{ 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 1, 4 } },
19           { kDeviceNameDefault                                        , Params{ 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 1, 4 } },
20         } },
21         { "Fiji", {
22           { Name{"AMD Radeon R9 Fury X                              "}, Params{ 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 1, 2 } },
23           { Name{"AMD Radeon R9 M370X Compute Engine                "}, Params{ 32, 2, 32, 32, 64, 8, 8, 64, 0, 0, 1, 1, 2, 8 } },
24           { kDeviceNameDefault                                        , Params{ 32, 2, 8, 8, 16, 32, 32, 32, 1, 1, 0, 0, 1, 1 } },
25         } },
26         { "Hawaii", {
27           { Name{"AMD Radeon R9 290X                                "}, Params{ 32, 2, 32, 8, 32, 8, 16, 32, 1, 0, 1, 0, 1, 1 } },
28           { kDeviceNameDefault                                        , Params{ 32, 2, 32, 8, 32, 8, 16, 32, 1, 0, 1, 0, 1, 1 } },
29         } },
30         { "Oland", {
31           { Name{"Oland                                             "}, Params{ 32, 2, 16, 8, 32, 32, 32, 128, 1, 0, 0, 1, 2, 4 } },
32           { kDeviceNameDefault                                        , Params{ 32, 2, 16, 8, 32, 32, 32, 128, 1, 0, 0, 1, 2, 4 } },
33         } },
34         { "Pitcairn", {
35           { Name{"AMD Radeon R9 270X                                "}, Params{ 16, 2, 8, 8, 32, 8, 8, 32, 0, 1, 1, 1, 4, 2 } },
36           { kDeviceNameDefault                                        , Params{ 16, 2, 8, 8, 32, 8, 8, 32, 0, 1, 1, 1, 4, 2 } },
37         } },
38         { "Tahiti", {
39           { Name{"AMD Radeon HD 7970                                "}, Params{ 16, 2, 8, 8, 32, 8, 16, 32, 1, 0, 0, 1, 2, 1 } },
40           { kDeviceNameDefault                                        , Params{ 16, 2, 8, 8, 32, 8, 16, 32, 1, 0, 0, 1, 2, 1 } },
41         } },
42         { "Tonga", {
43           { Name{"AMD Radeon R9 380                                 "}, Params{ 16, 2, 32, 8, 64, 16, 32, 64, 1, 1, 1, 0, 2, 1 } },
44           { kDeviceNameDefault                                        , Params{ 16, 2, 32, 8, 64, 16, 32, 64, 1, 1, 1, 0, 2, 1 } },
45         } },
46         { "Turks", {
47           { Name{"AMD Radeon HD 6770M                               "}, Params{ 16, 2, 8, 8, 32, 32, 8, 32, 0, 1, 0, 0, 2, 1 } },
48           { kDeviceNameDefault                                        , Params{ 16, 2, 8, 8, 32, 32, 8, 32, 0, 1, 0, 0, 2, 1 } },
49         } },
50         { "Vancouver", {
51           { Name{"ATI Radeon HD 6750M                               "}, Params{ 32, 2, 8, 8, 32, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
52           { kDeviceNameDefault                                        , Params{ 32, 2, 8, 8, 32, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
53         } },
54         { "default", {
55           { kDeviceNameDefault                                        , Params{ 32, 2, 16, 16, 32, 16, 16, 32, 1, 1, 0, 0, 1, 2 } },
56         } },
57       }
58     },
59     { // ARM GPUs
60       kDeviceTypeGPU, "ARM", {
61         { "default", {
62           { Name{"Mali-T628                                         "}, Params{ 16, 2, 8, 16, 128, 16, 8, 128, 0, 0, 0, 1, 8, 1 } },
63           { kDeviceNameDefault                                        , Params{ 16, 2, 8, 16, 128, 16, 8, 128, 0, 0, 0, 1, 8, 1 } },
64         } },
65       }
66     },
67     { // Intel CPUs
68       kDeviceTypeCPU, "Intel", {
69         { "default", {
70           { Name{"Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz         "}, Params{ 16, 2, 32, 8, 128, 16, 16, 128, 1, 1, 0, 1, 1, 2 } },
71           { Name{"Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz          "}, Params{ 32, 2, 32, 16, 32, 16, 16, 64, 0, 1, 1, 0, 1, 2 } },
72           { Name{"Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz   "}, Params{ 32, 2, 16, 16, 64, 8, 16, 64, 0, 1, 0, 0, 4, 4 } },
73           { Name{"Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz           "}, Params{ 32, 2, 8, 8, 128, 16, 32, 128, 0, 0, 0, 0, 1, 4 } },
74           { Name{"Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz          "}, Params{ 32, 2, 8, 8, 128, 32, 8, 128, 0, 0, 0, 0, 1, 4 } },
75           { Name{"Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz          "}, Params{ 32, 2, 8, 16, 16, 16, 16, 128, 0, 0, 1, 1, 1, 4 } },
76           { Name{"Intel(R) Core(TM) i7-6770HQ CPU @ 2.60GHz         "}, Params{ 32, 2, 16, 16, 16, 8, 16, 128, 0, 1, 0, 0, 1, 8 } },
77           { kDeviceNameDefault                                        , Params{ 32, 2, 16, 16, 64, 8, 8, 32, 0, 0, 0, 0, 4, 2 } },
78         } },
79       }
80     },
81     { // Intel GPUs
82       kDeviceTypeGPU, "Intel", {
83         { "default", {
84           { Name{"Intel(R) HD Graphics 530                          "}, Params{ 16, 8, 8, 16, 64, 32, 8, 32, 0, 0, 0, 0, 2, 1 } },
85           { Name{"Intel(R) HD Graphics 5500 BroadWell U-Processor GT"}, Params{ 16, 8, 8, 8, 32, 16, 16, 64, 1, 0, 0, 0, 4, 4 } },
86           { Name{"Intel(R) HD Graphics Haswell Ultrabook GT2 Mobile "}, Params{ 32, 8, 16, 16, 64, 16, 16, 64, 1, 1, 1, 1, 2, 1 } },
87           { Name{"Intel(R) HD Graphics IvyBridge M GT2              "}, Params{ 32, 2, 16, 16, 64, 16, 16, 64, 1, 1, 0, 0, 4, 4 } },
88           { Name{"Intel(R) HD Graphics Skylake ULT GT2              "}, Params{ 32, 2, 16, 16, 64, 16, 16, 64, 0, 0, 0, 0, 4, 2 } },
89           { Name{"Iris                                              "}, Params{ 32, 8, 32, 16, 64, 8, 16, 64, 1, 0, 1, 0, 1, 1 } },
90           { Name{"Iris Pro                                          "}, Params{ 16, 2, 8, 8, 32, 32, 8, 32, 1, 1, 1, 1, 1, 1 } },
91           { kDeviceNameDefault                                        , Params{ 32, 2, 8, 8, 32, 8, 8, 32, 1, 1, 0, 0, 4, 2 } },
92         } },
93       }
94     },
95     { // Intel accelerators
96       kDeviceTypeAccelerator, "Intel", {
97         { "default", {
98           { Name{"Intel(R) Many Integrated Core Acceleration Card   "}, Params{ 32, 2, 32, 32, 32, 32, 16, 128, 1, 0, 0, 0, 1, 4 } },
99           { kDeviceNameDefault                                        , Params{ 32, 2, 32, 32, 32, 32, 16, 128, 1, 0, 0, 0, 1, 4 } },
100         } },
101       }
102     },
103     { // NVIDIA GPUs
104       kDeviceTypeGPU, "NVIDIA", {
105         { "SM2.0", {
106           { Name{"GeForce GTX 480                                   "}, Params{ 16, 2, 16, 16, 32, 32, 16, 128, 0, 1, 1, 1, 2, 2 } },
107           { kDeviceNameDefault                                        , Params{ 16, 2, 16, 16, 32, 32, 16, 128, 0, 1, 1, 1, 2, 2 } },
108         } },
109         { "SM3.0", {
110           { Name{"GRID K520                                         "}, Params{ 16, 8, 32, 32, 64, 32, 16, 128, 1, 0, 1, 0, 1, 4 } },
111           { Name{"GeForce GTX 670                                   "}, Params{ 16, 2, 32, 32, 64, 32, 8, 32, 1, 1, 1, 1, 1, 1 } },
112           { Name{"GeForce GTX 680                                   "}, Params{ 16, 2, 32, 16, 64, 32, 32, 128, 1, 0, 0, 0, 2, 2 } },
113           { kDeviceNameDefault                                        , Params{ 16, 2, 32, 16, 64, 32, 16, 128, 1, 0, 0, 0, 1, 1 } },
114         } },
115         { "SM3.5", {
116           { Name{"GeForce GTX TITAN                                 "}, Params{ 16, 8, 16, 16, 64, 32, 16, 64, 1, 1, 1, 0, 1, 1 } },
117           { Name{"GeForce GTX TITAN Black                           "}, Params{ 16, 2, 8, 16, 64, 8, 8, 32, 0, 1, 1, 0, 1, 2 } },
118           { Name{"Tesla K20m                                        "}, Params{ 32, 2, 8, 16, 64, 8, 16, 64, 1, 0, 0, 0, 1, 4 } },
119           { Name{"Tesla K40m                                        "}, Params{ 16, 2, 32, 32, 32, 32, 8, 64, 0, 1, 0, 0, 1, 1 } },
120           { kDeviceNameDefault                                        , Params{ 32, 2, 16, 16, 128, 8, 8, 64, 0, 1, 0, 1, 8, 2 } },
121         } },
122         { "SM5.0", {
123           { Name{"GeForce GTX 750                                   "}, Params{ 16, 8, 16, 16, 64, 16, 16, 64, 1, 1, 1, 0, 2, 2 } },
124           { Name{"GeForce GTX 750 Ti                                "}, Params{ 16, 2, 16, 8, 32, 32, 16, 64, 1, 1, 1, 0, 1, 2 } },
125           { kDeviceNameDefault                                        , Params{ 16, 2, 16, 16, 32, 16, 16, 64, 1, 1, 1, 0, 1, 2 } },
126         } },
127         { "SM5.2", {
128           { Name{"GeForce GTX 980                                   "}, Params{ 32, 8, 32, 32, 64, 16, 16, 64, 1, 1, 1, 0, 2, 1 } },
129           { Name{"GeForce GTX TITAN X                               "}, Params{ 16, 2, 8, 8, 64, 8, 8, 32, 1, 0, 1, 1, 1, 4 } },
130           { kDeviceNameDefault                                        , Params{ 16, 2, 32, 32, 64, 16, 16, 32, 1, 0, 1, 0, 1, 1 } },
131         } },
132         { "SM6.1", {
133           { Name{"GeForce GTX 1070                                  "}, Params{ 16, 2, 16, 16, 128, 16, 16, 64, 1, 1, 1, 1, 2, 4 } },
134           { Name{"GeForce GTX 1080                                  "}, Params{ 16, 2, 32, 16, 64, 32, 8, 64, 1, 1, 0, 0, 1, 2 } },
135           { Name{"TITAN X (Pascal)                                  "}, Params{ 32, 2, 32, 32, 64, 8, 8, 32, 1, 1, 0, 0, 2, 4 } },
136           { kDeviceNameDefault                                        , Params{ 32, 2, 16, 16, 32, 16, 16, 64, 1, 1, 0, 0, 2, 4 } },
137         } },
138         { "default", {
139           { kDeviceNameDefault                                        , Params{ 32, 2, 8, 8, 16, 32, 32, 64, 1, 1, 0, 0, 1, 1 } },
140         } },
141       }
142     },
143     { // Default
144       kDeviceTypeAll, "default", {
145         { "default", {
146           { kDeviceNameDefault                                        , Params{ 32, 2, 16, 16, 32, 8, 8, 32, 1, 1, 0, 0, 2, 1 } },
147         } },
148       }
149     },
150   }
151 };
152 
153 } // namespace database
154 } // namespace clblast
155