GPU crunching on your ARM SBC/Android TV-box?

For all your Raspberry Pi's, BeagleBoard's, Parallella's, ORDROID'S, TV boxes et al.
User avatar
Dirk Broer
Corsair
Corsair
Posts: 1962
Joined: Thu Feb 20, 2014 11:24 pm
Location: Leiden, South Holland, Netherlands
Contact:

#1 GPU crunching on your ARM SBC/Android TV-box?

Post by Dirk Broer »

Now that we have established that you can crunch on the GPU of a ARM CPU, let's try to find out how to do it.

Obviously, it needs OpenCL drivers. But by the looks of it BOINC for Linux/ARM already sees the OpenCL capable GPU of an Odroid-XU4, breaking it down in two, one with four compute units and one with two. This gives these lines in the BOINC log:

2016-10-24 21:09:05 OpenCL: Mali-T628 0: Mali-T628 (driver version 1.2, device version OpenCL 1.2 v1.r9p0-05rel0.816303d14b549c8bed2bad5983436ff4, 1991MB, 1991MB available, 3 GFLOPS peak)
2016-10-24 21:09:05 OpenCL: Mali-T628 0: Mali-T628 (driver version 1.2, device version OpenCL 1.2 v1.r9p0-05rel0.816303d14b549c8bed2bad5983436ff4, 1991MB, 1991MB available, 1 GFLOPS peak)
This nifty hacker tricks BOINC into delivering Linux/x86 nVidia GPU WUs though, and crunches them via the anonymous platform. MilkyWay has nothing for Linux/ARM, let alone Linux/ARM GPUs. Still, it works and gets verified.

OpenCL drivers -if not yet present- for the various (Utgard, Midgard, Bifrost) Mali GPUs can be found here, both Linux and Android.
Note that there are also the OpenSource Lima (Utgard) and Panfrost (Midgard, Bifrost) drivers, that will soon be integrated in the Linux kernel 5.2, if you're not already using that.

This Turkish chap has BOINC running on an Android phone, using Android 3.18.35, and his GPU gets detected without 3rd party software:
Tue May 15 15:19:00 GMT+03:00 2018||Starting BOINC client version 7.4.53 for aarch64-android-linux-gnu
Tue May 15 15:19:00 GMT+03:00 2018||log flags: file_xfer, sched_ops, task
Tue May 15 15:19:00 GMT+03:00 2018||Libraries: libcurl/7.48.0 OpenSSL/1.0.2g zlib/1.2.8
Tue May 15 15:19:00 GMT+03:00 2018||Running as a daemon
Tue May 15 15:19:00 GMT+03:00 2018||Data directory: /data/data/edu.berkeley.boinc/client
Tue May 15 15:19:00 GMT+03:00 2018||OpenCL: Mali-T860 0: Mali-T860 (driver version 1.2, device version OpenCL 1.2 v1.r12p0-04rel0.44f2946824bb8739781564bffe2110c9, 3804MB, 3804MB available, 0 GFLOPS peak)
Tue May 15 15:19:00 GMT+03:00 2018||Host name: android_4cc605bf
Tue May 15 15:19:00 GMT+03:00 2018||Processor: 8 AArch64 Processor rev 2 (aarch64)
Tue May 15 15:19:00 GMT+03:00 2018||Using 4 CPUs
Tue May 15 15:19:00 GMT+03:00 2018||Processor features: fp asimd evtstrm aes pmull sha1 sha2 crc32
Tue May 15 15:19:00 GMT+03:00 2018||OS: Android: 3.18.35
Tue May 15 15:19:00 GMT+03:00 2018||Memory: 3.72 GB physical, 1.86 GB virtual
Tue May 15 15:19:00 GMT+03:00 2018||Disk: 52.62 GB total, 48.35 GB free
Tue May 15 15:19:00 GMT+03:00 2018||Local time is UTC +3 hours

It's just the screaming lack of Android GPU apps that stands in his way of success -and perhaps his Android version could also be updated in order to get some.
I bet that some of you encounter the same lines when starting your Android TV boxes.

For those who have an Adreno GPU in their ARM SBC or Andoid TV Box there is FreeDreno, and there is -how silly- Etnaviv for Vivante GPUs.
Image

Return to “Single-board Computers”