TW202137077A - 用於處理訓練資料之方法、系統及儲存媒體 - Google Patents
用於處理訓練資料之方法、系統及儲存媒體 Download PDFInfo
- Publication number
- TW202137077A TW202137077A TW110122727A TW110122727A TW202137077A TW 202137077 A TW202137077 A TW 202137077A TW 110122727 A TW110122727 A TW 110122727A TW 110122727 A TW110122727 A TW 110122727A TW 202137077 A TW202137077 A TW 202137077A
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- nodes
- row
- gradient
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Multi Processors (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
Abstract
本發明係關於用於執行梯度向量及類似結構化資料之減少之方法、系統及設備,包括編碼於儲存媒體上之指令,該等梯度向量及類似結構化資料係例如在節點上平行地產生,該等節點係以由該等節點之間的至少兩個維度上之連接界定之一網格或環面拓樸而組織。該等方法提供該拓樸中之節點之間的平行計算及通信。
Description
本說明書係關於平行處理非純量資料之大資料集。
機器學習模型接收輸入並基於接收到之輸入及模型參數之值而產生輸出。此等模型通常需要使用接收到之輸入來訓練,該等輸入係非常大的資料集。
本說明書描述了大體上與大資料集之平行處理相關,並且特定地與用於較快減少、映射及廣播操作之各種拓樸中之大資料集之平行處理相關的技術。
一般而言,本說明書中描述之主題之一個創新態樣可體現於一種用於處理訓練資料之方法中。該方法包括在複數個節點中之每一節點上訓練一機器學習模型之一各別複本,該複數個節點係以包含節點之列及行之一環面(torus)拓樸而組織,其中每一節點係在一各別訓練資料批次上平行地訓練,藉以在該訓練之後每一節點保持由該訓練引起之一各別梯度向量。可藉由執行操作來組合該等節點中之該等各別梯度向量以產生一最終梯度向量,該等操作包含:由在該等節點上執行之程式碼對該環面之該等列平行地執行一改良旋轉鉗式演算法而不進行一廣播,以在每一列中產生該梯度向量之每一各別不相交場之組合資料,藉以當該列處理完成時,每一行含有該梯度向量資料之一各別相同不相交場之所有該組合資料;並且然後由在該等節點上執行之程式碼在該環面之該等行中之每一行中執行一第二環形演算法,包括向每一行中之所有節點廣播該行中之一各別最終行結果;並且然後跨該環面之每一列複製該等最終行結果,藉以該環面之每一節點保持該最終梯度向量。
此等及其他實施例可視情況包括以下特徵中之一或多者。該第二環形演算法可以係一改良旋轉鉗式演算法。該複數個節點可在一單一模組上實施。每一節點可在一單獨積體電路上實施。該模組可以係一積體電路。執行該改良旋轉鉗式演算法可包含執行該改良旋轉鉗式演算法以產生該梯度向量之每一各別不相交場之求和資料。該環面可由節點之列及行組成。該環面拓樸可進一步包含節點層,每一層由節點之各別列及行組成。對每一列執行該改良旋轉鉗式演算法可包含對於每一列中之每一節點進行以下操作:使用該節點作為該改良鉗式演算法之一具現化之開始節點,該改良鉗式演算法將該節點之該不相交場之一半發送至該列之環中之兩個鄰近節點中之每一者;以及在該節點處開始執行該改良鉗式演算法。
對於該列中之每一開始節點,與該開始節點相對之每一結束節點可向該列中之其他節點廣播由該結束節點判定之最終場梯度向量。可與沿著該環面之該等列執行該組合平行地沿著該等行執行該組合,其中每一列中之每一節點係該列中之一開始節點,並且每一行中之每一節點係該行中之一開始節點,並且每一開始節點處理該梯度向量之一相異各別不相交場。
在一些實施方案中,一種用於處理訓練資料之方法可包括:在複數個節點中之每一節點上訓練一機器學習模型之一各別複本,該複數個節點係以包含節點之列及行之一環面拓樸而組織,其中每一節點係在一各別訓練資料批次上平行地訓練,藉以在該訓練之後每一節點保持由該訓練引起之一各別梯度向量;藉由執行操作來組合該等節點中之該等各別梯度向量以產生一最終梯度向量,該等操作包含:由在該等節點上執行之程式碼沿著該環面之每一列執行一各別環形減少,從而引起每一列中之每一節點對於最初在該列之該等節點中之每一梯度向量具有一減少向量;以及由在該等節點上執行之程式碼沿著該環面之每一行執行一各別環形減少,在該環形減少結束時每一節點保持該相同的最終梯度向量。
此等及其他實施例可視情況包括以下特徵中之一或多者。該等環形減少可使用一旋轉鉗式演算法來執行。
在一些實施方案中,該用於處理訓練資料之方法可包括:在一節點模組上之每一節點上訓練一機器學習模型之各別複本,該節點模組係以由具有環繞鏈路之環形列及沒有環繞鏈路之節點之非環形行組成的一拓樸而組織,其中每一節點係在一各別訓練資料批次上平行地訓練,藉以在該訓練之後每一節點保持由該訓練引起之一各別梯度向量;藉由執行操作來組合該等節點中之該等各別梯度向量以產生一最終梯度向量,該等操作包含:由在該等節點上執行之程式碼沿著該拓樸之每一列執行一各別環形減少,從而引起每一列中之每一節點對於最初在該列之該等節點中之每一梯度向量具有一減少向量;以及由在該等節點上執行之程式碼沿著該環面之每一行執行一各別線形減少,在該線形減少結束時每一節點保持該相同的最終梯度向量。
在一些實施方案中,該用於處理訓練資料之方法包括:在複數個節點中之每一節點上儲存一相異資料批次,該複數個節點係以包含節點之列及行之一環面拓樸而組織;藉由執行操作來組合該等節點中之該等各別資料批次以產生一最終資料批次,該等操作包含:由在該等節點上執行之程式碼沿著該環面之每一列執行一各別環形減少,從而引起每一列中之每一節點對於最初在該列之該等節點中之每一資料批次具有一組合資料批次向量;以及由在該等節點上執行之程式碼沿著該環面之每一行執行一各別環形減少,在該環形減少結束時每一節點保持該相同的最終組合資料批次。
此等及其他實施例可視情況包括以下特徵中之一或多者。沿著該環面之該等列及行之每一環形減少可由實施一改良旋轉鉗式演算法之程式碼執行。該組合可以係該等資料批次之一減少。
本發明之一或多個實施例之細節在隨附圖式及以下實施方式中闡述,隨附圖式係僅作為繪示而給出。根據實施方式、圖式及申請專利範圍,本發明之其他特徵、態樣及優點將變得顯而易見。在各個圖式中相似的參考編號及名稱指示相似的元件。
本發明之另一實施方案包括一種用於執行梯度向量及類似結構化資料之減少之方法,該等梯度向量及類似結構化資料係例如在節點上平行地產生,該等節點係以由該等節點之間的至少兩個維度上之連接界定之一網格(mesh)或環面拓樸而組織。該等方法提供該拓樸中之節點之間的平行計算及通信。
在一些實施例中,一種機器可讀儲存媒體——例如一種非暫時性機器可讀儲存媒體——儲存指令,該等指令在被執行時致使一處理裝置執行包含根據本文描述之任何實施例或態樣之一方法的操作。
在一些實施例中,一種系統包含:一記憶體;以及一處理裝置,其可操作地與該記憶體耦接以執行包含根據本文描述之任何實施例或態樣之一方法的操作。
上述實施例形成用於藉由基於複數個節點被組織之拓樸以各別方式處理訓練資料來改良機器學習模型之訓練的替代解決方案。
一種用於訓練機器學習模型之常見策略係在多個處理單元上平行地處理訓練資料批次。圖1繪示機器學習模型複本A至D之實例系統100,該等複本各自係在對應處理單元110上訓練。為了方便起見,在諸圖中,複本及其所在的處理單元都可用相同名稱來提及。
訓練時,機器學習模型由模型參數之值界定。模型參數通常被組織為非純量資料,例如作為向量、二維(2D)矩陣、三維(3D)矩陣,或高次矩陣,其元素通常係純量值,例如整數或浮點數。
在系統中,每一複本係在唯一訓練資料批次上訓練。在圖1中,複本A至D分別係在批次1至4 105上訓練。當複本已處理完其訓練資料批次時,複本具有模型參數值之一組梯度。每一複本中之梯度值之結構係相同的,並且總體上對應於參數值之結構。為了方便起見,此兩者都被稱為向量。
因為複本係在不同資料上訓練,所以複本之梯度向量被組合以產生最終梯度向量,最終梯度向量用於更新模型之參數值,即參數向量。一種用於組合梯度向量之方式係產生逐元素(element-wise)平均值。通常在預期處理訓練資料批次並將每一複本之梯度向量組合——即減少——為減少——即最終——梯度向量並更新模型之參數值的另一迭代時,將更新參數值傳達至所有機器學習模型複本。
一些機器學習系統具有中央參數計算子系統,中央參數計算子系統自每一複本接收梯度向量並在中央位置處組合梯度向量。本說明書描述了可在機器學習系統中使用之技術,該等機器學習系統不具有中央參數計算子系統,而是在複本中以分散式方式減少梯度向量並更新參數值。
圖2繪示連接以環形拓樸連接之處理單元A至H (202a至202h)之實例群集之高速連接的拓樸。有利地,所有處理單元都在單一模組200上。該圖中在處理單元之間所展示的線表示高速資料通信鏈路。該等處理單元係有利地在一個積體電路(「晶片」)上製造,但是該等處理單元亦可在多個晶片上製造。跨晶片邊界之鏈路係晶片間網路鏈路;同一晶片上之處理單元經由晶片內介面鏈路而通信。鏈路可以係一次僅有一個處理單元可傳輸資料的半雙工鏈路,或者可以係可同時在兩個方向上傳輸資料的全雙工鏈路。
現在將參考處理單元A至H描述用於執行此拓樸中之減少之方法。該減少具有求和步驟、計算步驟及廣播步驟。
單路徑演算法
單路徑演算法使處理單元中之一者——例如單元A——將資料發送至一個鄰居,例如單元B。B將來自A之資料與其自己的資料相加,並將總和發送至C,以此類推。資料之此發送及處理有利地以串流方式進行,使得例如B可在其已自A接收到所有資料之前開始相加。最終組合發生於單元H中。然後將最終梯度向量傳達至其他單元。此可藉由反轉串流資料路徑來進行。替代地,若廣播功能性可用於允許一個單元向多個單元廣播之處理單元,則可使用廣播功能性來進行最終梯度向量之傳達。為了方便起見,程序之此部分將被稱為廣播,即使每一處理單元可能僅將最終輸出傳達至一個其他處理單元亦如此。
鉗式演算法
為了實現比單路徑演算法之潛時更低的潛時,鉗式演算法在環上跨相反方向之兩個路徑發送資料。因此,例如,單元A及B同時開始通信,使得F及E分別最終具有跨自A及B通向F及E之路徑的總和。若單元之數目係偶數,則資料必須自F傳送至E,或者反之亦然,並且在被廣播至所有單元之前在彼處被組合。
旋轉鉗式演算法
下文描述之旋轉鉗式演算法進一步減少了潛時。
在旋轉鉗式演算法中,自每一對鄰近處理單元開始同時執行鉗式演算法之獨立具現化。因此,當鉗式演算法自單元A及B開始執行時,相同演算法自單元B及C以及自C及D開始執行,以此類推。
梯度向量在有可能之情況下被分割成大小相等或大小基本上相等之不相交子集,並且演算法之每一具現化處置彼等子集中之一者。此可能會改變串流之工作方式,此係因為例如現在B正在向C發送一個資料子集,同時C正在向D發送另一資料子集。因此C直至發送完其自己的資料之前不會轉發來自B之資料。為此,自B傳輸至C之資料暫時儲存於C上。替代地,自B及D到達C之資料之處理可交錯。
改良旋轉鉗式演算法
若節點之數目係偶數,則下文描述之改良旋轉鉗式演算法進一步減少了潛時。
在改良旋轉鉗式演算法中,單元A首先將其資料之一半發送至單元H,並且將另一半發送至B,並且然後鉗式演算法繼續照常工作。此使資料路徑在兩個方向上對稱。對於此演算法中之廣播,若單元E例如想要向所有其他節點廣播,則單元E在相反方向上發送資料,並且作為最後步驟,單元B及H將資料之不相交的一半發送至A,使得A仍然接收所有資料。
環面上之梯度減少
圖3繪示複本及處理單元之環面拓樸。為了方便起見而繪示了16個複本及處理單元A1至D4,其中每一者係四個單元之兩個環——水平環及垂直環——之部分,並且其中每一者具有至四個其他單元之直接鏈路。用於處理大型機器學習模型——例如具有10、25或50百萬個參數值之模型——之拓樸,合適的處理單元數目將較大,例如,每一環中有16個單元,並且總共256個單元。更多或更少的數目會適合於更大或更小的模型。
迭代減少演算法
環面上之迭代減少演算法將環面上之減少簡化為環上之一系列減少。第一步驟係沿著每一列進行環形減少,對A列僅使用鏈路A1-A2、A2-A3、A3-A4及A4-A1。
首先,在每一列中執行上述任何環形減少演算法,從而引起一列中之每一單元對於最初在該列之單元中之每一梯度向量具有總和向量。
然後,沿著每一行執行環形減少,在環形減少結束時相同的最終梯度向量在每一單元中。
如上文所揭示,減少具有求和步驟、計算步驟及廣播步驟。初始列-環形減少不應執行完整的計算步驟,此係因為即使環上之計算已完成,梯度實際上仍未結束環面上之求和。
旋轉迭代減少演算法
對迭代減少演算法之改良係旋轉迭代減少演算法,其中相同演算法被具現化兩次,在一半的資料上平行地旋轉90度。一個具現化處理列並且然後處理行,並且旋轉具現化處理行並且然後處理列。該兩個具現化從不同時使用相同的通信鏈路,因此此使環面之鏈路之頻寬利用率加倍。
遞歸減少演算法
在遞歸減少演算法中實現了進一步改良。在此演算法中,首先對環面之列執行改良旋轉鉗式演算法而不進行廣播,其中更新求和資料並將其發送至該列中之其他單元。以此方式,每一單元具有梯度向量之不相交子集之求和資料。因此,當列處理完成時,每一行含有梯度向量資料之同一子集之所有資料。
然後,沿著行執行第二環形減少,包括更新權重並將結果廣播給該行中之所有單元。為了完成減少,遞歸減少演算法程序跨每一列複製資料。此提供了列-環上之最佳廣播。
就資料量N
及環面之列中之處理單元數目C
而言比較該等演算法,與迭代演算法之N
個資料上之行減少相比,遞歸減少演算法實際上對N
個資料執行列減少及對N
/C
個資料執行行減少。
旋轉遞歸減少演算法
遞歸減少演算法可以與上文針對旋轉迭代減少演算法所描述之方式相同的方式旋轉及複製,以將鏈路頻寬之使用加倍成理論上最優的量。此係因為此演算法僅發送需要發送之資料,並且此演算法在兩個方向上使所有鏈路飽和直至此演算法完成為止。
替代拓樸
本說明書中描述之演算法亦可基本上用於其他拓樸,例如,在16×4拓樸中,其中在具有16個單元之維度上存在環繞鏈路,而在具有4個單元之維度上不存在環繞鏈路。該等演算法將被修改為在具有環繞鏈路之維度上使用環形減少,並且在沒有環繞鏈路之維度上使用某種形式之線形減少,例如上述單路徑演算法。類似地,該等演算法可被修改為在沒有環繞鏈路之網格拓樸上工作。
演算法之實施
每一演算法可由在處理單元上執行之程序或執行緒以分散式方式實施。
該等程序可由控制訊息組態,例如,該等控制訊息針對每一減少具現化指示以下各者:該程序要處置梯度向量之哪一子集;其係減少中之開始單元、最終單元抑或中間單元;以及資料或組合資料及廣播應在哪一方向上發送,如上文所描述。
用於梯度減少程序操作之程式設計
圖4A係繪示由每一中間處理單元執行之程序的流程圖。每一中間處理單元將其梯度向量或其梯度向量之部分與其在自前一處理單元接收到輸入梯度向量之部分後就接收到之輸入梯度向量組合(410)。由每一處理單元執行之組合操作可以係組合梯度向量之簡單求和或某種其他計算。然後,中間處理單元在該方向上將組合梯度向量傳輸至下一處理單元(425)。
圖4B係繪示由每一最終處理單元執行之程序的流程圖。最終處理單元將其梯度向量與其在資料路徑方向上自前一處理單元接收到輸入梯度向量後就接收到之輸入梯度向量組合,並產生最終減少梯度向量(430)。
最終處理單元通常將減少梯度向量與機器學習模型參數之值組合以產生參數值之更新集合。假定參數向量為x並且梯度為dx,則簡單更新具有如下形式:x + = - learning_rate * dx,其中learning_rate係純量項。更新規則可任意地複雜,例如,更新規則可取決於先前梯度。在計算更新參數之後,最終處理單元起始廣播操作,該廣播操作藉由反轉資料流而經由處理單元在一路返回至根處理單元之方向上發送最終輸出,將更新參數值提供給所有其他處理單元(435)。因此,每一處理單元將具有更新參數以用於處理下一機器學習訓練資料批次。
此程序將被稱為廣播程序,即使每一處理單元僅將最終輸出傳達至一個其他處理單元亦如此。
圖5A係繪示由二維(2D)網格或環面拓樸中之處理單元執行之處理的流程圖。此等處理單元在多個第一維度資料路徑中同時執行梯度減少程序(510)。然後2D網格或環面之處理單元使用來自第一維度之梯度減少程序之結果在第二維度資料路徑中執行至少一個梯度減少程序(525)。
圖5B係繪示由三維(3D)網格或環面拓樸中之處理單元執行之處理的流程圖。此等處理單元在多個第一維度資料路徑中同時執行梯度減少程序(530)。然後3D網格或環面之處理單元使用來自第一維度之梯度減少程序之結果在第二維度資料路徑中執行多個梯度減少程序(540)。最後,3D網格或環面之處理單元使用來自第二維度之梯度減少程序之結果在第三維度資料路徑中執行至少一個梯度減少程序(550)。
電腦程式,其亦可被稱為或描述為程式、軟體、軟體應用程式、應用程式、模組、軟體模組、指令碼或程式碼,可以任何形式之程式設計語言撰寫,包括編譯或解譯語言,或宣告式或程序性語言;並且電腦程式可以任何形式部署,包括作為獨立式程式或作為模組、組件、次常式或適合用於計算環境中之其他單元。電腦程式可被部署成在一台電腦上執行,或者在位於一個站點或跨多個站點分散並且由資料通信網路互連之多台電腦上執行。
本說明書中描述之程序及邏輯流程可由一或多個可程式化電腦執行,該一或多個可程式化電腦執行一或多個電腦程式以藉由對執行個體資料進行操作並產生輸出來執行功能。儘管本說明書特定地係關於處理單元處理梯度向量,但是處理單元可對任何非純量執行個體資料——即張量、矩陣、陣列,或可保持可被共用且平行地處理之資料之任何其他資料結構——處理執行減少處理。該等程序及邏輯流程亦可由特殊用途邏輯電路系統——例如FPGA或ASIC——執行,或者由特殊用途邏輯電路系統及一或多個程式化電腦之組合執行。
適合於執行電腦程式之電腦可基於一般用途或特殊用途微處理器或兩者,或任何其他種類之中央處理單元。通常,中央處理單元將自唯讀記憶體或隨機存取記憶體或兩者接收指令及資料。電腦之基本元件係用於執行指令之中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。中央處理單元及記憶體可由特殊用途邏輯電路系統補充或併入於特殊用途邏輯電路系統中。一般而言,電腦亦將包括用於儲存資料之一或多個大容量儲存裝置,例如磁碟、磁光碟或光碟,或者電腦亦可操作地耦接以自該一或多個大容量儲存裝置接收資料或向該一或多個大容量儲存裝置傳送資料,或者兩者兼有。然而,電腦不需要具有此等裝置。此外,電腦可嵌入於另一裝置中,例如行動電話、個人數位助理(PDA)、行動音訊或視訊播放器、遊戲控制台、全球定位系統(GPS)接收器,或攜帶型儲存裝置,例如通用串列匯流排(USB)隨身碟,僅舉幾個例子。
實施例1係一種用於處理訓練資料之方法,該方法包含:
在複數個節點中之每一節點上訓練一機器學習模型之一各別複本,該複數個節點係以包含節點之列及行之一環面拓樸而組織,其中每一節點係在一各別訓練資料批次上平行地訓練,藉以在該訓練之後每一節點保持由該訓練引起之一各別梯度向量;
藉由執行操作來組合該等節點中之該等各別梯度向量以產生一最終梯度向量,該等操作包含:
由在該等節點上執行之程式碼對該環面之該等列平行地執行一改良旋轉鉗式演算法而不進行一廣播,以在每一列中產生該梯度向量之每一各別不相交場之組合資料,藉以當該列處理完成時,每一行含有該梯度向量資料之一各別相同不相交場之所有該組合資料;並且然後
由在該等節點上執行之程式碼在該環面之該等行中之每一行中執行一第二環形演算法,包括向每一行中之所有節點廣播該行中之一各別最終行結果;並且然後
跨該環面之每一列複製該等最終行結果,藉以該環面之每一節點保持該最終梯度向量。
實施例2係如實施例1之方法,其中該第二環形演算法係一改良旋轉鉗式演算法。
實施例3係如實施例1至2中任一項之方法,其中該複數個節點係在一單一模組上實施。
實施例4係如實施例1至3中任一項之方法,其中每一節點係在一單獨積體電路上實施。
實施例5係如實施例1至4中任一項之方法,其中該模組係一積體電路。
實施例6係如實施例1至5中任一項之方法,其中執行該改良旋轉鉗式演算法包含執行該改良旋轉鉗式演算法以產生該梯度向量之每一各別不相交場之求和資料。
實施例7係如實施例1至6中任一項之方法,其中該環面由節點之該等列及行組成。
實施例8係如實施例1至7中任一項之方法,其中該環面拓樸進一步包含節點層,每一層由節點之各別列及行組成。
實施例9係如實施例1至8中任一項之方法,其中對每一列執行該改良旋轉鉗式演算法包含:
對於每一列中之每一節點:
使用該節點作為該改良鉗式演算法之一具現化之開始節點,該改良鉗式演算法將該節點之該不相交場之一半發送至該列之環中之兩個鄰近節點中之每一者;以及
在該節點處開始執行該改良鉗式演算法。
實施例10係如實施例1至9中任一項之方法,進一步包含:
對於該列中之每一開始節點,由與該開始節點相對之每一結束節點向該列中之其他節點廣播由該結束節點判定之最終場梯度向量。
實施例11係如實施例1至10中任一項之方法,進一步包含:
與沿著該環面之該等列執行該組合平行地沿著該等行執行該組合,其中每一列中之每一節點係該列中之一開始節點,並且每一行中之每一節點係該行中之一開始節點,並且每一開始節點處理該梯度向量之一相異各別不相交場。
實施例12係用於處理訓練資料之方法,該方法包含:
在複數個節點中之每一節點上訓練一機器學習模型之一各別複本,該複數個節點係以包含節點之列及行之一環面拓樸而組織,其中每一節點係在一各別訓練資料批次上平行地訓練,藉以在該訓練之後每一節點保持由該訓練引起之一各別梯度向量;
藉由執行操作來組合該等節點中之該等各別梯度向量以產生一最終梯度向量,該等操作包含:
由在該等節點上執行之程式碼沿著該環面之每一列執行一各別環形減少,從而引起每一列中之每一節點對於最初在該列之該等節點中之每一梯度向量具有一減少向量;以及
由在該等節點上執行之程式碼沿著該環面之每一行執行一各別環形減少,在該環形減少結束時每一節點保持該相同的最終梯度向量。
實施例13係如實施例12之方法,其中該等環形減少係使用一旋轉鉗式演算法來執行。
實施例14係一種用於處理訓練資料之方法,該方法包含:
在一節點模組上之每一節點上訓練一機器學習模型之各別複本,該節點模組係以由具有環繞鏈路之環形列及沒有環繞鏈路之節點之非環形行組成的一拓樸而組織,其中每一節點係在一各別訓練資料批次上平行地訓練,藉以在該訓練之後每一節點保持由該訓練引起之一各別梯度向量;
藉由執行操作來組合該等節點中之該等各別梯度向量以產生一最終梯度向量,該等操作包含:
由在該等節點上執行之程式碼沿著該拓樸之每一列執行一各別環形減少,從而引起每一列中之每一節點對於最初在該列之該等節點中之每一梯度向量具有一減少向量;以及
由在該等節點上執行之程式碼沿著該環面之每一行執行一各別線形減少,在該線形減少結束時每一節點保持該相同的最終梯度向量。
實施例15係一種用於處理訓練資料之方法,該方法包含:
在複數個節點中之每一節點上儲存一相異資料批次,該複數個節點係以包含節點之列及行之一環面拓樸而組織;
藉由執行操作來組合該等節點中之該等各別資料批次以產生一最終資料批次,該等操作包含:
由在該等節點上執行之程式碼沿著該環面之每一列執行一各別環形減少,從而引起每一列中之每一節點對於最初在該列之該等節點中之每一資料批次具有一組合資料批次向量;以及
由在該等節點上執行之程式碼沿著該環面之每一行執行一各別環形減少,在該環形減少結束時每一節點保持該相同的最終組合資料批次。
實施例16係如實施例15之方法,其中沿著該環面之該等列及行之每一環形減少係由實施一改良旋轉鉗式演算法之程式碼執行。
實施例17係如實施例15或16中任一項之方法,其中該組合係該等資料批次之一減少。
實施例18係一種系統,包含:
複數個節點,其係以列及行之一拓樸而組織;以及一或多個儲存裝置,其上儲存指令,該等指令在由該等節點執行時可操作以致使該等節點執行如實施例1至17中任一項之方法。
實施例19係如實施例18中之系統,其中該等節點係以一環面拓樸而組織。
實施例20係如實施例18或19中任一項之系統,其中該等節點係在一模組上以一環面拓樸而組織。
實施例21係一種用指令編碼之儲存媒體,該等指令在由以列及行之一拓樸而組織之節點執行時可操作以致使該等節點執行如實施例1至17中任一項之方法。
實施例22係如實施例21之儲存媒體,其中該儲存媒體係一或多個非暫時性儲存裝置。
實施例23係如實施例21或22中任一項之儲存媒體,其中該等節點係以一環面拓樸而組織。
雖然本說明書含有許多特定實施細節,但是此等特定實施細節不應被認作對任何發明之範疇或可主張之內容之範疇的限制,而是應被認作可特定於特定發明之特定實施例之特徵的描述。在本說明書中,術語「向量」、「向量資料」及「向量元素」廣泛地用於係指任何非純量資料。除了向量之外,非純量資料之實例亦係字串、陣列、結構、矩陣及張量。
本說明書中描述之減少及更新功能僅僅係實例,並且完全獨立於本發明本身。此外,本發明被描述為用於機器學習,但是可用於涉及減少跨網路分散之資料的任何目的。
本說明書中在單獨實施例之內容背景中描述的某些特徵亦可在單一實施例中組合地實施。相反,在單一實施例之內容背景中描述的各別特徵亦可單獨地或以任何合適子組合在多個實施例中實施。此外,儘管上文可將特徵描述為以某些組合起作用,並且甚至最初被如此主張,但是在一些情況下,來自所主張組合之一或多個特徵可自該組合中去除,並且所主張組合可有關於子組合或子組合之變化。
類似地,儘管圖式中以特定順序描繪了操作,但是此不應被理解為要求以所展示之特定順序或以依次順序執行此等操作或者執行所有所繪示操作以達成期望的結果。在某些情況下,多任務及平行處理可能係有利的。此外,上述實施例中之各種系統模組及組件之分離不應被理解為在所有實施例中都需要此分離,並且應理解,所描述之程式組件及系統通常可共同整合於單一軟體產品中或者封裝至多個軟體產品中。
已描述了主題之特定實施例。其他實施例在以下申請專利範圍之範疇內。例如,申請專利範圍中所敍述之動作可以不同順序執行並且仍然達成期望的結果。作為一個實例,附圖中描述之程序不一定需要所展示之特定順序或依次順序來達成期望的結果。在一些情況下,多任務及平行處理可能係有利的。
100:系統
105:批次1至4
110:處理單元
200:模組
202a:處理單元A
202b:處理單元B
202c:處理單元C
202d:處理單元D
202e:處理單元E
202f:處理單元F
202g:處理單元G
202h:處理單元H
410:步驟
425:步驟
430:步驟
435:步驟
510:步驟
525:步驟
530:步驟
540:步驟
550:步驟
A1:複本及處理單元
A2:複本及處理單元
A3:複本及處理單元
A4:複本及處理單元
B1:複本及處理單元
B2:複本及處理單元
B3:複本及處理單元
B4:複本及處理單元
C1:複本及處理單元
C2:複本及處理單元
C3:複本及處理單元
C4:複本及處理單元
D1:複本及處理單元
D2:複本及處理單元
D3:複本及處理單元
D4:複本及處理單元
圖1繪示機器學習模型複本之實例系統。
圖2繪示在實例模組上以環形拓樸連接之處理單元之實例。
圖3繪示複本及處理單元之環面拓樸。
圖4A係繪示由中間處理單元執行之處理的流程圖。
圖4B係繪示由最終處理單元執行之處理的流程圖。
圖5A係繪示由二維(2D)網格或環面拓樸中之處理單元執行之處理的流程圖。
圖5B係繪示由三維(3D)網格或環面中之處理單元執行之處理的流程圖。
在各個圖式中相似的參考編號及名稱指示相似的元件。
410:步驟
425:步驟
Claims (26)
- 一種用於以低潛時(low latency)平行處理訓練資料之系統,該系統包含: 複數個節點,其係以節點之列及節點之行之一拓樸(topology)而組織,以及一或多個儲存裝置,其上儲存指令,該等指令在由該複數個節點執行時可操作以致使該複數個節點執行: 在該複數個節點之每一節點上訓練一機器學習模型之一各別複本(replica),其中該複數個節點係以包含具有環繞鏈路(wrap-around link)之節點之環形列(circular rows)及具有環繞鏈路之節點之環形行(circular columns)之一環面(torus)拓樸而組織,每一節點係一分離處理單元,且每一節點上之各別副本在一相異(distinct)訓練資料批次(batch of training data)上平行地訓練,藉以在該訓練之後每一節點之該各別副本保持(hold)由該訓練引起之一各別梯度向量; 藉由執行操作來組合該複數個節點中之該等各別梯度向量以產生一最終梯度向量,該等操作包含: 由在該複數個節點之每一節點上執行之程式碼,沿著該環面拓樸之節點之每一列執行一各別環形減少(circle reduction),從而引起節點之每一列中之每一節點對於最初在節點之該列之每一節點中之每一梯度向量具有一減少向量;以及 由在該複數個節點之每一節點上執行之程式碼,沿著該環面拓樸之節點之每一行執行一各別環形減少,在該環形減少結束時每一節點保持該相同的最終梯度向量, 其中沿節點之一環執行一環形減少包含致使節點之該環中之一中間節點組合接收自節點之該環中之一先前節點之一輸入梯度向量與該中間節點之該個別梯度向量,並傳輸經組合之梯度向量至節點之該環中之一下一節點。
- 一種非暫態電腦可讀儲存媒體,其經編碼有指令,該等指令在由以列與行之一拓樸組織枝節之複數個節點執行時可操作,以致使該等節點執行: 在該複數個節點之每一節點上訓練一機器學習模型之一各別複本,其中該複數個節點係以包含具有環繞鏈路之節點之環形列及具有環繞鏈路之節點之環形行之一環面拓樸而組織,每一節點係一分離處理單元,且每一節點上之各別副本在一相異訓練資料批次上平行地訓練,藉以在該訓練之後每一節點之該各別副本保持由該訓練引起之一各別梯度向量; 藉由執行操作來組合該複數個節點中之該等各別梯度向量以產生一最終梯度向量,該等操作包含: 由在該複數個節點之每一節點上執行之程式碼,沿著該環面拓樸之節點之每一列執行一各別環形減少,從而引起節點之每一列中之每一節點對於最初在節點之該列之每一節點中之每一梯度向量具有一減少向量;以及 由在該複數個節點之每一節點上執行之程式碼,沿著該環面拓樸之節點之每一行執行一各別環形減少,在該環形減少結束時每一節點保持該相同的最終梯度向量, 其中沿節點之一環執行一環形減少包含致使節點之該環中之一中間節點組合接收自節點之該環中之一先前節點之一輸入梯度向量與該中間節點之該個別梯度向量,並傳輸經組合之梯度向量至節點之該環中之一下一節點。
- 一種用於以低潛時平行處理訓練資料之系統,該系統包含: 複數個節點,其係以節點之列及節點之行之一拓樸而組織,以及一或多個儲存裝置,其上儲存指令,該等指令在由該複數個節點執行時可操作以致使該複數個節點執行: 在該複數個節點之每一節點上訓練一機器學習模型之一各別複本,其中該複數個節點係以具有環繞鏈路之節點之環形列及不具有環繞鏈路之節點之非環形行組成(made up)之一拓樸而組織,其中每一節點係一分離處理單元,且每一節點上之各別副本在一相異訓練資料批次上平行地訓練,藉以在該訓練之後每一節點之該各別副本保持由該訓練引起之一各別梯度向量; 藉由執行操作來組合該複數個節點中之該等各別梯度向量以產生一最終梯度向量,該等操作包含: 由在該複數個節點之每一節點上執行之程式碼,沿著該拓樸之節點之每一列執行一各別環形減少,從而引起節點之每一列中之每一節點對於最初在節點之該列之每一節點中之每一梯度向量具有一減少向量,其中沿節點之一每一列執行一環形減少包含致使節點之該列中之一中間節點組合接收自節點之該列中之一先前節點之一輸入梯度向量與該中間節點之該個別梯度向量,並傳輸經組合之梯度向量至節點之該列中之一下一節點;以及 由在該複數個節點之每一節點上執行之程式碼,沿著該拓樸之節點之每一行執行一各別線減少(line reduction),在該線減少結束時每一節點保持該相同的最終梯度向量。
- 一種非暫態電腦可讀儲存媒體,其經編碼有指令,該等指令在由以列與行之一拓樸而組織的複數個節點執行時可操作以致使該等節點執行: 在該複數個節點之每一節點上訓練一機器學習模型之一各別複本,其中該複數個節點係以由具有環繞鏈路之節點之環形列及不具有環繞鏈路之節點之非環形行組成的一拓樸而組織,其中每一節點係一分離處理單元,且每一節點上之各別副本在一相異訓練資料批次上平行地訓練,藉以在該訓練之後每一節點之該各別副本保持由該訓練引起之一各別梯度向量; 藉由執行操作來組合該複數個節點中之該等各別梯度向量以產生一最終梯度向量,該等操作包含: 由在該複數個節點之每一節點上執行之程式碼,沿著該拓樸之節點之每一列執行一各別環形減少,從而引起節點之每一列中之每一節點對於最初在節點之該列之每一節點中之每一梯度向量具有一減少向量,其中沿節點之一每一列執行一環形減少包含致使節點之該列中之一中間節點組合接收自節點之該列中之一先前節點之一輸入梯度向量與該中間節點之該個別梯度向量,並傳輸經組合之梯度向量至節點之該列中之一下一節點;以及 由在該複數個節點之每一節點上執行之程式碼,沿著該拓樸之節點之每一行執行一各別線減少,在該線減少結束時每一節點保持該相同的最終梯度向量。
- 一種用於以低潛時平行處理訓練資料之系統,該系統包含: 複數個節點,其係以節點之列及節點之行之一拓樸而組織,以及一或多個儲存裝置,其上儲存指令,該等指令在由該複數個節點執行時可操作以致使該複數個節點執行: 在該複數個節點之每一節點上儲存一相異資料批次,該複數個節點係以包含具有環繞鏈路之節點之環形列及具有環繞鏈路之節點之環形行之一環面拓樸而組織, 藉由執行操作來組合在該複數個節點中之該等各別資料批次以產生一最終資料批次,該等操作包含: 由在該複數個節點之每一節點上執行之程式碼,沿著該環面拓樸之節點之每一列執行一各別環形減少,從而引起節點之每一列中之每一節點對於最初在節點之該列之每一節點中之每一資料批次有一經組合資料批次;以及 由在該複數個節點之每一節點上執行之程式碼,沿著該環面拓樸之節點之每一行執行一各別環形減少,在該環形減少結束時每一節點保持該相同的最終資料批次, 其中沿節點之一環執行一環形減少包含致使節點之該環中之一中間節點組合接收自節點之該環中之一先前節點之一輸入梯度向量與該中間節點之該個別梯度向量,並傳輸經組合之梯度向量至節點之該環中之一下一節點。
- 一種非暫態電腦可讀儲存媒體,其經編碼有指令,該等指令在由以列與行之一拓樸組織枝節之複數個節點執行時可操作以致使該等節點執行: 在該複數個節點之每一節點上儲存一相異資料批次,該複數個節點係以包含具有環繞鏈路(wrap-around links)之節點之環形列及具有環繞鏈路之節點之環形行之一環面拓樸而組織 藉由執行操作來組合在該複數個節點中之該等各別資料批次以產生一最終資料批次,該等操作包含: 由在該複數個節點之每一節點上執行之程式碼沿著該環面拓樸之節點之每一列執行一各別環形減少,從而引起節點之每一列中之每一節點對於最初在節點之該列之每一節點中之每一資料批次有一經組合資料批次;以及 由在該複數個節點之每一節點上執行之程式碼沿著該環面拓樸之節點之每一行執行一各別環形減少,在該環形減少結束時每一節點保持該相同的最終資料批次, 其中沿節點之一環執行一環形減少包含致使節點之該環中之一中間節點組合接收自節點之該環中之一先前節點之一輸入梯度向量與該中間節點之該個別梯度向量,並傳輸經組合之梯度向量至節點之該環中之一下一節點。
- 一種方法,其包含: 藉由處理複數個節點之一對應計算節點上之每一批次來訓練在訓練資料批次上之一機器學習模型,該複數個節點根據包含節點之列及節點之行之一網路拓樸而互連,其中每一節點在該等列之恰好一者及該等行之恰好一者中,其中節點之每一列中之一節點被指定為該列之一開始節點且節點之每一列中之一節點被指定為該列之一結束節點,其中每一列具有偶數個節點,其中每一列中除該開始節點及該結束節點之外之每一節點具有該列中之一各別先前鄰近節點及該列中之一各別下一鄰近節點,其中每一列中之該結束節點為鄰近該列中之該結束節點之兩節點(both nodes)之該下一鄰近節點,其中訓練該機器學習模型包含藉由每一節點執行碼以使得該節點透過該機器學習模型之一各別複本來處理一各別訓練資料批次以獲得各別複本梯度資料; 自該複數個節點之每一節點之各別複本梯度資料產生最終梯度資料,其包含: 對於該網路拓樸之每一列: 藉由該列之一各別開始節點(i)將由該各別開始節點獲得之該複本梯度資料之一第一一半部分(half)發送至連接至該開始節點之該列中之一第一鄰近節點,及(ii)將由該開始節點獲得之該複本梯度資料之一剩餘部分(remainder)發送至連接至該開始節點之該列中之一第二鄰近節點, 藉由該列中除該開始節點以外之每一節點,組合來自該節點之該先前鄰近節點之梯度資料與由該節點獲得之複本梯度資料, 藉由除該結束節點之外之每一節點,將該節點上之該各別經組合梯度資料發送至該節點之一下一鄰近節點,及 藉由該列之該結束節點,判定該結束節點已組合該列中自其兩個鄰近節點接收之該梯度資料,且藉由該結束節點,將該各別中間梯度資料廣播至該列中之每一其他節點以作為回應,且接著 藉由該網路拓樸之每一行且自該行中之每一節點之該各別中間梯度資料,計算該最終梯度資料;及 將該最終梯度資料廣播至該複數個節點中之每一節點。
- 如請求項7之方法, 其中每一節點之行之一節點被指定為該行之一開始節點且每一節點之行之一節點被指定為該行之一結束節點,其中每一行具有偶數個節點,其中每一行中除該開始節點及該結束節點之外之每一節點具有該行中之一各別先前鄰近節點及該行中之一各別下一鄰近節點,其中每一行中之該結束節點為鄰近該行中之該結束節點之兩節點之該下一鄰近節點,及 其中藉由該網路拓樸之每一行且自該行中之每一節點之該各別中間梯度資料,計算該最後梯度資料包含: 藉由該行之一開始節點(i)將由該各別開始節點獲得之中間梯度資料之一第一一半部分發送至連接至該開始節點之該行中之一第一鄰近節點,及(ii)將由該開始節點獲得之該中間梯度資料之一剩餘部分發送至連接至該開始節點之該行中之一第二鄰近節點, 藉由該行中除該開始節點以外之每一節點,組合來自該節點之該先前鄰近節點之梯度資料與藉由該節點獲得之中間梯度資料, 藉由除該結束節點之外之每一節點,將該節點上之該各別經組合中間梯度資料發送至該節點之一下一鄰近節點;及 其中將該最後梯度資料廣播至該複數個節點中之每一節點包含藉由每一行之該結束節點,判定該結束節點已組合該行中自其兩個鄰近節點接收之該梯度資料,且藉由該結束節點,將該經組合中間梯度資料廣播至該行中之每一其他節點以作為回應,其中該經組合中間梯度資料為該最後梯度資料。
- 如請求項7之方法, 其中每一節點之各別複本梯度資料包別一各別梯度向量,該各別梯度向量包含複數個元素,及 其中藉由該列中除該開始節點以外之每一節點,組合來自該節點之該先前鄰近節點之該梯度資料與藉由該節點獲得之該複本梯度資料係包含以由該節點獲得之該複本梯度資料之一梯度向量之元素執行來自該節點之該先前鄰近節點之該梯度資料之一梯度向量之元素之一逐元素平均(an element-wise average of elements)。
- 如請求項7之方法, 其中藉由該列之該開始節點(i)將由該各別開始節點獲得之該複本梯度資料之該第一一半部分發送至連接至該開始節點之該列中之該第一鄰近節點,及(ii)將由該開始節點獲得之該複本梯度資料之該剩餘部分發送至連接至該開始節點之該列中之該第二鄰近節點係包含: 藉由該列之該開始節點,將該複本梯度資料串流至該第一鄰近節點及該第二鄰近節點;及 其中藉由除該結束節點之外之每一節點而將該節點上之該各別經組合梯度資料發送至該節點之該下一鄰近節點係包含,藉由每一節點,將該節點上之該各別經組合梯度資料串流至該節點之該下一鄰近節點。
- 如請求項10之方法,其中藉由除該開始節點之外之該列中之每一節點,組合來自該節點之該先前鄰近節點之該梯度資料與藉由該節點獲得之該複本梯度資料係包含,當該複本梯度資料被串流至該節點中時,組合來自該節點之該先前鄰近節點之該梯度資料。
- 如請求項7之方法,其中該複數個節點實施在一單一模組上。
- 如請求項6之方法,其中該單一模組為一積體電路。
- 如請求項7之方法,其中每一節點包含一或多個處理單元及一或多個非暫時性電腦可讀儲存媒體。
- 如請求項7之方法,其中該網路拓樸為一三維環面拓樸。
- 一種系統,其包含: 實施在一或多個處理單元及一或多個儲存裝置上之複數個節點,其中該複數個節點根據包含節點之列及節點之行之一網路拓樸而互連,其中該等列包含環繞鏈路,其中每一節點在該等列之恰好(exactly)一者及該等行之恰好一者中,其中節點之每一列中之一節點被指定為該列之一開始節點,且每一節點之列中之一節點被指定為該列之一結束節點,其中每一列中除該開始節點及該結束節點之外之每一節點具有該列中之一各別先前鄰近節點及該列中之一各別下一鄰近節點,其中每一列中之該結束節點為鄰近該列中之該結束節點之兩節點之該下一鄰近節點,及 其中該一或多個儲存裝置經編碼有指令,當由一或多個電腦執行時,使該一或多個電腦執行包含以下之操作: 藉由處理複數個節點之一對應計算節點上之每一批次來訓練在訓練資料批次上之一機器學習模型,其包含藉由每一節點執行碼以使得該節點透過該機器學習模型之一各別複本來處理一各別訓練資料批次以獲得各別複本梯度資料; 自該複數個節點之每一節點之各別複本梯度資料產生最後梯度資料,其包含: 對於該網路拓樸之每一列: 藉由該列之一各別開始節點(i)將由該各別開始節點獲得之複本梯度資料之一第一一半部分發送至連接至該開始節點之該列中之一第一鄰近節點,及(ii)將由該開始節點獲得之該複本梯度資料之一剩餘部分發送至連接至該開始節點之該列中之一第二鄰近節點, 藉由該列中除該開始節點以外之每一節點而組合來自該節點之該先前鄰近節點之梯度資料與由該節點獲得之複本梯度資料, 藉由除該結束節點之外之每一節點而將該節點上之該各別經組合梯度資料發送至該節點之一下一鄰近節點,及 藉由該列之該結束節點判定該結束節點已組合該列中自其兩個鄰近節點接收之該梯度資料,且藉由該結束節點將該各別中間梯度資料廣播至該列中之每一其他節點以作為回應,且之後 藉由該網路拓樸之每一行且自該行中之每一節點之該各別中間梯度資料計算該最後梯度資料;及 將該最後梯度資料廣播至該複數個節點中之每一節點。
- 如請求項16之系統,其中該等行包含環繞鏈路。
- 如請求項17之系統,其中節點之每一行之一節點被指定為該行之一開始節點且節點之每一行之一節點被指定為該行之一結束節點,其中每一行具有偶數個節點,其中每一行中除該開始節點及該結束節點之外之每一節點具有該行中之一各別先前鄰近節點及該行中之一各別下一鄰近節點,其中每一行中之該結束節點為鄰近該行中之該結束節點之兩節點(both nodes)之該下一鄰近節點,及 其中藉由該網路拓樸之每一行且自該行中之每一節點之該各別中間梯度資料,計算該最後梯度資料包含: 藉由該行之一開始節點(i)將由該各別開始節點獲得之中間梯度資料之一第一一半部分發送至連接至該開始節點之該行中之一第一鄰近節點,及(ii)將由該開始節點獲得之該中間梯度資料之一剩餘部分(remainder)發送至連接至該開始節點之該行中之一第二鄰近節點, 藉由該行中除該開始節點以外之每一節點,組合來自該節點之該先前鄰近節點之梯度資料與由該節點獲得之中間梯度資料, 藉由除該結束節點之外之每一節點,將該節點上之該各別經組合中間梯度資料發送至該節點之一下一鄰近節點;及 其中將該最後梯度資料廣播至該複數個節點中之每一節點係包含藉由每一行之該結束節點,判定該結束節點已組合該行中自其兩個鄰近節點接收之該梯度資料,且藉由該結束節點,將該經組合中間梯度資料廣播至該行中之每一其他節點以作為回應,其中該經組合中間梯度資料為該最後梯度資料。
- 如請求項16之系統,其中該節點之列及行為根據該網路拓樸互連之複數個層之一層之列及行。
- 如請求項16之系統,其中該網路拓樸為一三維環面拓樸。
- 如請求項16之系統,其中該等訓練資料批次為第一訓練資料批次,且其中該等操作進一步包含在將該最後梯度資料廣播至該複數個節點中之節點之後: 藉由每一節點,使用該最後梯度資料來更新該機器學習模型之模型參數值,及 在第二訓練資料批次上訓練該機器學習模型。
- 如請求項16之系統,其中該複數個節點實施在一單一模組上。
- 如請求項22之系統,其中該單一模組為一積體電路。
- 如請求項16之系統, 其中藉由該列之該開始節點(i)將由該各別開始節點獲得之該複本梯度資料之該第一一半部分發送至連接至該開始節點之該列中之該第一鄰近節點,及(ii)將由該開始節點獲得之該複本梯度資料之該剩餘部分發送至連接至該開始節點之該列中之該第二鄰近節點係包含: 藉由該列之該開始節點,將該複本梯度資料串流至該第一鄰近節點及該第二鄰近節點;及 其中藉由除該結束節點之外之每一節點,將該節點上之該各別經組合梯度資料發送至該節點之該下一鄰近節點係包含,藉由每一節點,將該節點上之該各別經組合梯度資料串流至該節點之該下一鄰近節點。
- 如請求項24之系統,其中藉由除該開始節點之外之該列中之每一節點,組合來自該節點之該先前鄰近節點之該梯度資料與由該節點獲得之該複本梯度資料係包含,當該複本梯度資料被串流至該節點中時,組合來自該節點之該先前鄰近節點之該梯度資料。
- 一或多個電腦可讀儲存媒體,其經編碼有可由實施複數個節點之一或多個處理單元執行之指令,其中該複數個節點根據包含節點之列及節點之行之一網路拓樸而互連,其中該等列包含環繞鏈路,其中每一節點在該等列之恰好一者及該等行之恰好一者中,其中節點之每一列中之一節點被指定為該列之一開始節點,且節點之每一列中之一節點被指定為該列之一結束節點,其中每一列中除該開始節點及該結束節點之外之每一節點具有該列中之一各別先前鄰近節點及該列中之一各別下一鄰近節點,其中每一列中之該結束節點為鄰近該列中之該結束節點之兩節點之該下一鄰近節點,及 其中當由該一或多個處理單元執行時,該等指令使該一或多個處理單元執行包含以下之操作: 藉由處理複數個節點之一對應計算節點上之每一批次來訓練在訓練資料批次上之一機器學習模型,其包含藉由每一節點執行碼以使得該節點透過該機器學習模型之一各別複本來處理一各別訓練資料批次以獲得各別複本梯度資料; 自該複數個節點之每一節點之各別複本梯度資料產生最後梯度資料,其包含: 對於該網路拓樸之每一列: 藉由該列之一各別開始節點(i)將由該各別開始節點獲得之複本梯度資料之一第一一半部分發送至連接至該開始節點之該列中之一第一鄰近節點,及(ii)將由該開始節點獲得之該複本梯度資料之一剩餘部分發送至連接至該開始節點之該列中之一第二鄰近節點, 藉由該列中除該開始節點以外之每一節點,組合來自該節點之該先前鄰近節點之梯度資料與由該節點獲得之複本梯度資料, 藉由除該結束節點之外之每一節點,將該節點上之該各別經組合梯度資料發送至該節點之一下一鄰近節點,及 藉由該列之該結束節點,判定該結束節點已組合該列中自其兩個鄰近節點接收之該梯度資料,且藉由該結束節點將該各別中間梯度資料廣播至該列中之每一其他節點以作為回應,且接著 藉由該網路拓樸之每一行且自該行中之每一節點之該各別中間梯度資料,計算該最後梯度資料;及 將該最後梯度資料廣播至該複數個節點中之每一節點。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762461758P | 2017-02-21 | 2017-02-21 | |
US62/461,758 | 2017-02-21 | ||
US15/707,104 | 2017-09-18 | ||
US15/707,104 US10055692B1 (en) | 2017-02-21 | 2017-09-18 | Parallel processing of reduction and broadcast operations on large datasets of non-scalar data |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202137077A true TW202137077A (zh) | 2021-10-01 |
TWI807349B TWI807349B (zh) | 2023-07-01 |
Family
ID=61563107
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107105429A TWI730222B (zh) | 2017-02-21 | 2018-02-14 | 用於處理訓練資料之方法、系統及儲存媒體 |
TW110122727A TWI807349B (zh) | 2017-02-21 | 2018-02-14 | 用於處理訓練資料之方法、系統及儲存媒體 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107105429A TWI730222B (zh) | 2017-02-21 | 2018-02-14 | 用於處理訓練資料之方法、系統及儲存媒體 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10055692B1 (zh) |
EP (2) | EP3859543A1 (zh) |
CN (2) | CN112288095A (zh) |
DE (2) | DE202018100938U1 (zh) |
DK (1) | DK3364306T3 (zh) |
GB (1) | GB2563309B (zh) |
TW (2) | TWI730222B (zh) |
WO (1) | WO2018156358A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10055692B1 (en) | 2017-02-21 | 2018-08-21 | Google Llc | Parallel processing of reduction and broadcast operations on large datasets of non-scalar data |
US11907825B2 (en) | 2018-10-19 | 2024-02-20 | Google Llc | Training neural networks using distributed batch normalization |
CN110033091B (zh) | 2018-12-13 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 一种基于模型进行预测的方法和装置 |
GB201904263D0 (en) * | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A networked computer |
GB201904266D0 (en) * | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A networked computer with embedded rings |
US11704270B2 (en) | 2019-03-27 | 2023-07-18 | Graphcore Limited | Networked computer with multiple embedded rings |
GB201904267D0 (en) * | 2019-03-27 | 2019-05-08 | Graphcore Ltd | A networked computer with multiple embedded rings |
CN112308233A (zh) * | 2019-08-02 | 2021-02-02 | 伊姆西Ip控股有限责任公司 | 用于处理数据的方法、设备和计算机程序产品 |
US11715010B2 (en) | 2019-08-16 | 2023-08-01 | Google Llc | Cross replica reduction on networks having degraded nodes |
WO2021046345A1 (en) * | 2019-09-06 | 2021-03-11 | Google Llc | Processing of reduction and broadcast operations on large datasets with multi-dimensional hardware accelerators |
WO2021191272A1 (en) * | 2020-03-26 | 2021-09-30 | Graphcore Limited | Embedding rings on a toroid computer network |
GB2593757B (en) | 2020-04-02 | 2022-04-06 | Graphcore Ltd | Control of processing node operations |
GB2593756B (en) | 2020-04-02 | 2022-03-30 | Graphcore Ltd | Control of data transfer between processing nodes |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442694B1 (en) | 1998-02-27 | 2002-08-27 | Massachusetts Institute Of Technology | Fault isolation for communication networks for isolating the source of faults comprising attacks, failures, and other network propagating errors |
US6278997B1 (en) * | 1999-02-05 | 2001-08-21 | International Business Machines Corporation | System and method for constraint-based rule mining in large, dense data-sets |
WO2002069177A1 (en) | 2001-02-24 | 2002-09-06 | International Business Machines Corporation | Arithmetic functions in torus and tree networks |
US8065503B2 (en) | 2006-12-15 | 2011-11-22 | International Business Machines Corporation | Iteratively processing data segments by concurrently transmitting to, processing by, and receiving from partnered process |
US9633315B2 (en) | 2012-04-27 | 2017-04-25 | Excalibur Ip, Llc | Method and system for distributed machine learning |
US9665531B2 (en) | 2012-06-13 | 2017-05-30 | International Business Machines Corporation | Performing synchronized collective operations over multiple process groups |
US9235801B2 (en) | 2013-03-15 | 2016-01-12 | Citrix Systems, Inc. | Managing computer server capacity |
US10032091B2 (en) * | 2013-06-05 | 2018-07-24 | Emotient, Inc. | Spatial organization of images based on emotion face clouds |
CN104281853B (zh) | 2014-09-02 | 2017-11-17 | 电子科技大学 | 一种基于3d卷积神经网络的行为识别方法 |
US10409165B2 (en) | 2014-12-15 | 2019-09-10 | Asml Netherlands B.V. | Optimization based on machine learning |
US10490094B2 (en) * | 2015-09-25 | 2019-11-26 | International Business Machines Corporation | Techniques for transforming questions of a question set to facilitate answer aggregation and display |
CN105550374A (zh) | 2016-01-29 | 2016-05-04 | 湖南大学 | Spark云服务环境下面向大数据的随机森林并行机器学习方法 |
US10621219B2 (en) * | 2017-02-10 | 2020-04-14 | International Business Machines Corporation | Techniques for determining a semantic distance between subjects |
US10055692B1 (en) | 2017-02-21 | 2018-08-21 | Google Llc | Parallel processing of reduction and broadcast operations on large datasets of non-scalar data |
-
2017
- 2017-09-18 US US15/707,104 patent/US10055692B1/en active Active
-
2018
- 2018-02-08 WO PCT/US2018/017406 patent/WO2018156358A1/en active Application Filing
- 2018-02-08 US US16/495,815 patent/US11551138B2/en active Active
- 2018-02-14 TW TW107105429A patent/TWI730222B/zh active
- 2018-02-14 TW TW110122727A patent/TWI807349B/zh active
- 2018-02-20 EP EP21157216.9A patent/EP3859543A1/en active Pending
- 2018-02-20 DE DE202018100938.9U patent/DE202018100938U1/de active Active
- 2018-02-20 DK DK18157584.6T patent/DK3364306T3/da active
- 2018-02-20 DE DE102018103751.1A patent/DE102018103751A1/de not_active Withdrawn
- 2018-02-20 EP EP18157584.6A patent/EP3364306B1/en active Active
- 2018-02-21 GB GB1802758.1A patent/GB2563309B/en active Active
- 2018-02-22 CN CN202011112250.6A patent/CN112288095A/zh active Pending
- 2018-02-22 CN CN201810153965.2A patent/CN108537341B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
TWI807349B (zh) | 2023-07-01 |
DK3364306T3 (da) | 2021-07-05 |
US10055692B1 (en) | 2018-08-21 |
CN112288095A (zh) | 2021-01-29 |
EP3859543A1 (en) | 2021-08-04 |
US20200042895A1 (en) | 2020-02-06 |
DE202018100938U1 (de) | 2018-05-22 |
GB2563309B (en) | 2021-07-28 |
EP3364306A1 (en) | 2018-08-22 |
CN108537341A (zh) | 2018-09-14 |
TW201841132A (zh) | 2018-11-16 |
TWI730222B (zh) | 2021-06-11 |
GB2563309A (en) | 2018-12-12 |
US11551138B2 (en) | 2023-01-10 |
US20180240039A1 (en) | 2018-08-23 |
EP3364306B1 (en) | 2021-04-07 |
WO2018156358A1 (en) | 2018-08-30 |
GB201802758D0 (en) | 2018-04-04 |
DE102018103751A1 (de) | 2018-08-23 |
CN108537341B (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI730222B (zh) | 用於處理訓練資料之方法、系統及儲存媒體 | |
US10482380B2 (en) | Conditional parallel processing in fully-connected neural networks | |
US11580056B2 (en) | Control barrier network for reconfigurable data processors | |
TW202127238A (zh) | 可重組態架構的編譯器流程邏輯 | |
WO2021096581A1 (en) | Enhanced input of machine-learning accelerator activations | |
JP2022543886A (ja) | 円環コンピュータネットワークへのリングの組み込み | |
CN111461336B (zh) | 基于mpi多进程的含噪声双量子逻辑门实现方法及装置 | |
US11461517B2 (en) | Arrangement, system, method and computer program for simulating a quantum Toffoli gate | |
Dazzi et al. | 5 parallel prism: A topology for pipelined implementations of convolutional neural networks using computational memory | |
Parker et al. | Distributed neural network: Dynamic learning via backpropagation with hardware neurons using arduino chips | |
US11297127B2 (en) | Information processing system and control method of information processing system | |
KR102211604B1 (ko) | Gpu 기반의 채널 단위 딥뉴럴 네트워크 구조 검색을 사용하는 인공지능 시스템 | |
US20210109888A1 (en) | Parallel processing based on injection node bandwidth | |
JP2023519432A (ja) | 並列処理システムにおけるモデルパラメータの更新 | |
Sriraman et al. | Customized FPGA Design and Analysis of Soft-Core Processor for DNN | |
Soto et al. | A self-adaptive hardware architecture with fault tolerance capabilities | |
US20220292399A1 (en) | Processing of reduction and broadcast operations on large datasets with mutli-dimensional hardware accelerators | |
Laskar et al. | Enhancing Collective Communication in MCM Accelerators for Deep Learning Training | |
JP2014170556A5 (zh) | ||
Wagh et al. | Butterfly automorphisms and edge faults | |
Oad | Diameter and Broadcast Time of the Knödel graph | |
CN113283059A (zh) | 分布式串行计算的链式架构、模型单元和配置方法 | |
Fang et al. | Novel broadcasting schemes on cube-connected cycles |