基于CUDA的GPU技术快速处理海量数据应用探析
2013-08-15付为民
米 淳 李 翔 许 星 付为民
(中国人民公安大学 网络安全保卫学院,北京 102623)
1 引言
GPU(Graphic Processing Unit)是指图形处理器,是显卡的“心脏”。每个GPU内部包含成百上千的多线程计算部件,可将大型计算任务分割成许多小份,同时处理这些分割的任务。在GPU上做合适的编程,就可以利用GPU高效快速处理海量数据。据计算行业调查,GPU浮点运算运算方面可以提供比CPU快百倍的并行计算性能,并且仍在快速增长。当今五强计算机中的三台均采用英伟达(NVIDIA)Tesla GPU动力。
在超级计算机快速发展的今天,GPU已经成为业界公认地打造世界级超级计算机的关键技术。GPU的超强运算能力是由其独特的硬件结构决定的,其特点是具有高并行结构并且将更多的晶体管用于数据处理。
2 基于CUDA的GPU编程模型
CUDA (Compute Unified Device Architecture), 是一种由NVIDIA推出的通用并行计算架构,该架构使得GPU具有了强大的可编程性。CUDA提供了一个灵活的编程模型和类C语言以在GPU上实现并行数据算法,这是研究并行算法的一种新模型,它为模式识别、工业研究和向量计算等大规模并行计算问题开辟了一条全新的道路。
CUDA C相比C语言更加容易把握,其语法规则基本遵照C语言进行了一些扩充,这些特点使得CUDA具有一些明显的功能:(1)线程按照两个层次进行组织,细粒度数据并行(线程级并行实现)和粗粒度并行(任务并行实现);(2)具有强大的可编程性,CUDA使用C编程语言提供了高性能计算的指导性开发能力,使开发者可以基于GPU的强大数据并行计算能力,建立一个更有效的计算方案。
3 基于CUDA的GPU技术在快速处理海量数据的应用
3.1 应用于AES加密解密
目前信息安全越来越受到人们的重视,而这都是建立在安全协议和算法基础之上。加密算法是信息安全的核心模块。多种加密算法已经被开发,但越是安全的加密解密算法在复杂度上却越加难于计算。所以,有很多的安全加密算法由于其复杂度过高和个人计算机的计算能力有限,无法实现快速的加密和解密,从而失去了实用性。
基于CUDA的GPU技术为这一问题提供完美的解决方案。AES高级加密标准在很大程度上取决于整数运算。基于CUDA的GPU技术的整数处理能力对于实现AES加密解密的有效性已经在一些实验中被证实。目前,AES在GPU上实现的速度最高可为CPU上实现速度的19.60倍。
3.2 应用于数据挖掘与分析
在如今的信息时代,海量的数据信息爆炸性地增长,信息分析工作在面对如此繁杂的信息时就变得无所适从,因为这项工作往往需要进行大规模复杂的数据运算。
聚类是数据查找和数据挖掘领域的一项重要技术,而K-means算法是聚类运算中实现成本最低、达成速度最快、信息反馈最及时的一种常规算法。然而在面对纷繁芜杂的海量数据时,K-means算法表现出的性能却不尽人意。
基于CUDA的GPU的可以在很大程度上优化K-means算法。基于GPU的K-means算法的核心框架是将K-means算法中包含的数据分割开,将连续的、涉及大量计算的部分交给GPU处理,从而提高收敛速度和检索性能。具体说,由于K-means算法每次计算的数据之间都是相互独立的,相互间都不受彼此的影响,所以在此基础上,虽然数据的使用和K个簇中心的更新过程要执行很多次,但基于CUDA的GPU可以利用其大量并行处理数据的特点,将其分割成独立的内核函数,再通过高速并行计算核心处理数据。
3.3 应用于计算机病毒特征快速匹配
如今的互联网技术飞速发展,在很多方面为人们提供便利,然而在互联网上的资源良莠不齐,木马、病毒等危害信息广泛传播,给网络安全带来了巨大的威胁。
解决计算机病毒的方法除了使用快速且昂贵的专用防火墙、杀毒软件之外,使用廉价的一个折中的方案,那就是使用基于GPU的模式匹配算法进行病毒特征的快速查杀。科学家们已经实现了一个高性能的基于GPU的病毒扫描库。该系统采用GPU作为一个高速数据筛选器并行地从数以千计的数据对象中识别潜在的病毒特征,使得GPU已经可以作为一种可行且高性能的网络安全处理平台。
3.4 应用加速大型数据库操作
作为大公司的生命线,数据库的作用至关重要。现阶段,要想从海量复杂的数据库中提取出有效的关联信息仍然是一个计算机领域的世界性难题。由于数据库中数据量日益庞大,尽管使用较好的搜索算法和数据结构,对数据库的查询,修改等操作速度仍然较慢。未来操作人员可以利用基于CUDA的GPU技术,并行处理数据库将使操作速度提高10倍以上,这样数以亿计的数据在几秒钟内就会被反馈到用户面前,从而使用户能方便快捷准确地从数据库中获取所需信息,提高了数据库管理和使用效率。
4 结语
本文介绍了图形处理单元GPU结构特点以及强大的计算能力,并提出了将基于CUDA的GPU技术应用于快速处理海量数据的应用构想。随着科学技术的进步,新一代GPU将具备更加强大的计算能力和可编程性,GPU势必会成为一个研究热点和突破点。
[1]吴思华,柳有权.基于图形处理器(GPU)的通用计算[J].计算机辅助设计与图形学学报,2004,16[5]
[2]冯娜.基于GPU的档案数据库应用研究[J]武汉理工大学学报2011.06
[3]盖素丽.基于GPU的数字图像并行处理方法[J].电子产品世界2009.(02)