GPGPU的出现为高性能计算的普及带来了新的曙光。在传统的计算机体系中,GPU一直只是作为计算机系统的图形图像渲染输出的设备,而在大部分时间内都处于闲置状态,若能够充分利用这部分资源作为计算设备,则可以在很大程度上提升设备的运算性能。在最近几年中GPU的性能呈现爆发式增长,在浮点运算性能方面更是远超传统的CPU,这更为GPU编程技术创造了有利条件。
基于以上的意义,本系统在CPU平台下实现AES加密算法的同时,创新的引入了GPU作为辅助运算设备,实现算法的并行化,大幅度提高在处理大型文件下的加解密效率,并于传统加密算法作对比,为提高数据加解密速度,更好的保障数据的安全性方面做出了一个方向上的探索。本系统采用QT框架开发界面程序,具有良好的跨平台性。
2 开发平台与应用技术
2.1 C语言开发技术简述
C语言是国际上广泛流行的计算机高级语言,其前身是美国AT&T贝尔实验室以BCPL语言为基础而设计的B语言。但由于B语言过于简单,功能有限,而后贝尔实验室在B语言的基础上设计出了C语言。
C语言有以下几个特点:
1.简洁紧凑、灵活方便。
2.运算符丰富。
3.数据结构丰富。
4.是结构式语言。
5.宽松的语法格式、程序自由度高。
6.允许直接访问物理地址,对硬件直接进行操作。
7.具有良好的可移植性。
2.2 GPU编程简介
2.2.1 GPU简介
GPU(graphic processing unit,图形处理单元),又称作显示核心、视觉处理器、显示芯片是一种扩展式计算设备,称为协处理器,通过PCI-E接口连接。其最早是由NVIDIA公司在发布GeForce256时首先提出。GPU在核心计算能力和存储器带宽上相较于CPU有明显优势,同时也有着更低的能耗比。由于对图形图像的处理可以用并行的方式来处理,因此GPU可以堆砌大量的计算核心和缓存系统来达到更高的处理能力,而CPU由于自身硬件特性的限制,则需要依靠复杂的控制单元来达到上述目的。[ ]
本课题所使用的NVIDIA GPU由以下几个部分组成:[ ]
1. 计算部分:流处理器(Streaming Processer,SP):也称Core,渲染核(Shader Core),是GPU运算的最基本单元,Core上执行最基本的线程,是实现具体计算的处理器。32个核心构成一个wrap。流处理器簇(Streaming Multiprocessors,SM) :SM由warp调度器、局部寄存器、渲染核、共享内存等。GPU中SM的个数规定了其计算性能,一个SM中往往包含多个流处理器。
2. 存储设备:和传统的冯诺依曼体系类似,GPU不光拥有计算核心,还拥有一套独立的缓存系统和存储系统。其中最靠近核心的是寄存器,速度最快,几乎没有延迟,其次是常量存储和共享存储,他们分别为所有核心和同一个SM下可见,较慢的是本地存储,全局存储和纹理存储。在GPU编程时,合理搭配各类存储也是提高程序效率的一个有效手段之一。 AES算法GPU协处理下分组加密模式的研究+源代码(3):http://www.youerw.com/jisuanji/lunwen_34108.html