m ltimulti-gpu s t f gpu support for pp matlab ui j ... · gallagher pryorgallagher pryor, james...

1
M lti GPU S t f MATLAB ® U i J kt Multi-GPU Support for MATLAB ® Using Jacket Multi-GPU Support for MATLAB Using Jacket w w w a c c e l e r e y e s c o m w w w . a c c e l e r e y e s . c o m Gallagher Pryor James Malcolm John Melonakos Tauseef ur Rehman Gallagher Pryor, James Malcolm, John Melonakos, Tauseef ur Rehman {gallagher pryor@, malcolm@, john melonakos@, tauseef rehman@}accelereyes com {gallagher.pryor@, malcolm@, john.melonakos@, tauseef.rehman@}accelereyes.com 75 5 th Street Suite 204 Atlanta GA USA 75 5 th Street, Suite 204, Atlanta, GA, USA Ab t t Jacket Architecture Abstract Jacket Architecture Abstract I hi f fJ k Th In this poster, we present new features of Jacket: The GPU Engine for MATLAB® that enable scientific GPU Engine for MATLAB® that enable scientific ti GPU Th i ld h d tf computing on GPUs. These include enhanced support for data and task parallel algorithms using ‘gfor ’ and multi- data and task parallel algorithms using gfor and multi GPU programming constructs that work seamlessly with GPU programming constructs that work seamlessly with h MATLAB' P ll l C i T lb (PCT) d the MATLAB's Parallel Computing Toolbox (PCT) and Distributed Computing Server (DCS) as well as sparse Distributed Computing Server (DCS), as well as sparse tf BLAS f ti i l di it i ti support for BLAS functions including point-wise matrix arithmetic and matrix-vector multiplications. arithmetic and matrix vector multiplications. J k i f l f f h id d l f Jacket is a software platform for the rapid development of general purpose GPU (GPGPU) computing applications general purpose GPU (GPGPU) computing applications ithi th MATLAB ti i tI dditi t within the MATLAB computing environment. In addition to providing low-level GPGPU graphics and computing providing low level GPGPU graphics and computing capabilities within MATLAB Jacket includes a JIT capabilities within MATLAB, Jacket includes a JIT il i h i i hi h MATLAB i compilation mechanism within the MATLAB environment that translates MATLAB code to GPGPU assembly code that translates MATLAB code to GPGPU assembly code d d on demand.. B fit t U Benefit to Projects Benefit to Users Benefit to Projects ¾ Speed: Jacket enabled programs tap into the parallel ¾ Rapid Prototyping: Now you can leverage the rapid prototyping benefits of MATLAB ¾ Speed: Jacket-enabled programs tap into the parallel ¾ Rapid Prototyping: Now you can leverage the rapid prototyping benefits of MATLAB i GPU i computing power of the GPU. The GPU version of in your GPU programming. common programs achieves great speed improvements common programs achieves great speed improvements i l t CPU i ¾ GPU Taste Testing: AccelerEyes technology enables you to taste test the benefits of over equivalent CPU versions. ¾ GPU Taste Testing: AccelerEyes technology enables you to taste test the benefits of the GPU before investing a lot of time and money in expensive developmental programs. ¾ User Friendly: Jacket is not another GPU API Rather the GPU before investing a lot of time and money in expensive developmental programs. ¾ User Friendly: Jacket is not another GPU API. Rather ¾ Eli i ti th P t J kt li i t th t Y MATLAB d i l it GPU-enables standard MATLAB code. Jacket users ¾ Eliminating the Port: Jacket eliminates the port. Y our MATLAB code can runs in real benefit from the user-friendly MATLAB environment time by leveraging the power of GPUs within the MATLAB environment benefit from the user-friendly MATLAB environment. time by leveraging the power of GPUs within the MATLAB environment. ¾ Visualization: Jacket's Graphics Toolbox brings the ¾ Embedded GPUs: With AccelerEyes' upcoming Runtime Build Target for GPUs, you ¾ Visualization: Jacket s Graphics Toolbox brings the full power of OpenGL graphics to MATLAB code ¾ Embedded GPUs: With AccelerEyes upcoming Runtime Build Target for GPUs, you will be able to program embedded GPUs for your application full power of OpenGL graphics to MATLAB code. will be able to program embedded GPUs for your application. M lti GPU S t Multi-GPU Support Multi GPU Support J k t12 i ld f ti lit t l l tili lti l GPU ith i th hi t k i th MATLAB P ll l C ti T lb d th MATLAB di t ib t d Jacket 1.2 now includes functionality to seamlessly utilize multiple GPUs either in the same machine or across a network via the MATLAB Parallel Computing Toolbox and the MATLAB distributed Computing Server With the simple addition of well known parallel constructs such as PARFOR SPMD or co-distributed arrays pre-existing code may be dispatched across all GPUs and CPUs in a Computing Server. With the simple addition of well known parallel constructs such as PARFOR, SPMD, or co distributed arrays, pre existing code may be dispatched across all GPUs and CPUs in a Personal Super Computer or a cluster In many cases little to no code revision is required to take advantage of this new parallel computing capability Personal Super Computer or a cluster . In many cases, little to no code revision is required to take advantage of this new parallel computing capability. Jacket's new ability to span computation across multiple GPUs either locally or over a network allows for an unprecedented ability to transparently scale GPU and CPU computing resources Jacket s new ability to span computation across multiple GPUs either locally or over a network allows for an unprecedented ability to transparently scale GPU and CPU computing resources. Additi l GPU dd d t h t b i t tl tili d ith t d difi ti i l i t th b f MATLAB k i th MATLAB d t Wh h ti t Additional GPUs added to a host may now be instantly utilized without a code modification - simply increment the number of MATLAB workers via the MATLAB command prompt. When a host is not capable of driving more GPUs simply add a GPU to another host on the network and drive it via the MATLAB Distributed Computing Server With the addition of Jacket capable of driving more GPUs, simply add a GPU to another host on the network and drive it via the MATLAB Distributed Computing Server. With the addition of Jacket, pre existing CPU clusters may be upgraded through the installation of GPUs significantly increasing the cluster's computational capability without investing in new development for specialized GPU pre-existing CPU clusters may be upgraded through the installation of GPUs, significantly increasing the cluster's computational capability without investing in new development for specialized GPU code. MATLAB paired with Jacket 1.2 is the easiest and most scalable solution for GPU computing available. Sparse Support Jacket Applications Sparse Support Jacket Applications Bl k Shl 143 FFT 16 D D li 70 Sparse matrix multiplication is an important enhancement for Black Scholes 143x FFT 16x Drug Delivery 70x 40x 2D FDTD 7 Sparse matrix multiplication is an important enhancement for 2D FDTD 7x Jacket, being introduced with version 1.2. Sparse matrices arise in many applications naturally and effectively arise in many applications naturally, and effectively ti d i l ti h t t i representing and manipulating such sparse structures is an important necessity The following is now supported: important necessity . The following is now supported: 10x 10x 1. Creation of Sparse Matrices il ( d( 10 10 0 2 ) ) A = gsingle( sprand( 10,10,0.2 ) ); 2 Sparse Maxtrix x Dense Matrix/Vector 2. Sparse Maxtrix x Dense Matrix/Vector X = grand( 10 ); X = grand( 10 ); B = A × X;

Upload: others

Post on 09-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: M ltiMulti-GPU S t f GPU Support for pp MATLAB Ui J ... · Gallagher PryorGallagher Pryor, James MalcolmJames Malcolm, John MelonakosJohn Melonakos, TauseefTauseef ur Rehman ... malcolm@,@,

M lti GPU S t f MATLAB® U i J k tMulti-GPU Support for MATLAB® Using JacketMulti-GPU Support for MATLAB Using Jacketpp gw w w a c c e l e r e y e s c o mw w w . a c c e l e r e y e s . c o m

Gallagher Pryor James Malcolm John Melonakos Tauseef ur RehmanGallagher Pryor, James Malcolm, John Melonakos, Tauseef ur Rehman{gallagher pryor@, malcolm@, john melonakos@, tauseef rehman@}accelereyes com{gallagher.pryor@, malcolm@, john.melonakos@, tauseef.rehman@}accelereyes.com

75 5th Street Suite 204 Atlanta GA USA75 5th Street, Suite 204, Atlanta, GA, USA

Ab t t Jacket ArchitectureAbstract Jacket ArchitectureAbstract

I hi f f J k ThIn this poster, we present new features of Jacket: The p pGPU Engine for MATLAB® that enable scientificGPU Engine for MATLAB® that enable scientific

ti GPU Th i l d h d t fcomputing on GPUs. These include enhanced support for data and task parallel algorithms using ‘gfor’ and multi-data and task parallel algorithms using gfor and multiGPU programming constructs that work seamlessly withGPU programming constructs that work seamlessly with h MATLAB' P ll l C i T lb (PCT) dthe MATLAB's Parallel Computing Toolbox (PCT) and p g ( )

Distributed Computing Server (DCS) as well as sparseDistributed Computing Server (DCS), as well as sparse t f BLAS f ti i l di i t i t isupport for BLAS functions including point-wise matrix

arithmetic and matrix-vector multiplications.arithmetic and matrix vector multiplications.

J k i f l f f h id d l fJacket is a software platform for the rapid development of p p pgeneral purpose GPU (GPGPU) computing applicationsgeneral purpose GPU (GPGPU) computing applications

ithi th MATLAB ti i t I dditi twithin the MATLAB computing environment. In addition to providing low-level GPGPU graphics and computingproviding low level GPGPU graphics and computing capabilities within MATLAB Jacket includes a JITcapabilities within MATLAB, Jacket includes a JIT

il i h i i hi h MATLAB icompilation mechanism within the MATLAB environment pthat translates MATLAB code to GPGPU assembly codethat translates MATLAB code to GPGPU assembly code

d don demand..

B fit t U Benefit to ProjectsBenefit to Users Benefit to Projectsj

Speed: Jacket enabled programs tap into the parallel Rapid Prototyping: Now you can leverage the rapid prototyping benefits of MATLABSpeed: Jacket-enabled programs tap into the parallel Rapid Prototyping: Now you can leverage the rapid prototyping benefits of MATLAB i GPU icomputing power of the GPU. The GPU version of in your GPU programming.p g p

common programs achieves great speed improvementsy p g g

common programs achieves great speed improvements i l t CPU i GPU Taste Testing: AccelerEyes technology enables you to taste test the benefits ofover equivalent CPU versions. GPU Taste Testing: AccelerEyes technology enables you to taste test the benefits of

the GPU before investing a lot of time and money in expensive developmental programs.User Friendly: Jacket is not another GPU API Rather

the GPU before investing a lot of time and money in expensive developmental programs.User Friendly: Jacket is not another GPU API. Rather

Eli i ti th P t J k t li i t th t Y MATLAB d i lit GPU-enables standard MATLAB code. Jacket users Eliminating the Port: Jacket eliminates the port. Your MATLAB code can runs in real benefit from the user-friendly MATLAB environment

g ptime by leveraging the power of GPUs within the MATLAB environmentbenefit from the user-friendly MATLAB environment. time by leveraging the power of GPUs within the MATLAB environment.

Visualization: Jacket's Graphics Toolbox brings the Embedded GPUs: With AccelerEyes' upcoming Runtime Build Target for GPUs, you Visualization: Jacket s Graphics Toolbox brings the full power of OpenGL graphics to MATLAB code

Embedded GPUs: With AccelerEyes upcoming Runtime Build Target for GPUs, you will be able to program embedded GPUs for your applicationfull power of OpenGL graphics to MATLAB code. will be able to program embedded GPUs for your application.

M lti GPU S tMulti-GPU SupportMulti GPU Support

J k t 1 2 i l d f ti lit t l l tili lti l GPU ith i th hi t k i th MATLAB P ll l C ti T lb d th MATLAB di t ib t dJacket 1.2 now includes functionality to seamlessly utilize multiple GPUs either in the same machine or across a network via the MATLAB Parallel Computing Toolbox and the MATLAB distributed y y p p gComputing Server With the simple addition of well known parallel constructs such as PARFOR SPMD or co-distributed arrays pre-existing code may be dispatched across all GPUs and CPUs in aComputing Server. With the simple addition of well known parallel constructs such as PARFOR, SPMD, or co distributed arrays, pre existing code may be dispatched across all GPUs and CPUs in a Personal Super Computer or a cluster In many cases little to no code revision is required to take advantage of this new parallel computing capabilityPersonal Super Computer or a cluster. In many cases, little to no code revision is required to take advantage of this new parallel computing capability.

Jacket's new ability to span computation across multiple GPUs either locally or over a network allows for an unprecedented ability to transparently scale GPU and CPU computing resourcesJacket s new ability to span computation across multiple GPUs either locally or over a network allows for an unprecedented ability to transparently scale GPU and CPU computing resources. Additi l GPU dd d t h t b i t tl tili d ith t d difi ti i l i t th b f MATLAB k i th MATLAB d t Wh h t i tAdditional GPUs added to a host may now be instantly utilized without a code modification - simply increment the number of MATLAB workers via the MATLAB command prompt. When a host is not y y p y p pcapable of driving more GPUs simply add a GPU to another host on the network and drive it via the MATLAB Distributed Computing Server With the addition of Jacketcapable of driving more GPUs, simply add a GPU to another host on the network and drive it via the MATLAB Distributed Computing Server. With the addition of Jacket,pre existing CPU clusters may be upgraded through the installation of GPUs significantly increasing the cluster's computational capability without investing in new development for specialized GPUpre-existing CPU clusters may be upgraded through the installation of GPUs, significantly increasing the cluster's computational capability without investing in new development for specialized GPU code. MATLAB paired with Jacket 1.2 is the easiest and most scalable solution for GPU computing available.p p g

Sparse Support Jacket ApplicationsSparse Support Jacket ApplicationsBl k S h l 143 FFT 16 D D li 70

Sparse matrix multiplication is an important enhancement forBlack Scholes 143x FFT 16x Drug Delivery 70x40x

2D FDTD 7Sparse matrix multiplication is an important enhancement for 2D FDTD 7xJacket, being introduced with version 1.2. Sparse matrices Jac et, be g t oduced t e s o Spa se at cesarise in many applications naturally and effectivelyarise in many applications naturally, and effectively

ti d i l ti h t t irepresenting and manipulating such sparse structures is an p g p g pimportant necessity The following is now supported:important necessity. The following is now supported:

10x10x

1. Creation of Sparse MatricesC eat o o Spa se at ces

i l ( d( 10 10 0 2 ) )A = gsingle( sprand( 10,10,0.2 ) );

2 Sparse Maxtrix x Dense Matrix/Vector2. Sparse Maxtrix x Dense Matrix/Vector

X = grand( 10 );X = grand( 10 );B = A × X;