![]() |
|
#1
|
|||
|
|||
|
For my project, I implemented Expectation Maximization of Gaussian Mixture Models with Nvidia's CUDA SDK. This allows me to run the EM algorithm in a massively parallel nature, resulting in order of magnitude speedups over the conventional C++ version.
![]() ![]() Links: Project Home Page Matlab File Exchange Report Source Code Bonus: Parallel IQAgent Readme contents: ABOUT ================================================== ============================== This is a parallel implementation of the Expectation Maximization algorithm for Gaussian Mixture Models, designed to run on NVidia graphics cards supporting CUDA. On my machine, it provides up to 60x performance increases. See the report available at http://andrewharp.com/gmmcuda for more information. The interesting code is all in gpugaumixmod.h and gpugaumixmod_kernel.h. The reference CPU implementation is in gaumixmod.h. It can be integrated into any C program on a CUDA enabled system. Additionally, Matlab integration is provided in gmm.cu. E-mail me with any questions or comments! COMPILING ================================================== ============================== You'll probably have trouble compiling as-is, as the config files are set up to run on my Windows Vista 64bit machine, but it's just a standard Cuda kernel underneath so it should be portable. A precompiled Windows 64-bit version is included. See compile.m for the command I use to compile the CUDA/Mex files. Go here to find the toolkit that contains the files you'll need for compiling on your platform: http://developer.nvidia.com/object/matlab_cuda.html RUNNING ================================================== ============================== Once compiled, start off by running gmm_example in Matlab to see it in action. See experiment1, experiment2, experiment3 for ready to run experiments -Andrew Harp Last edited by aharp; 05-07-2009 at 11:09 AM. Reason: added Matlab File Exchange link |
| Thread Tools | |
| Display Modes | |
|
|