论文摘要
随着互联网产业的快速发展和计算机硬件性能的不断提升,基于GPU(图形处理单元)的通用加速计算成为业内开始研究的一大热点。最近推出的OpenCL(开放式计算语言)语言标准,可以在CPU、GPU和其它处理器上进行通用目的的并行编程,使软件开发者可以更加方便高效的使用这些异构处理平台。这也使得降低CPU计算负载,提高程序的执行效率成为可能,尤其是对于实时应用显得更加重要。尽管GPU通用加速计算多是以处理图形图像为主,但对于其他诸如语音编解码等应用则还未有广泛的研究。这是因为在音频处理算法上牵涉到的计算量并不足够大,而GPU所涉及的运算往往是高密度计算,例如,稠密线性代数等。本论文的主要目的是探讨在GPU上对语音信号进行处理,通过GPU与CPU的协同计算,将运算从CPU上转移至GPU上,从而降低CPU的计算负载,并提高整个编码器的编码效率。这个研究将基于目前现有的开源代码库SILK编解码器展开,SILK编解码器是Skype公司向硬件制造商和第三方开发人员提供免版税认证(RF)的宽带音频编码器。该编码器不仅可以提供实时的伸缩性以适应网络质量的下降,而且可以在比以前网络占用量小50%的情况下提供超宽带的音频信号,即使丢包水平达到10%依然可以稳定维持24KHz采样的通话音质。因此,能够在低带宽的环境中提供优质的通话质量,渐渐成为该编码器越来越被广泛关注和应用的重要原因。该论文通过对数据压缩部分的线性预测系数的处理过程(包括:LPC系数求解,LPC转化为LSF以及LSF的量化等几个方面)进行OpenCL版本的代码实现,对实验结果进行性能评估,并对实际当中CPU和GPU之间的负载平衡策略进行详细讨论。通过一系列相关的性能测试和数据分析,最终选择出一个比较合理的优化方案,从而证明:在CPU+GPU的异构架构下,尽管OpenCL版本的测试程序存在一定缺陷,但在程序整体的运行过程中,仍然表现出,GPGPU通用加速计算使SILK编解码器编码效率有所提高。本论文中提出的优化措施可能并不常见,但希望随着CPU与GPU的集成化程度的提高而变得越来越具有可行性,尤其是在嵌入式设备上。
论文目录
摘要ABSTRACT第一章 绪论1.1 课题背景和研究意义1.2 国内外研究现状1.2.1 语音编解码技术的发展1.2.2 GPGPU 技术的发展1.3 论文主要工作及章节安排第二章 通用加速计算与SILK 编解码器原理2.1 GPU 并行计算2.1.1 并行计算概述2.1.2 GPGPU 计算2.1.2.1 着色程序2.1.2.2 与着色无关的可扩展性编程2.2 OpenCL2.2.1 OpenCL 标准2.2.2 嵌入式设备上的OpenCL2.2.3 OpenCL 语言模型2.2.3.1 平台模型2.2.3.2 执行模型2.2.3.3 内存模型2.3 OpenCL 编程步骤2.4 负载平衡2.4.1 负载平衡的历史2.4.2 传统的负载平衡技术2.4.3 GPU 上的负载平衡2.4.4 自动可调的GPU 算法2.5 SILK 编解码器2.5.1 SILK 编解码器的控制参数2.5.2 SILK 编码器2.5.3 SILK 解码器2.6 本章小结第三章 基于OpenCL 的SILK 编码器中LPC 处理的实现3.1 LPC 处理的OpenCL 版本3.1.1 实现框架3.1.2 测试框架3.1.3 实现流程3.2 基于OpenCL 的LPC 处理的优化3.2.1 帧的并行化3.2.2 独立计算部分3.2.3 增加计算负载3.2.3.1 增加输入帧的长度3.2.3.2 并行处理多个文件块3.2.4 协处理功能实现3.2.4.1 CPU 上的OpenCL3.2.4.2 LPC 处理的OpenCL 版本的协处理实现3.2.5 任务并行3.2.6 内核函数的优化3.2.6.1 数据传输优化3.2.6.2 内存访问优化3.2.6.3 控制流优化3.2.6.4 使用OpenCL 的内建数学函数3.2.7 OpenCL 内核函数矩阵运算的优化过程3.3 OpenCL 版本的内核函数功能3.4 本章小结第四章 性能测试与评估4.1 测试平台与开发环境4.2 GPGPU 平台时延4.3 测试数据4.4 结果总结4.5 本章小结第五章 总结与展望5.1 总结5.2 展望5.2.1 进一步优化OpenCL 的执行方案5.2.2 大规模并行音频处理5.2.3 使代码能够更好地集成于库中5.2.4 将SILK 其他部分的代码用OpenCL 实现5.2.5 在嵌入式设备上运行5.3 结束语致谢参考文献
相关论文文献
标签:编解码器论文; 图形处理单元论文; 开放式计算语言论文; 通用加速计算论文;