Toybrick

标题: 编译ArmNN,CL runtime error [打印本页]

作者: keyman_sysu    时间: 2019-3-20 09:08
标题: 编译ArmNN,CL runtime error
有同学试过在板子上跑ArmNN么,根据Arm教程编译后在板子上跑Unitetests时候报CL runtime error,如何解决啊?另外板子上有CL的so但是没有CL.h的?


作者: jefferyzhang    时间: 2019-3-20 09:17
本帖最后由 jefferyzhang 于 2019-3-20 09:35 编辑

CL的so你需要先添加rk源:sudo dnf localinstall --nogpgcheck http://repo.rock-chips.com/fedora/rockchip-repo-1.0-3.fc28.aarch64.rpm
然后安装:
dnf install ocl-icd-devel.aarch64

可以用dnf info确认下是不是rockchip的,如果不是就别用,因为不是rockchip的ocl他跑的是cpu。

里头应该是带有h文件的。没有的话可以去Khronos官网下载头文件,是标准的 。



作者: keyman_sysu    时间: 2019-3-20 09:34
jefferyzhang 发表于 2019-3-20 09:17
CL的so你需要安装 dnf install ocl-icd-devel.aarch64
这是rk适配好的opencl,里头应该是带有h文件的。没有 ...

十分感谢,跑通了
作者: jefferyzhang    时间: 2019-3-20 09:36
keyman_sysu 发表于 2019-3-20 09:34
十分感谢,跑通了

你看下我刚编辑了帖子,你要用 rk的源装才行。
如果是fedora的源,他默认跑的是cpu的,并不能起到加速作用。
作者: keyman_sysu    时间: 2019-3-20 18:25
jefferyzhang 发表于 2019-3-20 09:36
你看下我刚编辑了帖子,你要用 rk的源装才行。
如果是fedora的源,他默认跑的是cpu的,并不能起到加速作 ...

谢谢,确认了是RK的,我再看看时间
作者: xsky    时间: 2020-2-19 20:13
jefferyzhang 发表于 2019-3-20 09:36
你看下我刚编辑了帖子,你要用 rk的源装才行。
如果是fedora的源,他默认跑的是cpu的,并不能起到加速作 ...

请问下Debain的有没有啊
作者: jefferyzhang    时间: 2020-2-19 20:54
xsky 发表于 2020-2-19 20:13
请问下Debain的有没有啊

一样的
作者: xsky    时间: 2020-2-20 18:26
jefferyzhang 发表于 2020-2-19 20:54
一样的

在Toybrick3399Pro Debain 10上
sudo apt install  ocl-icd-opencl-dev

ocl-icd-devel.aarch64这个包没有
也没有类似fedora的rockchip-repo-1.0-3.fc28.aarch64.rpm  这个包
运行clinfo 显示
Number of platforms                               0

Debain 是不是没提供对应的包啊

作者: jefferyzhang    时间: 2020-2-21 08:37
xsky 发表于 2020-2-20 18:26
在Toybrick3399Pro Debain 10上
sudo apt install  ocl-icd-opencl-dev

我问了负责人了:

先装toybrick-gbm-dev
然后装ocl-icd-dev
然后执行脚本toybrick-mali.sh
就可以了

这样做主要原因是官方源依赖问题我们还在处理。过一段时间处理好就会直接做包了
作者: xsky    时间: 2020-2-21 09:50
jefferyzhang 发表于 2020-2-21 08:37
我问了负责人了:

先装toybrick-gbm-dev

好的,多谢、多谢
作者: xsky    时间: 2020-2-21 14:54
jefferyzhang 发表于 2020-2-21 08:37
我问了负责人了:

先装toybrick-gbm-dev
  1. uname -a
  2. Linux debian10.toybrick 4.4.189 #93 SMP Tue Nov 26 16:40:07 CST 2019 aarch64 GNU/Linux
复制代码


这几个包安装后
libOpenCL.so链接的目标文件libmali-toybrick.so.r18p0, objdump得出的符号是如:
  1. toybrick@debian10:/usr/lib/aarch64-linux-gnu$ objdump -t -T libmali-toybrick.so.r18p0
  2. libmali-toybrick.so.r18p0:     file format elf64-littleaarch64

  3. SYMBOL TABLE:
  4. no symbols


  5. DYNAMIC SYMBOL TABLE:
  6. 000000000003b888 l    d  .init  0000000000000000              .init
  7. 00000000004d34e8 l    d  .jcr   0000000000000000              .jcr
  8. 00000000000b1fa0 g    DF .text  0000000000000060  Base        glGetTexParameterxvOES
  9. 000000000009e520 g    DF .text  0000000000000008  Base        egl_get_winsys_display
  10. 00000000000bb970 g    DF .text  00000000000000ac  Base        glGetnUniformivKHR
  11. 00000000000b0490 g    DF .text  0000000000000040  Base        glBlendEquationOES
  12. 00000000000bd62c g    DF .text  00000000000000ac  Base        glProgramUniform3iv
  13. 00000000000bd2ac g    DF .text  00000000000000ac  Base        glProgramUniform2ui
  14. 00000000000c15cc g    DF .text  0000000000000090  Base        glUseProgramStages
  15. 00000000000b3aa4 g    DF .text  0000000000000060  Base        glTexEnvfv
  16. 00000000000b5480 g    DF .text  0000000000000090  Base        glBlendFunciOES
  17. 00000000000b1ee0 g    DF .text  0000000000000060  Base        glGetTexGenxvOES
  18. 0000000000000000      DF *UND*  0000000000000000              toybrick_gbm_bo_get_modifier
  19. 00000000000b95e0 g    DF .text  00000000000000b4  Base        glGetProgramBinary
  20. 00000000000b43c8 g    DF .text  0000000000000088  Base        glAttachShader
  21. 00000000000a0ca8 g    DF .text  000000000000000c  Base        egl_color_buffer_set_non_thread_safe
  22. 00000000000b2d18 g    DF .text  0000000000000070  Base        glNormal3f
  23. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  pthread_mutexattr_init
  24. 00000000000b16e0 g    DF .text  0000000000000058  Base        glGenRenderbuffersOES
  25. 00000000000ae5f4 g    DF .text  00000000000000dc  Base        glGetDebugMessageLog
  26. 00000000000b6230 g    DF .text  0000000000000158  Base        glCopyImageSubDataEXT
  27. 00000000000be5b8 g    DF .text  0000000000000064  Base        glResumeTransformFeedback
  28. 00000000000b3ed4 g    DF .text  0000000000000060  Base        glTexGenxOES
  29. 00000000000b4d50 g    DF .text  0000000000000090  Base        glBlendEquationSeparatei
  30. 0000000000000000      DF *UND*  0000000000000000              wl_resource_get_client
  31. 00000000000b46ec g    DF .text  00000000000000b4  Base        glBindBufferRange
  32. 000000000007bda4 g    DF .text  0000000000000084  Base        gbm_surface_lock_front_buffer
  33. 00000000000bee64 g    DF .text  0000000000000088  Base        glStencilMaskSeparate
  34. 00000000000ae010 g    DF .text  0000000000000064  Base        glEnable
  35. 00000000000af278 g    DF .text  000000000000007c  Base        glObjectPtrLabel
  36. 0000000000000000      DF *UND*  0000000000000000              wl_proxy_add_listener
  37. 00000000000b21e0 g    DF .text  0000000000000058  Base        glLightModelxv
  38. 0000000000000000      DF *UND*  0000000000000000              wl_client_post_no_memory
  39. 00000000000b6e18 g    DF .text  0000000000000088  Base        glDisablei
  40. 00000000000af7b0 g    DF .text  00000000000000cc  Base        glReadnPixelsEXT
  41. 00000000000a0b60 g    DF .text  0000000000000020  Base        egl_color_buffer_user_property_set
  42. ...

复制代码


应该是OpenGL的函数,没有cl的函数

libOpenCL.so.1.0.0的函数为:

  1. toybrick@debian10:/usr/lib/aarch64-linux-gnu$ objdump -t -T libOpenCL.so.1.0.0

  2. libOpenCL.so:     file format elf64-littleaarch64

  3. SYMBOL TABLE:
  4. no symbols


  5. DYNAMIC SYMBOL TABLE:
  6. 0000000000004210 l    d  .init  0000000000000000              .init
  7. 0000000000019420 l    d  .tbss  0000000000000000              .tbss
  8. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  memcpy
  9. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  strlen
  10. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  __sprintf_chk
  11. 0000000000000000  w   D  *UND*  0000000000000000              _ITM_deregisterTMCloneTable
  12. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  strnlen
  13. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  ftell
  14. 0000000000000000  w   DF *UND*  0000000000000000  GLIBC_2.17  __cxa_finalize
  15. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  opendir
  16. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  qsort
  17. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  dlclose
  18. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  dlopen
  19. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  fclose
  20. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  fopen
  21. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  malloc
  22. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  dlsym
  23. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  readdir
  24. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  realloc
  25. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  closedir
  26. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  __stack_chk_fail
  27. 0000000000000000  w   D  *UND*  0000000000000000              __gmon_start__
  28. 0000000000000000      DO *UND*  0000000000000000  GLIBC_2.17  __stack_chk_guard
  29. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  fseek
  30. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  strcmp
  31. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  rewinddir
  32. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  strtol
  33. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  free
  34. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  strchr
  35. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  strcpy
  36. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  strstr
  37. 0000000000000000  w   D  *UND*  0000000000000000              _ITM_registerTMCloneTable
  38. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  getenv
  39. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  __xstat
  40. 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.17  fgets
  41. 0000000000005f00 g    DF .text  0000000000000018  OPENCL_1.0  clEnqueueNDRangeKernel
  42. 00000000000065d8 g    DF .text  0000000000000018  OPENCL_2.1  clGetDeviceAndHostTimer
  43. 0000000000006170 g    DF .text  0000000000000018  OPENCL_1.1  clCreateSubDevicesEXT
  44. 0000000000006348 g    DF .text  0000000000000024  OPENCL_1.2  clCreateFromGLTexture
  45. 00000000000061b8 g    DF .text  0000000000000024  OPENCL_1.1  clCreateEventFromGLsyncKHR
  46. 0000000000005f78 g    DF .text  0000000000000018  OPENCL_1.0  clEnqueueBarrier
  47. 0000000000005d78 g    DF .text  0000000000000018  OPENCL_1.0  clReleaseEvent
  48. 0000000000005500 g    DF .text  00000000000000d0  OPENCL_1.0  clGetPlatformIDs

  49. ....
复制代码


作者: xsky    时间: 2020-2-21 14:59
本帖最后由 xsky 于 2020-2-21 15:00 编辑

发重了
作者: jefferyzhang    时间: 2020-2-21 15:04
cl/gl都在同一个库里,都链接同一个库就可以。
作者: xsky    时间: 2020-2-21 18:06
本帖最后由 xsky 于 2020-2-21 18:08 编辑
jefferyzhang 发表于 2020-2-21 15:04
cl/gl都在同一个库里,都链接同一个库就可以。

toybrick@debian10:/usr/lib/aarch64-linux-gnu$ objdump -tT libmali-toybrick.so.r18p0 | grep -E "\bcl[A-Z]+"
libmali-toybrick.so.r18p0 应该没有clX的函数,是不是还有别的什么包

[attach]853[/attach]

[attach]855[/attach]


作者: jefferyzhang    时间: 2020-2-22 16:13
xsky 发表于 2020-2-21 18:06
toybrick@debian10:/usr/lib/aarch64-linux-gnu$ objdump -tT libmali-toybrick.so.r18p0 | grep -E "\bcl ...

clx不支持,cl只支持到1.2
作者: xsky    时间: 2020-2-24 10:50
jefferyzhang 发表于 2020-2-22 16:13
clx不支持,cl只支持到1.2

不好意思,可能我没表述清楚,这个只支持OpenCL 1.2看参数看到了的, 目前是在库libmali-toybrick.so.r18p0
dump出来看,这个里面一个cl函数都没有,只有gl的
作者: jefferyzhang    时间: 2020-2-24 10:56
xsky 发表于 2020-2-24 10:50
不好意思,可能我没表述清楚,这个只支持OpenCL 1.2看参数看到了的, 目前是在库libmali-toybrick.so.r18 ...

我反馈给负责人了,他说之前给的一个库没cl,后来重编了一个,正在处理了,下午你再试试
作者: xsky    时间: 2020-2-24 11:17
jefferyzhang 发表于 2020-2-24 10:56
我反馈给负责人了,他说之前给的一个库没cl,后来重编了一个,正在处理了,下午你再试试 ...

好的,好的,感谢!




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3