lenLRX / Atlas_ACL_E2E_Demo

188 stars 38 forks source link

程序无法结束的问题 #62

Closed RayAdas-GA-17 closed 11 months ago

RayAdas-GA-17 commented 12 months ago

利用自带的python3.6编译时,程序正常结束。但是当利用conda中的环境编译时,视频可以正常输出,但是程序却无法终止。ctrl+c也不管用。 image 这是gdb的信息。 image

RayAdas-GA-17 commented 12 months ago

在acl_demo_app.cpp后边加了一点输出。 image

lenLRX commented 12 months ago

除了程序创建的这些thread,ACL里面的东西也会创建一些内部的线程。 建议你用debug模式编译程序再用GDB调试一下 https://github.com/lenLRX/Atlas_ACL_E2E_Demo/blob/master/CMakeLists.txt#L32

看看视频跑完了之后还有哪些acl_demo_app的线程没有退出,挂在哪里了

RayAdas-GA-17 commented 11 months ago

好像是主线程卡在了Py_FinalizeEx(); image

lenLRX commented 11 months ago

你确认一下编译的时候链接的是3.9的还是系统本身3.6版本的

---原始邮件--- 发件人: @.> 发送时间: 2023年11月14日(周二) 上午9:49 收件人: @.>; 抄送: @.**@.>; 主题: Re: [lenLRX/Atlas_ACL_E2E_Demo] 程序无法结束的问题 (Issue #62)

好像是主线程卡在了Py_FinalizeEx();

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

RayAdas-GA-17 commented 11 months ago

3.9的 CMakeLists.txt

RayAdas-GA-17 commented 11 months ago

set(ACL_PATH /home/HwHiAiUser/Ascend/ascend-toolkit/latest)

include_directories( /usr/local/Ascend/include # for peripheral_api.h ${ACL_PATH}/include # acl hearders

/usr/include/python3.6 # for python headers

    # /usr/local/lib/python3.6/dist-packages/numpy/core/include/ # for pip installed numpy headers
    /home/HwHiAiUser/miniconda3/envs/torch/include/python3.9
    /home/HwHiAiUser/miniconda3/envs/torch/lib/python3.9/site-packages/numpy/core/include
    ${CMAKE_SOURCE_DIR}/src
    ${CMAKE_SOURCE_DIR}/bytetrack_csrc/include
    ${FREETYPE_INCLUDE_DIRS})

set(DEMO_DEP_LIBS ascendcl acl_dvpp runtime pthread opencv_core opencv_imgproc opencv_videoio opencv_imgcodecs avformat avutil avcodec

python3.6m

    /home/HwHiAiUser/miniconda3/envs/torch/lib/libpython3.9.so
    ${FREETYPE_LIBRARIES})
RayAdas-GA-17 commented 11 months ago

版本是Python 3.9.18

lenLRX commented 11 months ago

看起来可能卡在了GIL上,不知道你是否改了其他代码,还是单纯的只是换了Python版本,

另外需要用ldd检查一下运行时使用的库版本是3.6还是3.9,不过估计不是这个问题

---原始邮件--- 发件人: @.> 发送时间: 2023年11月14日(周二) 上午9:59 收件人: @.>; 抄送: @.**@.>; 主题: Re: [lenLRX/Atlas_ACL_E2E_Demo] 程序无法结束的问题 (Issue #62)

版本是Python 3.9.18

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

RayAdas-GA-17 commented 11 months ago

单纯的换了python版本,用自带的3.6的版本就不会卡住,用conda里面的3.9的就不行。 image

RayAdas-GA-17 commented 11 months ago

但是在另一块板子上用conda base下的3.9.1也不会卡住

lenLRX commented 11 months ago

实在不行就把Py_FinalizeEx注释掉试试

RayAdas-GA-17 commented 11 months ago

去掉这个函数就可以了。非常感谢!