论文部分内容阅读
进入二十一世纪,以高通量基因测序为代表的新一代测序技术,在医疗、制药及育种等多个领域得到快速发展及应用,催生了未处理的基因数据呈爆炸性增长。基因序列比对是基因测序流程中的关键步骤,也是其性能瓶颈之一,因此如何高效计算处理基因数据成为相关研究的热点领域。本论文利用可重构计算系统对BWA软件包中Seed产生阶段的加速方法进行研究。具体实现采用OpenCL开发方式,该方式同传统HDL开发方式相比,具有开发实现快、节省人力资源以及跨平台兼容性好的特点。在算法的加速优化上,采用多PE的加速体系结构与优化访存措施相结合的策略提高执行效率,对比CPU单线程,获得了较明显的加速效果。本论文先选用两个可重构系统,并针对各自的特点定制加速结构,选择加速效果更好的系统作为最终的加速系统,主要贡献如下: 1)对BWA软件包中Seed产生阶段C代码在X86通用处理器上的运行性能分析,得到该程序执行的效率瓶颈和热点函数,并将热点函数映射成FPGA上执行的两个核函数——核函数bwt_2occ4和核函数bwt_sa。测试发现该热点函数为非规则访存密集型、计算密度低。 2)针对大数据可重构系统的自带大容量内存、均匀局部访存的结构特点,优化访存及定制多PE加速结构。核函数bwt_2occ4采用4个处理引擎(PE)并行加速,每个PE内部采用批处理、不定长循环展开、使用常量Cache三种优化措施。核函数bwt_sa采用4个PE并行处理。使用人类第1号染色体(约249MB)作为测试数据,核函数bwt_2occ4相较于Intel Xeon S2600WTTR Processor单线程模式的加速比为11.8,核函数bwt_sa的加速比为15.1。 3)在Intel Xeon+FPGA共享内存一致性系统上,因加速算法不规则访存造成Cache不命中,使得直接映射的算法加速效率低。为解决该问题,本文采用CPU与FPGA协同加速与数据预处理方法,提高加速效率。在核函数bwt_2occ4的优化中,主机端使用6个线程整理数据并存储于数组,使设备端的随机访存转化为连续访存;设备端使用5个PE并行加速,每个PE内同时完成两对索引上下界对应的碱基数的计算,提升资源利用率。核函数bwt sa采用4个PE加速,每个PE内部将不定长循环所需数据块提前预取到FPGA内部,提高访存效率。使用人类第1号染色体(约249MB)作为测试数据,核函数bwt_2occ4相较于Intel Xeon S2600WTTR Processor单线程模式的加速比为2.6,核函数bwt_sa的加速比为3.2。 4)对两种可重构系统上的相同算法的加速比差异,分析了可能原因并设计实验验证。此外,以核函数bwt_2occ4为例,通过加大Intel Xeon+FPGA系统的加速器中单PE读取数据的宽度,提高了互联带宽的利用率,加速比有了进一步提高。使用人类第1号染色体(约249MB)作为测试数据,核函数bwt_2occ4相较于Intel Xeon S2600WTTR Processor单线程模式的加速比为10.0,进一步证明实验结论。 5)选择加速比更高的大数据可重构系统作为最终的加速系统,测试数据以hg19数据库中的全人类基因组(约3.2G)作为Reference,wgsim工具生成的DNA片段作为Read序列(Read的数量为1M,长度为101bp),相较于2.4Ghz28线程的Intel Xeon S2600WTTR Processor单线程模式获得的加速比为:核函数bwt_2occ4为8.8,核函数bwt_sa为14.3。