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.

AM5728: TIOVX user kernels issue

Part Number: AM5728

Hello everyone.

I'm developing Some Computer Vision Program using TIOVX on am5728.

I'm using ti-processor-sdk-linux-rt-arm57xx-evm-04.03.00.05.

And i've build OpenVX test program using TIOVX.

It's ok but when i add over 24 user kernels, 4 kernels after 20th kernels publishing failed.

Kernel Enums are like following.

#define VX_LIBRARY_PORCV 0x01

enum custome_kernel_e {

KERNEL1 = VX_KERNEL_BASE(VX_ID_DEFAULT, VX_LIBRARY_PORCV) + 0x0,

..

KERNEL20,

KERNEL21,

KERNEL22,

KERNEL23,

KERNEL24

};

from KERNEL21 to KERNEL24 publishing are failed.

if remove KERNEL20 then from KERNEL22 to KERNEL24 publishing are failed.

Does anyone know this is why?

Please help me!.

Best regards.

Thanks.

  • The software team have been notified. They will respond here.
  • Hello Dragon,

    These parameters are packed into 32-bit field. Top 12-bits are used for vendor id (in your case, VX_ID_DEFAULT, this  is set to 0xfff)

    enum vx_vendor_id_e {

        VX_ID_KHRONOS   = 0x000, /*!< \brief The Khronos Group */

       VX_ID_TI        = 0x001, /*!< \brief Texas Instruments, Inc. */

        VX_ID_QUALCOMM  = 0x002, /*!< \brief Qualcomm, Inc. */

        VX_ID_NVIDIA    = 0x003, /*!< \brief NVIDIA Corporation */

        VX_ID_ARM       = 0x004, /*!< \brief ARM Ltd. */

        VX_ID_CADENCE   = 0x019, /*!< \brief Cadence */

        VX_ID_HUAWEI    = 0x01A, /*!< \brief Huawei */

        /* Add new vendor code above this line */

        VX_ID_USER      = 0xFFE, /*!< \brief For use by vxAllocateUserKernelId and vxAllocateUserKernelLibraryId */

        VX_ID_MAX       = 0xFFF,

        /*! \brief For use by all Kernel authors until they can obtain an assigned ID. */

        VX_ID_DEFAULT = VX_ID_MAX,

    };

     

    Next 8-bits are used for library (in your case #define VX_LIBRARY_PORCV 0x01) and then lowest 12 bits are used for kernels.

     

    This may be a  signed/unsigned integer issue. A quick test to find out would be to use “reserved” vendor id of e.g. 0x080 (instead of VX_ID_DEFAULT), so bit field stays positive. Please try it and let me know if it works. Thanks!

    best regards,

    David Zhou

  • Hi David!.

    I've read your post and i tried the way you said.

    But it didn't work and same error. "Failed to allocate reference object" after 20 user kernels published.

    I don't know why.

    Thanks.

  • Dragon,

    I am very sorry to hear that. We will need to take a closer look at it and find out the root cause. I can't comment on a timeline yet but will keep you posted. For your project, are you Okay with this limitation for now? How soon would you must have the fix for it?

    Thanks!

    best regards,
    David Zhou
  • Hello, David.

    Thanks for your kindly response.

    It is better as soon as possible.

    But at least i need to fix this problem till 6/15.

    Thanks.

  • Dragon,

    I am sorry to disappoint you but 6/15 is difficult to hit. I will discuss with development team and provide you an update early next week.

    regards,
    David
  • Hi Dragon,

    It will take about 2.5 weeks before some one can take a look at this issue, debug and get back with suggestions. So, your patience is appreciated.

    Lali

  • Hi Dragon,

    Can you share standalone test program that we can run at our end to reproduce the issue?

    Regards,
    Manisha