TWI740725B - 資料傳遞及合併的方法 - Google Patents
資料傳遞及合併的方法 Download PDFInfo
- Publication number
- TWI740725B TWI740725B TW109140782A TW109140782A TWI740725B TW I740725 B TWI740725 B TW I740725B TW 109140782 A TW109140782 A TW 109140782A TW 109140782 A TW109140782 A TW 109140782A TW I740725 B TWI740725 B TW I740725B
- Authority
- TW
- Taiwan
- Prior art keywords
- block data
- data
- block
- receiving end
- present
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000005540 biological transmission Effects 0.000 title claims abstract description 11
- 238000004891 communication Methods 0.000 claims abstract description 4
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000006837 decompression Effects 0.000 description 1
- 125000001475 halogen functional group Chemical group 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一種資料傳遞及合併的方法,適用於彼此通訊連接的發送端及接收端,所述方法包括:發送端階段以及接收端階段。發送端階段包含:傳送第一區塊資料、第二區塊資料及第三區塊資料至接收端,取得第四區塊資料及第五區塊資料及傳送第三區塊資料、第四區塊資料及第五區塊資料至接收端。接收端階段包含接收第一區塊資料、第二區塊資料及第三區塊資料,合併第一區塊資料、第二區塊資料及第三區塊資料以進行一卷積運算,接收第四區塊資料、第五區塊資料,及合併第三區塊資料、第四區塊資料及第五區塊資料以進行另一卷積運算。
Description
本發明關於卷積神經網路加速器,特別是一種在平鋪式處理的卷積運算中切割資料進行傳遞及合併資料的方法。
卷積神經網路(Convolution Neural Network,CNN) 是目前被認為在電腦視覺及影像處理上最廣泛被使用的機器學習技術之一。卷積神經網路的主要運算是卷積核(kernel)與特徵圖(feature map)之間的卷積,其透過乘積累加(Multiply Accumulate,MAC)運算而消耗大量功率。
比起冗餘運算的能源浪費,如何提升資料存取能力以及減少資料傳輸頻寬在未來的加速器設計中更加重要。一則因為記憶體頻寬成長速度慢於處理單元的運算速度,意味著相同的演算法可能受限於記憶體及其架構;二則因為目前的神經網路多採用小卷積核配合更深的網路,這樣減少了MAC運算但增加了記憶體用量。據統計,隨著神經網路的模型演進,在動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)上存取特徵圖所消耗的功率比起其他運算消耗的功率更加可觀。
目前的CNN通常採用平鋪式處理(tiled processing),也就是處理單元每次從外部儲存器載入一個區塊進行運算。例如:外部儲存器DRAM儲存的資料區塊未經壓縮而直接被載入至靠近處理單元的靜態隨機存取記憶體(Static Random Access Memory,SRAM)作為快取。然而,這種方式在每次切換處理區塊時而存取DRAM時,需要消耗大量的功率並佔用大量的記憶體頻寬。例如:將DRAM儲存的資料切割成多個相同大小的子張量並且壓縮,再將壓縮後的各個子張量傳送至SRAM解壓縮,處理單元從SRAM提取所需的區塊資料進行運算。雖然壓縮區塊資料可以節省資料傳輸時消耗的功率及佔用的頻寬,然而,若子張量切割大小設置過大,可能導致SRAM儲存本次處理時不會使用的資料,造成SRAM空間的浪費。或者為了取得完整的區塊資料,而花費時間解壓縮大檔案,但其中只有少量資料可用。另一方面,若子張量切割大小設置過小,為了以正確的順序解壓縮還原出完整的區塊資料,需要額外佔用頻寬載入大量的指標以獲取每一個壓縮檔所屬的位置。
有鑑於此,本發明提出一種有效率且硬體導向的資料存取方案,適用於CNN的特徵圖。本發明將資料分割為不同大小的子張量(subtensor),並且使用少量的指標,在已壓縮但是隨機存取的格式下儲存這些子張量。這種設計使目前的CNN加速器能夠以平鋪式處理的方式即時獲取和解壓縮子張量。本發明適用於需要對齊、合併的資料存取架構,並且只需要對現有架構進行小幅度的修改即可適用於本發明。
依據本發明一實施例的一種資料傳遞及合併的方法,適用於彼此通訊連接的發送端及接收端,所述方法包括:發送端階段以及接收端階段。發送端階段包含:傳送第一區塊資料、第二區塊資料及第三區塊資料至接收端,取得第四區塊資料及第五區塊資料及傳送第三區塊資料、第四區塊資料及第五區塊資料至接收端。接收端階段包含接收第一區塊資料、第二區塊資料及第三區塊資料,合併第一區塊資料、第二區塊資料及第三區塊資料以進行一卷積運算,接收第四區塊資料、第五區塊資料,及合併第三區塊資料、第四區塊資料及第五區塊資料以進行另一卷積運算。
綜上所述,本發明提出了一種用於輸入特徵圖的有效儲存方案,可減少外部儲存器的頻寬,並且符合現有的CNN加速器架構中的儲存器存取模式。給定特定的CNN層和加速器配置,本發明可將張量資料切割為特定大小的多個子張量。現有的CNN加速器可在少量的硬體修改之下整合本發明。以提升整體效能。
以上之關於本揭露內容之說明及以下之實施方式之說明係用以示範與解釋本發明之精神與原理,並且提供本發明之專利申請範圍更進一步之解釋。
以下在實施方式中詳細敘述本發明之詳細特徵以及特點,其內容足以使任何熟習相關技藝者了解本發明之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之構想及特點。以下之實施例係進一步詳細說明本發明之觀點,但非以任何觀點限制本發明之範疇。
本發明適用於任何具有卷積運算的領域。在本發明中,提出一種資料傳遞集合併的方法,其中包含一種輸入特徵圖分割方式,藉此避免存取到部分壓縮的子張量(subtensor),且最小化子張量的數量以避免資料破碎(data fragmentation)。
圖1是本發明一實施例的資料傳遞及合併的方法的流程圖。所述的方法適用於通訊連接的發送端及接收端。發送端例如包含外部儲存器DRAM及處理區塊資料分割的控制電路,接收端例如為包含運算單元及快取SRAM的CNN加速器。
如圖1所示,本發明一實施例的資料傳遞及合併的方法分為發送端階段P1及接收端階段P2。發送端階段P1包含步驟S1、S2及S3。接收端階段P2包含步驟S4、S5、S6及S7。
步驟S1是「 發送端傳送第一指標、第一區塊資料B1、第二區塊資料B2及第三區塊資料B3至接收端」。步驟S1對應於前述的「在第
次處理輸入特徵圖
」。實務上,在發送端傳送第一區塊資料B1、第二區塊資料B2及第三區塊資料B3之前,更包括以壓縮器對第一區塊資料B1、第二區塊資料B2及第三區塊資料B3各自進行壓縮,藉此減少傳輸到接收端時佔用的頻寬。所述的第一指標用於指示第一區塊資料B1的起始位址、第一區塊資料B1的資料大小、第二區塊資料B2的資料大小以及第三區塊資料的資料大小。
步驟S3 是「發送端傳送第二指標、第三區塊資料B3、第四區塊資料B4及第五區塊資料B5至接收端」。步驟S3對應於前述的「在第
次處理輸入特徵圖
」。實務上,在發送端傳送第三區塊資料B3、第四區塊資料B4及第五區塊資料B5之前,更包括以壓縮器對第三區塊資料B3、第四區塊資料B4及第五區塊資料B5各自進行壓縮,藉此減少傳輸到接收端時佔用的頻寬。所述的第二指標用於指示第三區塊資料B3的起始位址、第三區塊資料B3的資料大小、第四區塊資料B4的資料大小以及第五區塊資料B5的資料大小。
步驟S4 是「接收端接收第一指標、第一區塊資料、第二區塊資料及第三區塊資料」。如圖1所示,步驟S4在步驟S1完成後執行。
步驟S5 是「接收端依據第一指標合併第一區塊資料、第二區塊資料及第三區塊資料以進行一卷積運算」。實務上,在進行卷積運算之前,更包括以解壓縮器解壓縮第一區塊資料B1、第二區塊資料B2及第三區塊資料B3。這三個區塊資料B1~B3被解壓縮完成後被儲存在SRAM,處理單元可依據第一指標取得第一區塊資料B1在SRAM中的第一起始位址,並依據第一起始位址及第一區塊資料B1的資料大小計算出第二區塊資料B2在SRAM中的第二起始位址,再依據第二起始位址及第二區塊B2的資料大小計算出第三區塊資料B3在SRAM中的第三起始位址。
步驟S6 是「接收端接收第二指標、第四區塊資料、第五區塊資料」。如圖1所示,步驟S6在步驟S3完成後執行。
步驟S7是「接收端依據第二指標合併第三區塊資料、第四區塊資料及第五區塊資料以進行另一卷積運算」。實務上,在進行卷積運算之前,更包括以解壓縮器解壓縮第三區塊資料B3、第四區塊資料B4及第五區塊資料B5。這三個區塊資料B3~B5被解壓縮完成後被儲存在SRAM,處理單元可依據第二指標取得第三區塊資料B3在SRAM中的第三起始位址,並依據第三起始位址及第三區塊資料B3的資料大小計算出第四區塊資料B4在SRAM中的第四起始位址,再依據第四起始位址及第四區塊B4的資料大小計算出第五區塊資料B5在SRAM中的第五起始位址。
如圖2所示,本發明提出一種切割輸入特徵圖
、
及
的方式,以下透過兩個實施例進一步詳述切割配置的實現方式。第一實施例以實際數字說明本發明的運作方式,並在第二實施例以代數形式說明本發明一般化的實現方式。
在第二次處理時,從第一次輸入區塊右邊界的位置向右方步進8個單位以提取下一個輸入區塊。
由於在CNN處理的同一層中,步進長度為常數,因此每次所提取的輸入區塊的左邊界及右邊界可組成兩個等差數列。左邊界以
表示,右邊界以
表示。本發明提出的配置方式即為這兩個邊界形成的分割。換言之,本發明提出的配置方式為聯集
,在此範例中,
。
此外,由於光環(halo)資料的存取只限於二維平面,因此本發明提出的分割配置不需要實現在通道的維度。
以下敘述第二實施例。在此實施例中,CNN每一層的運算被一般化,並以下列參數表示:
擴張卷積參照上述的運算方式可得出另一配置方式如下:
承上所述,在所有的卷積層中選擇單一N值可簡化硬體實作。在本發明一實施例中,N=8是一個大多數情況適用的設定值。
給定本發明的一個切割配置方式所切割出的多個子張量需要被儲存在一個資料結構中,並滿足記憶體對齊的需求,以最大化壓縮帶來的益處。因為子張量壓縮後的大小不同,本發明額外儲存用於代表這些子張量的指標。
圖7展示本發明如何儲存子張量以及指標。在設置指標時,對於鄰近的子張量,如圖7中子張量1、2、3及4,僅使用指標A1指示區塊1的起始位址以及使用指標SZ1~SZ4分別指示這4個子張量各自被壓縮後的資料大小。因此,存取這些子張量時分兩步驟,首先從指標A1取得起始位址,然後分別從指標SZ1~SZ8獲取每個子張量的大小並累加至起始位址以獲得每個子張量的實際偏移量。
由於本發明的指標並不需要對應至每一個子張量,因此可以有效地減少指標的總大小。
本發明提出的一種硬體導向(hardware-friendly)的資料分割方式,可用於輸入特徵圖的儲存、存取和壓縮。本發明將輸入特徵圖切割為多個不同大小,藉此避免接收端提取到不會用到的子張量而浪費快取空間。本發明只需要少量的指標即可記錄每個壓縮後的子張量的位置。應用僅需對現有的CNN加速器架構進行微幅修改,因為本發明幾乎適用於所有的壓縮演算法,並且只需要改變現有的特徵圖切割方式。本發明可節省大量的記憶體傳輸頻寬。
綜上所述,本發明提出了一種用於稀疏特徵圖的有效儲存方案,可減少外部儲存器的頻寬,並且符合現代CNN加速器架構中的儲存器存取模式。給定特定的CNN層和加速器配置,本發明可將張量資料切割為特定大小的多個子張量。現有的CNN加速器可在少量的硬體修改之下整合本發明。以提升整體效能。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明。在不脫離本發明之精神和範圍內,所為之更動與潤飾,均屬本發明之專利保護範圍。關於本發明所界定之保護範圍請參考所附之申請專利範圍。
P1:發送端階段
P2:接收端階段
S1~S7:步驟
A1:子張量1的起始位址
A5:子張量5的起始位址
SZ1~SZ8:子張量1~8的資料大小
圖1是本發明一實施例的資料傳遞及合併的方法的流程圖;
圖2是特徵圖在水平方向被切割為多個資料區塊的示意圖;
圖3是第一實施例的示意圖;
圖4是輸入資料的切割示意圖;
圖5展示一般卷積採用本發明的一種配置方式的範例;
圖6展示了擴張卷積採用本發明的另一種配置方式的範例;以及
圖7繪示在本發明中,子張量及指標儲存的一種範例。
P1:發送端階段
P2:接收端階段
S1~S7:步驟
Claims (3)
- 一種資料傳遞及合併的方法,適用於通訊連接的一發送端及一接收端,所述方法包括: 一發送端階段,包含: 以該發送端傳送一第一區塊資料、一第二區塊資料及一第三區塊資料至該接收端; 以該發送端取得一第四區塊資料及一第五區塊資料;及 以該發送端傳送該第三區塊資料、該第四區塊資料及該第五區塊資料至該接收端;以及 一接收端階段,包含: 以該接收端接收該第一區塊資料、該第二區塊資料及該第三區塊資料; 以該接收端合併該第一區塊資料、該第二區塊資料及該第三區塊資料以進行一卷積運算; 以該接收端接收該第四區塊資料、該第五區塊資料;及 以該接收端合併該第三區塊資料、該第四區塊資料及該第五區塊資料以進行另一卷積運算。
- 如請求項1所述資料傳遞及合併的方法,在以該發送端傳送該第一區塊資料、該第二區塊資料及該第三區塊資料至該接收端時,更包括:以該發送端傳送一第一指標至該接收端,其中該第一指標用以指示該第一區塊資料之起始位址,該第一資料區塊之資料大小、該第二資料區塊之資料大小及該第三資料區塊之資料大小;以及 在以該發送端傳送該第三區塊資料、該第四區塊資料及該第五區塊資料至該接收端時,更包括:以該發送端傳送一第二指標至該接收端,其中該第二指標用以指示該第三區塊資料之起始位址,該第三資料區塊之資料大小、該第四資料區塊之資料大小及該第五資料區塊之資料大小。
- 如請求項1所述資料傳遞及合併的方法, 在以該發送端傳送該第一區塊資料、該第二區塊資料及該第三區塊資料至該接收端之前,更包括:以一壓縮器壓縮該第一區塊資料、該第二區塊資料及該第三區塊資料; 在以該發送端傳送該第三區塊資料、該第四區塊資料及該第五區塊資料至該接收端之前,更包括:以該壓縮器壓縮該第三區塊資料、該第四區塊資料及該第五區塊資; 在以該接收端合併該第一區塊資料、該第二區塊資料及該第三區塊資料以進行該卷積運算之前,更包括:以一解壓縮器解壓縮該第一區塊資料、該第二區塊資料及該第三區塊資料;以及 在以該接收端合併該第四區塊資料、該第五區塊資料及該第六區塊資料以進行該卷積運算之前,更包括:以該解壓縮器解壓縮該第四區塊資料、該第五區塊資料及該第六區塊資料。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW109140782A TWI740725B (zh) | 2020-11-20 | 2020-11-20 | 資料傳遞及合併的方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW109140782A TWI740725B (zh) | 2020-11-20 | 2020-11-20 | 資料傳遞及合併的方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI740725B true TWI740725B (zh) | 2021-09-21 |
| TW202221574A TW202221574A (zh) | 2022-06-01 |
Family
ID=78777795
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109140782A TWI740725B (zh) | 2020-11-20 | 2020-11-20 | 資料傳遞及合併的方法 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI740725B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12229413B2 (en) | 2022-07-26 | 2025-02-18 | Silicon Motion, Inc. | Method and apparatus for performing data fragmentation reduction control of memory device in predetermined communications architecture with aid of fragmentation information detection, and associated computer-readable medium |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9646243B1 (en) * | 2016-09-12 | 2017-05-09 | International Business Machines Corporation | Convolutional neural networks using resistive processing unit array |
| WO2019109795A1 (zh) * | 2017-12-06 | 2019-06-13 | 腾讯科技(深圳)有限公司 | 卷积运算处理方法及相关产品 |
| TWI687063B (zh) * | 2019-01-04 | 2020-03-01 | 財團法人工業技術研究院 | 基於深度學習與通道狀態資訊之通訊系統及編解碼方法 |
| TWI708209B (zh) * | 2018-12-11 | 2020-10-21 | 財團法人工業技術研究院 | 使用卷積神經網絡模型的物件偵測方法及物件偵測設備 |
| TWI708193B (zh) * | 2018-08-21 | 2020-10-21 | 創鑫智慧股份有限公司 | 應用於卷積神經網路之記憶體適應性處理方法及其系統 |
-
2020
- 2020-11-20 TW TW109140782A patent/TWI740725B/zh active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9646243B1 (en) * | 2016-09-12 | 2017-05-09 | International Business Machines Corporation | Convolutional neural networks using resistive processing unit array |
| WO2019109795A1 (zh) * | 2017-12-06 | 2019-06-13 | 腾讯科技(深圳)有限公司 | 卷积运算处理方法及相关产品 |
| TWI708193B (zh) * | 2018-08-21 | 2020-10-21 | 創鑫智慧股份有限公司 | 應用於卷積神經網路之記憶體適應性處理方法及其系統 |
| TWI708209B (zh) * | 2018-12-11 | 2020-10-21 | 財團法人工業技術研究院 | 使用卷積神經網絡模型的物件偵測方法及物件偵測設備 |
| TWI687063B (zh) * | 2019-01-04 | 2020-03-01 | 財團法人工業技術研究院 | 基於深度學習與通道狀態資訊之通訊系統及編解碼方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202221574A (zh) | 2022-06-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101687081B1 (ko) | 단채널 컨볼루션 레이어를 위한 처리 방법 및 장치, 및 다채널 컨볼루션 레이어를 위한 처리 방법 및 장치 | |
| US11522673B2 (en) | Method and device for blockchain full sharding based on a P2P storage network and a multi-layer architecture | |
| CN109165728B (zh) | 一种卷积神经网络的基本计算单元及计算方法 | |
| US11615607B2 (en) | Convolution calculation method, convolution calculation apparatus, and terminal device | |
| US10127281B2 (en) | Dynamic hash table size estimation during database aggregation processing | |
| US10817178B2 (en) | Compressing and compacting memory on a memory device wherein compressed memory pages are organized by size | |
| DE102020133861A1 (de) | Normalisierte-wahrscheinlichkeit-bestimmung für zeichenkodierung | |
| US20220253668A1 (en) | Data processing method and device, storage medium and electronic device | |
| WO2020177250A1 (zh) | 一种数据读取系统和方法 | |
| WO2020177251A1 (zh) | 一种面向多核图像处理卷积神经网络的数据读取方法 | |
| TWI740725B (zh) | 資料傳遞及合併的方法 | |
| CN103106144B (zh) | 一种内存索引压缩方法和装置 | |
| CN112966807B (zh) | 基于存储资源受限fpga的卷积神经网络实现方法 | |
| CN111914285B (zh) | 一种基于差分隐私的地理分布式图计算方法及系统 | |
| CN104952088A (zh) | 一种对显示数据进行压缩和解压缩的方法 | |
| CN111865326B (zh) | 数据压缩方法、装置、设备及存储介质 | |
| EP4579473A1 (en) | Data compression method, apparatus, computing device, and storage system | |
| CN107423425B (zh) | 一种对k/v格式的数据快速存储和查询方法 | |
| CN114519166B (zh) | 数据传递及合并的方法 | |
| CN105095278A (zh) | 一种文件压缩方法及装置 | |
| CN109710502B (zh) | 日志传输方法、装置及存储介质 | |
| CN113497627A (zh) | 一种数据压缩和解压缩方法、装置及系统 | |
| CN104516821B (zh) | 存储器管理方法及存储器管理装置 | |
| CN111241204B (zh) | 一种梯度数据的同步方法、装置、设备及存储介质 | |
| CN110414663A (zh) | 神经网络的卷积实现方法及相关产品 |