Skip to main content

尝试打印Device侧的Tensor、Image内存数据时,发生coredump

调用API参考(Python)视频解码/编码接口结束时出现core dumped现象

问题现象

调用Python视频解码功能,若videoDecoder在全局作用域(非函数内)定义和执行,程序结束出现Segmentation fault (core dumped) 或 Aborted (core dumped),编码接口同样出现类似情况。

原因分析

由于Pybind问题导致在全局作用域定义videoDecoder无法自动调用析构函数,Python退出解释器时回调线程执行出错。

解决方案

  • 方案一:在函数或类的成员方法中定义和运行videoDecoder。
  • 方案二:若在全局作用域中定义videoDecoder,则在程序结束时使用del函数删除构造的videoDecoder对象。

父主题: FAQ

在Atlas 500 A2 智能小站默认配置下,无法安装mxVision

问题现象

在Atlas 500 A2 智能小站默认配置下,安装mxVision软件包,发现容量不足,无法完成安装。

原因分析

由于Atlas 500 A2 智能小站默认配置用户区的实际存储空间较小,无法安装mxVision软件包。

解决方案

请参见《Atlas 500 A2 智能小站 用户指南》“用户指南”“安装与配置 > 安装硬件选件”章节安装硬件并根据《Atlas 500 A2 智能边缘管理系统 用户指南》“智能边缘管理系统 用户指南”“Web界面功能介绍 > 管理 > 存储配置 > 本地磁盘管理”章节进行挂载、分区操作,完成扩容后再安装mxVision软件包。

父主题: FAQ

尝试打印Device侧的Tensor、Image内存数据时,发生coredump

问题现象

当Tensor、Image类数据在Device侧时,尝试调用GetData()接口返回指针并打印指针所指向的数据时,出现coredump提示。

原因分析

Device侧地址空间与Host侧地址空间相互独立,Host侧无法直接访问Device侧数据,具体请参见《CANN AscendCL应用软件开发指南 (C&C++)》。

解决方案

请先使用Tensor.ToHost()Image.ToHost(),将Device侧Tensor类或Image类数据转移到Host侧后,再次尝试打印数据操作。

父主题: FAQ

使用mxVersion安装时,出现libpython3.9.so.1.0报错

问题现象

使用命令**./Ascend-mindxsdk-mxvision_{version}_linux-{arch}.run --install**安装版本包时,出现如下报错:

libpython3.9.so.1.0: cannot open shared object file: No such file or directory

原因分析

Python3.9需要的so文件依赖libpython3.9.so.1.0,在编译环境中找不到。

解决方案

将Python安装路径下的libpython3.9.so.1.0对象,复制到“/usr/lib”或“/usr/lib64”下。

父主题: FAQ

mxpi_rtspsrc拉流插件运⾏偶现 BUS ERROR:XXX streamming stopped, reason error (-5) 错误

问题现象

pipeline运行过程中,mxpi_rtspsrc插件报错Internal data stream error XXX streaming stopped, reason error (-5)的错误

原因分析

主要是由于数据源网络连接异常中断、或者是连接时cpu占用较高引起的偶现错误。

解决方案

mxpi_rtspsrc插件具有重连机制,等待30秒会尝试重连,建议等待重连成功即可。

父主题: FAQ

安装7.3.0版本gcc

以下步骤请在root用户下执行。

  1. 下载gcc-7.3.0.tar.gz,下载地址为https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz

  2. 安装gcc时候会占用大量临时空间,所以先执行下面的命令清空“/tmp”目录:

    rm -rf /tmp/*
  3. 安装依赖(以CentOS和Ubuntu系统为例)。

    • CentOS执行如下命令安装。

      yum install bzip2
    • Ubuntu执行如下命令安装。

      apt-get install bzip2
  4. 编译安装gcc。

    1. 进入“gcc-7.3.0.tar.gz”源码包所在目录,解压源码包,命令为:

      tar -zxvf gcc-7.3.0.tar.gz
    2. 进入解压后的文件夹,执行如下命令下载gcc依赖包:

      cd gcc-7.3.0
      ./contrib/download_prerequisites

      如果执行上述命令报错,需要执行如下命令在“gcc-7.3.0/”文件夹下下载好以下依赖包:

      wget http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
      wget http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
      wget http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
      wget http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2

      下载好上述依赖包后,重新执行以下命令:

      ./contrib/download_prerequisites

      如果上述命令校验失败,需要确保依赖包为一次性下载成功,无重复下载现象。

    3. 执行配置、编译和安装命令:

      ./configure --enable-languages=c,c++ --disable-multilib --with-system-zlib --prefix=/usr/local/gcc7.3.0
      make -j15 # 通过grep -w processor /proc/cpuinfo|wc -l查看cpu数,示例为15,用户可自行设置相应参数。
      make install

      :::note 说明 其中“--prefix”参数用于指定gcc7.3.0安装路径,用户可自行配置,但注意不要配置为“/usr/local”及“/usr”,因为会与系统使用软件源默认安装的gcc相冲突,导致系统原始gcc编译环境被破坏。示例指定为“/usr/local/gcc7.3.0”。 :::

  5. 配置环境变量(请在实际需要时再进行配置)。

    export LD_LIBRARY_PATH=/usr/local/gcc7.3.0/lib64:${LD_LIBRARY_PATH}
    export CC=/usr/local/gcc7.3.0/bin/gcc
    export CXX=/usr/local/gcc7.3.0/bin/g++
    export PATH=/usr/local/gcc7.3.0/bin:${PATH}

    其中“/usr/local/gcc7.3.0”为4.c中配置的gcc7.3.0安装路径,请根据实际情况替换。

父主题: 附录

在线提单