论文部分内容阅读
在过去的二十多年中,采用单一中央处理器架构的微处理器产品(如Intel的奔腾系列以及AMD的Opteron 系列)以惊人的速度发展着:它们的性能以惊人的速度提高而成本则以相当的速度下降。这些处理器给桌面电脑以及集群服务器带来了巨大的运算能力。这些性能上的不断提高给软件带来了更强大的功能、更好的用户界面。然而,从2003年开始,微处理器领域的发展由于功耗问题而逐渐变缓。从此之后,几乎所有的微处理器厂商都转而增加处理器内核数量来增强处理能力。同样在2003年,被称为GPU(Graphics Processing Unit)的新型多核处理器逐渐发展起来并引领浮点运算性能的前沿。NVIDIA在2006年提出的新的GPU 体系架构CUDA 使得GPU 真正成为了一种面向通用计算的协处理器,彻底改变了以往只有通过图形API才能用GPU 进行通用运算的GPGPU 编程模型。
GPU的发展为对高效密码学的需求提供了一个解决方案。诸多研究者已经就GPU在密码学方面的应用做了许多工作。论文利用CUDA平台设计并实现了一个针对文件名加密的RAR文件进行密码恢复的系统。在系统设计和实现过程中,论文针对RAR加密解密中的AES 密钥生成步骤进行了详细讨论。在给出了原始的GPU 版本后,论文还对基于GPU的并行程序优化提出了相应的原则和注意事项,并将这些原则应用于本文的系统,对系统进行了优化使其实现了更好的性能。
从论文针对原始版本的优化中可以看出,进行并行程序优化是一项相当有挑战性的工作。与CPU 程序不同,并行程序的性能由诸多方面共同决定,而这些方面之间又相互制约,使得优化存在相当的不确定性。针对此点,论文进而给出了一个对代码性能进行评价的度量。该度量一方面可以为程序设计提供一些指导也在一定程度上缩小了最佳配置参数的搜索范围,从而简化优化工作。