问题标签 [armv8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6824 浏览

python - 如何在 aarch64/armv8 平台上安装 python pip?

我有一块由 Linux 内核驱动的板。该板为 aarch64/armv8 架构。该板没有apt-get,但有easy_install。我尝试使用 easy_install 进行安装,但出现以下错误,

root@armboard:~# easy3_install --version

来自 /usr/lib/python3.5/site-packages 的 setuptools 36.2.7 (Python 3.5)

请建议在此平台上安装 pip 的方法。

如果可以使用easy_install,我应该遵循哪些步骤来解决此错误?

如果不是,我应该为这个架构获得交叉编译的 pip 二进制文件,还是有任何 Yocto 版本可用?

0 投票
0 回答
112 浏览

assembly - 汇编语言中的非法指令 (ARMv8)

所以我必须编写一个程序(上图),它在 -6 <= x <= 5 的域中找到函数的最大值,如果我尝试运行或调试(gdb)程序,终端会输出一条消息说非法指令,特别是“in top()”。我是汇编语言的新手,诚然我在整体上苦苦挣扎,所以任何帮助都将不胜感激。

谢谢

我不得不摆脱评论,所以现在可能有点混乱

0 投票
0 回答
251 浏览

c - 带有 RT_PREEMPT linux 的 ARM Cortex A57 (ARMv8) 上的浮点寄存器损坏

我有一个在 ARM Cortex A57 (ARMv8) 上的 RT_PREEMPT linux 上运行的多线程用户空间应用程序。linux 版本为 4.14.0,带有相应的 RT_PREEMPT 补丁。以下代码是重新创建问题的简化版本。当使用优化级别 -O1 及更高级别编译代码时,它会在一段时间后出错,在第 24 行的 fl_val 中具有随机值(thr_fn 中的乘法结果)。查看编译后的汇编代码并通过 gdb 后,注意到,在循环从第 21 行开始之前,0.002 的值被加载到浮点寄存器(s8)中。然后使用 s8 寄存器值与在第 24 行存储 frand 值的寄存器相乘。在随机时间,s8 中的值具有垃圾值并且进程按预期中止。看起来,在内核上下文切换期间,它没有正确地重新存储浮点寄存器的值。在相同硬件上相同版本的非 rt 内核上,相同的代码可以正常工作,没有任何错误。

我的问题

1) 我应该在 RT_PREEMPT 内核中设置任何与浮点相关的内核设置吗?我已经设置了 eagerfpu=on (即使它默认是开启的)

2) 正在阅读有关 Cortex-M4 的“Lazy Stacking”,但不确定它是否适用于 Cortex A57

任何意见将不胜感激。

--------测试代码-------------

0 投票
1 回答
151 浏览

assembly - arm 组件 向量数量无效

armv8中有两个关于asm汇编的问题。

首先,“无效的向量数量”,我的代码如下。

在此处输入图像描述

第二,“不匹配的寄存器大小后缀”。

在此处输入图像描述 我直接google了这两个问题,但得到的答案很少。

0 投票
0 回答
201 浏览

string - 如何递归编码以比较 LEGv8 中的两个字符串?

我是 LEGv8 的新手,正在尝试学习语法。但是,我一直在确定一个已知长度的字符串(我计算并存储在 x2 中)是否与另一个长度相同的字符串相同。如果我在寄存器 x3 中有一个字符串,在寄存器 x4 中有另一个字符串,我将如何递归地比较这两个字符串?

在此先感谢您的帮助!

0 投票
3 回答
20222 浏览

assembly - ARM v8 中的 LDUR 和 STUR

我有几门涉及 ARMv8 汇编的课程,但是两位老师都以不同的方式描述了 LDUR/STUR 指令,现在我已经迷路了。有人可以帮忙澄清一下吗?

如果我有指示:

我将把答案放在 R3 中,但我从 R1 中得到了什么,偏移量是如何运作的?这像是一个逻辑转变吗?ARM 手册将其描述为“字节偏移”,但没有描述该偏移如何在 R1 上起作用。我是要移动存储在 R1 中的值(比如 R1 中的值是 50),还是需要考虑 R1 之外的内存地址?其他消息来源说我需要以某种方式将 R1 视为一个数组?

0 投票
0 回答
215 浏览

tensorflow - 在带有 GPU 的 armv8 设备上运行我的 tensorflow 代码后崩溃

我想通过使用 sycl 在带有 GPU 的 armv8 设备上运行 deeplab 模型。但我被困在那里。

我已经从源代码构建,然后在我的萤火虫 RK3399 设备上安装了 Tensorflow 轮,没有发生错误。但是当我使用以下代码运行 tensorflow 模型时:

崩溃调用如下:

然后我切换到传统方法 with tf.Session() as sess:,当我运行sess.run() 同样的错误时。我还检查了 网站上的 error_code :

但是我不知道要解决这个问题,真正的原因是什么,如果我得到“将 SYCL 内核编译到 SYCL 设备时出错”如何处理这个问题。

配置

  • CPU aarch64
  • GPU 马里-T860
  • 操作系统 ubuntu 16.04
  • 设备萤火虫rk3399
  • 软件 tensorflow-1.6.0 bazel-0.11.1 computeCpp-1.0.0 python2.7.12 gcc-5.4.0

这是我的 computecpp_info 输出:

firefly@firefly:/usr/local/computecpp/bin$ ./computecpp_info

ComputeCpp 信息 (CE 1.0.0)

SYCL 1.2.1 修订版 3

工具链信息:

GLIBC 版本:2.23 GLIBCXX:20160609 支持此版本的 libstdc++。

设备信息:

发现 1 个设备匹配:平台:设备类型:

设备 0:

支持设备:否 - 设备不支持 SPIR

CL_DEVICE_NAME:马里-T860

CL_DEVICE_VENDOR:ARM

CL_DRIVER_VERSION:1.2

CL_DEVICE_TYPE : CL_DEVICE_TYPE_GPU

如果您在使用任何这些 OpenCL 设备时遇到问题,请访问此网站了解已知问题: https ://computecpp.codeplay.com/releases/v1.0.0/platform-support-notes

我收到了 的突出显示警告Device is supported : NO - Device does not support SPIR,但说明告诉我没关系!所以我不介意,这应该是一个问题吗?

0 投票
1 回答
16674 浏览

arm - ARMv8 汇编中的 MOV、MOVZ、MOVN 和 MOVK 有什么区别?

当我遇到 MOVZ 时我正在使用反汇编程序并且有点困惑,因为我之前只使用过 MOV。

ARMv8 ISA 手册当然解释了所有细节,并且 MOV 是其他三个的别名,具体取决于上下文,但也许有人可以在这里提供一些基本原理,并给出具体示例以加快学习过程。

0 投票
2 回答
2083 浏览

assembly - ARMv8:使用 ARMv8 汇编语言将十进制转换为二进制

如何使用 ArmV8 汇编语言将十进制转换为二进制示例:输入:43 输出:101011

我主要不知道如何进行从十进制到二进制的转换部分

或者如何将它从任何编程语言翻译成 ARMv8

这就是我所拥有的

ARMv8 汇编语言代码

这是我在java中的代码

我似乎无法理解如何将其翻译为 arm

0 投票
0 回答
84 浏览

assembly - ARMv8奇数无限循环

因此,对于一个作业,我需要创建一个汇编程序来查找从二进制文件传入的浮点的立方根。一切似乎都正常,除了在计算结束时有一个无限循环。

计算部分的分配说明是:“牛顿法需要对立方根进行初始猜测;使用 x = 输入 / 3.0。计算 y,即当前猜测 x 的立方,使用 y = x * x * x。然后计算 y 与输入值之间的差 dy:使用 dy = y - input。用 dy/dx = 3.0 * x * x 计算导数 dy/dx。然后用 x = x - dy 计算 x 的新试验值“ 而且我相当有信心我正确地遵循了这一点,但显然不是,否则我认为不会有问题。

我 100% 不明白为什么它不能很好地工作,所以任何帮助都将不胜感激。