CBLAS/BLAS interface decoupling for level 3 APIs

->In BLIS the cblas interface is implemented as a wrapper around
  the blas interface. For example the CBLAS api ‘cblas_dgemm’
  internally invokes BLAS API ‘dgemm_’.
->If the end user wants to use the different libraries for CBLAS
  and BLAS, current implantation of BLIS doesn’t allow it and
  may result in recursion
->This change separate the CBLAS and BLAS implantation by adding
  and additional level of abstraction. The implementation of the
  API is moved to the new function which is invoked directly from
  the CBLAS and BLAS wrappers.
AMD-Internal: [SWLCSG-1477]

Change-Id: I6218a3e81060fc8045f4de0ace87f708465dfae5
This commit is contained in:
Chandrashekara K R
2022-08-23 14:58:26 +05:30
committed by Chandrashekara KR
parent 2114a43df8
commit d925ebeb06
27 changed files with 846 additions and 210 deletions

View File

@@ -5,7 +5,7 @@
libraries.
Copyright (C) 2014, The University of Texas at Austin
Copyright (C) 2018-2021, Advanced Micro Devices, Inc. All rights reserved.
Copyright (C) 2018-2022, Advanced Micro Devices, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -162,11 +162,13 @@
#define PASTEF77(ch1,name) ch1 ## name
#define PASTEF772(ch1,ch2,name) ch1 ## ch2 ## name
#define PASTEF773(ch1,ch2,ch3,name) ch1 ## ch2 ## ch3 ## name
#define PASTEF77S(ch1,name) ch1 ## name ## _blis_impl
#else
#define PASTEF770(name) name ## _
#define PASTEF77(ch1,name) ch1 ## name ## _
#define PASTEF772(ch1,ch2,name) ch1 ## ch2 ## name ## _
#define PASTEF773(ch1,ch2,ch3,name) ch1 ## ch2 ## ch3 ## name ## _
#define PASTEF77S(ch1,name) ch1 ## name ## _blis_impl
#endif
// -- Include other groups of macros