本白皮书探讨了tms320c6678处理器的vlfft演示。通过内置8个固定和浮点dsp内核的tms320c6678处理器来执行16k-1024k的一维单精度浮点fft算法样本,检测其分别在采用1,2,4或8核时各自的运行时间。演示的结果证明了c66x dsp内核的优异性能,以及tms320c6678处理器跨多核平行化执行性能与内核数量成正比的特性。
本文的演示采用fft算法,该算法在诸如医学成像、通信、军事和商业雷达以及电子战(干扰器、抗干扰器)等领域中被频繁应用。本文演示结果显示,在运行速率为1 ghz,dsp内核为8个时,用tms320c6678处理器执行1024k的fft算法样本只需要6.4毫秒。
tms320c6678 soc
tms320c6678处理器具有8个dsp内核,是基于ti的c66x固定和浮点dsp内核以及ti享有多核权利的创新型keystone构架创建的。它运行速度最高可达1.25ghz,在这个速度下它可以进行每秒160千兆次浮点运算,而且通常情况下消耗的电能不到10w.tms320c6678处理器的特色是它每一个dsp内核都有512kb的l2内存;此外,8mb的芯片内存中有4mb的共享内存,并且这两个内存都有纠错码。它的ddr3界面是64位的,有8位纠错码,运行速度可以高达每秒1600兆比特,同时支持高达8gb的外部存储器数据存取。此外,tms320c6678的配套外设包括pcle、serial rapidio、gigabit ethernet以及ti的hyperlink界面,这个界面在连接到ti的其他dsp,arm,arm+dsp处理器以及第三方的fpga时可以提供高达50gbps的连接速度。
在本文的vlfft演示中,tms320c6678处理器运行速度为1ghz,ddr3界面传输速度为1333mhz.
图一:tms320c6678框图
vlfft演示
由于vlfft算法要求将输入的数据存放在处理器的外部存储器当中,在本演示过程中,数据通过dsp内核存取、分配和处理,最后将结果输出到外部存储器中。同时,在整个过程中始终保持循环计数和时间测量。演示时,为tms320c6678处理器配置不同数量的内核(1,2,4或8个)来计算当fft大小不同时的结果,这些fft规格包括:16k 32k 64k 128k 156k 512k 1024k
在演示过程中,通过将计算负载分布到多个核和完全充分利用c66x dsp内核高性能计算能力的方法来确保执行fft达到最大性能。同时运用基础时间抽取算法将一维vlfft算法用类似的二维fft算法来表达。这种方法是在遇到非常大的数据n时,分解成n=n1*n2的形式。在本演示过程中,如果一维输入数组非常大,就采用n1行*n2列的二维数组来表示,然后通过以下步骤来计算fft:
计算n2列数组在n1行数组中不同大小时的fft;乘以旋转因子;存储n2列在n1行不同大小时fft算法的结果,形成一个n2*n1的二维数组;计算n1行数组在n2列数组中不同大小时的fft;存储列方向上的数据形成n2*n1二维数组。
这个算法被takahashi称为hitachi sr8000的高性能平行fft算法。
在执行多核算法时,第一步是计算n2列(核的数量)在n1行规格下的fft算法,第四步是计算n1行(核的数量)在n2列规格下的fft算法。0核是主核,负责与所有剩下的附属核同步。根据n1数组和n2数组的大小,每一个内核计算出来的fft总数都被分成几个较小的模块以适应每个核l2 sram内存的空间。每一组数据都通过外部存储器中的dma预取到l2 sram内存中,然后通过ddr将数据返回到外部存储器中。每个核都运用2个dma通道在外部存储器(ddr3)和内部存储器(l2 sram)中转化输入和输出的数据。
结果
下页图表1展示了tms320c6678评估版(tmdsevm6678le)分别在一个dsp周期和一个毫秒单位时间内运行fft代码的结果。在理想状态下,当用于计算的内核数量增加一倍,循环计数就会减少一半。但在现实中,由于存在信息运行的天花板,同时受限于内存大小和信息宽度(内部存储器),这种情况很难实现。在这种情况下,当用双核取代单核时,运行fft的时间平均减少了49.3 %,基本达到了理想的周期数的一半。当用四核替代一核时,运行fft的时间平均减少了72.5%,而采用八核时平均运行时间则减少了81.6%.
表格一:fft分别在1/2/4/8dsp核时周期及毫秒的结果
由此我们可以看出,无论是双核还是四核,随着fft的大小从16k增加到256k,运行时间减少的幅度也越来越大,而采用八核时运行时间减少的幅度更加剧烈。这是因为对于较小的fft,核数越多,并行代码相对于额外增加核数来提高性能的代价要小很多。以前256kb的fft,在提高性能方面的效果并不太理想,在双核时只能提高2倍,四核时也只有4倍,而在八核时反而会降低其性能。这是由于八核处理数据的速度远高于外部存储器传输数据的速度,从而使其存储空间到达上限导致的。在本演示中,计算一个大小为1024k的fft,即一百万点的fft,在采用8个dsp内核,运行速率为1ghz时,运行时间仅6.4毫秒。
图二:单核与多核在性能上的提升
一个小时能从武汉到北京:“超级高铁”设计原型曝光
富士康斥资一亿美金设立显示技术研究所
新一代人工智能技术将“智”领新生活
智慧建筑发展有哪些关键点还存在哪些问题
工控系统Web组态工具的特点
TMS320C6678处理器的VLFFT演示探讨与研究
区块链在土木建设数据存储中的作用
智能手机迎来寒武纪大爆发时期
高性能DC/DC变换器LM2717的特点性能和电路应用设计分析
超低损耗功率器件IGBT提高电路效率
盘点应急通讯在电力网防冰中的应用
双开双控开关的接线方法
分析西门子与阿里在工业互联网方面合作的利弊
灵活的I.O.组合与最坚固的工业解决方案
沈玉成先生荣获2018年亚洲社会关爱领袖奖
联想拯救者R9000P 2021将搭载AMD锐龙5000H系列
手持热像仪货比三家让你选择最佳
电机绕组线圈嵌线工艺的步骤与注意事项详细解说
B-500 AGV智能物流解决方案
介绍一个使用ESP32模块开发的信息显示器