Scout: A Source-to-Source Transformator for SIMD-Optimizations

Scout: A Source-to-Source Transformator for SIMD-Optimizations
复制标题

Scout:用于 SIMD 优化的源到源转换器

DOI:
10.1007/978-3-642-29740-3_17
复制
发表时间:
2011
影响因子:
12.3
通讯作者:
W. Nagel
W. Nagel
中科院分区:
计算机科学1区
文献类型:
--
作者:
Olaf Krzikalla;Kim Feldhoff;R. Müller;W. Nagel

文献摘要

被引文献

相似文献

我们提供Scout,这是一种可配置的源代码转换工具,旨在自动矢量化C源代码。 Scout提供了使用SIMD指令在源级别上进行矢量化循环的方法。我们在侦察兵开发过程中的主要重点是该工具的最大灵活性,可以通过两种方式:能够矢量介绍各种循环结构并能够针对各种现代SIMD架构。 Scout支持几个SIMD指令集,例如SSE或AVX,并且很容易扩展到即将到来的指令。 在本文的第二部分中,我们提出了将Scout的矢量化功能应用于德国航空航天中心的CFD生产代码的结果。这些代码中使用的复杂回路通常会抑制常规C编译器的自动矢量化。相比之下,侦察兵能够矢量化大多数这些循环。我们测量了SSE和AVX平台的最终加速。
We present Scout, a configurable source-to-source transformation tool designed to automatically vectorize C source code. Scout provides the means to vectorize loops using SIMD instructions at source level. Our main focus during the development of Scout is a maximum flexibility of the tool in two ways: being capable of vectorizing a wide range of loop constructs and being capable of targeting various modern SIMD architectures. Scout supports several SIMD instructions sets like SSE or AVX and is easily extensible to upcoming ones. In the second part of the paper we present results of applying Scout's vectorizing capabilities to CFD production codes of the German Aerospace Center. The complex loops used in these codes often inhibit the automatic vectorization of usual C compilers. In contrast, Scout is able to vectorize most of these loops. We measured the resulting speedup for SSE and AVX platforms.