GPU computing with the gputools package - R in...

44
GPU computing with the gputools package April 12, 2010 GPU computing with the gputools package

Transcript of GPU computing with the gputools package - R in...

Page 1: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

GPU computing with the gputools package

April 12, 2010

GPU computing with the gputools package

Page 2: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Overview

I Introduction.

I The package.

I W(h)ither gputools?

I Audience participation.

GPU computing with the gputools package

Page 3: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Overview

I Introduction.

I The package.

I W(h)ither gputools?

I Audience participation.

GPU computing with the gputools package

Page 4: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Overview

I Introduction.

I The package.

I W(h)ither gputools?

I Audience participation.

GPU computing with the gputools package

Page 5: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Overview

I Introduction.

I The package.

I W(h)ither gputools?

I Audience participation.

GPU computing with the gputools package

Page 6: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

GPU ≡ graphical processing unit

I Special–purpose coprocessor for graphics applications.

I Highly parallel hardware with 32–bit vector–processingcapabilities.

I Early numerical applications appear to be due to physicists(cf. www.gpgpu.org):

I Lattice–Boltzmann computations: Li et al., 2002.I Boundary–value problems: Goodnight et al., 2003.I Matrix algebra, dynamic applications: Moravanszky, 2003.

I Require specialized drivers, software to program - not easy.

I API’s from NVidia (“CUDA”) and ATI/AMD now freelyavailable.

I Math–capable GPU’s are now inexpensive. Standardequipment on many computers, including laptops.

GPU computing with the gputools package

Page 7: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

GPU ≡ graphical processing unit

I Special–purpose coprocessor for graphics applications.

I Highly parallel hardware with 32–bit vector–processingcapabilities.

I Early numerical applications appear to be due to physicists(cf. www.gpgpu.org):

I Lattice–Boltzmann computations: Li et al., 2002.I Boundary–value problems: Goodnight et al., 2003.I Matrix algebra, dynamic applications: Moravanszky, 2003.

I Require specialized drivers, software to program - not easy.

I API’s from NVidia (“CUDA”) and ATI/AMD now freelyavailable.

I Math–capable GPU’s are now inexpensive. Standardequipment on many computers, including laptops.

GPU computing with the gputools package

Page 8: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

GPU ≡ graphical processing unit

I Special–purpose coprocessor for graphics applications.

I Highly parallel hardware with 32–bit vector–processingcapabilities.

I Early numerical applications appear to be due to physicists(cf. www.gpgpu.org):

I Lattice–Boltzmann computations: Li et al., 2002.I Boundary–value problems: Goodnight et al., 2003.I Matrix algebra, dynamic applications: Moravanszky, 2003.

I Require specialized drivers, software to program - not easy.

I API’s from NVidia (“CUDA”) and ATI/AMD now freelyavailable.

I Math–capable GPU’s are now inexpensive. Standardequipment on many computers, including laptops.

GPU computing with the gputools package

Page 9: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

GPU ≡ graphical processing unit

I Special–purpose coprocessor for graphics applications.

I Highly parallel hardware with 32–bit vector–processingcapabilities.

I Early numerical applications appear to be due to physicists(cf. www.gpgpu.org):

I Lattice–Boltzmann computations: Li et al., 2002.I Boundary–value problems: Goodnight et al., 2003.I Matrix algebra, dynamic applications: Moravanszky, 2003.

I Require specialized drivers, software to program - not easy.

I API’s from NVidia (“CUDA”) and ATI/AMD now freelyavailable.

I Math–capable GPU’s are now inexpensive. Standardequipment on many computers, including laptops.

GPU computing with the gputools package

Page 10: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

GPU ≡ graphical processing unit

I Special–purpose coprocessor for graphics applications.

I Highly parallel hardware with 32–bit vector–processingcapabilities.

I Early numerical applications appear to be due to physicists(cf. www.gpgpu.org):

I Lattice–Boltzmann computations: Li et al., 2002.I Boundary–value problems: Goodnight et al., 2003.I Matrix algebra, dynamic applications: Moravanszky, 2003.

I Require specialized drivers, software to program - not easy.

I API’s from NVidia (“CUDA”) and ATI/AMD now freelyavailable.

I Math–capable GPU’s are now inexpensive. Standardequipment on many computers, including laptops.

GPU computing with the gputools package

Page 11: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

GPU ≡ graphical processing unit

I Special–purpose coprocessor for graphics applications.

I Highly parallel hardware with 32–bit vector–processingcapabilities.

I Early numerical applications appear to be due to physicists(cf. www.gpgpu.org):

I Lattice–Boltzmann computations: Li et al., 2002.I Boundary–value problems: Goodnight et al., 2003.I Matrix algebra, dynamic applications: Moravanszky, 2003.

I Require specialized drivers, software to program - not easy.

I API’s from NVidia (“CUDA”) and ATI/AMD now freelyavailable.

I Math–capable GPU’s are now inexpensive. Standardequipment on many computers, including laptops.

GPU computing with the gputools package

Page 12: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

I GPU–enabled numerical software becoming availablecommercially.

I Jacket, a Matlab accessory from Acclereyes.I Mathematica support.I Numerous standalone packages on NVidia website.

I Why not R?I Buckner et al. release “gputools” 0.1 in spring, 2009.

I Tools related to that group’s work looking for causal relationsin gene–expression data.

I Co–collaboration leads to paper submitted last summer.I “The gputools package enables GPU computing in R”I Buckner, Wilson, Seligman, Athey, Watson, MengI Bioinformatics, 2010 26(1):134–135

I Remains very much a work in progress.

GPU computing with the gputools package

Page 13: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

I GPU–enabled numerical software becoming availablecommercially.

I Jacket, a Matlab accessory from Acclereyes.I Mathematica support.I Numerous standalone packages on NVidia website.

I Why not R?

I Buckner et al. release “gputools” 0.1 in spring, 2009.I Tools related to that group’s work looking for causal relations

in gene–expression data.

I Co–collaboration leads to paper submitted last summer.I “The gputools package enables GPU computing in R”I Buckner, Wilson, Seligman, Athey, Watson, MengI Bioinformatics, 2010 26(1):134–135

I Remains very much a work in progress.

GPU computing with the gputools package

Page 14: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

I GPU–enabled numerical software becoming availablecommercially.

I Jacket, a Matlab accessory from Acclereyes.I Mathematica support.I Numerous standalone packages on NVidia website.

I Why not R?I Buckner et al. release “gputools” 0.1 in spring, 2009.

I Tools related to that group’s work looking for causal relationsin gene–expression data.

I Co–collaboration leads to paper submitted last summer.I “The gputools package enables GPU computing in R”I Buckner, Wilson, Seligman, Athey, Watson, MengI Bioinformatics, 2010 26(1):134–135

I Remains very much a work in progress.

GPU computing with the gputools package

Page 15: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

I GPU–enabled numerical software becoming availablecommercially.

I Jacket, a Matlab accessory from Acclereyes.I Mathematica support.I Numerous standalone packages on NVidia website.

I Why not R?I Buckner et al. release “gputools” 0.1 in spring, 2009.

I Tools related to that group’s work looking for causal relationsin gene–expression data.

I Co–collaboration leads to paper submitted last summer.I “The gputools package enables GPU computing in R”I Buckner, Wilson, Seligman, Athey, Watson, MengI Bioinformatics, 2010 26(1):134–135

I Remains very much a work in progress.

GPU computing with the gputools package

Page 16: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

I GPU–enabled numerical software becoming availablecommercially.

I Jacket, a Matlab accessory from Acclereyes.I Mathematica support.I Numerous standalone packages on NVidia website.

I Why not R?I Buckner et al. release “gputools” 0.1 in spring, 2009.

I Tools related to that group’s work looking for causal relationsin gene–expression data.

I Co–collaboration leads to paper submitted last summer.I “The gputools package enables GPU computing in R”I Buckner, Wilson, Seligman, Athey, Watson, MengI Bioinformatics, 2010 26(1):134–135

I Remains very much a work in progress.

GPU computing with the gputools package

Page 17: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Package highlights

I Contributions from MBNI team include:I Correlation - Pearson and Kendall (JB/JW): cor()I Granger causality (JB): granger.test from MSBVARI Hierarchical clustering (JB/JW): hclustI Spline–based mutual information (JB)I Matrix multiplication (cudablas wrapper): %*%I SVM training (wrapper): svm from e1071I SVD (wrapper): fastICA packageI attendant functions and package layout

GPU computing with the gputools package

Page 18: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

I Contributions from MLS include:I Linear, generalized linear modeling: lm(), glm()I Least–squares fit: lsfit()I Rank–revealing QR decomposition: qr()I Blocked, partial–pivoting QRI Matrix cross–products: crossprod()

GPU computing with the gputools package

Page 19: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Differences in contribution reflect complementaryapproaches

I JB:I Higher–level, although some key lower–level functions (e.g.,

matrix multiplication) also implemented.I Less oriented toward traditional numerical linear algebra, so

able to exploit richer set of concurrent algorithms.I By same token, implementation relies less on lower–level

libraries and more on hand–coded parallelism.I Relatively small communication costs result in 10x – 50+x

speedup over CPU–only implementations.

GPU computing with the gputools package

Page 20: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

I MLS:I Mostly lower–level utiltities, with same look and feel as their

base–package counterparts.I More like traditional NLA. In fact QR decomposition drives

much of the work.I Relies much more heavily on low–level libraries, viz., cudaBlas.I Communication costs higher (think Householder

transformations and block updates). 1000× 1000 matrixneeded for breakeven, more like 4000× 4000 needed to startseeing 10x. On the bright side, though, much bigger matricesnow treatable in “user time”.

GPU computing with the gputools package

Page 21: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Hardware, tools requirements

I CUDA–supporting GPU. Radeon not supported yet.

I CUDA driver and development tools, available as freedownloads from NVidia: compiler, libraries (cudaBLAS).

I gputools v0.2 supported on Linux, 32–bit Mac; available fromCRAN.

Beta versionsDownloadable from:http://brainarray.mbni.med.umich.edu/brainarray/rgpgpu/

I Just download and install. Run–time environment checks forpresence of the GPU. Emulator runs if no GPU present.

I Familiar R commands prefaced by “gpu”. E.g., gpuLm(),gpuCor(), . . . .

GPU computing with the gputools package

Page 22: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Hardware, tools requirements

I CUDA–supporting GPU. Radeon not supported yet.

I CUDA driver and development tools, available as freedownloads from NVidia: compiler, libraries (cudaBLAS).

I gputools v0.2 supported on Linux, 32–bit Mac; available fromCRAN.

Beta versionsDownloadable from:http://brainarray.mbni.med.umich.edu/brainarray/rgpgpu/

I Just download and install. Run–time environment checks forpresence of the GPU. Emulator runs if no GPU present.

I Familiar R commands prefaced by “gpu”. E.g., gpuLm(),gpuCor(), . . . .

GPU computing with the gputools package

Page 23: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Hardware, tools requirements

I CUDA–supporting GPU. Radeon not supported yet.

I CUDA driver and development tools, available as freedownloads from NVidia: compiler, libraries (cudaBLAS).

I gputools v0.2 supported on Linux, 32–bit Mac; available fromCRAN.

Beta versionsDownloadable from:http://brainarray.mbni.med.umich.edu/brainarray/rgpgpu/

I Just download and install. Run–time environment checks forpresence of the GPU. Emulator runs if no GPU present.

I Familiar R commands prefaced by “gpu”. E.g., gpuLm(),gpuCor(), . . . .

GPU computing with the gputools package

Page 24: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Hardware, tools requirements

I CUDA–supporting GPU. Radeon not supported yet.

I CUDA driver and development tools, available as freedownloads from NVidia: compiler, libraries (cudaBLAS).

I gputools v0.2 supported on Linux, 32–bit Mac; available fromCRAN.

Beta versionsDownloadable from:http://brainarray.mbni.med.umich.edu/brainarray/rgpgpu/

I Just download and install. Run–time environment checks forpresence of the GPU. Emulator runs if no GPU present.

I Familiar R commands prefaced by “gpu”. E.g., gpuLm(),gpuCor(), . . . .

GPU computing with the gputools package

Page 25: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Hardware, tools requirements

I CUDA–supporting GPU. Radeon not supported yet.

I CUDA driver and development tools, available as freedownloads from NVidia: compiler, libraries (cudaBLAS).

I gputools v0.2 supported on Linux, 32–bit Mac; available fromCRAN.

Beta versionsDownloadable from:http://brainarray.mbni.med.umich.edu/brainarray/rgpgpu/

I Just download and install. Run–time environment checks forpresence of the GPU. Emulator runs if no GPU present.

I Familiar R commands prefaced by “gpu”. E.g., gpuLm(),gpuCor(), . . . .

GPU computing with the gputools package

Page 26: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Some conclusions

I NLA–style kernels make heavy use of cudaBLAS calls. Verylittle device–level programming required for these. Keyconcerns here are minimizing communication, exploiting datalocality - e.g., blocking.

I These types of kernels have large breakeven sizes. The1000× 1000 observed for QR is in line with the literature,however.

I Some utilities exhibit more concurrency and achieve moredramatic speedups, with much lower breakeven size. Thesetend to require more device–level implementation, however.These tend to be less like kernels and more like higher–levelapplications.

GPU computing with the gputools package

Page 27: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Some conclusions

I NLA–style kernels make heavy use of cudaBLAS calls. Verylittle device–level programming required for these. Keyconcerns here are minimizing communication, exploiting datalocality - e.g., blocking.

I These types of kernels have large breakeven sizes. The1000× 1000 observed for QR is in line with the literature,however.

I Some utilities exhibit more concurrency and achieve moredramatic speedups, with much lower breakeven size. Thesetend to require more device–level implementation, however.These tend to be less like kernels and more like higher–levelapplications.

GPU computing with the gputools package

Page 28: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Some conclusions

I NLA–style kernels make heavy use of cudaBLAS calls. Verylittle device–level programming required for these. Keyconcerns here are minimizing communication, exploiting datalocality - e.g., blocking.

I These types of kernels have large breakeven sizes. The1000× 1000 observed for QR is in line with the literature,however.

I Some utilities exhibit more concurrency and achieve moredramatic speedups, with much lower breakeven size. Thesetend to require more device–level implementation, however.These tend to be less like kernels and more like higher–levelapplications.

GPU computing with the gputools package

Page 29: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

I Single–precision seems to be “good enough” for one–offinvocations, but where does this begin to break down?

I Questions:Are current problems of interest large enough to benefit from thesespeedups? Will we need to “expose the kernel”?

I Tracking R–base is a software–engineering hassle.

GPU computing with the gputools package

Page 30: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

I Single–precision seems to be “good enough” for one–offinvocations, but where does this begin to break down?

I Questions:Are current problems of interest large enough to benefit from thesespeedups? Will we need to “expose the kernel”?

I Tracking R–base is a software–engineering hassle.

GPU computing with the gputools package

Page 31: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

I Single–precision seems to be “good enough” for one–offinvocations, but where does this begin to break down?

I Questions:Are current problems of interest large enough to benefit from thesespeedups? Will we need to “expose the kernel”?

I Tracking R–base is a software–engineering hassle.

GPU computing with the gputools package

Page 32: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Low–hanging fruit

I Double precisionI DP now available in low–priced boardsI SP / DP ratio moving from 8x to 2x

I Rank–revealing options, as applicable.I Sampling, resampling tools

I CUDA–ready Mersenne TwisterI rnorm(), rgamma(), . . .I Ready applications in bootstrapping, MCMCI Also a CUDA–ready QRNG.

I Benchmarking: vs. mkl, as well as tuned libraries. Especially,identifying the break–even points

I Integration with other packages.

GPU computing with the gputools package

Page 33: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Low–hanging fruit

I Double precisionI DP now available in low–priced boardsI SP / DP ratio moving from 8x to 2x

I Rank–revealing options, as applicable.

I Sampling, resampling toolsI CUDA–ready Mersenne TwisterI rnorm(), rgamma(), . . .I Ready applications in bootstrapping, MCMCI Also a CUDA–ready QRNG.

I Benchmarking: vs. mkl, as well as tuned libraries. Especially,identifying the break–even points

I Integration with other packages.

GPU computing with the gputools package

Page 34: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Low–hanging fruit

I Double precisionI DP now available in low–priced boardsI SP / DP ratio moving from 8x to 2x

I Rank–revealing options, as applicable.I Sampling, resampling tools

I CUDA–ready Mersenne TwisterI rnorm(), rgamma(), . . .I Ready applications in bootstrapping, MCMCI Also a CUDA–ready QRNG.

I Benchmarking: vs. mkl, as well as tuned libraries. Especially,identifying the break–even points

I Integration with other packages.

GPU computing with the gputools package

Page 35: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Low–hanging fruit

I Double precisionI DP now available in low–priced boardsI SP / DP ratio moving from 8x to 2x

I Rank–revealing options, as applicable.I Sampling, resampling tools

I CUDA–ready Mersenne TwisterI rnorm(), rgamma(), . . .I Ready applications in bootstrapping, MCMCI Also a CUDA–ready QRNG.

I Benchmarking: vs. mkl, as well as tuned libraries. Especially,identifying the break–even points

I Integration with other packages.

GPU computing with the gputools package

Page 36: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Low–hanging fruit

I Double precisionI DP now available in low–priced boardsI SP / DP ratio moving from 8x to 2x

I Rank–revealing options, as applicable.I Sampling, resampling tools

I CUDA–ready Mersenne TwisterI rnorm(), rgamma(), . . .I Ready applications in bootstrapping, MCMCI Also a CUDA–ready QRNG.

I Benchmarking: vs. mkl, as well as tuned libraries. Especially,identifying the break–even points

I Integration with other packages.

GPU computing with the gputools package

Page 37: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Medium term

I AMD/ATI Radeon support, openCL

I Mutlicore–aware implementations

I Exposing kernels

GPU computing with the gputools package

Page 38: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Medium term

I AMD/ATI Radeon support, openCL

I Mutlicore–aware implementations

I Exposing kernels

GPU computing with the gputools package

Page 39: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Medium term

I AMD/ATI Radeon support, openCL

I Mutlicore–aware implementations

I Exposing kernels

GPU computing with the gputools package

Page 40: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Long term

I Playing well in all sorts of hardware environment: multipleGPU, CPU; clusters; clouds . . .

I Seamless integration: hardware details under the covers. Doyou really want to preface everything with “gpu”?

I Assimilation.

GPU computing with the gputools package

Page 41: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Long term

I Playing well in all sorts of hardware environment: multipleGPU, CPU; clusters; clouds . . .

I Seamless integration: hardware details under the covers. Doyou really want to preface everything with “gpu”?

I Assimilation.

GPU computing with the gputools package

Page 42: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Long term

I Playing well in all sorts of hardware environment: multipleGPU, CPU; clusters; clouds . . .

I Seamless integration: hardware details under the covers. Doyou really want to preface everything with “gpu”?

I Assimilation.

GPU computing with the gputools package

Page 43: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

Acknowledgments

The MBNI group wish to acknowledge their funding sources:

I J. Buckner, J. Wilson, and F. Meng are members of thePritzker Neuropsychiatric Disorders Research Consortium,which is supported by the Pritzker Neuropsychiatric DisordersResearch Fund LLC.

I This work is also partly supported by the National Center forIntegrated Biomedical Informatics through NIH grant1U54DA021519-01A1 to the University of Michigan.

GPU computing with the gputools package

Page 44: GPU computing with the gputools package - R in Financepast.rinfinance.com/agenda/2010/Buckner+Seligman.pdf · GPU graphical processing unit I Special{purpose coprocessor for graphics

MLS wishes to thank:

I Roger Ngouenet, XL Solutions

I Mark Troll, Rapid Biologics and Aaaron Thermal Technologies

I Dirk Eddelbuettel

I Chris Fraley, Insilicos LLC and UW Statistics

I Anne Greenbaum, UW AMath

GPU computing with the gputools package