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.

[参考译文] AM62A7:共享存储器使用情况

Guru**** 2694555 points

Other Parts Discussed in Thread: AM62A7

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1596750/am62a7-shared-memory-usage

器件型号: AM62A7

大家好、TI 专家。
我们正在调整 AM62A7 的内存分配、以便为 Linux 分配更多 DDR。 但目前有两个共享存储器区域、我们不确定在什么情况下会使用它们。 如附图所示、这两个区域分别为 TIOVX obj-DESC_MEM 和 DDR_SHARED_MEM。 我们的功能要求大致如下:我们将通过 gstreamer 管道获取摄像头图像、然后调用 c7x 进行推理。 在 GStreamer 流水线中、摄像头的原始图像将由 tiovxisp 和 tiovxmultiscaler 等插件处理。 我们知道、这些插件的实施与 TIOVX 相关、将使用 A53 以外的计算内核。 我们有两个问题希望得到支持:
1.我们不确定上述两个区域中的哪一个将用于 GStreamer 和深度学习推理过程、或者两者是否都将被使用。 如果可能、我们想知道详细信息、例如当 Linux 将图像交给 ISP 或 MSC 进行处理时、使用哪个存储器来共享图像数据。
2.是否有办法通过某种方式在 Linux 中实时查看这些共享存储器的使用情况? 5d07b0a5-196b-43ac-af32-514d7ebca186.png

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

    尊敬的 Yangtian:

    我们很高兴为您提供帮助。  

    2. 是否有办法通过某种方式来查看 Linux 中这些共享存储器的实时使用情况?

    运行 tiovx 应用时、它将在执行统计信息的末尾打印有关存储器利用率的信息。 例如、这是我使用物体检测配置运行 edgeai-tiovx-apps 时打印的内容。

    root@am62axx-evm:/opt/edgeai-tiovx-apps# ./bin/Release/edgeai-tiovx-apps-main configs/linux/object_detection.yaml 
    APP: Init ... !!!
    610183.110921 s: MEM: Init ... !!!
    610183.111020 s: MEM: Initialized DMA HEAP (fd=5) !!!
    610183.111247 s: MEM: Init ... Done !!!
    610183.111267 s: IPC: Init ... !!!
    610183.127892 s: IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
    .
    .
    .
    .
    .
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    610186.206053 s: IPC: Deinit ... !!!
    610186.208457 s: IPC: DeInit ... Done !!!
    610186.208519 s: MEM: Deinit ... !!!
    610186.208532 s: DDR_SHARED_MEM: Alloc's: 47 alloc's of 48344052 bytes 
    610186.208543 s: DDR_SHARED_MEM: Free's : 47 free's  of 48344052 bytes 
    610186.208553 s: DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    610186.208570 s: MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    root@am62axx-evm:/opt/edgeai-tiovx-apps#

    我建议您在运行应用程序时检查 DDR_SHARED_MEM 的利用率、可以根据应用程序的实际需求来减小存储器映射中的该大小。  

    DDR_C7X_1_LOCAL_HEP 和 DDR_C7X_1_Scratch 是可减少的另外两个存储器区域。 您可以使用 root@am62axx-evm:/opt/vision_apps ./vx_app_heap_stats.out 检查这些区域的使用情况。  

    此致、

    Qutaiba

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

    您好、 

    感谢您的回答和建议。 通过测试、我们发现 DDR_C7X_1_locl_hep 和 DDR_C7X_1_scratch 的使用率分别约为 40%和 2%。 这两个地区的使用率存在显著差异、因此我想提出另一个问题。 深度学习推理过程中、这两个存储器区域的功能有何具体差异?

    此致、

    Yangtian

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

    尊敬的 Yangtian:

    问得好。  

    我要在 Qutaiba 的响应中再添加一个提及、您可以从一个 sysfs 条目在 Linux 中看到 DDR_SHARED_MEM 实用化、如下所示:  

    cat /sys/kernel/debug/dma_buf/bufinfo
    #each allocated buffer will be shown -- there can be multiple. This is instantaneous data. 
    #the printout at runtime for this region through TIOVX will show total sum, but not instanteous usage

    [quote userid=“650736" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1596750/am62a7-shared-memory-usage/6153248 通过测试、我们发现 DDR_C7X_1_locl_hep 和 DDR_C7X_1_scratch 的使用率分别约为 40%和 2%。

    TI 深度学习软件会同时使用这些区域。 堆用于模型权重和模型元数据。 中间张量有时会临时存储、有时存储在堆中。 有一个模式占先功能可以禁用(默认启用)、以便所有中间张量都处于暂存状态。 默认情况下(禁用抢占)、某些模型上的暂存大小可能利用率较低。

    BR、
    Reese