This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VEN-Q1:在 TDA4VEN SDK11.01 中使用 OpenCL 调用 GPU 时发生错误

Guru**** 2825935 points

Other Parts Discussed in Thread: TDA4VEN-Q1

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1630170/tda4ven-q1-error-occurs-when-calling-gpu-with-opencl-in-tda4ven-sdk11-01

器件型号: TDA4VEN-Q1

您好 TI 专家、  

我们将使用 TDA4VEN SDK11.1 进行算法开发、并尝试使用 OpenCL 调用 GPU 来进行图像处理。 执行 clGetPlatformID (0、NULL、&num_platforms) 时、我们遇到错误“OpenCL init failed。“ 然后我们尝试使用 clinfo 命令检查并发现没有可用的 GPU 平台、输出显示“Number of platforms = 0“。  

这可能是由于电路板图像中没有 GPU 驱动程序造成的、还是有其他可能的原因?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的 TDA4VEN-Q1 电路板上的 HLOS 是 Linux  (具体包括 TDA4VEN SDK 11.01 的 Yocto Linux 版本)。 根据您的建议、我们已经尝试了这些步骤:

      1.在运行我的应用程序之前:

    pvrdebug -loggroups main,mts,hwr

          这些命令的控制台输出如下所示:

    root@spartan_a:/# cd data/270test/
    root@spartan_a:/data/270test# pvrdebug -loggroups main,mts,hwr
    ----------------------- Start -----------------------
    Set FW Log type to TRACE ( main mts hwr )
    Connecting to first (0) default pvr device
    ------------------------ End ------------------------
    root@spartan_a:/data/270test# ./vx_app_270_srv.out ./
    APP: Init ... !!!
      1038.236430 s: MEM: Init ... !!!
      1038.236574 s: MEM: Initialized DMA HEAP (fd=5) !!!
      1038.236794 s: MEM: Init ... Done !!!
      1038.236820 s: IPC: Init ... !!!
      1038.250312 s: IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
      1038.258150 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
      1038.258306 s:  VX_ZONE_INFO: Globally Enabled VX_ZONE_ERROR
      1038.258321 s:  VX_ZONE_INFO: Globally Enabled VX_ZONE_WARNING
      1038.258331 s:  VX_ZONE_INFO: Globally Enabled VX_ZONE_INFO
      1038.259097 s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-0
      1038.259443 s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-1
      1038.260063 s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-2
      1038.261358 s:  VX_ZONE_INFO: [tivxPlatformCreateTargetId:169] Added target MPU-3
      1038.261416 s:  VX_ZONE_INFO: [tivxInitLocal:202] Initialization Done !!!
      1038.261442 s:  VX_ZONE_INFO: Globally Disabled VX_ZONE_INFO
    [INIT] Initializing OpenVX context...
    OpenCL error -1001 at /data01/shijuechuangan/tda4/PSDK0703_ISP/Workspace/tianliang/tda4_traton/vision_apps/kernels/270stitch/MPU_0/avm_app_demo_cl.c:29
      1038.275310 s:  VX_ZONE_ERROR: [tivx270StitchCreate:57] OpenCL init failed
      1038.275514 s:  VX_ZONE_ERROR: [ownContextSendCmd:1001] Command ack message returned failure cmd_status: -1
      1038.275575 s:  VX_ZONE_ERROR: [ownNodeKernelInit:704] Target kernel, TIVX_CMD_NODE_CREATE failed for node node_97
      1038.275588 s:  VX_ZONE_ERROR: [ownNodeKernelInit:705] Please be sure the target callbacks have been registered for this core
      1038.275600 s:  VX_ZONE_ERROR: [ownNodeKernelInit:706] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel
      1038.275615 s:  VX_ZONE_ERROR: [ownGraphNodeKernelInit:793] kernel init for node 0, kernel com.ti.270stitch.270stitch ... failed !!!
      1038.275648 s:  VX_ZONE_ERROR: [ graph_76 ] Node kernel init failed
      1038.275662 s:  VX_ZONE_ERROR: [ graph_76 ] Graph verify failed
    [ERROR] Graph verification failed
    [ERROR] Failed to create graph
    [DEINIT] Cleaning up...
      1038.277300 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa09c8 of type 0000080f at external count 2, internal count 0, releasing it
      1038.277336 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_78) now as a part of garbage collection
      1038.277645 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa0d20 of type 0000080f at external count 1, internal count 0, releasing it
      1038.277673 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_79) now as a part of garbage collection
      1038.277805 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa1078 of type 0000080f at external count 1, internal count 0, releasing it
      1038.277824 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_80) now as a part of garbage collection
      1038.277937 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa13d0 of type 0000080f at external count 1, internal count 0, releasing it
      1038.277955 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_81) now as a part of garbage collection
      1038.278061 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa1728 of type 0000080f at external count 2, internal count 0, releasing it
      1038.278085 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_83) now as a part of garbage collection
      1038.278206 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa1a80 of type 0000080f at external count 1, internal count 0, releasing it
      1038.278230 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_84) now as a part of garbage collection
      1038.278368 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa1dd8 of type 0000080f at external count 1, internal count 0, releasing it
      1038.278389 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_85) now as a part of garbage collection
      1038.278509 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa2130 of type 0000080f at external count 1, internal count 0, releasing it
      1038.278529 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_86) now as a part of garbage collection
      1038.278676 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa2488 of type 0000080f at external count 2, internal count 0, releasing it
      1038.278694 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_88) now as a part of garbage collection
      1038.278807 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa27e0 of type 0000080f at external count 1, internal count 0, releasing it
      1038.278826 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_89) now as a part of garbage collection
      1038.278928 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa2b38 of type 0000080f at external count 1, internal count 0, releasing it
      1038.278946 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_90) now as a part of garbage collection
      1038.279045 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa2e90 of type 0000080f at external count 1, internal count 0, releasing it
      1038.279062 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_91) now as a part of garbage collection
      1038.279199 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa31e8 of type 0000080f at external count 2, internal count 0, releasing it
      1038.279216 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_93) now as a part of garbage collection
      1038.279449 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa3540 of type 0000080f at external count 1, internal count 0, releasing it
      1038.279479 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_94) now as a part of garbage collection
      1038.279725 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa3898 of type 0000080f at external count 1, internal count 0, releasing it
      1038.279756 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_95) now as a part of garbage collection
      1038.279941 s:  VX_ZONE_WARNING: [vxReleaseContext:1439] Found a reference 0xffffb3aa3bf0 of type 0000080f at external count 1, internal count 0, releasing it
      1038.279963 s:  VX_ZONE_WARNING: [vxReleaseContext:1441] Releasing reference (name=image_96) now as a part of garbage collection
    [DEINIT] Done.
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
      1038.285893 s: IPC: Deinit ... !!!
      1038.287757 s: IPC: DeInit ... Done !!!
      1038.287838 s: MEM: Deinit ... !!!
      1038.288119 s: DDR_SHARED_MEM: Alloc's: 17 alloc's of 8246696 bytes
      1038.288138 s: DDR_SHARED_MEM: Free's : 17 free's  of 8246696 bytes
      1038.288147 s: DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes
      1038.288172 s: MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    root@spartan_a:/data/270test# pvrlogdump
    Checking driver state ............... initialised
    Checking for debugfs ................ found
    Checking for lockdep ................ not found
    Checking for ftrace ................. not found
    Checking for firmware log groups .... found
    
    Dumping data ........................ done
    Archiving data ...................... done
    
    File /tmp/pvrlogdump_spartan_a_2112311617.txt.gz was created.

         此日志中的错误不是由 tiovx 导致的、而是因为内核代码调用行“clGetPlatformIDs (0、NULL、&num_platforms“)“。 这行代码旨在检索 CL 的执行平台 (GPU)。由于未找到执行平台、因此它会在/data01/shijuechuangan/tda4/PSDK0703_ISP/Workspace/tianlib/tda4_traton/vision_apps/kernels/270 缝线/mpu_0/avm_app_demo_cl.c:29“中报告“OpenCL 错误–1001。

      2. 执行过程中遇到 OpenCL/GPU 错误后,我运行:

    pvrlogdump

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    pvrlogdump 的控制台输出如下:  

    https://drive.google.com/file/d/1W1Q86PR9N7kh7PgHobAu6iZzWV9-br_N/view?usp=sharing

    这可能是由于电路板图像中没有 GPU 驱动程序造成的、还是有其他可能的原因?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 、HC Nong、

    要测试 GPU 驱动程序是否正在运行、您是否可以运行:

    $ lsmod | grep pvr

    此致、
    Jared