lenLRX/Atlas_ACL_E2E_Demo

程序无法结束的问题

Closed this issue · 12 comments

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

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

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

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

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

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})

版本是Python 3.9.18

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

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

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

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