Cedric Nugteren
|
69ed46c8da
|
Implemented the XHAD Hadamard product routine
|
2018-02-02 21:18:37 +01:00 |
|
Cedric Nugteren
|
ef5008f5e4
|
Created the API and stubs for the HAD (hadamard-product) routines
|
2018-01-31 20:41:02 +01:00 |
|
Cedric Nugteren
|
caebe8a9d5
|
Fixed an event synchronisation issue in the batched gemm routines
|
2018-01-26 20:37:04 +01:00 |
|
Cedric Nugteren
|
19fd263fb2
|
Moved some constants from global scope to a function; removed unnecessary includes
|
2018-01-25 20:00:43 +01:00 |
|
Cedric Nugteren
|
6a9d6b5da2
|
Changed the default number of runs for the GEMV tuner to fix issues for FP16
|
2018-01-25 19:57:36 +01:00 |
|
Cedric Nugteren
|
c3f9371d16
|
Made GEMM routine tuning a bit more generic in preparation of possible separate batched tuning arguments
|
2018-01-18 19:41:59 +01:00 |
|
Cedric Nugteren
|
bc54411d19
|
Made the batched routines also chose direct/indirect kernel like the main GEMM routine
|
2018-01-18 19:41:02 +01:00 |
|
Cedric Nugteren
|
0e5eaa6eb9
|
Factored out the generic parts of the GEMM routine tuner
|
2018-01-15 21:32:51 +01:00 |
|
Cedric Nugteren
|
a500f537d8
|
Added a RetrieveParameters function to inspect tuning parameters
|
2018-01-11 20:32:06 +01:00 |
|
Cedric Nugteren
|
99a4df88a6
|
Implemented the in-direct version of the strided-batched GEMM kernel
|
2018-01-08 21:07:01 +01:00 |
|
Cedric Nugteren
|
13f0f6fc6e
|
Implemented direct version of strided-batched GEMM kernel
|
2018-01-07 14:58:45 +01:00 |
|
Cedric Nugteren
|
9fb2c61b25
|
Added API and tests for new GemmStridedBatched routine
|
2018-01-07 14:27:15 +01:00 |
|
Cedric Nugteren
|
f1e3b35541
|
Reduced duplicate code in the batched GEMM implementation
|
2018-01-06 19:26:11 +01:00 |
|
Cedric Nugteren
|
c9b5d614e2
|
Fixed a vendor naming bug in the tuners and in the database
|
2018-01-06 17:02:58 +01:00 |
|
Cedric Nugteren
|
a7ccce1969
|
Merge pull request #238 from CNugteren/gemm_api_with_temp_buffer
GEMM API with optional temp buffer
|
2018-01-06 16:08:27 +01:00 |
|
Cedric Nugteren
|
ad197da08d
|
Fixed the CUDA interface: replaced nullptr with 0
|
2018-01-06 13:38:44 +01:00 |
|
Cedric Nugteren
|
e71c037304
|
Fixed a performance overhead in database creation: it is again a static variable now as it was before
|
2018-01-06 11:28:04 +01:00 |
|
Cedric Nugteren
|
ce069545d4
|
Added CUDA interface to get temporary-buffer size for GEMM routine
|
2018-01-06 10:05:28 +01:00 |
|
Cedric Nugteren
|
44431daecc
|
Added a CUDA version of the GEMM temp-buffer optional argument
|
2018-01-04 19:33:51 +01:00 |
|
Cedric Nugteren
|
af14fff1e9
|
Updated the generator script to automatically generate the temp-buffer code
|
2018-01-04 19:31:57 +01:00 |
|
Cedric Nugteren
|
7f893a85d9
|
Revert "Added options to disable parts of the invert kernel to find out where the AMD compiler crashes"
This reverts commit 407ed52cec .
|
2017-12-31 16:10:40 +01:00 |
|
Cedric Nugteren
|
69226ae828
|
Changed the invert kernel slightly; added part1a/part1b disable-defines
|
2017-12-31 14:07:08 +01:00 |
|
Cedric Nugteren
|
7ce415b927
|
Fixed ifdef's into ifndef's
|
2017-12-30 21:17:31 +01:00 |
|
Cedric Nugteren
|
407ed52cec
|
Added options to disable parts of the invert kernel to find out where the AMD compiler crashes
|
2017-12-30 21:07:50 +01:00 |
|
Cedric Nugteren
|
ad1227c4f2
|
Added optional temp-buffer argument to C++ interface of GEMM
|
2017-12-30 18:45:06 +01:00 |
|
Cedric Nugteren
|
6d1e30e61f
|
Added interface to compute the required temporary buffer size for GEMM
|
2017-12-28 14:46:45 +01:00 |
|
Cedric Nugteren
|
aaea9474a1
|
Factored out argument processing from the GEMM routine
|
2017-12-28 13:56:18 +01:00 |
|
Cedric Nugteren
|
74792ce96c
|
Refactored GEMM code in preparation of separate temp-buffer computation
|
2017-12-28 11:08:10 +01:00 |
|
Cedric Nugteren
|
2b9bf3a9aa
|
Simplified invert kernel a little
|
2017-12-27 17:03:06 +01:00 |
|
Cedric Nugteren
|
1e738db6dd
|
Split the database into multiple small compilation units
|
2017-12-27 12:04:22 +01:00 |
|
Cedric Nugteren
|
4a2fc4aa98
|
Made the database-vector a non-static member
|
2017-12-26 11:32:05 +01:00 |
|
Cedric Nugteren
|
bd540829ea
|
Fixes for the CUDA backend of CLBlast
|
2017-12-24 12:10:55 +01:00 |
|
Cedric Nugteren
|
ef71d8e9b5
|
Fixed unused variable warnings showing up with Clang
|
2017-12-23 16:07:26 +01:00 |
|
Cedric Nugteren
|
7aabeb44cc
|
Updated the tuning results for the IvyBridge M GT2 GPU
|
2017-12-23 15:46:41 +01:00 |
|
Cedric Nugteren
|
2b020d59f9
|
Added defines to disable OpenCL deprecation warnings
|
2017-12-23 15:32:22 +01:00 |
|
Cedric Nugteren
|
04bf5437bc
|
Fixed a warning under MSVC
|
2017-12-23 15:30:08 +01:00 |
|
Cedric Nugteren
|
288766debb
|
Now calling main TRSV routine again to fix compilation in MSVC
|
2017-12-23 14:49:21 +01:00 |
|
Cedric Nugteren
|
736399e528
|
Split the invert kernel in two parts to prevent error C1091 in MSVC 2013
|
2017-12-23 14:18:07 +01:00 |
|
Cedric Nugteren
|
b1f52f130c
|
Updated the database to use the new TRSV and Invert tuners
|
2017-12-23 13:55:22 +01:00 |
|
Cedric Nugteren
|
aa7db4f987
|
Added TRSV block-size tuner
|
2017-12-23 13:34:57 +01:00 |
|
Cedric Nugteren
|
9dec53ff52
|
Merge branch 'master' into feature/more_tuners
|
2017-12-21 20:18:05 +01:00 |
|
Cedric Nugteren
|
0ee81e27b9
|
Added tuning results for Apple AMD Radeon Pro 580
|
2017-12-20 19:59:31 +01:00 |
|
Cedric Nugteren
|
07a7012b0d
|
Added skeleton for a tuner for the invert kernel
|
2017-12-19 21:10:48 +01:00 |
|
Cedric Nugteren
|
249bdaa8e9
|
Reformatted tuning code to make compilation faster
|
2017-12-18 21:34:07 +01:00 |
|
Cedric Nugteren
|
e2f8068459
|
Fixed an issue with the tuner: it was using platform vendor rather than device vendor
|
2017-12-17 17:58:06 +01:00 |
|
Cedric Nugteren
|
69f6591564
|
Removed all ARM Mali tuning results; re-added Mali-T760 and Mali-T628 results based on kernel pre-processor
|
2017-12-17 16:59:08 +01:00 |
|
Cedric Nugteren
|
7408f6e6eb
|
Fixed an unnecessary overflow issue on 32-bit systems
|
2017-12-17 16:42:54 +01:00 |
|
Cedric Nugteren
|
4a58efc130
|
Fixed for error C1091 in MSVC 2013
|
2017-12-10 16:40:59 +01:00 |
|
Cedric Nugteren
|
b4d3a50f19
|
Split GEMM kernel in 4 files instead of 3 due to MSVC 2013 string length limit
|
2017-12-10 16:09:09 +01:00 |
|
Cedric Nugteren
|
82467b64c4
|
Fixed a missing include
|
2017-12-10 14:49:38 +01:00 |
|
Cedric Nugteren
|
c2f08fa346
|
Fixed an issue in the tuners to prevent error -14 from persisting (CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)
|
2017-12-10 14:48:13 +01:00 |
|
Cedric Nugteren
|
9112e587ae
|
Fixed an Android compilation issue
|
2017-12-10 13:31:57 +01:00 |
|
Cedric Nugteren
|
9f02fb542c
|
Completed kernel modifications for pre-processor of all other kernels
|
2017-12-09 20:44:21 +01:00 |
|
Cedric Nugteren
|
ca5dbcd2bd
|
Made the pre-processor run by default for ARM and Qualcomm GPUs
|
2017-12-09 15:16:53 +01:00 |
|
Cedric Nugteren
|
02c0d64037
|
Modified the direct GEMM kernel to support array-to-register promotion
|
2017-12-09 14:53:10 +01:00 |
|
Cedric Nugteren
|
23e3a85f2c
|
Reformatted GEMM kernel to support array-to-register promotion
|
2017-12-09 14:09:13 +01:00 |
|
Cedric Nugteren
|
d9df62b794
|
Fixed defines parsing and substituting in pre-processor; fixed some variable names in kernels
|
2017-12-09 10:49:55 +01:00 |
|
Cedric Nugteren
|
540896476d
|
Added register promotion to the main GEMM kernel
|
2017-12-07 22:05:29 +01:00 |
|
Cedric Nugteren
|
0f9637bbac
|
Improved array-to-register promotion, now handling function calls as well
|
2017-12-05 20:39:49 +01:00 |
|
Cedric Nugteren
|
cf4555d1f4
|
Added GEMM (direct and in-direct) to the pre-processor testing; modified the loops in kernel accordingly
|
2017-12-03 16:40:36 +01:00 |
|
Cedric Nugteren
|
0a1a3de58a
|
Added basic bracket parsing in defines and loop expressions
|
2017-12-03 16:39:22 +01:00 |
|
Cedric Nugteren
|
60312e5878
|
Reformated transpose kernels for the pre-processor; extended the amount of tests
|
2017-12-03 12:00:37 +01:00 |
|
Cedric Nugteren
|
92842024b0
|
Improved array to register promotion in the pre-processor
|
2017-12-03 11:59:38 +01:00 |
|
Cedric Nugteren
|
bf7aeb8d5b
|
Improved the pre-processor's handling of defines; added a special nested defines test
|
2017-11-30 21:43:16 +01:00 |
|
Cedric Nugteren
|
13eb772343
|
Integrated pre-processor in compilation flow, default is still disabled
|
2017-11-30 21:32:47 +01:00 |
|
Cedric Nugteren
|
93ffb876c6
|
Reformatted unrollable kernel loops and added the new promote_to_registers pragma for several kernels
|
2017-11-29 20:21:08 +01:00 |
|
Cedric Nugteren
|
0dde6af703
|
Extended the preprocessor tests to include CopyFast and CopyPad
|
2017-11-29 20:18:36 +01:00 |
|
Cedric Nugteren
|
1d35f65cea
|
Improves the array-to-register promotion in the pre-processor
|
2017-11-29 19:53:50 +01:00 |
|
Cedric Nugteren
|
14047861ce
|
Improved the kernel pre-processor in various ways
|
2017-11-28 20:52:08 +01:00 |
|
Cedric Nugteren
|
35956f9db1
|
Added simple implementation of array-to-register promotion
|
2017-11-27 20:26:30 +01:00 |
|
Cedric Nugteren
|
9c643b293c
|
Improved the for-loop pre-processing
|
2017-11-26 13:32:48 +01:00 |
|
Cedric Nugteren
|
69aa3b35ed
|
Implemented first simple pre-processor: defines parser and loop unrolling based on assumptions
|
2017-11-25 17:46:01 +01:00 |
|
Cedric Nugteren
|
f01bcded1e
|
Moved string splitting functions; added string character removal function
|
2017-11-25 17:44:21 +01:00 |
|
Cedric Nugteren
|
c0c6d00b12
|
Added stub for a preprocessor and a corresponding compilation test
|
2017-11-25 10:24:05 +01:00 |
|
Cedric Nugteren
|
ebce82e650
|
Merge pull request #222 from CNugteren/override_params_from_json
Override params in clients from tuner JSON
|
2017-11-25 09:48:27 +01:00 |
|
Cedric Nugteren
|
abb4d5ab32
|
Added tuning results for ARM Mali T760 GPU
|
2017-11-24 21:16:54 +01:00 |
|
Cedric Nugteren
|
9527c89c30
|
Made parameter override in the clients a command-line argument and added support for multi-kernel routines
|
2017-11-22 20:53:20 +01:00 |
|
Cedric Nugteren
|
0f080bbc6e
|
Potentially fixed an MSVC 2013 issue with a copy-constructor not being generated
|
2017-11-20 20:54:18 +01:00 |
|
Cedric Nugteren
|
e0f3484084
|
Fixes some displaying issues in the GEMM routine tuner
|
2017-11-20 20:29:52 +01:00 |
|
Cedric Nugteren
|
5467c0cac5
|
Fixed a variety of warnings and an error for MSVC2013 compilation
|
2017-11-19 21:09:24 +01:00 |
|
Cedric Nugteren
|
4e0d08c3bc
|
Added compilation timing and better compilation error reporting
|
2017-11-19 16:58:13 +01:00 |
|
Cedric Nugteren
|
a3a8b44f59
|
Some fixed for the new auto-tuner to be compatible with the Python scripts
|
2017-11-19 16:31:08 +01:00 |
|
Cedric Nugteren
|
76d2b7f0b6
|
Revived the GEMM routine tuner; minor formatting changes
|
2017-11-19 12:59:52 +01:00 |
|
Cedric Nugteren
|
7a54494577
|
Modified the kernel tuners to use the newly integrated auto-tuner
|
2017-11-19 12:58:41 +01:00 |
|
Cedric Nugteren
|
8a5a5e031e
|
Moved some tuning functions from .hpp to .cpp
|
2017-11-17 20:58:36 +01:00 |
|
Cedric Nugteren
|
f94d498a37
|
Moved compilation function to separate file; removed dependency of tuners of the CLBlast library
|
2017-11-17 20:57:46 +01:00 |
|
Cedric Nugteren
|
2b8ad70b63
|
Added printing of the best parameters for the new tuner
|
2017-11-16 21:18:29 +01:00 |
|
Cedric Nugteren
|
1b2b46f2f0
|
Added first version of integrated and re-written auto-tuner
|
2017-11-15 22:49:35 +01:00 |
|
Cedric Nugteren
|
0cd78bb6f9
|
Added kernel timing functionality to the utilities
|
2017-11-15 22:47:06 +01:00 |
|
Cedric Nugteren
|
b337bffbaf
|
Added exception handle with catch-all
|
2017-11-15 22:44:44 +01:00 |
|
Cedric Nugteren
|
03ebf14b97
|
Made the exception dispatch function optionally silent
|
2017-11-13 21:11:31 +01:00 |
|
Cedric Nugteren
|
4bac1287f2
|
Moved square-difference utility function for use in the tuners
|
2017-11-13 21:10:44 +01:00 |
|
Cedric Nugteren
|
677afd3b96
|
Factored out the creation of the OpenCL header and the program compilation
|
2017-11-11 16:14:43 +01:00 |
|
Cedric Nugteren
|
c41d219ea4
|
Added tuning results for the GeForce GTX750Ti
|
2017-11-09 21:19:21 +01:00 |
|
Cedric Nugteren
|
b18cc9d3f1
|
Merge pull request #212 from CNugteren/kernel_selection_tuner
GEMM kernel selection tuner
|
2017-11-07 22:20:13 +01:00 |
|
Cedric Nugteren
|
3ec0be6fb8
|
Added various GEMM routine tuning results
|
2017-11-07 21:34:54 +01:00 |
|
Cedric Nugteren
|
33ac2b0175
|
Improved the way the database defaults are computed
|
2017-11-06 21:59:45 +01:00 |
|
Cedric Nugteren
|
34a33b54cf
|
Changed GEMM routine tuner's scoring to use L2 measure instead for better averaging
|
2017-11-06 20:50:36 +01:00 |
|
Cedric Nugteren
|
9b0a435fb0
|
Integrated the GEMM routine tuner for kernel selection; added first tuning results
|
2017-11-02 21:47:14 +01:00 |
|
Cedric Nugteren
|
73272ab97d
|
Fixed a bug in database compression/decompression
|
2017-11-02 21:19:18 +01:00 |
|