一种GPU加速的多数据多线程SHA-256计算实现方法与流程

文档序号:34106481发布日期:2023-05-10 20:18阅读:来源:国知局

技术特征:

1.一种gpu加速的多数据多线程sha-256计算实现方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种gpu加速的多数据多线程sha-256计算实现方法,其特征在于,所述步骤1构建的sha-256算法消息扩展的并行模型,使用gpu对整块数据采用地址偏移方法区別数据块,为不同的数据块分配不同的线程,数据块对j取值范围从16-63的w[j]数组采用双线程并行计算模式实现sha-256算法消息扩展的并行。

3.根据权利要求1所述的一种gpu加速的多数据多线程sha-256计算实现方法,其特征在于,所述步骤2构建的sha-256算法循环迭代的并行模型,利用8个线程同时处理a、b、…、h的迭代计算任务:a、b、…、h分別首先获取中间变量数组h对应位置的数值,再根据计算结果更新h,如此循环64次,完成一个数据块的迭代计算部分。

4.根据权利要求1所述的一种gpu加速的多数据多线程sha-256计算实现方法,其特征在于,所述步骤3优化的数据存储模型,将a、b、…、h存储在共享存储器中,共享存储器中的数据在计算完成后再拷贝回全局存储器,将64个常数k[i](i=0,1,2…63)存储在常数存储器,在迭代更新h数组中计算a、b、…、h时被使用。

5.根据权利要求1所述的一种gpu加速的多数据多线程sha-256计算实现方法,其特征在于,所述步骤3优化的数据流模型,使用两个不同的kernel函数分别计算消息扩展部分与之后的迭代更新h数组部分;

6.根据权利要求1所述的一种gpu加速的多数据多线程sha-256计算实现方法,其特征在于,所述步骤4构建的完整cpu-gpu异构结构任务和数据流具体包括:

7.根据权利要求6所述的一种gpu加速的多数据多线程sha-256计算实现方法,其特征在于,所述步骤4.2具体为:cpu从磁盘读取数据信息,确定数据长度,根据数据长度分配内存来存储数据,之后基于数据长度分配好需要的显存,需要分配的显存有数据部分、w数组部分和结果数组部分,此外还需要在内存里分配相应结果数组部分以提供空间存储gpu计算出的结果;最后为每个待处理的数据创建好相应的cuda流,并且同时确定需要处理的总的数据个数。

8.根据权利要求6所述的一种gpu加速的多数据多线程sha-256计算实现方法,其特征在于,步骤4.3所述sha-256算法,包括:cpu先对数据进行预处理,进行补位填充;之后,利用前一步中为数据已经创建好的流,将处理完的数据异步传输给gpu,gpu开始异步计算;cpu在调用gpu执行异步操作后开始处理下一个数据的补位与填充部分。

9.根据权利要求6所述的一种gpu加速的多数据多线程sha-256计算实现方法,其特征在于,所述步骤4.4具体过程为:gpu直接从显存的数据部分读取数据,计算完后存到显存的w数组部分;随着cpu不断处理完多个数据的补位填充并且完成数据传输后,会有多个流等待着gpu来处理,当硬件未达到满载时,多个数据的多个流被gpu同时计算。

10.根据权利要求6所述的一种gpu加速的多数据多线程sha-256计算实现方法,其特征在于,所述步骤4.5中,gpu通过线程id来寻找显存中对应的w数组以及结果数组的地址,之后每个线程开始执行相同代码,在过程中访问常数存储器,读取其中的k数组,并使用共享存储器存储部分中间变量。


技术总结
本发明公开了一种GPU加速的多数据多线程SHA‑256计算实现方法,包括构建SHA‑256算法消息扩展的并行模型;构建SHA‑256算法循环迭代的并行模型;优化数据存储模型和数据流模型;构建完整CPU‑GPU异构结构任务和数据流。本发明采用多线程的方法处理多个数据的SHA‑256摘要的计算任务,利用GPU多级存储的结构,将一些常用数据存放于快速存取结构当中,加快了算法的运算速度;利用CPU‑GPU异构系统不同硬件设备各自的优势实现了合理计算任务分配,降低了计算时间开销。

技术研发人员:肖利民,沈润楠,王良,袁昊宇,蒋世轩,郭为
受保护的技术使用者:北京天数微芯半导体科技有限公司
技术研发日:
技术公布日:2024/1/12
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1