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

3

我了解到,现在的ARMv8支持可变长度向量寄存器,长度从128位到2048位(可扩展向量扩展SVE)。

拥有更大的寄存器宽度是实现数据级并行性的好方法。但是,我们需要根据什么基础来选择128位到2048位的寄存器大小以实现最大性能呢?

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

2个回答

2
可扩展向量扩展是面向高性能计算而非媒体的aarch64执行状态模块,它扩展了A64指令集。寄存器宽度将由硬件设计师/制造商决定,取决于该实现试图解决/执行的任务。可能的向量长度为:128 256 384 512 640 768 896 1024 1152 1280 1408 1536 1664 1792 1920 2048。
从程序员的角度来看,编程模型是矢量长度不可知的,这意味着相同的应用程序将在具有不同寄存器宽度(矢量长度)的实现上工作。
规范已经发布,但目前没有可用的SVE实现硬件。暂时可以使用ARM指令模拟器(armie)运行程序。
因此,回答您的问题,除非您正在制造硬件,否则无需选择任何特定的矢量长度,因为这会因一个实现而异。如果您正在使用armie进行测试,则可以选择任何您想要的长度。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接