【24h】

Extracting SIMD parallelism from `for' loops

机译:从“ for”循环中提取SIMD并行性

获取原文

摘要

The need for multimedia applications has prompted the addition ofa multimedia instruction set (MMX) to most existing general-purposemicroprocessors. The introduction of short single-instruction multipledata (SIMD) i.e. “vectorized” instructions to themicroprocessor “scalar” instruction set is supported byspecial hardware which enables the execution of one instruction onmultiple data sets. Such a vectorized instruction set is primarily usedin multimedia applications, and it seems likely that it will growrapidly over the next few years. Thus on the one hand we have modernmultimedia execution hardware and on the other we have the software andthe general compilers which are not able to automatically exploit themultimedia instruction set. In addition, the compiler is not able tolocate SIMD parallelism within a basic block. Our solution to theseproblems is to find statement candidates in the program written in thelanguage C/C++ (as we mainly use this language), and to employ the SIMDinstruction set in the easiest possible way. As we know that thecompiler cannot be user-changed or modified, we can only extend thefunctionality of the program (compiler) by the use of specialisedlibrary routines or by macros. We prefer the latter. Why? We believethat the use of the macro library is faster than function calls, and weexpect it to be simpler and more friendly for the user. The algorithmfor identifying candidates for parallel processing (ICPP) is based onthe fact that the program does not need any “correction” or“adoption” prior to being analysed andfinally to beingtranslated into the SIMD instruction set. We define the macro libraryMacroVect.c as the substitution for the discovered statement candidates
机译:对多媒体应用的需求促使人们增加了 适用于大多数现有通用功能的多媒体指令集(MMX) 微处理器。短单指令多级的引入 数据(SIMD),即 微处理器“标量”指令集受以下支持 特殊硬件,可以在一个硬件上执行一条指令 多个数据集。这种向量化指令集主要用于 在多媒体应用中,并且它似乎有可能会增长 在接下来的几年中迅速发展。因此,一方面,我们拥有现代 多媒体执行硬件,另一方面,我们拥有软件和 不能自动利用 多媒体指令集。此外,编译器无法 在基本块内定位SIMD并行性。我们对这些的解决方案 问题是要在编写的程序中查找候选语句 语言C / C ++(因为我们主要使用该语言),并使用SIMD 以最简单的方式设置指令。我们知道 编译器无法更改或修改,我们只能扩展 程序(编译器)的功能通过使用专门的 库例程或宏。我们更喜欢后者。为什么?我们相信 宏库的使用比函数调用更快,我们 希望它对用户更简单,更友好。算法 用于识别并行处理(ICPP)的候选对象是基于 该程序不需要任何“更正”或 在被分析之前以及最终被“采纳”之前 转换为SIMD指令集。我们定义宏库 MacroVect.c替代发现的语句候选者

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号