问题标签 [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.

0 投票
2 回答
2500 浏览

arm - 新的 ARM SVE 指令的可移植性如何?

我正在寻找有关 Arm 的新可扩展矢量单元 (SVE) 的信息。对我来说,使用能够并行计算 2048 位的蜜蜂进行图像处理等等,这看起来非常好。但我不确定它是否会在每个 Armv8(如 RPI 3)上运行,或者只是在某些超级计算机上运行。是否有人知道它将包含在 Linux 内核中的时间范围。

我阅读了 2016 年 8 月公告中的链接。但我希望能获得更新的信息。

0 投票
2 回答
883 浏览

c++ - 带有可扩展矢量扩展 (SVE) 的 ARM V-8

我发现 ARMv8 现在支持来自128 bits to 2048 bits( scalable vector extension SVE) 的可变长度向量寄存器。具有更大的寄存器宽度以实现数据级并行性总是好的。但是,我们需要在什么基础上选择从 128 位到 2048 位的寄存器大小以实现最大性能呢?

例如,我想在 1920 X 1080 Y 图像上使用 3x3 掩码进行 Sobel 过滤。我需要选择什么寄存器宽度?

0 投票
1 回答
874 浏览

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

0 投票
1 回答
117 浏览

arm - ARM SVE 从左到右与树减少

我目前正在移植一些应用程序以使用 ARM SVE 功能和 SVE 的 ARM C 语言扩展中定义的内在函数。

在检查文档后,我遇到了两个函数来使用归约来总结浮点向量的元素。那是使用从左到右和基于树的减少。

文档:

这些函数 (ADDV) 对浮点向量的所有活动元素求和。他们使用基于树而不是从左到右的缩减,因此结果可能与 ADDA 产生的结果不同。”

为什么基于树的归约不同于从左到右的归约?他们的意思是因为舍入错误还是我遗漏了什么?

0 投票
2 回答
180 浏览

sve - GNU 工具链中的 SVE / SVE2 支持

我想编写一个 SVE/SVE2 代码(汇编和/或 C 内在)代码。哪个版本的 GNU 支持 SVE / SVE2?如果支持的话,我也对自动矢量化感兴趣。

0 投票
1 回答
73 浏览

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 指令来保持元素的相对顺序。

0 投票
0 回答
26 浏览

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 操作系统。

有没有办法实现我想要做的事情?

0 投票
1 回答
35 浏览

assembly - 在ARMV8中,汇编指令“ptrue p0.b vl64”的作用是什么?

此外,我阅读了以下说明:

那么,它们的作用和区别是什么?