Session ID: SFO17-215
Session Name: A Functional Open GPU Upon ARM - SFO17-215
Speaker: Fabricio Toloczko
Track: LITE
★ Session Summary ★
GPGPUs (General Purpose Graphics Processing Unit) are becoming a relevant functional block on SoCs, particularly on the ARM ecosystem. Extracting full performance of a GPU is now becoming a combination of well integrated and optimized software and hardware. Motivated by that, there are many open GPU initiatives around the world using FPGAs, but most (if not all) of these are on Intel platforms. This project aims to present an open GPU based on a FPGA using the ARM Instruction Set. The driver platform adopted was the well known MESA 3D (www.mesa3d.org). We will describe the co-design approach to designing the OpenGPU. A fully functional hardware and software implementation of the OpenGPU working on a range of OpenGL applications ported by Linaro will be shown. On the fly we will change drivers between: software model only, native software and hardware (OpenGPU) on FPGA, to see its performance impact. The engineers that implemented this system will be at the session to support detailed technical questions.
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/sfo17/sfo17-215/
Presentation:
Video: https://www.youtube.com/watch?v=OI7F_ra-H3E
---------------------------------------------------
★ Event Details ★
Linaro Connect San Francisco 2017 (SFO17)
25-29 September 2017
Hyatt Regency San Francisco Airport
---------------------------------------------------
Keyword:
'http://www.linaro.org'
'http://connect.linaro.org'
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961
2. ENGINEERS AND DEVICES
WORKING TOGETHER
Why develop an Open GPU?
● Because it’s cool! :)
And because we need
● Open hardware for new tools, methodologies and IPs
● Free access to knowledge and technologies
● A complete system oriented GPU implementation
Some applications
● New methodologies and hardware testbenches
● Specific fixed functions for scientific or industrial purposes
● Video codification, image processing and data compression
3. ENGINEERS
AND DEVICES
WORKING
TOGETHER
OpenGPU: specs
Software
● Mesa3D using Gallium softpipe implementation
● Software stack runs on Linux
● Immediate graphics pipeline implemented
● OpenGL compatible(API version 3.0 for Terasic DE1 SoC
board)
Hardware
● Functional and synthesizable rasterizer
● Expansible to other important hardware parts
5. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenGPU: system
OpenGPU
driver
SYSTEMMEMORY
OpenGPU
hardware
FPGA
SoC
CPU
Gallium
Mesa3D
6. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenGPU: current hardware
OpenGPU driver
(Softpipe modified
implementation)
SYSTEM
MEMORY
OpenGPU
hardware
Rasterizer
Triangles and Coordinates
Quad Fragments
9. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenGPU: demonstration!
● Linux 4.5.0, Ubuntu LXDE
● Mesa3D 12.1.0
● Terasic DE-1 SoC board
● Altera Cyclone V SoC FPGA
● ARM CPU
● Rasterizer used 847 LUTs
● Complete FPGA SoC integration with other system hardware: 18608 LUTs
10. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenGPU: objectives
● Open hardware
● Easy to develop
● Easy integration with other hardware implementations
● Framework for graphics processing
● Framework for general purpose processing
12. ENGINEERS AND DEVICES
WORKING TOGETHER
OpenGPU: next steps
● Improve memory management using DMA approach
● Shader development
● LLVM for runtime compiling or shader optimization
● Video codification framework
● Optimize software stack
13. ENGINEERS
AND DEVICES
WORKING
TOGETHER
OpenGPU: next steps
● Improve memory management using DMA approach
● Shader development
● LLVM for runtime compiling or shader optimization
● Video codification framework
● Optimize software stack