[發明專利]一種基于線性分段的softmax硬件實現方法有效
| 申請號: | 202110591328.5 | 申請日: | 2021-05-28 |
| 公開(公告)號: | CN113377332B | 公開(公告)日: | 2023-08-22 |
| 發明(設計)人: | 李麗;龍威;傅玉祥;宋文清;周禹辰;陳鎧;李偉;何書專 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F7/498 | 分類號: | G06F7/498;G06F7/575 |
| 代理公司: | 南京泰普專利代理事務所(普通合伙) 32360 | 代理人: | 方曉雯 |
| 地址: | 210023 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 線性 分段 softmax 硬件 實現 方法 | ||
本發明提出了一種基于線性分段的softmax硬件實現方法,該方法實現的電路系統包括:控制器用于實現softmax運算所需的源數據的讀取和分發,以及運算結果的存儲;排序模塊用于將輸入進行排序,并找出最大值;自然指數模塊用于計算輸入源數據的e指數函數值;加法樹模塊用于將e指數模塊的結果進行累加;除法模塊用于計算每個e指數計算結果與累加結果的比值。該方法實現的電路系統通過分解計算過程、壓縮計算區間,大幅降低了傳統查找表方法實現softmax的參數,兼具了高性能和低硬件資源開銷,可用于各種人工智能算法加速場景。
技術領域
本發明涉及一種基于線性分段的softmax硬件實現方法,特別是涉及深度學習硬件加速技術領域。
背景技術
深度學習的概念在2006年被正式提出,此后經過多年迅速發展,逐漸在語音識別、機器翻譯、圖像識別、自動駕駛等領域有了重要應用。而CPU、GPU等硬件平臺部署深度學習算法時,計算并行度低、功耗高難以滿足實際應用場景,因此需要為深度學習算法設計專用的硬件加速電路。
Softmax是深度學習常用的激活函數之一,用于多分類問題。該函數將多個輸入映射到(0,1)的區間上,從而實現概率分布。而其中的自然指數模塊需要消耗大量的硬件資源和計算周期,難以用硬件實現。現有的softmax實現方法中,cordic算法需要多次迭代,計算周期較長;傳統查找表方法需要大量存儲資源,且從存儲器中取數花費較多時間;線性分段同樣需要大量存儲空間,且計算精度不高。
發明內容
發明目的:提出一種基于線性分段的softmax硬件實現方法,以解決現有技術存在的上述問題,同時,彌補傳統softmax實現的不足,解決softmax難以在硬件部署的問題。
技術方案:第一方面,提出了一種基于線性分段的softmax硬件實現方法,該方法具體包括以下步驟:
對源數據進行讀取和分發;
通過計算獲取源數據中的最大值;
結合查找表和線性分段擬合方法,計算源數據的自然指數;
并行輸入源數據的自然指數并進行累加操作;
結合除法計算得到最終的輸出結果;
接收輸出的結果,并按順序存入雙倍速率同步動態隨機存儲器中。
在第一方面的一些可實現方式中,對所述源數據進行讀取的過程進一步為:從雙倍速率同步動態隨機存儲器中讀取源數據,并按照順序存入存儲陣列源數據區的內存庫中。
對所述源數據進行分發的過程進一步為:從所述內存庫中取出一個數,進行并行計算。
在第一方面的一些可實現方式中,通過配置比較器以及將計算轉化至負數域,比較所述源數據的大小,獲取所述源數據中的最大值。
在第一方面的一些可實現方式中,所述自然指數的獲取方式進一步為:
輸入獲取的新數據;所述新數據為去除所述最大值的源數據;
根據整數位寬參數,將所述新數據拆分為整數部分和小數部分;
對所述新數據進行整數部分的e指數結果查找和小數部分區間重映射;
查找所述小數部分的線性分段參數;
計算所述小數部分的e指數結果;
計算整數部分e指數結果和小數部分e指數結果乘積,對乘法結果進行移位還原。
其中,所述e指數計算包括整數部分和小數部分;
所述整數部分采用直接查找;
所述小數部分采用分段擬合的方式。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110591328.5/2.html,轉載請聲明來源鉆瓜專利網。





