Commit Graph

235 Commits

Author SHA1 Message Date
Pedro Martinez Mediano d0b35b3db8 Added NativeUtils for native lib loading and included libKraskov.so in jar. 2017-06-01 20:34:23 +10:00
Pedro Martinez Mediano 834a3ec2c2 Relocated GPU code and modified build and load paths accordingly. 2017-06-01 17:22:42 +10:00
Pedro Martinez Mediano 2a203faa23 Added support for Theiler exclusion window in JNI code. 2017-05-31 04:19:49 +10:00
Pedro Martinez Mediano bc44e4c2fb Main workflow now operates using only device functions.
This saves time and energy by keeping all data in te GPU, rather than
transfering it back and forth all the time.
2017-05-31 02:38:44 +10:00
Pedro Martinez Mediano 85dd28d13b Separated digamma and reduction into host and device functions. 2017-05-31 02:36:45 +10:00
Pedro Martinez Mediano 7a89dd7908 Modified handling of normFunction and replaced signallength with signalLength. 2017-05-31 02:35:11 +10:00
Pedro Martinez Mediano 6c25ea93ef Added functions to allocate and free all the GPU memory at once. 2017-05-31 02:31:37 +10:00
Pedro Martinez Mediano 721c96c040 Added prototypes of device functions to gpuKnnLibrary header. 2017-05-30 23:00:17 +10:00
Pedro Martinez Mediano c9d6a8a3bc Now Makefile finds compute capabilities of all GPUs in the system. 2017-05-30 17:39:06 +10:00
Pedro Martinez Mediano 6645653ab3 Added unit tests for GPU digamma calculation and block reduction. 2017-05-30 01:37:43 +10:00
Pedro Martinez Mediano 75a03341b9 Separated digamma and reduction into host and device functions, now doing block reduction in device. 2017-05-30 01:36:56 +10:00
Pedro Martinez Mediano f4ef357a84 Multiple improvements to increase portability of GPU build system.
- Checks CUDA and nvcc are available, otherwise exit nicely.
- Automatically looks for JNI header files.
- Automatically checks GPU-specific compute capability flags.
2017-05-30 01:24:43 +10:00
Pedro Martinez Mediano 180e5cbf45 Minor rearrangements in digamma functions. 2017-05-29 09:20:29 +10:00
Pedro Martinez Mediano 727a76fe94 Renamed cudaSumDigammas function. 2017-05-29 09:18:00 +10:00
Pedro Martinez Mediano 7eb91957ce Remove old comments. 2017-05-29 09:11:08 +10:00
Pedro Martinez Mediano 4b374de8c1 Added function to calculate and sum digammas fully on GPU to the main workflow. 2017-05-29 09:10:33 +10:00
Pedro Martinez Mediano 34c9ebd6ad Added CUB library of low-level CUDA primitives. 2017-05-28 02:40:56 +10:00
Pedro Martinez Mediano a5e3d18e6a Separated RS function in host and device sections. 2017-05-28 02:07:55 +10:00
Pedro Martinez Mediano fb01036127 Separated kNN function in host and device sections. 2017-05-28 01:55:55 +10:00
Pedro Martinez Mediano 0845420fdf Rearranged function order in gpuKnnBF_kernel. 2017-05-28 01:53:30 +10:00
Pedro Martinez Mediano 502289d666 Replaced manual absolute value calculation with CUDA Math API fabsf. 2017-05-27 04:23:03 +10:00
Pedro Martinez Mediano 0d296c854c Fix minor warnings. 2017-05-27 04:20:45 +10:00
Pedro Martinez Mediano d94a373ca8 Added warning flags to Makefile. 2017-05-27 04:20:11 +10:00
Pedro Martinez Mediano 1beb7a47fc "extern C" qualifiers now surround all gpuKnnLibrary as a whole, instead of in every function. 2017-05-26 04:58:18 +10:00
Pedro Martinez Mediano 36d821979d Renamed gpuKnnLibrary.cu to .c. Now .cu extension is reserved for files with kernels. 2017-05-26 04:55:13 +10:00
Pedro Martinez Mediano 56771c94b4 Minor change to timing tags in perftest. 2017-05-26 04:54:05 +10:00
Pedro Martinez Mediano 91b1235380 Added statistical unbiasedness tests for C permutation function. 2017-05-25 15:16:20 +10:00
Pedro Martinez Mediano d8779ee9f5 Added randperm to gpuMILibrary header so that it can be seen by other files. 2017-05-25 15:16:00 +10:00
Pedro Martinez Mediano 6af0e22030 Merge branch 'master' into gpu 2017-05-25 02:44:59 +10:00
Pedro Martinez Mediano a642c0a8c8 Fix prints in digamma timers. 2017-05-25 02:29:07 +10:00
Pedro Martinez Mediano 79859e0832 Add warm-up period to benchmarking script. 2017-05-25 02:15:21 +10:00
Pedro Martinez Mediano c8ceec9f71 Added more timers and unified format a bit. 2017-05-25 01:41:53 +10:00
Pedro Martinez Mediano cce345b0ed Removed comments and prints from perftest.cpp 2017-05-25 01:09:34 +10:00
Pedro Martinez Mediano 3fb9632439 Improved ctimer to align printf outputs. 2017-05-25 01:06:04 +10:00
Pedro Martinez Mediano 82c06abbeb Added C unit tests for GPU digamma reduction. 2017-05-25 00:20:52 +10:00
Pedro Martinez Mediano 715050d4e6 Added GPU chunk digamma reduction to main workflow. 2017-05-25 00:20:06 +10:00
Pedro Martinez Mediano 2d8d0271ca Added first version of GPU chunk digamma reduction function.
For now the calculation of the digammas is fully parallel but sums are
done in CPU.
2017-05-25 00:19:07 +10:00
Pedro Martinez Mediano afcfb61260 Added C unit test for GPU digamma calculation without reduction. 2017-05-24 23:28:41 +10:00
Pedro Martinez Mediano 20c019267c Added full C function for parallel digamma calculation without reduction. 2017-05-24 23:27:41 +10:00
Pedro Martinez Mediano ada9128389 Added kernel for gpu digamma calculation without reduction. 2017-05-24 23:26:33 +10:00
Pedro Martinez Mediano 7fe8bf47cc Added GPU digamma reduction to main workflow for single-chunk cases. 2017-05-24 22:19:36 +10:00
Pedro Martinez Mediano e39afcd5b4 Fixed bug related to manual casting in digamma reduction kernel. 2017-05-24 22:19:07 +10:00
Pedro Martinez Mediano 3a68e27af8 Fixed bugs in single-chunk digamma reduction GPU code. 2017-05-24 22:18:04 +10:00
Pedro Martinez Mediano 3dd4f6b224 Added C unit tests for single-chunk GPU digamma reduction. 2017-05-24 22:16:18 +10:00
Pedro Martinez Mediano 09548028e0 Merge remote-tracking branch 'ghub/master'. This merges Joe's v1.3.1 master into Pedro's master. 2017-05-24 20:24:32 +10:00
Pedro Martinez Mediano 3054461f7a Add note for potential further optimisation. 2017-05-24 19:45:01 +10:00
Pedro Martinez Mediano d17d8cad03 Add small utility script to profile parts of GPU code. 2017-05-24 19:20:54 +10:00
Pedro Martinez Mediano 8da0bfc17b Fixed bugs in pointset arrangement. Inefficient but functional. 2017-05-24 18:52:37 +10:00
Pedro Martinez Mediano 39a5cadf06 RS functions now receive pointers to source/dest within pointset.
This helps with surrogate calculation and is convenient for later memory
optimisation.
2017-05-24 18:04:11 +10:00
Pedro Martinez Mediano 4cb9a9bb16 Fixed bug with surrogate digamma calculation. 2017-05-24 18:02:38 +10:00