APP下载

基于数据级自动向量化的编译优化研究综述

2017-05-08贺婷

智能计算机与应用 2016年6期

贺婷

摘要: SIMD扩展部件是一种在多媒体程序和科学计算程序中提供指令并行的加速部件。本文首先介绍SIMD扩展部件的背景及行业现状,然后从挖掘方法、指针别名这2个角度介绍了SIMD现阶段发展情况,在此基础上并对SIMD编译优化方向进行了展望。

关键词: SIMD; 自动向量化; 数据级并行

中图分类号: TP393

文献标志码:A

文章编号: 2095-2163(2016)06-0068-04

0引言

为了提高多媒体业务的整体集成性能,当代处理器均已陆续采用了基于SIMD的指令集扩展,意图在一个时钟周期上操作多个同构数据,并且该方法已在专用处理器和通用处理器中得到了高效使用,较早如Texas C62XX(Texas Instruments,1998)、Intel IA32(Intel 2000)、AMD K6(Advanced Micro Devices,1999)等等。SIMD是single instruction and multiple data 的简写,主要用于实现同时处理相同数学运算的同构操作数[1]。

上世纪,Intel率先在奔腾处理器中加入MMX[2],旨在提高有关图形、影像和声音等应用的处理速度,同时,支持的指令也较为清晰简单。随后即有SSE、SSE2、SSE3、SSE4.1的相继面世,其中的SSE[3]是MMX的超集。具体来说,SSE能够提供更高分辨率的图像浏览,获取高精优质的音视频,在指标效果愈加改进的语音识别方面却只需占取更少的CPU资源,当然,在功能方面,完善了之前非对齐访问相关的应用设计,增加了跨幅、插入、寻找等操作。在此之后应运而生的AVX、AVX2与IMCI,涉及的编译技术则从基于基本块对程序进行分析转到基于循环的分析,尤其对逻辑关系更加复杂的多重循环展开了向量化并行度的深入讨论;更进一步地,应用场景也由图形图像处理延伸到高性能计算中。与此同时,除了Intel积极行动之外……

登录APP查看全文