APP下载

基于飞腾M6678的向量数学库优化技术研究∗

2021-04-06

舰船电子工程 2021年3期
关键词:指令优化数学

(中船重工(武汉)凌久电子有限责任公司 武汉 430074)

1 引言

飞腾M6678为国产化数字信号处理器(Digital Signal Processor,DSP),单核心的浮点理论运算速度达到16GFLOPS,具有功能强大的FFT协处理器,同时兼容TMS320C6678处理器的SIMD指令集。

基础数学库是高性能计算的核心基础软件。与传统的标量运算不同,向量数学库为提升大点数下的数学运算性能而构建,向量化带来的加速比高,性能提升明显。这对于促进国产化芯片行业的蓬勃发展至关重要。向量数学库已经在ARM微处理器[1~2]和国产CPU[3]平台进行了向量化优化[4~6]的尝试。

虽然处理器架构不同,但是向量化的许多方法都是类似的,比如地址对齐[7]、使用SIMD指令[8]和软件流水[9~10]。其中地址对齐提高了访存的速度,SIMD指令利用了指令的位宽[11]实现了数据运算的并行,而软件流水,类似于工厂的流水线,函数循环并非顺序执行,第一次循环还未执行完毕,第二次循环已经开始了。但是,仅有这些方法,无法在DSP上完成向量化优化。本文针对飞腾M6678处理器,构建向量数学库。

目前,飞腾M6678处理器上能够运算的数学函数库有两个,一个是标准C数学函数库,一个是TI公司提供的MATHLIB函数库。上述两个数学函数库都只能满足标量运算的性能要求,当进行大点数的向量数学运算时,无法充分利用DSP的并行运算能力。前者在向量化运算过程中效率低下,后者将代码由内联函数封装,编译器可以根据算法的实现,自行尝试向量化的优化。

数学运算在飞腾M6678处理器上进行性能测试。测试点数选择1024,结果如表1。……

登录APP查看全文

猜你喜欢

指令优化数学
听我指令:大催眠术
超限高层建筑结构设计与优化思考
民用建筑防烟排烟设计优化探讨
关于优化消防安全告知承诺的一些思考
一道优化题的几何解法
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
我为什么怕数学
数学到底有什么用?
数学也疯狂