问题标签 [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.
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 版本可用?
assembly - 汇编语言中的非法指令 (ARMv8)
所以我必须编写一个程序(上图),它在 -6 <= x <= 5 的域中找到函数的最大值,如果我尝试运行或调试(gdb)程序,终端会输出一条消息说非法指令,特别是“in top()”。我是汇编语言的新手,诚然我在整体上苦苦挣扎,所以任何帮助都将不胜感激。
谢谢
我不得不摆脱评论,所以现在可能有点混乱
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
任何意见将不胜感激。
--------测试代码-------------
string - 如何递归编码以比较 LEGv8 中的两个字符串?
我是 LEGv8 的新手,正在尝试学习语法。但是,我一直在确定一个已知长度的字符串(我计算并存储在 x2 中)是否与另一个长度相同的字符串相同。如果我在寄存器 x3 中有一个字符串,在寄存器 x4 中有另一个字符串,我将如何递归地比较这两个字符串?
在此先感谢您的帮助!
assembly - ARM v8 中的 LDUR 和 STUR
我有几门涉及 ARMv8 汇编的课程,但是两位老师都以不同的方式描述了 LDUR/STUR 指令,现在我已经迷路了。有人可以帮忙澄清一下吗?
如果我有指示:
我将把答案放在 R3 中,但我从 R1 中得到了什么,偏移量是如何运作的?这像是一个逻辑转变吗?ARM 手册将其描述为“字节偏移”,但没有描述该偏移如何在 R1 上起作用。我是要移动存储在 R1 中的值(比如 R1 中的值是 50),还是需要考虑 R1 之外的内存地址?其他消息来源说我需要以某种方式将 R1 视为一个数组?
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
,但说明告诉我没关系!所以我不介意,这应该是一个问题吗?
arm - ARMv8 汇编中的 MOV、MOVZ、MOVN 和 MOVK 有什么区别?
当我遇到 MOVZ 时我正在使用反汇编程序并且有点困惑,因为我之前只使用过 MOV。
ARMv8 ISA 手册当然解释了所有细节,并且 MOV 是其他三个的别名,具体取决于上下文,但也许有人可以在这里提供一些基本原理,并给出具体示例以加快学习过程。
assembly - ARMv8:使用 ARMv8 汇编语言将十进制转换为二进制
如何使用 ArmV8 汇编语言将十进制转换为二进制示例:输入:43 输出:101011
我主要不知道如何进行从十进制到二进制的转换部分
或者如何将它从任何编程语言翻译成 ARMv8
这就是我所拥有的
ARMv8 汇编语言代码
这是我在java中的代码
我似乎无法理解如何将其翻译为 arm
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% 不明白为什么它不能很好地工作,所以任何帮助都将不胜感激。