[發明專利]一種數據流架構的硬件加速方法及裝置有效
| 申請號: | 202210980907.3 | 申請日: | 2022-08-16 |
| 公開(公告)號: | CN115344526B | 公開(公告)日: | 2023-04-18 |
| 發明(設計)人: | 汪海洋;郟暉;白錦龍;趙海旭;丁冬;王鋒;花鵬程;柴志雷 | 申請(專利權)人: | 江南信安(北京)科技有限公司 |
| 主分類號: | G06F15/78 | 分類號: | G06F15/78;G06F17/15 |
| 代理公司: | 北京華清迪源知識產權代理有限公司 11577 | 代理人: | 鄭興旺 |
| 地址: | 100088 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據流 架構 硬件加速 方法 裝置 | ||
1.一種數據流架構的硬件加速方法,其特征在于,包括:
通過主機端存儲NTT計算所需輸入數據,將N個輸入的NTT計算任務劃分成I個規模為J的子任務;
使用OpenCL異構計算框架,建立FPGA設備端的計算核,并將劃分得到的子任務數據傳輸到FPGA設備端上的緩存區;
第一個子任務內部數據以數據流的方式處理,當第一輪蝶形運算單元完成第一個子任務的數據處理時,第二個子任務的數據流入第一輪蝶形運算單元,使FPGA設備端處理子任務數據時形成兩級數據流架構;
FPGA設備端上的緩存區包括多端口讀寫的BRAM,FPGA設備端通過BRAM訪問緩沖區的數據;
FPGA設備端對第一個子任務的規模為J的數據進行流式訪問,第一個子任務的規模為J的數據以隊列的方式流入第一個NTT計算核;
當流入第一個NTT計算核的數據啟動第一輪蝶形運算單元時,第一個NTT計算核開始運作;
將第一輪蝶形運算單元的輸出數據流入第二輪蝶形運算單元;
當第一個NTT計算核開始依次輸出每一個子任務的計算結果時,通過一組連接到BRAM的FIFO對輸出數據進行重排,使原本I個規模為J的子任務結果通過數據選擇器分散到J個BRAM存儲單元組,重新產生J個規模為I的子任務;
對重排后J個規模為I的子任務的BRAM依次將數據傳輸至第二個NTT計算核;
第二個NTT計算核仿照第一個NTT計算核的兩級數據流架構模式逐漸充盈并依次計算產生J個子任務的輸出結果;
規模為N的NTT計算任務的輸出由第二個NTT計算核流式產生,將第二個NTT計算核流式產生的輸出按批次通過PCIe總線傳回主機端。
2.根據權利要求1所述的一種數據流架構的硬件加速方法,其特征在于,將N個NTT計算任務劃分為J個規模為I的子任務后,采用折半遞歸算法分別計算每個子任務的結果向量,對J個子任務的結果向量分別乘以對應旋轉因子;再對J個子任務進行轉置重排,重新劃分為I個規模為J的子任務分別進行折半遞歸計算。
3.根據權利要求2所述的一種數據流架構的硬件加速方法,其特征在于,將各次遞歸調用關系中的輸入向量組織成樹形結構,根據蝶形運算的輸入輸出將樹形結構的每層數據重新排列為新的向量,將遞歸結構的NTT算法轉化為迭代算法以適應并行或流水的加速模式;
相鄰兩輪蝶形運算間的數據讀寫依賴存在以下關系:
第二輪迭代需要讀取的數據在第一輪迭代計算完成1/2時準備好,第三輪迭代需要讀取的數據在第二輪迭代計算完成1/4時準備好,第四輪迭代需要讀取的數據在第三輪迭代計算完成1/8時準備好,并以此關系類推。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于江南信安(北京)科技有限公司,未經江南信安(北京)科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210980907.3/1.html,轉載請聲明來源鉆瓜專利網。





