在x86-64架构下,执行位反转置换的实用高效C++11方法

摘要:位逆序排列是信号处理中的一个著名任务,对于快速傅立叶变换的高效实现至关重要。本文提出了优化的C ++11实现,用于计算位逆序排列的五种现有方法:Stockham自动排序,naive位交换,通过反转字节表的交换,局部逐对位交换以及通过缓存本地化矩阵缓冲区进行交换。本文提出了三种在C ++11中执行位逆序排列的新策略:使用位异或操作的归纳方法,模板递归闭合形式以及缓存非感知模板递归方法,该方法将位逆序排列缩减为较小的位逆序排列和方阵转置。这些新方法与现有方法在理论运行时间,实证编译时间和实证运行时间方面进行了比较。证明了模板递归缓存非感知方法与已知最快方法具有竞争力;然而,我们证明了缓存非感知方法能够更方便地从多核和GPU的并行化中受益。

作者:Christian Knauth, Boran Adas, Daniel Whitfield, Xuesong Wang, Lydia Ickler, Tim Conrad, Oliver Serang

论文ID:1708.01873

分类:Mathematical Software

分类简称:cs.MS

提交时间:2017-08-08

PDF 下载: 英文版 中文版pdf翻译中