@@ -208,6 +208,126 @@ namespace cudasw4{
208208 return configs;
209209 }
210210
211+ __inline__
212+ std::vector<GaplessKernelConfig> getOptimalKernelConfigs_gapless_sm103 (){
213+ std::vector<GaplessKernelConfig> configs{
214+ {32 , 4 , 4 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
215+ {64 , 4 , 8 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
216+ {96 , 4 , 12 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
217+ {128 , 4 , 16 , 0 , GaplessKernelConfig::Approach::hardcodedzero },
218+ {160 , 4 , 20 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
219+ {192 , 4 , 24 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
220+ {224 , 4 , 28 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
221+ {256 , 4 , 32 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
222+ {288 , 4 , 36 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
223+ {320 , 4 , 40 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
224+ {352 , 4 , 44 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
225+ {384 , 4 , 48 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
226+ {416 , 4 , 52 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
227+ {448 , 4 , 56 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
228+ {480 , 4 , 60 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
229+ {512 , 4 , 64 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
230+ {576 , 8 , 36 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
231+ {640 , 8 , 40 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
232+ {704 , 8 , 44 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
233+ {768 , 8 , 48 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
234+ {832 , 8 , 52 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
235+ {896 , 8 , 56 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
236+ {960 , 8 , 60 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
237+ {1024 , 8 , 64 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
238+ {1152 , 16 , 36 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
239+ {1280 , 16 , 40 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
240+ {1408 , 16 , 44 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
241+ {1536 , 16 , 48 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
242+ {1664 , 16 , 52 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
243+ {1792 , 16 , 56 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
244+ {1920 , 16 , 60 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
245+ {2048 , 16 , 64 , 1 , GaplessKernelConfig::Approach::kernelparamzero }
246+ };
247+
248+ return configs;
249+ }
250+
251+ __inline__
252+ std::vector<GaplessKernelConfig> getOptimalKernelConfigs_gapless_sm120 (){
253+ std::vector<GaplessKernelConfig> configs{
254+ { 32 , 4 , 4 , 0 , GaplessKernelConfig::Approach::kernelparamzero },
255+ { 64 , 4 , 8 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
256+ { 96 , 4 , 12 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
257+ { 128 , 4 , 16 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
258+ { 160 , 4 , 20 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
259+ { 192 , 4 , 24 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
260+ { 224 , 4 , 28 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
261+ { 256 , 4 , 32 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
262+ { 288 , 4 , 36 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
263+ { 320 , 4 , 40 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
264+ { 352 , 4 , 44 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
265+ { 384 , 4 , 48 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
266+ { 416 , 4 , 52 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
267+ { 448 , 4 , 56 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
268+ { 480 , 4 , 60 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
269+ { 512 , 4 , 64 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
270+ { 576 , 8 , 36 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
271+ { 640 , 8 , 40 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
272+ { 704 , 8 , 44 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
273+ { 768 , 8 , 48 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
274+ { 832 , 8 , 52 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
275+ { 896 , 8 , 56 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
276+ { 960 , 8 , 60 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
277+ { 1024 , 8 , 64 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
278+ { 1152 , 16 , 36 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
279+ { 1280 , 16 , 40 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
280+ { 1408 , 16 , 44 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
281+ { 1536 , 16 , 48 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
282+ { 1664 , 16 , 52 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
283+ { 1792 , 16 , 56 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
284+ { 1920 , 16 , 60 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
285+ { 2048 , 16 , 64 , 1 , GaplessKernelConfig::Approach::hardcodedzero }
286+ };
287+
288+ return configs;
289+ }
290+
291+ __inline__
292+ std::vector<GaplessKernelConfig> getOptimalKernelConfigs_gapless_sm121 (){
293+ std::vector<GaplessKernelConfig> configs{
294+ {32 , 4 , 4 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
295+ {64 , 4 , 8 , 0 , GaplessKernelConfig::Approach::hardcodedzero },
296+ {96 , 4 , 12 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
297+ {128 , 4 , 16 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
298+ {160 , 4 , 20 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
299+ {192 , 4 , 24 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
300+ {224 , 4 , 28 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
301+ {256 , 4 , 32 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
302+ {288 , 4 , 36 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
303+ {320 , 4 , 40 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
304+ {352 , 4 , 44 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
305+ {384 , 4 , 48 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
306+ {416 , 4 , 52 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
307+ {448 , 4 , 56 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
308+ {480 , 4 , 60 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
309+ {512 , 4 , 64 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
310+ {576 , 8 , 36 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
311+ {640 , 8 , 40 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
312+ {704 , 8 , 44 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
313+ {768 , 8 , 48 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
314+ {832 , 8 , 52 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
315+ {896 , 8 , 56 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
316+ {960 , 8 , 60 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
317+ {1024 , 8 , 64 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
318+ {1152 , 16 , 36 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
319+ {1280 , 16 , 40 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
320+ {1408 , 16 , 44 , 1 , GaplessKernelConfig::Approach::kernelparamzero },
321+ {1536 , 16 , 48 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
322+ {1664 , 16 , 52 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
323+ {1792 , 16 , 56 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
324+ {1920 , 16 , 60 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
325+ {2048 , 16 , 64 , 1 , GaplessKernelConfig::Approach::hardcodedzero },
326+ };
327+
328+ return configs;
329+ }
330+
211331 __inline__
212332 std::vector<GaplessKernelConfig> getOptimalKernelConfigs_gapless_default (){
213333 return getOptimalKernelConfigs_gapless_sm89 ();
@@ -230,6 +350,12 @@ namespace cudasw4{
230350 configs = getOptimalKernelConfigs_gapless_sm89 ();
231351 }else if (ccMajor == 9 && ccMinor == 0 ){
232352 configs = getOptimalKernelConfigs_gapless_sm90 ();
353+ }else if (ccMajor == 10 && ccMinor == 3 ){
354+ configs = getOptimalKernelConfigs_gapless_sm103 ();
355+ }else if (ccMajor == 12 && ccMinor == 0 ){
356+ configs = getOptimalKernelConfigs_gapless_sm120 ();
357+ }else if (ccMajor == 12 && ccMinor == 1 ){
358+ configs = getOptimalKernelConfigs_gapless_sm121 ();
233359 }else {
234360 configs = getOptimalKernelConfigs_gapless_default ();
235361 }
@@ -240,4 +366,4 @@ namespace cudasw4{
240366
241367}
242368
243- #endif
369+ #endif
0 commit comments