永发信息网

哪个gpu计算aes最快

答案:1  悬赏:50  手机版
解决时间 2021-12-23 02:51
  • 提问者网友:浮克旳回音
  • 2021-12-22 03:23
哪个gpu计算aes最快
最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-12-22 03:34
GPU和内存的数据交换是一笔很大的开销,因此从整体上减小这部分的开销是优化的关键。从GPU执行的特点来看,每个线程都独自从内存中读取一个分组长度的数据块,加密完成后写回到内存中。这样,每加密一个分组长度都要读写一次内存,整体IO效率低。根据程序的局部性原理,如果一次读入相邻的多个分组,IO效率会大大提高。在前面的GPU程序中,我们是在一个线程里加密一个分组。现在我们一次读取多个分组进行加密。这样从整体上提高了IO效率。鉴于线程处理器还可以进行并行操作,我们还可以使用流数据类型,进一步提高并行度。 改进的算法如下: brook::Stream*datastream; datastream.read(Block[m][n]); AESEncrypt_CPU_Simple(dtatastream); Datastream.write(Block[m][n]); 改进后,每个线程一次读取n个相邻的分组进行加密。
实验设计 实验采用的CPU是GeForce 9800 GTX+,软件使用GUDA2.1,是在WmdowsXP操作系统下运行的。 CPU对AES算法的加速结果如图1所示。从图中可以看出,当数据量较小时(小于100kB),GPU上的运行性能要低于CPU,这是因为GPU的特点是适合用作高密度数据的并行计算,而当数据量较小时并无法充分利用到GPU的计算资源,而且从主机向设备传输输入数据和由设备向主机返回数据又会占用一定的开销,因此对于小数据量的处理并不适合使用GPU。随着数据量的增加,GPU运算的性能就会明显高于CPU。当数据量大于1MB时,GPU具有将近两倍的加速倍数,之后加速倍数就基本稳定下来,达到饱和,这是因为当数据量已经足够多,充分利用了GPU的计算资源。由于GPU的计算能力远远高于它访问设备内存的带宽以及主机与设备之间的数据传输带宽,在应用中这些数据传输的开销会成为限制GPU运算整体性能的瓶颈,需要对GPU进行优化,才能充分开发出GPU的计算优势。 图1 GPU对AES算法的加速效果

对实验结果进行优化。通过优化,可以提高超过两倍的加速效果,在数据量大时,优化结果更为明显,如图2所示。
结论 本文介绍了在GPU上实现AES加密算法的方法。首先介绍了AES算法,然后对CUDA中的GPU结构和CUDA编程模型进行了深入的研究。最后在GPU和CPU平台上对设计进行了实验对比,取得了理想的加速效果。其实在大多数应用情况下,目前计算机显卡配置的GPU运算潜能并没有完全释放出来,本文介绍的加密方法是GPU通用计算具体应用的一个体现。虽然目前以CUDA为代表的GPU仍然存在精度不高,程序编写限制较多的缺点,但随着并行流处理概念的进一步发展,GPU通用计算技术将在各个领域发挥更大的作用。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯