Last month, Imagination Technology released their PowerVR CLDNN SDK, an AI-oriented API that leverages OpenCL support in PowerVR GX6250 GPU in order to create network layers for constructing and running a neural network on PowerVR hardware.
Eventually the SDK will support PowerVR Series2NX Neural Network Accelerator, but while waiting for the hardware, the company has provided a firmware that runs only on Mediatek MT8173 based Acer Chromebook R13.
The SDK includes a demo taking a live camera feed to identify the object(s) the camera is pointing at, using known network models such as AlexNet, GoogLeNet, VGG-16, or SqueezeNet. All models are Caffe models trained against the ImageNet dataset, a benchmark function is included within the demo.
Beside simply playing with the demos, you’ll be able to study the source code to check out various helper functions such as file loading, dynamic library initialisation and OpenCL context management, and read documentation such as the PowerVR CLDNN reference manual explaining all CLDNN API’s functions.
If you happen to own a Chromebook R13, and would like to give it a try you could download the Arch Linux Arm based Chromebook image via the SDK product page and use it from the micro SD card while keeping your existing ChromeOS installation, or flash to the internal eMMC flash of the Chromebook (Erasing ChromeOS).
Via Imagination Blog
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Wait, does that mean that OpenCL is available on R13 under Arch? When did that happen?
@blu
On Mali, the binary driver has worked ok for a while. Guess with the loss of Apple, IMG has finally started to take a serious look at Linux support? IIRC, they were hiring a Linux developer some months back.
side-channel update: the R13 ArchLinux image from the article comes with OpenCL, GL ES and Vulkan drivers!
isn’t it the first armv8 soc providing linux vulkan userspace drivers ?
@nobe
It’s the first I am aware of.
@Eversor
I’ve been using Mali drivers for a while across two platforms and I know they’re solid. Vulkan, though, is something else ; )
I wonder how well this image would run on the Lenovo e300 Chromebook — same SoC, sturdier chassis: https://www3.lenovo.com/us/en/laptops/lenovo/lenovo-n-series/300e-Chromebook/p/88ELC1S9997
@blu Just tested with my Lenovo N23 / Flex 11. Works well.
@fan
Thanks! Have you tried the GLES, OCL and Vulkan stacks?
So, to put things into perspective, we currently have a handful of ARMv8 notebooks on the market, and those notebooks are perfectly legit for GPU development (GLES, OCL _and_ Vulkan!), and that just happened overnight with the release of a single image by Imagination, targeting the MT8173C?
Holy chromebook, batman! : )
Just a remark about the flash_arch_image.sh script supplied with Imagination’s ArchLinux image: the script relies on newer-version lsblk utility, not found in ubuntu 14.04. Here’s a patch for getting the script to run on ubuntu 14.04: https://pastebin.com/VdJAaMqd
Boy, R13 is one quick device. The A72s in there do actually sustain 2.1GHz for good amounts of time — effectively for the duration of all benches I’ve thrown at it so far, and cores stay cool within the aluminum chassis — high-30C at load, sub-30C at idle.
But best of all, OpenCL in there is fully functional (https://pastebin.com/pnN0Q1N3), and the GX6250 manages 25fps on the raytracing OCL benchmark; not much faster than 4x A72s @ 1.3GHz, but those would eat a good deal more power.
@blu
This is really cool. Thanks for the update!
@geokon
My pleasure!
BTW, I couldn’t help but do a quick comparison to my other MediaTek linux device — the BQ Aquaris M10 HD: https://pastebin.com/HRjAkBYs
Both tests run the exact-same client code, exact-same mixed-precision shaders and exact-same texture assets. The M10 has a tad higher screen res — 1920×1200, vs 1920×1080 on the R13. Both tests run in vsync.
BTW, I have to commend Imagination for something that only they seem to have figured out so far: perfectly viable, semantically-correct EGL without platform-specific code in any shape of form. Imagination call that ‘null-window surface’, and in practice it is a way for an EGL stack to create an EGL surface for the main framebuffer of the system when a native windowing manager is not present, just by passing a null argument for the ‘native window’ parameter of elgCreateWindowSurface() call. This is brilliant utilisation of the EGL semantics and the DRM mechanism, covering 90% of the needs of graphics use-cases! In comparison, other vendors are still in the stone age where it comes to providing an EGL context to /dev/fb0 (I’m looking at you, Broadcom). So I’m currently running Arch X11-less and I have no pressing needs to go full desktop on the R13, given it has dual boot to ChromeOS.