首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jetson上的非法指令(核心抛出)错误

Jetson上的非法指令(核心抛出)错误
EN

Stack Overflow用户
提问于 2021-01-08 15:24:32
回答 6查看 46.9K关注 0票数 17

对不起,如果我的描述是冗长和无聊的,但我想给你最重要的细节,以解决我的问题。最近,我终于买了一个Jetson开发者工具包,它有4Gb的RAM,为了获得我认为是最好的对象检测配置,我遵循了Pyimagesearch公司的禤浩焯Rosebrock编写的指南:

https://www.pyimagesearch.com/2020/03/25/how-to-configure-your-nvidia-jetson-nano-for-computer-vision-and-deep-learning/日期:2020年3月。本指南的摘要如下:

  • 1:闪存Jetson 4.2 .img在microSD中用于Jetson (我的是32 is 'A‘级)
  • 2:一旦插入到Nano板上,配置Ubuntu18.04并完全消除Libreoffice以获得更多可用空间
  • 3:步骤5:安装系统级依赖项(包括cmake,python3,和纳米编辑器)
  • 4: Update CMake (无任何错误)
  • 5:安装OpenCV系统级依赖项和其他开发,
  • 在Jetson (成功安装了virtualenv和virtualenvwrapper,包括带有nano的bash文件版本)上设置了

虚拟环境,

  • 7:用Python 3创建virtaul env,并安装protobuf和libprotobuf,以获得更高效的Tensorflow。安装成功。它花了一个小时才完成,这是正常的
  • 8:这里来了一个标题:在这个env中安装numpy和cython,并在尝试执行这个步骤时检查它导入numpy库,如您在图中看到的:错误的Python3.6.9:

我说,好吧,让我们继续这个教程吧:

  • 9: InstallSplyv1.3.3:前三行一切正常,但当我不得不使用python执行stup.py文件时,IT再次出现(而不是小丑)。也不能执行这一行:https://i.stack.imgur.com/wFmnt.jpg

然后我运行了一个实验,我用Python2创建了这个"p2cv4“env,安装了numpy并测试了它:使用Python2:https://i.stack.imgur.com/zCWif.png

我可以随时退出(),并执行使用python的其他行,因此我得出结论,这是python版本问题。当我想要执行任何python代码时,终端以核心转储结束程序,apt或pip不显示任何错误。我想使用python 3,因为将来某个包或库将需要python 3。

对于python 3,Jetson的最后一个版本是3.6.9,而idk是在2020年3月激活的,就像禤浩焯当时使用的版本一样。

在其他文章中,我读到当像TF的Numpy这样的包或库版本对特定的旧的或低功耗的CPU不再友好时,就会出现这个SIGILL,比如在下面的文章中:Illegal hardware instruction when trying to import tensorflowhttps://github.com/numpy/numpy/issues/9532

因此,我想降级为一个更老的python版本,比如3.6.5或3.5,但我在Ubuntu中找不到明确的步骤。我认为这将修复这个错误,让我继续在Jetson上的配置。

pyimageseach指南使用Python3.6,但它没有指定最后一个是3.6.9还是另一个。如果不是python导致了这个错误,请告诉我。救命啊!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2021-01-09 15:30:43

按照同样的指南我也遇到了同样的问题。顺便说一句,在这个场景中,numpy在python中工作得很好,而不是在虚拟环境中。GDB指出了libopenblas中的一个问题。

我的解决方案是从零开始,从jetson-nano-4gb-jp441-sd-card-image.zip的新映像开始,在不使用virtualenv的情况下重复该指南。更有可能的是,您是Nano的唯一开发人员,并且可以在没有虚拟环境的情况下生活。

我成功地遵循了这些指南:https://qengineering.eu/install-opencv-4.5-on-jetson-nano.html

跳过虚拟主机部分 https://www.pyimagesearch.com/2019/05/06/getting-started-with-the-nvidia-jetson-nano/

我发现这一点也是必需的:"..install官方的Jetson Nano TensorFlow by.“

代码语言:javascript
运行
复制
ln -s /usr/include/locale.h /usr/include/xlocale.h

一旦我建立了这个象征性的链接,我就能够继续使用指南的其余部分(减去virtualenv),并且我设法不破坏numpy。

这并不理想,但我希望这会有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2021-02-05 03:46:11

“非法指令”可能是由于最近发生的AT_HWCAP变化造成的。

尝试从/sys/设备读取cpuid信息,如果getauxval没有成功的话。(OpenBLAS PRs 2952及3004)

在启动python之前导出OPENBLAS_CORETYPE=ARMV8 (或任何实际的硬件)应该可以避免这种情况。例如:

代码语言:javascript
运行
复制
OPENBLAS_CORETYPE=ARMV8 python

如果要使此导出永久化,则应在终端上键入以下命令来打开.bashrc文件:

代码语言:javascript
运行
复制
nano ~/.bashrc

之后,只需将“导出OPENBLAS_CORETYPE=ARMV8”添加到.bashrc文件的底部,保存/退出并重新启动系统:

代码语言:javascript
运行
复制
export OPENBLAS_CORETYPE=ARMV8

欲了解更多详细信息,请参阅:

https://github.com/numpy/numpy/issues/18131 https://www.reddit.com/r/JetsonNano/comments/ktcyoh/illegal_instructioncore_dumped_error_on_jetson/

票数 56
EN

Stack Overflow用户

发布于 2021-05-04 21:43:11

安装正确的numpy版本帮助我解决了这个问题。每当我导入torch、cv2或torchvision时,我都会收到错误的信息,上面写的是非法指令(核心被丢弃)。使用pip install numpy==1.19.4命令,我希望错误会发生。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65631801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档