问题标签 [sve]
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.
arm - 新的 ARM SVE 指令的可移植性如何?
我正在寻找有关 Arm 的新可扩展矢量单元 (SVE) 的信息。对我来说,使用能够并行计算 2048 位的蜜蜂进行图像处理等等,这看起来非常好。但我不确定它是否会在每个 Armv8(如 RPI 3)上运行,或者只是在某些超级计算机上运行。是否有人知道它将包含在 Linux 内核中的时间范围。
我阅读了 2016 年 8 月公告中的链接。但我希望能获得更新的信息。
c++ - 带有可扩展矢量扩展 (SVE) 的 ARM V-8
我发现 ARMv8 现在支持来自128 bits to 2048 bits
( scalable vector extension SVE
) 的可变长度向量寄存器。具有更大的寄存器宽度以实现数据级并行性总是好的。但是,我们需要在什么基础上选择从 128 位到 2048 位的寄存器大小以实现最大性能呢?
例如,我想在 1920 X 1080 Y 图像上使用 3x3 掩码进行 Sobel 过滤。我需要选择什么寄存器宽度?
arm - 如何使用 GNU GAS 或 LLVM 组装 ARM SVE 指令并在 QEMU 上运行它?
我想使用开源工具使用新的ARM SVE 指令。
作为开始,我想组装出现在以下位置的最小示例:https ://developer.arm.com/docs/dui0965/latest/getting-started-with-the-sve-compiler/assemble-sve-code
但是,当我在我的 Ubuntu 16.04 上尝试时:
它不识别任何 SVE 汇编指令,例如:
我认为这是因为我的 GNU AS 2.26.1 太旧并且还没有 SVE 支持。
我也可以使用 LLVM 或任何其他开源汇编程序。
一旦我设法组装,我想在 QEMU 用户模式下运行它,因为3.0.0 支持 SVE。
arm - ARM SVE 从左到右与树减少
我目前正在移植一些应用程序以使用 ARM SVE 功能和 SVE 的 ARM C 语言扩展中定义的内在函数。
在检查文档后,我遇到了两个函数来使用归约来总结浮点向量的元素。那是使用从左到右和基于树的减少。
文档:
这些函数 (ADDV) 对浮点向量的所有活动元素求和。他们使用基于树而不是从左到右的缩减,因此结果可能与 ADDA 产生的结果不同。”
为什么基于树的归约不同于从左到右的归约?他们的意思是因为舍入错误还是我遗漏了什么?
sve - GNU 工具链中的 SVE / SVE2 支持
我想编写一个 SVE/SVE2 代码(汇编和/或 C 内在)代码。哪个版本的 GNU 支持 SVE / SVE2?如果支持的话,我也对自动矢量化感兴趣。
c++ - AArch64 SVE/2 - 列表中的左包元素
我正在尝试使用 AArch64 SVE(或SVE2)实现 SIMD 算法,该算法采用元素列表并仅选择满足特定条件的元素。它通常被称为 Left Packing ( SSE/AVX/AVX-512 ) 或 Stream Compaction ( CUDA )?
是否可以使用 SVE 对该操作进行矢量化?
等效的 SQL 和标量代码可能如下所示:
可以使用 AVX-512 在 SIMD 中对其进行矢量化
如何使用 AArch64 SVE 实现它?有没有类似 AVX-512 compress_store的函数来压缩稀疏数据?
注意:SVE 既有 collect 也有scatter,详情请参阅SVE 的简短介绍。但我找不到等效的 SVE / 2 指令来保持元素的相对顺序。
arm - 在 macOS Intel 上生成和运行 ARMv8 SVE 二进制文件
我正在尝试在 Mac Intel 上使用 SVE 生成和运行一些 ARMv8 二进制文件,以确切了解 gdb 内部装配级别发生的情况,但我遇到了几个障碍。
支持 SVE(gcc 和 gdb)的工具链:如果我能够从不同的来源(ARM 网站,brew)轻松找到 macOS 上的 ARM 工具链,那么似乎没有一个支持 SVE。通过-march=armv8.5-a+sve
给出以下错误:'armv8.5-a' does not support feature 'sve'
执行代码:qemu 似乎是最好的选择。但是,qemu-aarch64
在 macOS 上似乎不存在,qemu-system-aarch64
似乎只是为了启动一个完整的 ARM 操作系统。
有没有办法实现我想要做的事情?
assembly - 在ARMV8中,汇编指令“ptrue p0.b vl64”的作用是什么?
此外,我阅读了以下说明:
那么,它们的作用和区别是什么?