-
题名基于指导语句的函数向量化技术研究
- 1
-
-
作者
刘丽丽
单征
李颖颖
武文浩
刘文博
-
机构
解放军战略支援部队信息工程大学
国家并行计算机工程技术研究中心
-
出处
《计算机科学》
北大核心
2025年第5期76-82,共7页
-
基金
2024年先进计算与智能工程实验室(ACE)项目。
-
文摘
随着处理器技术的不断发展,SIMD(Single Instruction Multiple Data)向量化已经在各个领域得到广泛的应用。然而,过去的研究主要集中在循环和基本块上,而全函数向量化可以更好地利用SIMD指令的优势,从而提高应用程序的性能。文中提出了一种基于指导语句的函数向量化方法。首先,在涉及函数调用的循环上加上一种较为简单的指导语句,即可对循环中涉及函数调用的指令进行向量化。其次,对于被调函数的向量化采用全函数向量化的方式,生成向量化的全函数而不是对其内联。最后,处理循环中的函数调用点,生成向量化的函数调用指令。这种方法可以充分利用SIMD指令的优势,提高应用程序的性能。从ISPC基准测试和SIMD库基准测试中选取了10个基准测试来评估所提方法,实验结果表明该方法与标量相比,平均加速比达到了6.949倍。
-
关键词
函数向量化
SIMD
自动向量化
-
Keywords
Function vectorization
SIMD
Automatic vectorization
-
分类号
TP312
[自动化与计算机技术—计算机软件与理论]
-
-
题名发掘函数级单指令多数据向量化的方法
- 2
-
-
作者
李颖颖
高伟
高雨辰
翟胜伟
李朋远
-
机构
数学工程与先进计算国家重点实验室
信息工程大学
中国电子科技集团公司第二十七研究所
北京跟踪与通信技术研究所
-
出处
《计算机应用》
CSCD
北大核心
2017年第8期2200-2208,共9页
-
文摘
当前面向单指令多数据(SIMD)扩展部件的两类向量化方法分别是循环级向量化方法和超字级并行(SLP)方法。针对当前编译器不能实现函数级向量化的问题,提出一种基于静态单赋值的函数级向量化方法。该方法首先分析程序的变量属性,然后利用一组包括向量函数子句、一致子句、线性子句等编译指示子句指导编译器实现函数级向量化,最后利用变量属性结果对向量化代码进行了优化。从多媒体和图像处理领域选择部分测试用例对所提的函数级向量化的功能和性能在国产申威平台上进行测试,与程序串行执行相比,采用函数级向量化后程序的执行效率更高。实验结果表明函数级向量化可以取得类似任务级并行的加速效果,该方法可以指导自动函数级向量化的实现。
-
关键词
单指令多数据扩展
并行性
函数级向量化
编译指示
静态单赋值
-
Keywords
Single Instruction Multiple Data(SIMD) extension
parallelism
function level vectorization
compiler directive
static single assignment
-
分类号
TP301.6
[自动化与计算机技术—计算机系统结构]
TP311.53
[自动化与计算机技术—计算机软件与理论]
-
-
题名基于国产PuDianNao芯片的向量函数库优化
- 3
-
-
作者
杨指政
杜子东
文渊博
-
机构
郑州大学河南先进技术研究院
中国科学院计算技术研究所
中国科学技术大学计算机学院
-
出处
《郑州大学学报(工学版)》
CAS
北大核心
2023年第1期31-37,共7页
-
基金
国家自然科学基金资助项目(61925208)
国家自然科学基金联合基金资助项目(U19B2019)
+1 种基金
中国科学院战略性先导科技专项(XDB32050200)
北京智源人工智能研究院以及北京市科技新星计划项目(Z191100001119093)。
-
文摘
目前国产人工智能处理器PuDianNao芯片上的向量数学函数只能依靠循环调用标量函数来实现,该方法性能比较低。基于PuDianNao芯片提出了3种优化方法。方法一为插值方法;方法二为SIMD加掩码方法;方法三基于PuDianNao的硬件阵列结构,使用VLIW指令操作阵列中的每个处理单元,封装出SIMT编程模型,提出了暴露分支范围和分支扁平化的编程方法。对以上3种方法进行精度和性能测试,对比实验结果表明,方法三具有最好的精度和性能。使用方法三实现基于国产PuDianNao芯片的向量数学函数库PuDianNao-VecMath,解决了数学函数多分支结构难以向量化的难题。该函数库精度性能较好、功能稳定、运行正确,提供的接口包括取整函数、超越函数、比较函数、激活函数等常见基础数学库函数。在精度上,将函数定义域区间全数据作为输入,运算结果和标量函数在CPU i7运行的结果进行对比。结果表明,单精度版本最大ULP值为2,半精度版本最大ULP值为1。性能与使用标量循环相比有较大提高,单精度版本相对于标量循环平均加速比平均值为18.26,最大加速比为35.90;半精度版本平均加速比平均值为15.65,最大加速比为30.11。
-
关键词
向量化函数
PuDianNao-VecMath
国产人工智能处理器
暴露分支范围和分支扁平化
-
Keywords
vectorized function
PuDianNao-VecMath
domestic artificial intelligence processor
expose branch scope and branch flattening
-
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
-