何时使用英特尔指令集扩展技术

问题描述

何时使用Intel的指令集扩展技术有意义?它到底有什么作用?

我的情况:我想尽快进行约500.000矩阵矢量乘法。

矩阵大小:[4x4] |向量大小:[1x4]

解决方法

如果您可以保证您的客户获得一定程度的SIMD支持,我看不到是什么使您退缩。

SIMD已经存在了很长时间,要求您的客户拥有它并不是没有道理的。

例如: https://docs.microsoft.com/en-us/cpp/build/reference/arch-x86?view=vs-2019 https://docs.microsoft.com/en-us/cpp/build/reference/arch-x64?view=vs-2019

x86-64保证SSE2可用,因此编译器始终都将其用于64位构建。 (从某种意义上说,它不再是扩展,而只是x86-64 ISA的基线部分。)

编辑:

谢谢彼得·科德斯(Peter Cordes)的编辑!

但是我也想向用户指出,如果他们对SIMD感兴趣,他们可能希望研究OpenCL。

https://en.wikipedia.org/wiki/OpenCL

OpenCL帮助用户编写非常有效的SIMD程序。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...