Cedric Nugteren
f88c50522d
Fixed an issue with const members of structs in the database
2016-10-10 22:24:05 +02:00
Cedric Nugteren
de77f00e8c
Fixed an issue with the length of the GEMM OpenCL string for both MSVC 2013 and 2015
2016-10-10 22:23:33 +02:00
Cedric Nugteren
fcac81bfef
First fixes towards compilation on Visual Studio 2013
2016-10-10 20:37:45 +02:00
Cedric Nugteren
08ee57f494
Updated the tuning results for the GTX 750 Ti GPU
2016-10-10 16:41:41 +02:00
Cedric Nugteren
7c228f6a67
Changed the thresholds for the direct/indirect GEMM kernels for NVIDIA and Intel GPUs
2016-10-10 16:01:02 +02:00
Cedric Nugteren
7baac46e72
Fixed a performance bug for Intel Iris Pro GPUs due to incorrect tuning results
2016-10-08 21:56:06 +02:00
Cedric Nugteren
b698e45478
Added first tuning results for the single-kernel direct GEMM implementation
2016-10-06 21:13:14 +02:00
Cedric Nugteren
a3e67f2be2
Added a kernel selection database to select between the direct and indirect GEMM kernels
2016-10-06 19:51:12 +02:00
Cedric Nugteren
7052a00a3e
Fixed a const-correctness issue with complex conjugation in the GEMM direct kernel
2016-10-03 20:13:19 +02:00
Cedric Nugteren
ca0c075de2
Added functions to load from off-chip to local memory without vector loads for the GEMM direct kernels
2016-10-03 20:09:15 +02:00
Cedric Nugteren
c1c4bc5d20
Re-organised GEMM direct kernel and added faster fall-back version for incomplete rectangles
2016-10-03 19:32:01 +02:00
Cedric Nugteren
243cef73db
Set the default number of runs for all kernels to at least 2 runs
2016-10-02 21:23:23 +02:00
Cedric Nugteren
d8827e908c
Specialised the GEMM direct kernel in four ways for transposing/non-transposing: NN, NT, TN, TT
2016-10-02 17:59:05 +02:00
Cedric Nugteren
61f489e370
Split the GEMM direct kernel into two files; set the default tuning target to 256-256-256
2016-10-02 15:06:59 +02:00
Cedric Nugteren
a459920105
Added padding to the local memory of the GEMM direct kernel
2016-10-01 16:58:53 +02:00
Cedric Nugteren
ecc704cc76
Added default num-runs to the tuner adding averaging over 10 runs as a default for the GEMM direct kernel
2016-10-01 16:55:21 +02:00
Cedric Nugteren
a9d35cf04c
Merge branch 'development' into gemm_direct
2016-10-01 13:45:08 +02:00
Cedric Nugteren
d59e5c570b
Added an option to run tuned kernels multiple times to average execution times; requires CLTune 2.5.0
2016-09-27 21:03:24 +02:00
Cedric Nugteren
db5772e521
Updated to version 8.0 of the CLCudaAPI header
2016-09-27 20:56:49 +02:00
Cedric Nugteren
adc058440c
Fixed the local memory size computation for the GEMM tuners
2016-09-27 20:03:55 +02:00
Cedric Nugteren
6178fcd584
Now generates test/client/tuner data using a fixed seed to enable reproducability of results
2016-09-27 19:55:21 +02:00
Cedric Nugteren
73d135c2ce
Added a first version of a tuner for the GEMM direct kernel; collapsed MWGD, NWGD and KWGD into one WGD parameter
2016-09-25 14:48:34 +02:00
Cedric Nugteren
669f43aed6
Separated the tuning parameters of the new direct GEMM kernel from the indirect version
2016-09-25 13:52:08 +02:00
Cedric Nugteren
140dc12854
Added a first version of the direct version of GEMM with local memory
2016-09-25 11:38:35 +02:00
Cedric Nugteren
6aa652d6ea
Merge branch 'development' into gemm_direct
2016-09-21 21:32:18 +02:00
Cedric Nugteren
b1929d8ce7
It is now possible to set the OpenCL compiler options through an environmental variable
2016-09-21 21:22:16 +02:00
Cedric Nugteren
4ce584a014
Split the XGEMM kernel further up: now in 3 parts. This is done because MSVC can't handle long strings
2016-09-12 22:13:16 +02:00
Cedric Nugteren
aa3dffe356
Added XgemvFastRot and Xgemm 16-bit tuning results: just defaults which are now automatically taken from 32-bit if there are no entries at all
2016-09-12 20:13:38 +02:00
Cedric Nugteren
b5a67f86ec
Complete re-write of the database script. Changed Pandas for the much faster and convienient plain JSON/dict data-type
2016-09-11 21:29:28 +02:00
Cedric Nugteren
e21f32bc99
Updated database based on exhaustive tuning results for GEMM for the R9 M370X GPU
2016-09-10 14:00:43 +02:00
Cedric Nugteren
3daba70997
Updated the database script to remove duplicate entries: keeps only the best-performing cases for a specific parameters combination
2016-09-10 11:12:09 +02:00
Cedric Nugteren
55038d3c91
Split GEMM tuning in two parts: a small set of tuning parameters which is explored exhaustively and a larger set which is explored randomly
2016-09-06 20:30:06 +02:00
Cedric Nugteren
b30b26b89e
The GEMM kernel no longer adds beta*C in case beta is zero; this would cause problems if C contains NaNs
2016-09-04 17:21:16 +02:00
Cedric Nugteren
521bf6cdfc
Added tuning results for Intel Broadwell 5500 GT2 GPU
2016-09-03 16:43:23 +02:00
Cedric Nugteren
19574b2519
Updated tuning results for Haswell GT2 Mobile GPU; fixed database script to handle duplicate entries of different runs
2016-09-03 12:45:11 +02:00
Ivan Shapovalov
ea43936e94
test/correctness: read platform and device from environment
...
Support passing environment variables CLBLAST_PLATFORM and CLBLAST_DEVICE
instead of -platform and -device arguments to test executables.
This is for `ctest`.
2016-08-27 05:37:26 +03:00
Cedric Nugteren
8d6a6a5bbf
Merge branch 'database_defaults' into development
2016-08-22 19:31:36 +02:00
Cedric Nugteren
0c0f0ac7f9
Also changed the default-default for unknown device types to use the same method as for known device groups
2016-08-21 20:35:20 +02:00
Cedric Nugteren
84db8958d1
Increased the ratio of GEMM tuning results to explore; reduced the tuning search space to have a better chance to evaluate more likely parameter combinations
2016-08-21 20:28:02 +02:00
Cedric Nugteren
6eca53ee23
Merge branch 'master' of https://github.com/dvasschemacq/CLBlast into dvasschemacq-master
...
Conflicts:
src/kernels/level1/xaxpy.opencl
src/kernels/level2/xgemv.opencl
src/kernels/level2/xgemv_fast.opencl
src/kernels/level2/xger.opencl
src/kernels/level2/xher.opencl
src/kernels/level2/xher2.opencl
src/kernels/level3/xgemm_part2.opencl
2016-08-20 12:50:31 +02:00
D. Van Assche
57f1aa7685
Adapt opencl files for 1.1 OpenCL
...
In OpenCL 1.1 __kernel has to be before __attribute__, at least with
Vivante compiler.
2016-08-18 17:33:13 +02:00
Cedric Nugteren
7d5631b7e4
Updated the database script to calculate the relative best performance of tuning results common for a device/vendor type
2016-08-15 21:01:07 +02:00
Cedric Nugteren
5004a435ff
Fixed issues related to the recent changes in the Xgemm infrastructure
2016-07-26 20:59:59 +02:00
Cedric Nugteren
5053f6ebc6
Merge branch 'development' into gemm_direct
2016-07-26 20:53:31 +02:00
Cedric Nugteren
de1afe168d
Removed all old tuning results for the XgemvFastRot kernel; re-added for a couple of devices
2016-07-25 22:57:23 +02:00
Cedric Nugteren
2582f0290a
Moved the XgemvFast and XgemvFastRot tuning database into a separate file
2016-07-25 22:43:49 +02:00
Cedric Nugteren
0252df731a
Merge branch 'development' into gemv_performance
2016-07-24 17:06:27 +02:00
Cedric Nugteren
ffa35c623a
Minor improvements after merging in groundwork for custom tuning parameters and kernels
2016-07-24 17:00:21 +02:00
Cedric Nugteren
40a72259eb
Fixe a bug in the new XgemvFastRot kernel related to local memory size
2016-07-23 16:58:11 +02:00
Cedric Nugteren
7a4f963763
Further improvements to the XgemvFastRot kernel, properly enables coalescing now
2016-07-23 14:52:32 +02:00