LCA13: Exploiting ARM GPU resources in Open Source Software
-
Upload
linaro -
Category
Technology
-
view
590 -
download
2
description
Transcript of LCA13: Exploiting ARM GPU resources in Open Source Software
![Page 2: LCA13: Exploiting ARM GPU resources in Open Source Software](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/4.jpg)
PARALLEL COMPUTING
Granularity
•
NEONGrid OpenStack MPI/OpenMPI OpenMP/pthreads
Multi-machine Single machine
![Page 5: LCA13: Exploiting ARM GPU resources in Open Source Software](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/8.jpg)
PROJECTS
• Libjpeg vs libjpeg turbo
• SQLite
• Hadoop - map reduce
• HipHop?
![Page 9: LCA13: Exploiting ARM GPU resources in Open Source Software](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022060115/557b2bbdd8b42a726a8b5519/html5/thumbnails/14.jpg)
MORE?