Buckner_GPU-R_BOSC2009

804 views

Published on

Published in: Technology, Education, Sports
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
804
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Buckner_GPU-R_BOSC2009

  1. 1. Enabling GPU Computing in the R Statistical Environment Josh Buckner bucknerj@umich.edu Molecular & Behavioral Neuroscience Institute University of Michigan Ann Arbor, MI 48109
  2. 2. Josh Buckner, Manhong Dai, Brian Athey, Stanley Watson and Fan Meng Support from: Pritzker Neuropsychiatric Disorders Consortium National Center for Integrative Biomedical Informatics Center for Computational Biology and Medicine
  3. 3. Motivation ● Default R install – Desktop – Single thread of execution ● Cost of traditional cluster
  4. 4. nVidia CUDA ● Free toolkit ● Inexpensive readily available desktop hardware ● Simple extension of C ● Lots of documentation
  5. 5. gpuGranger ● Granger-causality test ● statistic measuring whether sequence a predicts the values of seqence b better than b alone
  6. 6. gpuCor ● Pearson ● pairwise complete Pearson ● Kendall
  7. 7. gpuClust ● hierarchical cluster w/ variety of methods ● gpuDistClust
  8. 8. gpuSvmTrain and gpuSvmPredict ● R front end for Austin Carpenter's cuSVM
  9. 9. gpuMi ● B-spline based mutual information calculation
  10. 10. Other Functions ● gpuDist ● gpuMatMult ● gpuLr ● gpuQr ● gpuSolve
  11. 11. Future Functions ● From our new collaborator: Rapid Biologics ● gpuGlm – generalized linear model fit ● gpuLm – linear model fit ● gpuLsFit – least squares fit lsfit respectively
  12. 12. Results (single thread of execution)
  13. 13. How? ● Use nvcc to produce shared object with C calling convention
  14. 14. rinterface.h extern “C” void rSetDevice(const int * device);
  15. 15. rinterface.c #include<rinterface.h> #include<cuda.h> void rSetDevice(const int * device) { cudaSetDevice(*device); }
  16. 16. gpuSetDevice.R gpuSetDevice ← function(deviceId) { .C(“rSetDevice”, as.integer(deviceId)) }
  17. 17. Contributors ● Molecular & Behavioral Neuroscience Institute at University of Michigan ● Rapid Biologics, Seattle, Washington ● You!
  18. 18. Availability ● http://brainarray.mbni.med.umich.edu/brainarray/Rgpgpu ● http://cran.r-project.org/web/packages/gputools/index.htm ● bucknerj@umich.edu
  19. 19. References Carpenter,A. (2009) http://patternsonascreen.net/cuSVM.html. Daub,C. et al. (2004) Estimating mutual information using B-spline functions – an improved similarity measure for analysing gene expression data, BMC Bioinformatics, 5:118 Kaminski,M. et al. (2001) Evaluating causal relations in neural systems: granger causality, directed transfer function and statistical assessment of significance, Biol Cybern, Vol. 85, No. 2, 145—157.

×