香橙派AiPro开发板在docker容器中运行AI推理失败
收藏回复举报
香橙派AiPro开发板在docker容器中运行AI推理失败
t('forum.solved') 已解决
发表于2026-08-05 18:59:22
0 查看

遇到的问题:在开发板本地物理机上运行yolo模型推理一切正常,但是切换到docker容器中运行就会出现很多错误!

一、在本地物理机上运行的情况

(base) HwHiAiUser@orangepiaipro:~/wwq_workspace/tools/inference_engine_Ascend310B$ source ~/miniconda3/Ascend/cann/set_env.sh

(base) HwHiAiUser@orangepiaipro:~/wwq_workspace/tools/inference_engine_Ascend310B$ npu-smi info
+--------------------------------------------------------------------------------------------------------+
| npu-smi 25.2.0                                   Version: 25.2.0                                       |
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Name                  | Health          | Power(W)     Temp(C)           Hugepages-Usage(page) |
| Chip    Device                | Bus-Id          | AICore(%)    Memory-Usage(MB)                        |
+===============================+=================+======================================================+
| 0       310B4                 | Alarm           | 0.0          49                15    / 15            |
| 0       0                     | NA              | 0            4079 / 7545                             |
+===============================+=================+======================================================+

(base) HwHiAiUser@orangepiaipro:~/wwq_workspace/tools/inference_engine_Ascend310B$ python -c "import acl;print(acl.get_soc_name())"
Ascend310B4

(base) HwHiAiUser@orangepiaipro:~/wwq_workspace/tools/inference_engine_Ascend310B$ python test_Multivideo.py 
---- Inference Ascend Runtime ... ----
Init ACL Successfully
Reading engine from file ./weights/yolox_x_1b_test.om
[Model] Model init resource stage success
[Model] create model output dataset success
video_ID:1; 目标数量:1; 耗时:183.081毫秒
video_ID:1; 目标数量:1; 耗时:170.183毫秒
video_ID:1; 目标数量:1; 耗时:170.056毫秒
video_ID:1; 目标数量:1; 耗时:170.983毫秒
video_ID:1; 目标数量:1; 耗时:170.034毫秒
video_ID:1; 目标数量:1; 耗时:171.621毫秒
video_ID:1; 目标数量:1; 耗时:171.055毫秒
video_ID:1; 目标数量:1; 耗时:170.717毫秒
video_ID:1; 目标数量:1; 耗时:171.519毫秒
video_ID:1; 目标数量:1; 耗时:171.102毫秒

二、在docker容器中运行的情况

1.docker镜像构建内容

# 使用官方的Ubuntu:22.04镜像作为基础镜像
FROM ubuntu:22.04

# 设置环境变量
ENV DEBIAN_FRONTEND=noninteractive \
    TZ=Asia/Shanghai \
    LANG=zh_CN.UTF-8 \
    LANGUAGE=zh_CN:zh \
    LC_ALL=zh_CN.UTF-8

# 安装必要软件并配置系统(合并、清理,减小体积)
RUN apt update && \
    apt-get install -y --no-install-recommends --no-install-suggests \
        tzdata locales libgl1 libgl1-mesa-glx libglib2.0-0 python3.10-minimal python3-pip apt-utils dkms procps libncurses5 vim wget curl language-pack-zh-hans fonts-wqy-microhei fonts-wqy-zenhei libxml2-dev libxslt-dev ffmpeg libavcodec-extra cmake build-essential ocl-icd-libopencl1 && \
    locale-gen zh_CN.UTF-8 && \
    ln -snf /usr/bin/python3.10 /usr/bin/python && \
    ln -snf /usr/bin/pip3 /usr/bin/pip && \
    ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && \
    echo ${TZ} > /etc/timezone && \
    dpkg-reconfigure -f noninteractive tzdata && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

# 拷贝CANN安装包并安装
COPY ./Ascend-cann_9.1.0_linux-aarch64.run /tmp/
RUN bash /tmp/Ascend-cann_9.1.0_linux-aarch64.run --install --quiet && rm /tmp/*.run
COPY ./Ascend-cann-310b-ops_9.1.0_linux-aarch64.run /tmp/
RUN bash /tmp/Ascend-cann-310b-ops_9.1.0_linux-aarch64.run --install --quiet && rm /tmp/*.run

# 设置CANN环境变量
ENV ASCEND_HOME_PATH=/usr/local/Ascend/cann-9.1.0 \
    ASCEND_OPP_PATH=/usr/local/Ascend/cann-9.1.0/opp \
    ASCEND_AICPU_PATH=/usr/local/Ascend/cann-9.1.0 \
    TOOLCHAIN_HOME=/usr/local/Ascend/cann-9.1.0/toolkit \
    ASCEND_TOOLKIT_HOME=/usr/local/Ascend/cann-9.1.0
ENV PATH=/usr/local/Ascend/cann-9.1.0/bin:/usr/local/Ascend/cann-9.1.0/tools/ccec_compiler/bin:/usr/local/Ascend/cann-9.1.0/tools/profiler/bin:/usr/local/Ascend/cann-9.1.0/tools/ascend_system_advisor/asys:/usr/local/Ascend/cann-9.1.0/tools/show_kernel_debug_data:/usr/local/Ascend/cann-9.1.0/tools/msobjdump:${PATH}
ENV LD_LIBRARY_PATH=/usr/local/Ascend/cann-9.1.0/lib64:/usr/local/Ascend/cann-9.1.0/lib64/plugin/opskernel:/usr/local/Ascend/cann-9.1.0/lib64/plugin/nnengine:/usr/local/Ascend/cann-9.1.0/opp/built-in/op_impl/ai_core/tbe/op_tiling/lib/linux/aarch64:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:/usr/local/Ascend/cann-9.1.0/devlib:${LD_LIBRARY_PATH}
ENV PYTHONPATH=/usr/local/Ascend/cann-9.1.0/python/site-packages:/usr/local/Ascend/cann-9.1.0/opp/built-in/op_impl/ai_core/tbe:${PYTHONPATH}
ENV CMAKE_PREFIX_PATH=/usr/local/Ascend/cann-9.1.0/lib64/cmake:/usr/local/Ascend/cann-9.1.0/toolkit/tools/tikicpulib/lib/cmake:${CMAKE_PREFIX_PATH}
ENV PATH=/sbin:${PATH}

# 安装python3.10的基本第三方库
RUN pip install pyyaml opencv-python-headless -i https://pypi.tuna.tsinghua.edu.cn/simple


# 构建容器
# docker build -t ascend_310b-base-py310:v1 -f Dockerfile-Ascend_310B .

2.在docker容器中运行结果

(base) HwHiAiUser@orangepiaipro:~$ docker run -it \
--device=/dev/upgrade:/dev/upgrade \
--device=/dev/davinci0:/dev/davinci0 \
--device=/dev/davinci_manager \
--device=/dev/vdec:/dev/vdec \
--device=/dev/vpc:/dev/vpc \
--device=/dev/pngd:/dev/pngd \
--device=/dev/venc:/dev/venc \
--device=/dev/sys:/dev/sys \
--device=/dev/svm0 \
--device=/dev/ts_aisle:/dev/ts_aisle \
--device=/dev/dvpp_cmdlist:/dev/dvpp_cmdlist \
-v /etc/sys_version.conf:/etc/sys_version.conf:ro \
-v /etc/hdcBasic.cfg:/etc/hdcBasic.cfg:ro \
-v /usr/lib64/libaicpu_processer.so:/usr/lib64/libaicpu_processer.so:ro \
-v /usr/lib64/libaicpu_prof.so:/usr/lib64/libaicpu_prof.so:ro \
-v /usr/lib64/libaicpu_sharder.so:/usr/lib64/libaicpu_sharder.so:ro \
-v /usr/lib64/libadump.so:/usr/lib64/libadump.so:ro \
-v /usr/lib64/libtsd_eventclient.so:/usr/lib64/libtsd_eventclient.so:ro \
-v /usr/lib64/libaicpu_scheduler.so:/usr/lib64/libaicpu_scheduler.so:ro \
-v /usr/lib64/libcrypto.so.1.1:/usr/lib64/libcrypto.so.1.1:ro \
-v /usr/lib64/libyaml-0.so.2:/usr/lib64/libyaml-0.so.2:ro \
-v /usr/lib64/libdcmi.so:/usr/lib64/libdcmi.so:ro \
-v /usr/lib64/libmpi_dvpp_adapter.so:/usr/lib64/libmpi_dvpp_adapter.so:ro \
-v /usr/lib64/aicpu_kernels/:/usr/lib64/aicpu_kernels/:ro \
-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi:ro \
-v /dev/shm:/dev/shm \
-v /usr/lib64/libstackcore.so:/usr/lib64/libstackcore.so:ro \
-v /usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64:ro \
-v /var/slogd:/var/slogd:ro \
-v /var/dmp_daemon:/var/dmp_daemon:ro \
-v /etc/slog.conf:/etc/slog.conf:ro \
-v /home/HwHiAiUser/wwq_workspace/tools:/tools \
ascend_310b-base-py310:v1 \
/bin/bash

root@234568d67c92:/# cd tools/inference_engine_Ascend310B/

root@234568d67c92:/tools/inference_engine_Ascend310B# npu-smi info
bash: /usr/local/sbin/npu-smi: 没有那个文件或目录
root@234568d67c92:/tools/inference_engine_Ascend310B# ll /usr/local/sbin/
总计 1328
drwxr-xr-x 1 root root    4096  8月  5 17:16 ./
drwxr-xr-x 1 root root    4096  8月  4 15:54 ../
-r-xr-xr-x 1 root root 1343352  9月 25  2025 npu-smi*
-rwxr-xr-x 1 root root    3369  7月 31 22:30 unminimize*

root@234568d67c92:/tools/inference_engine_Ascend310B# python -c "import acl;print(acl.get_soc_name())"
None

root@234568d67c92:/tools/inference_engine_Ascend310B# python test_Multivideo.py
---- Inference Ascend Runtime ... ----
Process Process-1:
Traceback (most recent call last):
  File "/usr/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/tools/inference_engine_Ascend310B/test_Multivideo.py", line 20, in multivideo_detection
    inference = get_inference(inference_config)  # 获取推理器
  File "/tools/inference_engine_Ascend310B/test_Multivideo.py", line 15, in get_inference
    inference = inference_file.Inference(config)
  File "/tools/inference_engine_Ascend310B/inference.py", line 21, in __init__
    self.context = self.init_env()  # 加载模型之前先初始化编程环境
  File "/tools/inference_engine_Ascend310B/inference.py", line 35, in init_env
    raise RuntimeError(ret)
RuntimeError: 507899
主进程结束

本帖最后由 匿名用户2026/08/06 11:43:07 编辑

我要发帖子