首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有可扩展向量扩展(SVE)的ARM V-8

具有可扩展向量扩展(SVE)的ARM V-8
EN

Stack Overflow用户
提问于 2018-02-07 20:45:28
回答 2查看 1K关注 0票数 3

我发现ARMv8现在支持来自ARMv8 (scalable vector extension SVE)的可变长度向量寄存器。为了达到数据级的并行性,寄存器宽度越大越好。但是,我们需要在什么基础上选择128位到2048位之间的寄存器大小才能达到最大的性能呢?

例如,我想在1920年X 1080 Y图像上做带3x3掩码的Sobel滤波。我需要选择的寄存器宽度是多少?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-18 13:40:14

可伸缩向量扩展是aarch64执行状态的一个模块,它扩展了A64指令集,重点是高性能计算,而不是媒体,因为您有霓虹灯。

寄存器宽度将由硬件设计器/制造商决定,具体取决于该实现要解决/做什么。可能的矢量长度是: 128 256 384 512 640 768 896 1024 1152 1280 1408 1536 1664 1792 1920 2048。

从程序员的角度来看,编程模型与向量长度无关,这意味着相同的应用程序将在不同寄存器宽度(向量长度)的实现上工作。

该规范已经过时,但是,SVE实现后没有可用的硬件。目前,您可以使用ARM指令模拟器(阿米)来运行您的程序。

所以回答您的问题,除非您正在制造硬件,否则您不需要选择任何特定的向量长度,因为这将因实现而异。现在,如果您正在使用armie进行测试,那么您可以选择任何您想要的。

票数 2
EN

Stack Overflow用户

发布于 2018-10-22 15:43:32

SVE本质上是基于硬件定义的向量宽度隐式递增循环索引,所以您不必担心它。

请查看Daxpy示例:https://www.rico.cat/files/ICS18-gem5-sve-tutorial.pdf,以更详细地理解这意味着什么,以及这个带有断言的最小可运行示例

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

https://stackoverflow.com/questions/48672941

复制
相关文章

相似问题

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