lca13: exploiting arm gpu resources in open source software

14
GPGPU ON ARM Tom Gall [email protected]

Upload: linaro

Post on 13-Jun-2015

589 views

Category:

Technology


2 download

DESCRIPTION

Resource: LCA13 Name: Exploiting ARM GPU resources in Open Source Software Date: 07-03-2013 Speaker: Tom Gall

TRANSCRIPT

Page 1: LCA13: Exploiting ARM GPU resources in Open Source Software

GPGPU ON ARMTom Gall

[email protected]

Page 2: LCA13: Exploiting ARM GPU resources in Open Source Software

SESSION GOALS

• What activity should Linaro pursue?

• What open source projects should we work with?

Page 3: LCA13: Exploiting ARM GPU resources in Open Source Software

BOUNDARIES

• Lets not do any PHD dissertations

• Output must be open source

• Optimized stack should of course advance member goals

Page 4: LCA13: Exploiting ARM GPU resources in Open Source Software

PARALLEL COMPUTING

Granularity

NEONGrid OpenStack MPI/OpenMPI OpenMP/pthreads

Multi-machine Single machine

Page 5: LCA13: Exploiting ARM GPU resources in Open Source Software

OPEN CL

• Originally proposed by Apple

• API for using your resources including the GPU as a general purpose power house

• Khronos standard (holders of OpenGL)

• Open Compute Language

• ANSI-C99 w additions

• Open = anyone can implement

Page 6: LCA13: Exploiting ARM GPU resources in Open Source Software

HSA

• Heterogeneous System Architecture

• hsafoundation.com

• HSA standards out for review

• A better OpenCL

• Better debug, HSAIL

Page 7: LCA13: Exploiting ARM GPU resources in Open Source Software

QUALITIES IN A CANDIDATE

• Task parallelism

• Break up task over threads

• Data parallelism

• Same operation over lots of data

• Big wins for computationally significant data parallel algs

• Bad

• Lots of pointer chasing

• Calculations that require lots of communication or result dependent

Page 8: LCA13: Exploiting ARM GPU resources in Open Source Software

PROJECTS

• Libjpeg vs libjpeg turbo

• SQLite

• Hadoop - map reduce

• HipHop?

Page 9: LCA13: Exploiting ARM GPU resources in Open Source Software

LIBJPEG

• Software, NEON, OpenCL comparison possible

• Android & Linux

• code.google.com/p/jpeg-opencl/source/checkout

Page 10: LCA13: Exploiting ARM GPU resources in Open Source Software

SQLITE

• Cuda (nVidia only)

• Implemented subset of SQLite vm on gpu

• Pbbakkum.com/db

• Claim of 20x-70x

• Source available, we could port to OpenCL

Page 11: LCA13: Exploiting ARM GPU resources in Open Source Software

HADOOP

• MapReduce is a major piece of Hadoop

• http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=6227786

• Measured 1.6-2x improvement

• Used jocl (java bindings for OpenCL)

• Source?

Page 12: LCA13: Exploiting ARM GPU resources in Open Source Software

PIGLIT

• Mesa test suite

• Includes a number of OpenCL tests

• Should be fairly straight forward to add to LAVA

• Linux

• Android

Page 13: LCA13: Exploiting ARM GPU resources in Open Source Software

GRAND CENTRAL

• libdispatch - open source

• http://libdispatch.macosforge.org

• Can go hand in hand with OpenCL

• Needs llvm, libkqueue, blocks runtime

Page 14: LCA13: Exploiting ARM GPU resources in Open Source Software

MORE?