Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

TensorFlow でも SYCL



CodePlay社メンバーによる論文。

OpenCLというより、SYCL

ランタイムは、こちら

Hikey 960にてテストしたみたい。

Hikey 960には、Kirin 960搭載されていて、Kirin 960には、ARM Mali-G71 MP8が載っている。

でもね。OpenCLのランタイムが提供されていないのよ。

ColdPlayの人に聞いたら、OpenCLのランタイムはパブリックになっていないって。。。残念だな。。。


あれれ、Android 8.0版はARMからリリースされていますね。Mali GPU User-Space Binary Drivers
 mali-G71_r9p0-01rel0_android-8.0_2.tar.gz	Android 8.0 r36 arm64/armsf	29.74 MB
 mali-G71_r9p0-01rel0_linux_1fbdev.tar.gz	GNU/Linux arm64 fbdev	    63.36 MB

Android版を解凍したら、こんな感じになっていたので、vulkanが使えますね。OpenCLL使えません。
-rw-r----- grzpra01/grzpra01 10040 2018-02-24 01:21 END_USER_LICENCE_AGREEMENT.txt
drwxr-x--- grzpra01/grzpra01     0 2018-02-24 01:15 lib/
drwxr-x--- grzpra01/grzpra01     0 2018-02-24 01:16 lib/egl/
-rwxr-x--- grzpra01/grzpra01 38643628 2018-03-08 20:55 lib/egl/libGLES_mali.so
-rwxr-x--- grzpra01/grzpra01   224248 2018-03-08 20:55 lib/libRSDriverArm.so
-rw-r----- grzpra01/grzpra01   123056 2018-03-08 20:56 lib/libmalicore.bc
drwxr-x--- grzpra01/grzpra01        0 2018-02-24 01:19 lib/hw/
-rwxr-x--- grzpra01/grzpra01    41728 2018-03-08 20:57 lib/hw/gralloc.hikey960.so
-rwxr-x--- grzpra01/grzpra01    54184 2018-03-08 20:57 lib/hw/android.hardware.renderscript@1.0-impl.so
lrwxrwxrwx grzpra01/grzpra01        0 2018-02-24 01:19 lib/hw/vulkan.hikey960.so -> ../egl/libGLES_mali.so
drwxr-x--- grzpra01/grzpra01        0 2018-02-24 01:19 lib64/
drwxr-x--- grzpra01/grzpra01        0 2018-02-24 01:17 lib64/egl/
-rwxr-x--- grzpra01/grzpra01 39559944 2018-03-08 20:55 lib64/egl/libGLES_mali.so
-rwxr-x--- grzpra01/grzpra01   281848 2018-03-08 20:55 lib64/libRSDriverArm.so
-rw-r----- grzpra01/grzpra01   137384 2018-03-08 20:56 lib64/libmalicore.bc
-rwxr-x--- grzpra01/grzpra01   301352 2018-03-08 20:56 lib64/libbccArm.so
drwxr-x--- grzpra01/grzpra01        0 2018-02-24 01:19 lib64/hw/
-rwxr-x--- grzpra01/grzpra01    40232 2018-03-08 20:57 lib64/hw/gralloc.hikey960.so
-rwxr-x--- grzpra01/grzpra01    60576 2018-03-08 20:57 lib64/hw/android.hardware.renderscript@1.0-impl.so
lrwxrwxrwx grzpra01/grzpra01        0 2018-02-24 01:19 lib64/hw/vulkan.hikey960.so -> ../egl/libGLES_mali.so

GNU/Linux版は、こちらOpenCLが使えますね。
drwxr-x--- beamic02/beamic02 0 2018-02-27 23:48 ./fbdev/
lrwxrwxrwx beamic02/beamic02 0 2017-12-19 01:04 ./fbdev/libEGL.so.1 -> libmali.so
lrwxrwxrwx beamic02/beamic02 0 2017-12-19 01:12 ./fbdev/libEGL.so -> libEGL.so.1
lrwxrwxrwx beamic02/beamic02 0 2017-12-19 01:17 ./fbdev/libGLESv2.so -> libGLESv2.so.2
-rwxr-x--- beamic02/beamic02 19467864 2017-12-19 00:11 ./fbdev/liboffline_compiler_api_gles.so
-rwxr-x--- beamic02/beamic02 149838991 2017-12-19 00:11 ./fbdev/libmali.so
lrwxrwxrwx beamic02/beamic02         0 2017-12-19 01:14 ./fbdev/libGLESv1_CM.so.1 -> libmali.so
lrwxrwxrwx beamic02/beamic02         0 2017-12-19 01:18 ./fbdev/libOpenCL.so -> libOpenCL.so.1
lrwxrwxrwx beamic02/beamic02         0 2017-12-19 01:17 ./fbdev/libOpenCL.so.1 -> libmali.so
lrwxrwxrwx beamic02/beamic02         0 2017-12-19 01:17 ./fbdev/libGLESv2.so.2 -> libmali.so
lrwxrwxrwx beamic02/beamic02         0 2017-12-19 01:14 ./fbdev/libGLESv1_CM.so -> libGLESv1_CM.so.1
-rw-r----- beamic02/beamic02     10040 2018-01-16 21:20 END_USER_LICENCE_AGREEMENT.txt

EGL / GLESv1 / GLESv2 / OpenCL をサポート。


で、5月14日~16日まで開催されるIWOCL 2018では、16日に
引用
  TensorFlow Acceleration on ARM Hikey Board
    Mehdi Goli, Luke Iwanski, John Lawson, Uwe Dolinsky and Andrew Richards, Codeplay
というのがありますね。。。

引用
  The evaluation of the proposed approach was carried out 
  on an ARM Hikey board with ARM A53CPU , A73 CPU, and Mali GPU

  Our results show significant improvements over those run on ARM A53 CPU, A73 CPU, 
  and ACL library for Mali GPU especially for large scale application.
  We are maintaining the TensorFlow SYCL back-end
   and actively optimizing TensorFlow’s operators for different DNN models across different platforms.

とあります。ARM MaliでOpenCLが動けば、ARM Compute Library(ACL)使えますからね。。。