summaryrefslogtreecommitdiff
path: root/src/routines/level3
AgeCommit message (Collapse)Author
2017-07-31Restore direct GEMM to previous versionmcian
2017-07-25Minor optimization for the direct GEMM kernel: don't ceil m and n ↵Cedric Nugteren
unnecessarily high
2017-06-18Fixed an overflow bug on 32-bit systems when chosing a GEMM kernelCedric Nugteren
2017-05-15Fixed an TRSM issue caused by incorrect block size calculationCedric Nugteren
2017-05-12Fixed a bug in the TRSM routine; tests now passCedric Nugteren
2017-03-11Added initial naive version of the batched GEMM routine based on the direct ↵Cedric Nugteren
GEMM kernel
2017-03-01Added proper support for the b_offset argument in TRSMCedric Nugteren
2017-02-27Fixed half-precision bugs in HTBMV/HTPMV/HTRMV/HSYR2K/HTRMM related to ↵Cedric Nugteren
incorrect constants
2017-02-26Split the GEMM kernel further up to prevent C1091 in MSVCCedric Nugteren
2017-02-26Fixed an out-of-bounds memory access when filling a matrix with a constantCedric Nugteren
2017-02-24Implemented a simple row-major to col-major problem conversion for TRSMCedric Nugteren
2017-02-22Fixed a few issues with the TRSM routine; some tests still failingCedric Nugteren
2017-02-05Merge branch 'development' into triangular_solversCedric Nugteren
2017-01-24Routine, Cache: generalize, reduce amount of copying in fast pathIvan Shapovalov
Implement a generalized Cache<K, V>. Two variants are provided: the first one is based on std::map, using C++14-specific transparent std::less<> and generalized std::map::find() to allow searching by tuple of references. The second one is based on std::vector and O(n) lookup, but remains C++11-compliant.
2017-01-18Added first version of the TRSM routine based on the diagonal invert kernelCedric Nugteren
2016-12-18Prepared for the addition of the TRSM triangular solver kernelCedric Nugteren
2016-12-18Fixed a bug when using offsets in the direct GEMM kernelsCedric Nugteren
2016-11-20Now correctly tests for validaty of the B matrix in the TRMM routineCedric Nugteren
2016-11-20Fixed a bug in the TRMM routine caused by overwriting input data before ↵Cedric Nugteren
consuming everything
2016-10-22Merge pull request #117 from intelfx/exceptionsCedric Nugteren
Convert to use C++ exceptions internally
2016-10-22Fixed a bug in the SYRK/SYR2K/HERK/HER2K routines that would occur with ↵Cedric Nugteren
specific tuning parameters
2016-10-22Routine: get rid of ::SetUp()Ivan Shapovalov
Since we now use C++ exceptions inside the implementation (and exceptions can be thrown from constructors), there is no need for a separate Routine::SetUp() function. For this, we also change the way how the kernel source string is constructed. The kernel-specific source code is now passed to the Routine ctor via an initializer_list of C strings to avoid unnecessary data copying while also working around C1091 of MSVC 2013.
2016-10-22treewide: use C++ exceptions properlyIvan Shapovalov
Since the codebase is designed around proper C++ idioms such as RAII, it makes sense to only use C++ exceptions internally instead of mixing exceptions and error codes. The exceptions are now caught at top level to preserve compatibility with the existing error code-based API. Note that we deliberately do not catch C++ runtime errors (such as `std::bad_alloc`) nor logic errors (aka failed assertions) because no actual handling can ever happen for such errors. However, in the C interface we do catch _all_ exceptions (...) and convert them into a wild-card error code.
2016-10-10Fixed an issue with the length of the GEMM OpenCL string for both MSVC 2013 ↵Cedric Nugteren
and 2015
2016-10-06Added a kernel selection database to select between the direct and indirect ↵Cedric Nugteren
GEMM kernels
2016-10-03Re-organised GEMM direct kernel and added faster fall-back version for ↵Cedric Nugteren
incomplete rectangles
2016-10-02Specialised the GEMM direct kernel in four ways for ↵Cedric Nugteren
transposing/non-transposing: NN, NT, TN, TT
2016-10-02Split the GEMM direct kernel into two files; set the default tuning target ↵Cedric Nugteren
to 256-256-256
2016-09-25Added a first version of a tuner for the GEMM direct kernel; collapsed MWGD, ↵Cedric Nugteren
NWGD and KWGD into one WGD parameter
2016-09-25Separated the tuning parameters of the new direct GEMM kernel from the ↵Cedric Nugteren
indirect version
2016-09-21Merge branch 'development' into gemm_directCedric Nugteren
2016-09-12Split the XGEMM kernel further up: now in 3 parts. This is done because MSVC ↵Cedric Nugteren
can't handle long strings
2016-07-26Fixed issues related to the recent changes in the Xgemm infrastructureCedric Nugteren
2016-07-26Merge branch 'development' into gemm_directCedric Nugteren
2016-07-22xgemm: do not hardcode kernel requirements for internal matrix layoutIvan Shapovalov
Do not hardcode the knowledge about "A and C col-major, B row-major". This allows for easier reuse of the DoGemm() routine with different kernels.
2016-07-17Improved the GEMM direct kernel by adding register blocking. Still not fast ↵Cedric Nugteren
though
2016-07-16Created infrastructure to support a direct GEMM kernel; added correct but ↵Cedric Nugteren
slow reference kernel as a place-holder
2016-07-16Removed an unused variable from the copy-transpose-pad functionCedric Nugteren
2016-07-10Now passing alpha/beta to the kernel as arguments as before fp16 support; in ↵Cedric Nugteren
case of fp16 arguments are cast on host and in kernel
2016-06-27Fixes for the AppVeyor Windows buildCedric Nugteren
2016-06-19Renamed all C++ source files to .cpp to match the .hpp extension betterCedric Nugteren
2016-06-18Moved all headers into the source tree, changed headers to .hpp extensionCedric Nugteren
2016-06-18Removed the template from the Routine base-classCedric Nugteren
2016-06-17Removed the precision argument from the routines in favor of a single ↵Cedric Nugteren
templated function
2016-06-17Removed the interface to the cache functions from the Routine class, calls ↵Cedric Nugteren
them directly now
2016-06-17Moved the RunKernel and PadCopyTransposeMatrix functions out of the Routine ↵Cedric Nugteren
class
2016-06-17Moved the test-for-valid-buffers function from the Routine class to separate ↵Cedric Nugteren
functions in a separate file
2016-06-16Added XOMATCOPY routines to perform out-of-place matrix scaling, copying, ↵Cedric Nugteren
and/or transposing
2016-06-15Added some constness to variables related to the GEMM routinesCedric Nugteren
2016-06-14Re-organised the level-3 supporting kernels (copy, pad, transpose, convert) ↵Cedric Nugteren
and renamed files and functions appropriately