现代图形处理单元(GPU)集成有上百个处理器,其强大的并行计算能力使得许多以前图形学领域内非常耗时的算法变得具有实时计算的可能。同时GPU 的并行计算能力也迅速向通用计算领域渗透,在某些大规模并行通用计算的应用上,其相对于CPU 的计算性能可提高10~100 倍。GPU强大的并行计算能力的根本在于它采用了与CPU完全不同的计算模型,即流计算模型。本课题就将围绕着如何将各种科学和实际问题转换为GPU的流计算模型而展开。该研究可以分为两个方向,即GPU的流计算模型在图形计算和并行通用计算中的应用。具体来说,我们将在以前研究的基础上,重点研究实时软阴影生成、流体实时绘制,生物信息学中的序列比对这三个问题。通过本项研究,我们将更充分的了解如何将计算机图形学和通用计算领域的问题转化为流计算模型,为更广泛的应用GPU 的并行高性能计算能力奠定坚实的理论和实践基础。
GPU;Fire simulation and rendering;Shadow simulation;Gene sequence assembly;
在本项目中,我们分别针对GPU在图形学和通用计算领域内的应用展开了研究。其中在图形学领域,我们选取了流体模拟和绘制,高质量阴影生成这两个方向进行了研究。其中,在流体模拟和绘制方面,我们主要针对火焰这种特殊流体进行了重点研究。提出了基于物理和噪音方法混合的模拟和绘制方法,主要通过实时计算距离场来近似替代温度场,并通过simplex噪音来扰动采样过程来得到火焰随机动态形状的效果。在高质量阴影生成方面,我们重点研究了阴影反走样技术和基于环境遮挡的软阴影生成技术。在阴影反走样方面,我们提出通过重新调整阴影图对场景的深度采样分布的方式来减少阴影的走样现象,扩大阴影图中几何体轮廓区域上的采样,缩小完全在或完全不在阴影区域部分的采样,使得几何体轮廓上能够覆盖更多的纹素但并不改变阴影图的分辨率。在基于环境遮挡的软阴影生成方面,我们提出通过在采样方式,遮挡因子计算和平滑滤波三个方向对基于屏幕空间的环境遮挡技术进行改进,以生成质量更高的软阴影。在通用计算领域,我们选取了生物信息学中的基因序列比较和拼接进行了重点研究,提出了基于块内和块间的两级并行构建图的方法,同时利用了现代GPU和CPU的并行计算能力。基因序列间编辑距离的计算是上述的两级并行构建图过程中频繁涉及的计算,我们提出了一种基于Needleman-Wunsch算法的GPU实现方法,其主要贡献是提出一种高效的得分矩阵的计算和存储方法,使得得分矩阵可以存储在GPU共享内存中;同时,提出使用碱基的品质来修正相似矩阵的值,以获得更符合生物测序结果的拼接结果。