论文部分内容阅读
随着通用计算的复杂程度日益扩大,数据规模不断增加,采用传统多核处理器和高性能CPU提升处理效率的方式已经日益不能满足科学计算的需求,迫切需要利用并行计算技术实现数值计算的高效处理,从而提高应用程序的效率。区块链是随着比特币等数字加密货币的日益普及而逐渐兴起的一种全新的去中心化基础架构与分布式计算范式,已经引起政府部门、金融机构、科技企业和资本市场的高度重视与广泛关注。而SHA-256算法作为如今最为可靠的加密算法,在区块链技术中得到了充分的应用,是其最为关键的算法。目前GPU并行计算技术的发展已经相当成熟,拥有强大的浮点数计算能力和良好的可编程性,采用CPU-GPU异构体系结构已经成为高性能计算机系统的发展趋势之一。本文基于CPU-GPU异构计算环境,利用NVIDIA公司提供的CUDA平台进行开发,将区块链关键算法SHA-256以及最新一代安全散列算法Keccak的流程进行并行化分析,将算法运行程序移植到CUDA平台上,并围绕异构计算中数据流的优化关键技术展开研究,分析基于GPU数据流处理模型框架,阐述应用程序的执行过程以及数据流具体的处理流程。利用Kepler架构中的Hyper-Q特性优化数据流的处理,并使用设备上纹理内存和常量内存降低访问延迟,从而进一步提升算法的处理效率。对数据流处理过程中出现的数据依赖性进行了描述,并提供了相应的解决方法。本文将SHA-256和Keccak算法应用在CPU-GPU异构体系结构上,利用GPU进行算法并行化实现,优化处理过程中数据流,并提升了程序的计算效率,最后获得了一定的加速效果,达到了预期目标,对于GPU在其他领域的应用的研究具有一定的推广意义。