1

I wanna run the deeplab models on my armv8 device with GPU through using the sycl. But I got stuck there.

I have already built from source then installed the Tensorflow wheel on my firefly RK3399 device and no errors happened. But when I run the tensorflow model with the line:

    with sv.managed_session(FLAGS.master,config=config,start_standard_services=False) as sess:

a crash invoked as follows:

    termintate called after throwing an instance of 'cl::sycl::compile_program_error'

then I switched to the traditional method with tf.Session() as sess: and when I run sess.run() the same error came. I have also checked the error_code on the site:

But I have no idea to solve this, what's the real reason, how to handle this if I got "Error while compiling the SYCL kernel to a SYCL device".

Configuration

  • CPU aarch64
  • GPU Mali-T860
  • OS ubuntu 16.04
  • DEVICE Firefly rk3399
  • SOFTWARE tensorflow-1.6.0 bazel-0.11.1 computeCpp-1.0.0 python2.7.12 gcc-5.4.0

Here is my computecpp_info outputs:

firefly@firefly:/usr/local/computecpp/bin$ ./computecpp_info

ComputeCpp Info (CE 1.0.0)

SYCL 1.2.1 revision 3

Toolchain information:

GLIBC version: 2.23 GLIBCXX: 20160609 This version of libstdc++ is supported.

Device Info:

Discovered 1 devices matching: platform : device type :

Device 0:

Device is supported : NO - Device does not support SPIR

CL_DEVICE_NAME : Mali-T860

CL_DEVICE_VENDOR : ARM

CL_DRIVER_VERSION : 1.2

CL_DEVICE_TYPE : CL_DEVICE_TYPE_GPU

If you encounter problems when using any of these OpenCL devices, please consult this website for known issues: https://computecpp.codeplay.com/releases/v1.0.0/platform-support-notes

I got the highlight warning of Device is supported : NO - Device does not support SPIR, but the instructions told me that's ok! So I didn't mind that, Should it be an issue?

yrd241
  • 49
  • 1
  • 10
  • Are you following these instructions? https://developer.codeplay.com/computecppce/latest/tensorflow-arm-setup-guide. Do the benchmarks run? – Rod Burns Oct 29 '18 at 11:40
  • @RodBurns Yes I did follow the tutorial and I also installed TensorFlow with opencl successfully.If there is something different, I didn't use the way of cross compiling, however i built TensorFlow directly on arm that really took me a long long tme. – yrd241 Oct 29 '18 at 12:27
  • We've just updated the instructions for ComputeCpp v1.0 and beyond. https://developer.codeplay.com/computecppce/latest/tensorflow-arm-setup-guide. Can you give that a try? – Rod Burns Oct 29 '18 at 16:17
  • sorry, I found I ignored the last step that running the benchmarks, and when I run it the same error of "cl::sycl::compile_program_error" happened, So I didn't install Tensorflow correctly? That confused me. Should I try to use the version of tools mentioned in the instructions strictly? – yrd241 Oct 30 '18 at 12:07
  • It's possible you don't have the correct drivers installed. Can you run computecpp_info on the device (located in the bin folder of the ComputeCpp package) and post the output? – Rod Burns Oct 31 '18 at 14:35
  • yeah! of course, I just update the question and post the output of computecpp_info, and yesterday, I compiled Tensorflow again by following the instructions totally(bazel-0.11.1 computecpp-1.0.0 tensorflow-1.6.0). But when I run the benchmarks the same error repeated. – yrd241 Oct 31 '18 at 15:10
  • ok thanks. Did you get the drivers from Arm? As per the instructions you need to request the drivers directly from Arm, asking for the ones that provide SPIR-V support. The publicly downloadable ones do not consume SPIR-V properly and fail. – Rod Burns Nov 01 '18 at 16:13
  • Also if you run clinfo on the device it will show you the bitcode target of the target device. You can match this to the bitcode target variable when you build. (export TF_SYCL_BITCODE_TARGET). Note that we've previously seen Firefly boards with a 32 bit CPU and 64 bit GPU. – Rod Burns Nov 01 '18 at 17:47
  • Sorry reply too late. Cause I am still waiting the response from ARM. I have already contacted ARM for the drives, but they didn't reply me yet.By the way, I didn't find any information from clinfo about BITCODE_TARGET, whether I need to install the drives correctly then they could show up? – yrd241 Nov 04 '18 at 04:27
  • The "Address bits" field returned by clinfo should return the bitcode. This will appear regardless of the drivers I think. – Rod Burns Nov 05 '18 at 10:21
  • Hi, did you solve this issue? Thanks, man! – Mingjiang Shi Nov 09 '18 at 06:38
  • No, I still don't get the drives. I also took a post on the forum of Firefly, but they didn't help me too. so @Rod Burns, are there other ways to get the drive except through the ARM? I've searched lots of web on the internet, and I get nothing. – yrd241 Nov 09 '18 at 07:37
  • There's no other way to obtain the correct drivers currently, sorry. – Rod Burns Nov 13 '18 at 11:55
  • ok, I will ask them again. Thank you. – yrd241 Nov 14 '18 at 17:24

0 Answers0