Skip to content

Commit d4163f4

Browse files
author
Timmy
committed
Merge pull request #93 from BenjaminCoquelle/develop
Ben : fixing bonaire path for sgemm using CL2.0 path
2 parents 8b41d5e + aa972ec commit d4163f4

File tree

4 files changed

+30
-12
lines changed

4 files changed

+30
-12
lines changed

src/flags_public.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
TAHITI_OCL " ";
22
HAWAII1_OCL " ";
33
HAWAII2_OCL "-cl-std=CL2.0";
4-
BONAIRE_OCL " ";
4+
BONAIRE_OCL "-cl-std=CL2.0";

src/library/blas/functor/bonaire.cc

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,10 @@
1515
* ************************************************************************/
1616

1717
#include <bonaire.h>
18-
//#include "gpu_dtrsm.h"
19-
//#include "gcn_dgemmCommon.h"
18+
2019
#include "math.h"
21-
//#include "hawaii_dgemmChannelConflict.h"
22-
//#include "hawaii_dgemmSplitKernel.h"
20+
2321
#include "hawaii_sgemmSplitKernel.h"
24-
//#include "gcn_dgemmSmallMatrices.h"
2522
#include "gcn_sgemmSmallMatrices.h"
2623

2724
FunctorSelectorBonaire FunctorSelectorBonaire::instance ;
@@ -67,11 +64,11 @@ clblasSgemmFunctor * FunctorSelectorBonaire::select_sgemm_specific(clblasSgemmFu
6764
}
6865
if ( useSpliKernel)
6966
{
70-
#ifndef CLBLAS_HAWAII_DYNAMIC_KERNEL
67+
7168
functor = clBlashawaiiSgemmSplitKernelFunctor::provide(args, "Bonaire");
7269
if (functor)
7370
return functor;
74-
#endif
71+
7572
}
7673
else
7774
{

src/library/blas/functor/hawaii.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ clblasSgemmFunctor * FunctorSelectorHawaii::select_sgemm_specific(clblasSgemmFun
101101
//TODO: the logic below is complicated; Needs cleanup;
102102
clblasSgemmFunctor * functor;
103103
bool Not_TT = ((args.transA==clblasNoTrans && args.transB==clblasTrans ) || ( args.transA==clblasNoTrans && args.transB==clblasNoTrans ) || ( args.transA==clblasTrans && args.transB==clblasNoTrans ));
104-
bool SmallMatrices = args.M/6*args.N/6<180*180 || ((args.M%64!=0 && args.N%64!=0 && args.M<1900 &&args.N<1900 ) && (args.M%96!=0 && args.N%96!=0 && args.M<1900 &&args.N<1900 ));
104+
bool SmallMatrices = args.M/6*args.N/6<100*100 || (args.M/6*args.N/6<180*180 && (args.M%32!=0||args.N%32!=0) || ((args.M%64!=0 && args.N%64!=0 && args.M<1900 &&args.N<1900 ) && (args.M%96!=0 && args.N%96!=0 && args.M<1900 &&args.N<1900 ));
105105
bool SmallMatricesMod32= (SmallMatrices && (args.M%32==0&&args.N%32==0)) ;
106106
SmallMatricesMod32 = SmallMatricesMod32&&Not_TT&&args.K % 16 == 0;
107107
//SmallMatrices= false;

src/library/blas/functor/hawaii_sgemmSplitKernel.cc

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#ifndef CLBLAS_HAWAII_DYNAMIC_KERNEL
1+
#if !defined CLBLAS_HAWAII_DYNAMIC_KERNEL || !defined CLBLAS_BONAIRE_DYNAMIC_KERNEL
22

33
#include <stdio.h>
44
#include <string.h>
@@ -23,9 +23,16 @@
2323
#if BUILD_KERNEL_FROM_STRING
2424
#include "sgemm_hawaiiSplitKernel.clT"
2525
#else
26+
27+
#ifndef CLBLAS_HAWAII_DYNAMIC_KERNEL
2628
#include "sgemm_hawaiiSplitKernel.clHawaii_64.bin.clT"
29+
#endif//CLBLAS_HAWAII_DYNAMIC_KERNEL
30+
31+
#ifndef CLBLAS_BONAIRE_DYNAMIC_KERNEL
2732
#include "sgemm_hawaiiSplitKernel.clBonaire_64.bin.clT"
28-
#endif
33+
#endif //CLBLAS_BONAIRE_DYNAMIC_KERNEL
34+
35+
#endif //BUILD_KERNEL_FROM_STRING
2936

3037
// Just because the full name is too long
3138
typedef clBlashawaiiSgemmSplitKernelFunctor::Variant Variant ;
@@ -161,9 +168,11 @@ static const Variant * select_variant_SplitKernel( clblasSgemmFunctor::Args & ar
161168
size_t KBin_NNMainK1Size64 = 0;
162169

163170
const char* KBin_NNMainK1Alpha64 ;
164-
size_t KBin_NNMainK1AlphaSize64 = 0;
171+
size_t KBin_NNMainK1AlphaSize64 = 0;
172+
165173
if (!strcmp(DevName, "Hawaii"))
166174
{
175+
#ifndef CLBLAS_HAWAII_DYNAMIC_KERNEL
167176
KBin_NNMain64 = SGEMM_SRC_NAME_BIN(N, N, 16, __ALPHABETA, 64, HAWAII) ;
168177
KBin_NNMainSize64 = sizeof(SGEMM_SRC_NAME_BIN(N, N, 16, __ALPHABETA, 64, HAWAII)) ;
169178

@@ -175,7 +184,10 @@ static const Variant * select_variant_SplitKernel( clblasSgemmFunctor::Args & ar
175184

176185
KBin_NNMainK1Alpha64 = SGEMM_SRC_NAME_BIN(N, N, 1, __ALPHA, 64, HAWAII) ;
177186
KBin_NNMainK1AlphaSize64 = sizeof(SGEMM_SRC_NAME_BIN(N, N, 1, __ALPHA, 64, HAWAII)) ;
187+
188+
#endif //CLBLAS_HAWAII_DYNAMIC_KERNEL
178189
}
190+
179191
else if (!strcmp(DevName, "Bonaire"))
180192
{
181193
#ifndef CLBLAS_BONAIRE_DYNAMIC_KERNEL
@@ -297,8 +309,11 @@ static const Variant * select_variant_SplitKernel( clblasSgemmFunctor::Args & ar
297309
const char* KSrc_NTColumn = SGEMM_SRC_NAME(N, T, 96, 1, 16, 16, 16, 6, 6, __ALPHABETA) ;
298310
const char* KSrc_NTSingleWave = SGEMM_SRC_NAME(N, T, 1, 1, 16, 16, 16, 6, 6, __ALPHABETA) ;
299311
#else
312+
313+
300314
if (!strcmp(DevName, "Hawaii"))
301315
{
316+
#ifndef CLBLAS_HAWAII_DYNAMIC_KERNEL
302317
KBin_NTMain64 = SGEMM_SRC_NAME_BIN(N, T, 16, __ALPHABETA, 64, HAWAII) ;
303318
KBin_NTMainSize64 = sizeof(SGEMM_SRC_NAME_BIN(N, T, 16, __ALPHABETA, 64, HAWAII)) ;
304319

@@ -310,7 +325,9 @@ static const Variant * select_variant_SplitKernel( clblasSgemmFunctor::Args & ar
310325

311326
KBin_NTMainK1Alpha64 = SGEMM_SRC_NAME_BIN(N, T, 1, __ALPHA, 64, HAWAII) ;
312327
KBin_NTMainK1AlphaSize64 = sizeof(SGEMM_SRC_NAME_BIN(N, T, 1, __ALPHA, 64, HAWAII)) ;
328+
#endif //CLBLAS_HAWAII_DYNAMIC_KERNEL
313329
}
330+
314331
else if (!strcmp(DevName, "Bonaire"))
315332
{
316333
#ifndef CLBLAS_BONAIRE_DYNAMIC_KERNEL
@@ -430,8 +447,10 @@ static const Variant * select_variant_SplitKernel( clblasSgemmFunctor::Args & ar
430447

431448
//const char* KBin_NNMainK1Alpha64 ;
432449
//size_t KBin_NNMainK1AlphaSize64 = 0;
450+
433451
if (!strcmp(DevName, "Hawaii"))
434452
{
453+
#ifndef CLBLAS_HAWAII_DYNAMIC_KERNEL
435454
KBin_TNMain64 = SGEMM_SRC_NAME_BIN(T, N, 16, __ALPHABETA, 64, HAWAII) ;
436455
KBin_TNMainSize64 = sizeof(SGEMM_SRC_NAME_BIN(T, N, 16, __ALPHABETA, 64, HAWAII)) ;
437456

@@ -443,7 +462,9 @@ static const Variant * select_variant_SplitKernel( clblasSgemmFunctor::Args & ar
443462

444463
//KBin_NNMainK1Alpha64 = SGEMM_SRC_NAME_BIN(N, N, 1, __ALPHA, 64, HAWAII) ;
445464
//KBin_NNMainK1AlphaSize64 = sizeof(SGEMM_SRC_NAME_BIN(N, N, 1, __ALPHA, 64, HAWAII)) ;
465+
#endif //CLBLAS_HAWAII_DYNAMIC_KERNEL
446466
}
467+
447468
else if (!strcmp(DevName, "Bonaire"))
448469
{
449470
#ifndef CLBLAS_BONAIRE_DYNAMIC_KERNEL

0 commit comments

Comments
 (0)