本發(fā)明涉及歸一化,尤其涉及一種歸一化運算電路、系統(tǒng)。
背景技術(shù):
1、隨著人工智能的飛速發(fā)展,各類神經(jīng)網(wǎng)絡(luò)模型不斷涌現(xiàn),越來越多的算子被廣泛應(yīng)用于神經(jīng)網(wǎng)絡(luò)的計算過程。歸一化是神經(jīng)網(wǎng)絡(luò)的一種算子,是一種數(shù)據(jù)預處理技術(shù),目的是將數(shù)據(jù)調(diào)整到某個特定的范圍或分布,以使其更適合后續(xù)的計算或分析。歸一化的核心思想是通過對數(shù)據(jù)進行縮放或轉(zhuǎn)換,使得不同維度或特征的數(shù)據(jù)在數(shù)值上處于同一個尺度范圍。
2、邊緣計算是一種分布式計算模式,其核心思想是在靠近數(shù)據(jù)源或用戶的設(shè)備上進行數(shù)據(jù)處理,而不是將所有數(shù)據(jù)發(fā)送到遠程的中央服務(wù)器或云計算平臺進行處理。通過將部分計算、存儲和數(shù)據(jù)處理工作移動到網(wǎng)絡(luò)的“邊緣”(例如路由器、網(wǎng)關(guān)、邊緣服務(wù)器等),可以減少延遲、降低帶寬需求,從而提高實時性。因而,若是歸一化運算能夠采用邊緣計算的模式實現(xiàn),可以進一步提高系統(tǒng)性能。
3、然而,相關(guān)技術(shù)中的歸一化運算,通常使用cpu(central?processing?unit,中央處理單元)、gpu(graphics?processing?unit,圖形處理單元)實現(xiàn),cpu并沒有運算歸一化算子的特定電路,受限于其串行執(zhí)行程序的能力,歸一化算子需要使用較長的指令流進行計算,實時性無法滿足邊緣計算要求,gpu消耗的硬件資源多、功耗大導致能效較差,不滿足邊緣計算的低功耗和成本要求。
技術(shù)實現(xiàn)思路
1、本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。為此,本發(fā)明的第一個目的在于提出一種歸一化運算電路,以滿足邊緣計算的需求。
2、本發(fā)明的第二個目的在于提出一種歸一化運算系統(tǒng)。
3、為達到上述目的,本發(fā)明第一方面實施例提出了一種歸一化運算電路,所述電路包括:配置和數(shù)據(jù)緩存模塊,用于確定待運算數(shù)據(jù)、歸一化函數(shù)類型和運算參數(shù);算數(shù)邏輯模塊,與所述配置和數(shù)據(jù)緩存模塊連接,所述算數(shù)邏輯模塊包括多個運算子模塊,用于根據(jù)所述歸一化函數(shù)類型從多個所述運算子模塊中確定目標運算子模塊,并根據(jù)所述歸一化函數(shù)類型和所述運算參數(shù)調(diào)用所述目標運算子模塊對所述待運算數(shù)據(jù)進行歸一化運算,其中,多個所述運算子模塊包括加法子模塊、乘法子模塊、除法子模塊和開根號子模塊;所述加法子模塊的第一輸入端被設(shè)計為所述算數(shù)邏輯模塊的輸入端,用于接收所述待運算數(shù)據(jù),所述加法子模塊的輸出端與所述除法子模塊的第一輸入端連接,所述除法子模塊的第二輸入端與所述加法子模塊的第一輸入端連接,所述除法子模塊的輸出端被設(shè)計為所述算數(shù)邏輯模塊的輸出端;其中,在所述歸一化函數(shù)類型為第一預設(shè)類型時,所述待運算數(shù)據(jù)為向量,所述目標運算子模塊包括所述加法子模塊和所述除法子模塊,所述加法子模塊用于將所述待運算數(shù)據(jù)的所有元素的絕對值求和,得到第一求和結(jié)果,所述除法子模塊用于將所述待運算數(shù)據(jù)除以所述第一求和結(jié)果,得到所述待運算數(shù)據(jù)的歸一化運算結(jié)果。
4、另外,根據(jù)本發(fā)明實施例的歸一化運算電路,還可具有如下附加的技術(shù)特征:
5、在本發(fā)明的一個實施例中,所述加法子模塊,包括:第一參數(shù)輸出設(shè)備、取反器、第一多路選擇器、加法器、第一寄存器、第二多路選擇器、第二寄存器;其中,所述取反器的輸入端被設(shè)計為所述加法子模塊的第一輸入端;所述第一多路選擇器的第一輸入端與所述取反器的輸出端連接,所述第一多路選擇器的第二輸入端與所述取反器的輸入端連接;所述加法器的第一輸入端與所述第一多路選擇器的輸出端連接;所述第一寄存器的輸入端與所述加法器的輸出端連接;所述第二多路選擇器的第一輸入端與所述第一參數(shù)輸出設(shè)備的輸出端連接,所述第二多路選擇器的第二輸入端與所述第一寄存器的輸出端連接,所述第二多路選擇器的輸出端與所述加法器的第二輸入端連接;所述第二寄存器的輸入端與所述第一寄存器的輸出端連接,所述第二寄存器的輸出端與所述取反器的輸入端連接;所述第一寄存器的輸出端還被設(shè)置為所述加法子模塊的輸出端;所述除法子模塊,包括:除法器、左移器、第三寄存器、右移器;其中,所述除法器的第一輸入端被設(shè)計為所述除法子模塊的第一輸入端,所述除法器的第二輸入端與第三寄存器的輸出端連接;所述左移器的輸入端被設(shè)計為所述除法子模塊的第二輸入端;所述第三寄存器的輸入端與所述左移器的輸出端連接;所述右移器的輸入端與所述除法器的輸出端連接,所述右移器的輸出端被設(shè)計為所述除法子模塊的輸出端。
6、在本發(fā)明的一個實施例中,在所述歸一化函數(shù)類型為所述第一預設(shè)類型時,針對所述待運算數(shù)據(jù)中的每個元素,均在所述元素被輸入至所述加法子模塊時,由所述第一多路選擇器在所述元素為正數(shù)時,將所述元素輸出至所述加法器,并在所述元素為負數(shù)時,將所述取反器取反后的元素輸出至所述加法器,所述加法器將所述第一多路選擇器的輸出數(shù)據(jù)與所述第一參數(shù)輸出設(shè)備輸出的運算參數(shù)相加,得到第一相加數(shù)據(jù);在所述第二寄存器中未存儲數(shù)據(jù),且存在未輸入所述待運算數(shù)據(jù)的元素時,將所述第一相加數(shù)據(jù)經(jīng)所述第一寄存器存儲至所述第二寄存器;在所述第二寄存器中未存儲數(shù)據(jù),且所述待運算數(shù)據(jù)的所有元素均已輸入所述加法子模塊時,確定所述第一相加數(shù)據(jù)為所述第一求和結(jié)果;在所述第二寄存器中已存儲數(shù)據(jù)時,將所述第一相加數(shù)據(jù)經(jīng)所述第一寄存器和所述第二多路選擇器輸出至所述加法器,并將所述第二寄存器中的第一存儲數(shù)據(jù)通過所述第一多路選擇器輸出至所述加法器,所述加法器將所述第一相加數(shù)據(jù)與所述第一存儲數(shù)據(jù)相加,得到第二相加數(shù)據(jù);若存在未輸入所述待運算數(shù)據(jù)的元素,將所述第二相加數(shù)據(jù)作為新的第一存儲數(shù)據(jù)存儲至所述第二寄存器;若所述待運算數(shù)據(jù)的所有元素均已輸入所述加法子模塊,確定所述第二相加數(shù)據(jù)為所述第一求和結(jié)果;所述左移器將所述待運算數(shù)據(jù)左移,所述除法器將左移后的所述待運算數(shù)據(jù)除以所述第一求和結(jié)果,所述右移器將除法器輸出數(shù)據(jù)右移,得到所述待運算數(shù)據(jù)的歸一化運算結(jié)果。
7、在本發(fā)明的一個實施例中,所述第二寄存器的輸入端被設(shè)計為所述加法子模塊的第二輸入端,所述乘法子模塊的第一輸入端與第二輸入端均與所述加法子模塊的第一輸入端連接,所述乘法子模塊的輸出端與所述加法子模塊的第二輸入端連接,所述開根號子模塊的輸入端與所述加法子模塊的輸出端連接,所述開根號子模塊的輸出端與所述除法子模塊的第一輸入端連接;所述乘法子模塊,包括:第二參數(shù)輸出設(shè)備、第三多路選擇器、乘法器;其中,所述第三多路選擇器的第一輸入端與所述第二參數(shù)輸出設(shè)備的輸出端連接,所述第三多路選擇器的第二輸入端被設(shè)計為所述乘法子模塊的第二輸入端;所述乘法器的第一輸入端被設(shè)計為所述乘法子模塊的第一輸入端,所述乘法器的第二輸入端與所述第三多路選擇器的輸出端連接,所述乘法器的輸出端被設(shè)計為所述乘法子模塊的輸出端;所述開根號子模塊,包括開根號器,所述開根號器的輸入端被設(shè)計為所述開根號子模塊的輸入端,所述開根號器的輸出端被設(shè)計為所述開根號子模塊的輸出端。
8、在本發(fā)明的一個實施例中,在所述歸一化函數(shù)類型為第二預設(shè)類型時,所述待運算數(shù)據(jù)為向量,所述目標運算子模塊包括所述加法子模塊、所述乘法子模塊、所述除法子模塊和所述開根號子模塊;其中,針對所述待運算數(shù)據(jù)中的每個元素,均將所述元素輸入至所述乘法器的第一輸入端和第二輸入端,以使所述乘法器將所述元素與其自身相乘,得到第一相乘結(jié)果,并將所述第一相乘結(jié)果存儲至所述第二寄存器;若所述第一寄存器中未存儲數(shù)據(jù),所述第二寄存器將所述第一相乘結(jié)果通過所述第一多路選擇器輸出至所述加法器,所述加法器將所述第一相乘結(jié)果與所述第一參數(shù)輸出設(shè)備輸出的運算參數(shù)相加,并將相加結(jié)果存儲至所述第一寄存器;若所述第一寄存器中已存儲數(shù)據(jù),所述第一寄存器將其中存儲的數(shù)據(jù)通過所述第二多路選擇器輸出至所述加法器,所述加法器將所述第一寄存器中存儲的數(shù)據(jù)與所述第一相乘結(jié)果相加,并將相加結(jié)果存儲至所述第一寄存器;在所述待運算數(shù)據(jù)中的每個元素對應(yīng)的相加結(jié)果均存儲至所述第一寄存器后,將所述第一寄存器中的數(shù)據(jù)作為第三相加結(jié)果,并將所述第三相加結(jié)果輸出至所述開根號器,所述開根號器對所述第三相加結(jié)果開根號,得到開方結(jié)果,并將所述開方結(jié)果輸出至所述除法器,所述除法器將所述待運算數(shù)據(jù)除以所述開方結(jié)果,得到所述待運算數(shù)據(jù)的歸一化運算結(jié)果。
9、在本發(fā)明的一個實施例中,所述算數(shù)邏輯模塊,還包括第四多路選擇器,所述第四多路選擇器的第一輸入端與所述右移器的輸出端連接,所述第四多路選擇器的輸出端與所述第一寄存器的輸出端連接,所述第四多路選擇器的輸出端被設(shè)計為所述算數(shù)邏輯模塊的輸出端。
10、在本發(fā)明的一個實施例中,在所述歸一化函數(shù)類型為第三預設(shè)類型時,所述目標運算子模塊包括所述加法子模塊和所述乘法子模塊;其中,所述第三多路選擇器將所述第二參數(shù)輸出設(shè)備輸出的運算參數(shù)輸出至所述乘法器,所述乘法器在接收到所述待運算數(shù)據(jù)后,將所述待運算數(shù)據(jù)與所述第二參數(shù)輸出設(shè)備輸出的運算參數(shù)相乘,得到第二相乘結(jié)果,并將所述第二相乘結(jié)果通過所述第二寄存器和所述第一多路選擇器輸出至所述加法器,所述加法器將所述第二相乘結(jié)果與所述第一參數(shù)輸出設(shè)備輸出的運算參數(shù)相加,得到所述待運算數(shù)據(jù)的歸一化運算結(jié)果。
11、在本發(fā)明的一個實施例中,所述開根號子模塊的輸入端還與所述加法子模塊的輸入端和所述除法子模塊的第二輸入端連接,在所述歸一化函數(shù)類型為第四預設(shè)類型時,所述待運算數(shù)據(jù)為向量,所述目標運算子模塊包括所述加法子模塊、所述乘法子模塊、所述除法子模塊和所述開根號子模塊;其中,所述加法子模塊用于將所述待運算數(shù)據(jù)的所有元素求和,得到第四相加結(jié)果,所述除法子模塊用于將所述第四相加結(jié)果除以所述待運算數(shù)據(jù)中的元素總數(shù),得到第一初始運算結(jié)果;所述乘法子模塊用于將所述待運算數(shù)據(jù)的所有元素均與其自身相乘,得到多個第三相乘結(jié)果,所述加法子模塊還用于將所有的所述第三相乘結(jié)果相加,得到第五相加結(jié)果,所述除法子模塊還用于將所述第五相加結(jié)果除以所述待運算數(shù)據(jù)中的元素總數(shù),得到第二初始運算結(jié)果;所述開根號子模塊用于對所述第二初始運算結(jié)果開根號,得到開根號結(jié)果,所述加法子模塊還用于將所述第一初始運算結(jié)果取反后與所述待運算數(shù)據(jù)中的每個元素相加,得到第六相加結(jié)果,所述除法子模塊還用于將所述第六相加結(jié)果除以所述開根號結(jié)果,得到第三初始運算結(jié)果;所述乘法子模塊還用于將所述第三初始運算結(jié)果與所述第二參數(shù)輸出設(shè)備輸出的運算參數(shù)相乘,得到第四相乘結(jié)果,所述加法子模塊還用于將所述第四相乘結(jié)果與所述第一參數(shù)輸出設(shè)備輸出的運算參數(shù)相加,得到所述待運算數(shù)據(jù)的歸一化運算結(jié)果。
12、為達到上述目的,本發(fā)明第二方面實施例提出了一種歸一化運算系統(tǒng),包括上述的歸一化運算電路。
13、根據(jù)本發(fā)明實施例的歸一化運算電路、系統(tǒng),包括:配置和數(shù)據(jù)緩存模塊,用于確定待運算數(shù)據(jù)、歸一化函數(shù)類型和運算參數(shù);算數(shù)邏輯模塊,與配置和數(shù)據(jù)緩存模塊連接,算數(shù)邏輯模塊包括多個運算子模塊,用于根據(jù)歸一化函數(shù)類型從多個運算子模塊中確定目標運算子模塊,并根據(jù)歸一化函數(shù)類型和運算參數(shù)調(diào)用目標運算子模塊對待運算數(shù)據(jù)進行歸一化運算,其中,多個運算子模塊包括加法子模塊、乘法子模塊、除法子模塊和開根號子模塊。由此,通過采用額外設(shè)置的算數(shù)邏輯模塊進行歸一化運算,無需cpu、gpu等設(shè)備參數(shù),從而滿足邊緣計算的需求。
14、本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。