自动向量化.docx_第1页
自动向量化.docx_第2页
自动向量化.docx_第3页
自动向量化.docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面相DSP的自动向量化技术刘顺亮 西安电子科技大学一 简述随着多媒体应用的迅速发展,很多高性能微处理器都采用了 SIMD 扩展技术。SIMD 扩展技术缺少统一的指令描述规范,程序员不仅需要对程序的结构有较为深刻的认识,而且要掌握目标平台支持的扩展体系结构和指令集的特点,对程序员来说编写 SIMD程序是具有挑战性的工作,因此当前编译技术中的自动向量化就是解决这个问题的一个重要方法。二 自动向量化自动向量化是编译器提供的一个可以自动的使用SIMD指示的功能。目前自动向量化主要有三种方法分别是 传统向量化方法、指令级并行(Instruction-Level Parallelism,ILP)方法和模式匹配方法(1) 传统的向量化方法传统的向量化方法是最早使用的技术,也是一个很成熟的技术,它较多应用于向量机上,并取得了很好的效果。其基本做法是分析循环内的数据依赖关系,并以此构造语句依赖图,再根据tarjian算法构造强连通分量,若强连通分量中只有一条语句,此语句就是可以向量执行的语句。该方法主要分析语句的依赖关系,再结合循环交换和循环分布技术,尽量使最内层循环的语句向量执行,因此传统的向量化方法主要是发掘最内层循环语句级的向量化特性。(2) 指令级并行 指令级并行中一个应用较广的方法是超字并行(Superword Level Parallelism,简写SLP),超字并行向量化方法是在基本块内寻找指令并行机会,其过程是寻找基本块内相邻的内存访问,将其配对并打成向量化的包,再根据定义使用(Define-Use,DU)链和使用定义(Use-Define,UD)链将包扩展,然后按照向量化的要求组合同构操作,生成向量化代码。在具体实现时,将循环按照一定的迭代次数展开,寻找并将地址连续的数据打包作为向量来处理,再将程序中的同构语句用向量指令代替。还可将不同循环的语句合并到同一个基本块内,这样即可实现迭代间的语句并行,又可实现迭代内的指令并行,因此也就可实现迭代间和迭代内的数据SIMD向量化。从这个角度讲,超字并行是传统向量化的一个超集,又是指令级并行(ILP)的一个子集。下图为SLP算法的流程图: 当然仅限于开发基本块内的并行,在处理不连续、不对齐、操作类型不一致的问题时有很多限制,还有一些指令级并行的方法,如Peng WU等提出了一种基于虚拟向量寄存器的架构,这种架构可以为不同的方法提供一个向量化的平台。其向量化架构如下图所示:(3) 模式匹配模式匹配的向量化方法就是按照既定的几种模式,通过语句生成树的模式匹配的方法来产生支持典型操作的扩展指令。这些典型操作一般是应用程序中的一些特殊运算操作,如平均值运算、饱和加减法、最小/大值运算等,这些操作通常也是应用程序的热点操作,占用大部分执行时间。许多扩展指令集针对某些特殊的运算操作提供了相应的指令支持,用这些特殊指令来执行典型操作的时间要比普通执行的时间要少得多。 当前很多商业编译器都集成了自动向量化的模块,但是这些编译器大多是采用传统的向量化方法,传统的向量化方法一般会结合一定的循环变换技术,如Intel 的编译器, GCC编译器 AMD的Open64编译器、PathScale编译器等。超字并行(SLP)的向量化方法一般未使用循环变换方法,此方法大多被各研究机构的编译器所采用,如斯坦福大学基于SUIFs源到源的自动向量化编译器y z,它以GCC编译器作为后端编译器,所采用的扩展指令支持Altivec指令集,此外IBM的编译器B1ueGene/L也采用了超字并行的向量化方法mn。本课题开发的自动向量化工具使用的是超字并行的向量化方法,并将传统的循环变换技术应用到此向量化方法中。三 DSPDSP(Digital Signal Processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。芯片特点1、采用哈佛结构DSP芯片普遍采用数据总线和程序总线分离的哈佛结构或改进的哈佛结构,比传统的冯诺依曼结构有更快的指令执行速度。1)冯诺依曼1采用单存储空间,即程序指令和数据指令公用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行的。2)哈佛结构采用双存储空间,程序存储和数据存储分开,有各自独立的程序总线和数据总线,可独立的编址和独立访问,可对程序和数据进行独立的传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大的提高了数据处理的能力和指令执行的速度,非常适合于实时的数字信号处理。3)改进型的哈佛结构改进型的哈佛结构是采用双存储空间和数条总线,即一条程序总线和多条数据总线。其特点如下:允许在程序空间和数据空间传送数据,使这些数据可以由算术运算指令直接调用,增强了芯片的灵活性。提供了存储指令的高速缓冲器(Cache)和相应的指令,当重复执行这些指令时,只需读入一次就可连续使用,不需要再次从程序存储器中读出,从而减少了指令执行所需要的时间。2 采用多总线结构DSP芯片都采用多总线结构,可同时进行取指令和多个数据存取操作,并由辅助寄存器自动增减地址,使CPU在一个机器周期内可多次对程序空间和数据空间进行访问,大大提高了DSP的运行速度。3 采用流水线技术每一条指令可通过片内多功能单元完成指令、译码、取操作数和执行等多个步骤,实现多条指令并行执行,从而在不提高时钟频率的条件下减少每条指令执行的时间。4 配有专用的硬件乘法-累加器为了适应数字信号处理的需要,当前的DSP芯片都配有硬件乘法-累加器,可以一个周期内完成一次乘法和一次累加操作,从而可实现数据的硬件乘法-累加操作。如矩阵运算、FIR、IIR、FFT变换等专用信号处理。5 具有特殊的DSP指令为了满足数字信号处理的需要,在DSP的指令系统中,设计了一些完成特殊功能的指令。如:TMS320C54x中的FIRS和LMS指令,专门完成系数对称的FIR滤波器和IIR滤波器。6 快速的指令周期由于采用哈佛结构、流水线操作、硬件乘法-累加器、特殊指令和集成的优化设计,使指令周期可在20ns以下。如TMS320C54x的运算速度为100MIPS7 硬件配置强新一代的DSP芯片具有较强的接口功能,除了具有串行口、定时器、主机接口音(HPI)、DMA控制器、软件可编程等待状态发生器等片内外设外,还配有中断处理器、PLL、片内存储器、测试接口等单元电路,可以方便地构成一个嵌入式自封闭的处理器。8 支持多处理器结构尽管当前的DSP芯片已达到了较高的水平,但一些实时性要求很高的场合,单片DSP的处理能力还不能满足要求。如在图象压缩、雷达定位等应用中,若采用单处理器将无法胜任。因此,支持多处理器系统就成为提高DSP应用性能的重要途径之一。9 省电管理和低功耗DSP功耗一般为0.5-4W,若采用低功耗技术可使功耗降到0.25W,可用电池供电,适用于便携式数字终端设备.2DSP优点对元件值的容限不敏感,受温度、环境等外部因素影响小;容易实现集成;VLSI可以分时复用,共享处理器;方便调整处理器的系数实现自适应滤波;可实现模拟处理不能实现的功能:线性相位、多抽样率处理、级联、易于存储等;可用于频率非常低的信号。DSP缺点需要模数转换;受采样频率的限制,处理频率范围有限;数字系统由耗电的有源器件构成,没有无源设备可靠。但是其优点远远超过缺点。四 总结 通过十天的学习,对自动向量化技术和DSP有了比较深入的了解,了解到高性能计算机的发展与硬件和软件息息相关,通过对DSP的自动向量化技术可以提高DSP的计算速度等性能,通过各种算法的整合,实现最优化系统。因此开发新的算法很有必要。应该结合应用程序和硬件体系结构的特点。针对特定应用和特定的体系结构研究循环变换,才能起

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论