SIMD Everywhere:0.5.0

2020-08-04 20:26:16

我很高兴地宣布SIMDEverywhere(SIMDe)的第一个发行版(SIMDe),版本0.5.0,代表了十几个开发人员三年多的工作成果。

SIMDe是一个许可许可(MIT)标头专用的库,它为相关API本身不支持的平台提供SIMD内部功能的快速、可移植实现。

例如,使用SIMDe,您可以在ARM、POWER、WebAssembly或几乎任何带有ac编译器的平台上使用SSE。当然,这包括不支持相关ISA扩展的x86CPU(例如,在本身不支持AVX-512F的CPU上调用AVX-512F函数)。

如果目标本机支持相关的SIMD扩展,则使用SIMDe不会影响性能。另外,加速实现,如ARM上的霓虹灯、电源上的AltiVec、WebAssembly上的WASM SIMD等,在可用时都会使用,以提供良好的性能。

SIMDe已经被用来通过上游支持或分发包将几个包移植到额外的架构中,特别是在Debian上。

如果您想联机使用SIMDe,可以在CompilerExplorer上这样做。

我们还有许多其他扩展的快速实现,包括NEON、AVX2、SVML和几个AVX-512扩展(AVX-512F、AVX-512BW、AVX-512VL等)。

SIMDe的工作进展很快,但实现…的功能很多。仅x86就有大约6,000个SIMD函数,我们已经实现了大约2,000个。我们将继续添加更多的功能,并改进我们已有的实现。

肖恩·马赫(Sean Maher)和克里斯托弗·摩尔(Christopher Moore)目前正在非常积极地实施霓虹灯,预计将继续快速进展。

我们目前还有两个Google代码暑期班的学生在做这个项目;HidayatKhan正致力于完成AVX2,HimanshiMathur专注于SVML。

如果您对使用SIMDe感兴趣,但需要先实现一些特定的功能,请提交问题,我们可能会对这些功能进行优先排序。

如果您有兴趣帮忙,请与我联系。我们在Gitter上有一个房间,如果你有问题的话,它是相当活跃的,当然你也可以直接进入发行者网站。