GPUML 
Graphical Processing Units for Machine Learning

Welcome to the GPUML library home page. GPUML is a library that provides a C/C++ and MATLAB interface for speeding up the computation of the weighted kernel summation and kernel matrix construction on GPU. These computations occur commonly in several machine learning algorithms like kernel density estimation, kernel regression, kernel PCA, etc. The algorithms used to implement the library are as below. 
Algorithm to evaluate kernel sums on GPUs: 
Data: Source points
x_{i}; i=1,..,N,
evaluation points y_{j}; j=1,..,M 
Algorithm to construct kernel matrix on GPUs: 
Data: Source points x_{i},
i=1,...,N, evaluation points y_{j},j=1,...,M
GPU based matrix decompositions are available here (by Volkov Vasily) and can be used as is on top of our approach. 
Related Publications: 

Authors: 
The library was written by Balaji Vasan Srinivasan and Qi Hu under the supervision of Prof. Ramani Duraiswami. Please provide your valuable feedback by mailing the primary author at balajiv(at)umiacs(dot)umd(dot)edu. 
License: 
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; version 2.1 or later. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. 
Download: 
Click here to download the current version. Also available from mloss.org. 
Citation: 
If you are using GPUML for your work, please cite the following paper: Srinivasan BV, Qi H, Duraiswami R, "GPUML: Graphical processors for speeding up kernel machines", Workshop on High Performance Analytics  Algorithms, Implementations, and Applications, Siam Conference on Data Mining, April 2010 