All:
A new version of Shamrock implementing the OpenCL v1.2 spec, based
on LLVM/clang v3.6, is now available at:
https://git.linaro.org/gpgpu/shamrock.git , tag 'shamrock_v1.2'.
This has been validated on both ARMv7 (Chromebook 2) and ARMv8
(HiKey board) using Khronos conformance and piglit testing.
This is based on the clover OpenCL project:
http://people.freedesktop.org/~steckdenis/clover
and on the contributions from Texas Instruments for the Keystone II
Platform: (TI provides full OpenCL DSP Device support separately)
git.ti.com/opencl
and adding contributions from Linaro for ARM CPU Device support.
See the README for details.
Many thanks to the contributors who have assisted in the port to ARM
and to LLVM/MCJIT:
Tom Gall
Show Liu
Jia Jia
Renato Golin
Best Regards,
- Gil
This is a high level summary of LMG engineering activities for the 1/2
half of January 2015. I've compiled this information from the weekly
status meetings that each sub team holds over irc. Errors are mine.
This is an experiment and feedback is most welcome.
Across the board the team is very busy with Connect prep work
including demos and presentations. LMG will have a lightning session
as well as 5 presenting sessions.
The Android team has also put together several conference proposals
for the Android Builders Summit in March.
Android
======
Bero Rosenkränzer
YongQin Liu
Peter Pan
Yanbin Fang
Xavier Xsu
Bero has been building, booting and measuring Android with Clang 3.6,
gcc 4.9 and gcc 5.0
YongQin has put together the Java App benchmark report
Peter and Bero have been looking at L memory consumption and has put
together a wiki page of information.
Peter has also been working on enablement of lunch for dev/linaro
Xavier is looking at the performance impacts of different compiler
flags on Android builds
Yanbin is following up with all the uses of SSL across Android to
understand who is making use of the system SSL as compared to having
their own copy. As the system SSL has been optimized we want to make
sure that the other uses are improved as well.
Yanbin has also been working on porting Bionic optimizations
LCR for the month of January has been moved up to Android 5.0.2. We've
had several issues with LAVA that have been blockers for us, this has
included the inability to run CTS. We thank both Builds and Baselines
through Vishal as well as the LAVA team for their assistance and
direct involvement.
GPGPU
======
Gil Pitney
Show Liu
The work to extend Shamrock to support OpenCL 1.2 has been looked at
and documented in card-934. Gil has been leading up this work.
Show has begun efforts to look into OpenMP and what state it is in
across gcc 4.6, 4.9 and Clang. He is creating a wiki page of his
experiences. OpenMP on Android has suffered from critical bugs that
limit how it may be used. We are curious as to that status of those
past bugs as well as where arm64 support is at with OpenMP in general
in preparation to address member related OpenMP requests.
LMG Kernel
==========
Sumit Semwal
Amit Pundir
Grygorii Strashko
The 3.14 LSK/Android kernel has been a focus item. We do see an uptick
in Google activity in their own 3.14 kernel branch.
A card for base hibernation support is being drafted. This is a piece
of the effort to enable TuxOnIce functionality. Gregorii is focused on
this 100%
Amit has been working on Android gadgets upstreaming and helping out
with the juno kernels and release oriented activities.
Media & Gfx
=========
Benjamin Gaignard
Paramanand Singh
Neil Wong
Jia JIa (Missing, no status)
Benjamin is looking into secure media using dma-buf. He is also
looking into media framework efforts involving v4l and gstreamer for
Android. This is preliminary work in the anticipation of what will be
a proposed epic in the area.
Benjamin has been working with ARM who have picked up the hwcomposer
reference implementation for their own purposes. He has been including
some patches and feedback from them.
Neil has been working on libjpeg-turbo to integrate that into the
Linaro Confectionery Release. As upstream efforts with libjpeg-turbo
are paused he will be pitching in with the Android team.
Paramandir has been putting together automated tests for the libvxp.
--
Regards,
Tom
"Where's the kaboom!? There was supposed to be an earth-shattering
kaboom!" Marvin Martian
Director, Linaro Mobile Group
Tech Lead, Chromium, ChromeOS, Graphics, GPGPU
Linaro.org │ Open source software for ARM SoCs
irc: tgall_foo | skype : tom_gall
This is a CPU implementation of OpenCL v1.1, available at:
https://git.linaro.org/gpgpu/shamrock.git
This is based on the clover OpenCL project:
http://people.freedesktop.org/~steckdenis/clover
and on the contributions from Texas Instruments for the Keystone II
Platform: (TI provides full OpenCL DSP Device support separately)
git.ti.com/opencl
and adding contributions from Linaro for ARM CPU Device support.
See the README for more details.
Many thanks to the contributors who have assisted in the port to ARM and to
LLVM/MCJIT:
Tom Gall
Show Liu
Jia Jia
Renato Golin
Best Regards,
- Gil
For those that follow my blog at http://fullshovel.wordpress.com know
I've been working on a prototype to accelerate sqlite with OpenCL.
http://fullshovel.wordpress.com/2014/03/26/details-early-benchmarks-of-open…
The code is now posted:
http://git.linaro.org/git/people/tom.gall/sq-cl.git
>From the README:
-------------------------------------------------------------------------------------------------------------------------
Hi!
This work represents an interesting idea. That is, what would the
performance improvement be
using OpenCL/Renderscript to accelerate sqlite on an ARM based device.
(Yes non-ARM
counts too.)
Goals:
0) stay compatible with SQLite APIs
1) Accelerate SQLite for the general case.
a) SQL -> machine generated OpenCL
b) SQL -> HSAIL / SPIR
c) SQL -> Renderscript
3) Support running on Android, Linux and OSX.
4) Support use of Renderscript on Android
Much of what is possible isn't tied to sqlite and could easily work
for other databases or
object data stores.
You can find me on irc via irc.freenode.net. (Look for tgall,
tgall_foo or Dr_Who) I'm
usually in #linaro, #linaro-gfx as well as other channels.
I'm also tom_gall on twitter and g+ too. My blog can be found at
http://fullshovel.wordpress.com. I post performance fndings from time to time.
-----------------------------------------------------------------------------------------
v.01
Initial git commit (and push)
It is in every way an early prototype. It has bugs. It is incomplete.
It does not
solve general purpose problems.
13 test sql statements run and yield positive results.
I'm in the midst of converting over to make more use of vectors which
is yielding
even more performance.
Known bugs:
- vectorized versions sql1rc.cl sql3rc.cl both miss two rows that
they should be
matching.
-----------------------------------------------------------------------------------------
Build:
./build.sh to build. Note the build system sucks. And when I say sucks
I really mean it.
I'm basically hard locked to the Mali device drivers on a chromebook
but obviously it
would be really simple to adjust that for your system.
This will build sq-cl and sq-cl.dbg
sq-cl is nothing more than a driver for the 13 test sql statements and
depending on
parameters passed running an opencl implementation of one of those
test statements.
Run:
This is REALLY rough right now and will strongly change as things become more
general purposes. I needed a way to drive a sort of API design. It's ugly now
in order to feel out what that might look like on the journey to address the
general case.
Ex: sq-cl sql1.cl 1 1 1 0 0 0 0 s
The first param is the name of the currently hand coded OpenCL kernel to use.
The next 7 numbers are a bitmask about what columns the query will use from the
database which by the way is currently hard coded. 1, use that column. 0 don't.
The next value is either s or f. Slow or Fast. It's use 64 or 128 Work Units.
For sql11-sql13 there is an additional parameter due to the different type of
query being used. a b c.
For sql1rc.cl, sql3rc.cl and other OpenCL kernels that use the faster
vector approach
use the parameter d.
-----------------------------------------------------------------------------------------
Where from here?
- Convert the rest of the 13 tests sql statements to vectorized versions.
- Convert to using column shards for everything.
- Start to hook into sqlite's SQL engine.
- Generate skeleton OpenCL kernels.
- Determine where break even point is for shipping operations to the GPU.
- Clean up, resource clean up.
- Deal with 64 types properly on 64 bit systems.
- Add use of the autotools or CMake.
O. I take patches. Please. Seriously.
-----------------------------------------------------------------------------------------
Thank you.
Thanks to Peter Bakkum and Kevin Skadron for their Cuda based
accelerated SQLite. Your
paper http://www.cs.virginia.edu/~skadron/Papers/bakkum_sqlite_tr.pdf
inspried me to
attempt this.
Thanks to David Rusling, Mark Orvek and the Linaro TSC for supporting
this project.
Thanks to Gil Pitney from TI and Show Liu from Fujitsu with whom make
up the other
members of the GPGPU subteam at Linaro.
Cheers!
Tom
"Where's the kaboom!? There was supposed to be an earth-shattering
kaboom!" Marvin Martian
Tech Lead, Graphics Working Group | Linaro.org │ Open source software
for ARM SoCs
w) tom.gall att linaro.org
h) tom_gall att mac.com
Paper out of Oregon State that looks to have just been released:
"SURVEY OF ACCELERATING APPLICATIONS ON MOBILE DEVICE BY GPU PARALLEL
PROGRAMMING"
http://web.engr.oregonstate.edu/~sunr/ece570_project/Fin_report.pdf
--
Regards,
Tom
"Where's the kaboom!? There was supposed to be an earth-shattering
kaboom!" Marvin Martian
Tech Lead, Graphics Working Group | Linaro.org │ Open source software
for ARM SoCs
w) tom.gall att linaro.org
h) tom_gall att mac.com
http://hgpu.org/?p=11648
"
Accelerating Java on Embedded GPU
Iype P. Joseph
Ottawa-Carleton Institute of Electrical and Computer Engineering,
University of Ottawa, Ottawa, Canada
University of Ottawa, 2014
Multicore CPUs (Central Processing Units) and GPUs (Graphics
Processing Units) are omnipresent in today’s market-leading
smartphones and tablets. With CPUs and GPUs getting more complex,
maximizing hardware utilization is becoming problematic. The
challenges faced in GPGPU (General Purpose computing using GPU)
computing on embedded platforms are different from their desktop
counterparts due to their memory and computational limitations. This
thesis evaluates the performance and energy efficiency achieved by
offloading Java applications to an embedded GPU. The existing
solutions in literature address various techniques and benefits of
offloading Java on desktop or server grade GPUs and not on embedded
GPUs. Our research is focussed on providing a framework for
accelerating Java programs on embedded GPUs. Our experiments were
conducted on a Freescale i.MX6Q SabreLite board which encompasses a
quad-core ARM Cortex A9 CPU and a Vivante GC 2000 GPU that supports
the OpenCL 1.1 Embedded Profile. We successfully accelerated Java code
and reduced energy consumption by employing two approaches, namely
JNI-OpenCL, and JOCL, which is a popular Java-binding for OpenCL.
These approaches can be easily implemented on other platforms by
embedded Java programmers to exploit the computational power of GPUs.
Our results show up to an 8 times increase in performance efficiency
and 3 times decrease in energy consumption compared to the embedded
CPU-only execution of Java program. To the best of our knowledge, this
is the first work done on accelerating Java on an embedded GPU.
"
--
Regards,
Tom
"Where's the kaboom!? There was supposed to be an earth-shattering
kaboom!" Marvin Martian
Tech Lead, Graphics Working Group | Linaro.org │ Open source software
for ARM SoCs
w) tom.gall att linaro.org
h) tom_gall att mac.com
Hi guys.
I have got issue with rotation of screen on linaro lubuntu which is
installed on cubieboard.
First of all I tried use XRandR, but it doesn't work.
When I use something like xrandr -o left, I have "RandR extention missing"
and I haven't been able to solve this issue.
Then we tried to change xorg params.
When I add option "Rotate" in 99-sunxifb.conf which is in
/usr/share/X11/xorg.conf.d/ directory with param "CW" the screen is
rotated, but mouse coordinate map is not. I attach video with demonstration
of this issue and you can watch it for more clearly understanding of my
problem. Also, this situation with another parameters which are "CCW" and
"UD"
I think, this may be for two reasons.
First is uncorrect xorg configuration, second is problems with video driver.
When I tried to do similar actions in cubiean with VESA driver it works
correctly, but I have another problems:
First of all VESA doesn't support OpenGl.
Second I realized from VESA source code it doesn't support rotation. So I
haven't got any idea how that worked.
So, I see three ways to solve this issue.
First. Fix XRandR
Second. Correctly configure xorg, but I don't know how is. I tried to write
my own configuration files, but never a one doesn't work correct and xorg
-configure doesn't work.
Third. Change something in the drivers, but I can't understand what is.
So, can you advise or suggest something?
Best wishes.
Boris.
As an FYI to those on the gpgpu list.
The Shamrock repository now exists on git.linaro.org.
http://git.linaro.org/gitweb?p=gpgpu/shamrock.git;a=summary
This is a spoon (not a fork) of the Clover project. This is a CPU only
open source OpenCL implementation. It is not as of yet complete nor
bug free but is under development.
Discussions / questions about the project are most welcome on the list.
--
Regards,
Tom
"Where's the kaboom!? There was supposed to be an earth-shattering
kaboom!" Marvin Martian
Tech Lead, Graphics Working Group | Linaro.org │ Open source software
for ARM SoCs
w) tom.gall att linaro.org
h) tom_gall att mac.com
All,
Am glad that I found this mailing list although lately. I had
purchased samsung arm chromebook thinking I can have some gpgpu stuffs on
mali T604. Sadly no OpenCL drivers are available for mali(forget opencl no
graphics driver) for linux!! sigh
First I tried pocl on this chromebook. Its an excellent piece of software.
FYI there is one more project that provides opencl on arm
http://www.browndeertechnology.com/coprthr_libocl.htm . My clinfo shows
shows 2 platforms now :)
I have a few questions:
1. Why isn't there opencl GPU drivers for linux? why! libhybris
https://github.com/libhybris/libhybris is a project that gives stub
GL/GLES.. libraries which speak to android bionic compiled GL/CL drivers. I
tried really hard to get this work on cheomebook using arndale/nexus 10
graphics drivers which has opencl support. I put few opencl symbols inside
these stubs, eventually it segfaulted!
2. Why does ARM license mali ddk to vendors(who decide whether to provide
drivers) and not provide free gpu display drivers for linux
Speaking about HSA, are ARM HSA devices in the pipeline? Anything that we
can work on
Eventually OpenCL/HSA will have to come mainstream to utilize full power of
the system. Let me know if I can contribute somehow
Thanks,
Krishnaraj