TWI792987B - 使用暗示捨入模式之資料轉換至經選擇資料類型/來自經選擇資料類型之資料轉換 - Google Patents
使用暗示捨入模式之資料轉換至經選擇資料類型/來自經選擇資料類型之資料轉換 Download PDFInfo
- Publication number
- TWI792987B TWI792987B TW111115155A TW111115155A TWI792987B TW I792987 B TWI792987 B TW I792987B TW 111115155 A TW111115155 A TW 111115155A TW 111115155 A TW111115155 A TW 111115155A TW I792987 B TWI792987 B TW I792987B
- Authority
- TW
- Taiwan
- Prior art keywords
- data type
- data
- rounding
- command
- neural network
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Holo Graphy (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
獲得將資料自一源資料類型轉換至一目標資料類型之一指令。該源資料類型係選自由該指令支援之一或多個源資料類型,且該目標資料類型係選自由該指令支援之一或多個目標資料類型。基於該源資料類型或該目標資料類型中之一經選擇資料類型,進行供該指令使用之一捨入模式的一判定。該捨入模式係基於該經選擇資料類型隱含地設定;該捨入模式經指派至該經選擇資料類型。執行該資料自該源資料類型至該目標資料類型之一轉換。該轉換包括使用經隱含地設定之該捨入模式來執行一捨入操作。執行該轉換提供該目標資料類型中之一結果,該結果被寫入至一選擇位置。
Description
一或多個態樣大體上係關於計算環境內之處理,且詳言之,係關於改良此處理。
為了增強資料及/或計算密集型計算環境中之處理,利用共處理器,諸如人工智慧加速器(亦被稱作神經網路處理器或神經網路加速器)。此類加速器提供大量計算能力,用於執行例如所涉及計算,諸如對矩陣或張量之計算。
作為一實例,張量計算用於複雜處理,包括深度學習,其為機器學習之子集。深度學習或機器學習(人工智慧之態樣)用於各種技術中,包括但不限於工程化、製造、醫療技術、汽車技術、電腦處理等。
執行張量計算需要大量時間及計算能力。因此,尋求促進此類執行之改良,包括以促進此類計算之格式提供資料。
經由提供一種用於促進計算環境內之處理的電腦程式產品來克服先前技術之缺點且提供額外優勢。該電腦程式產品包括一或多個電腦可讀儲存媒體及共同地儲存於該一或多個電腦可讀儲存媒體上以執行方法之程式指令。該方法包括獲得將資料自一源資料類型轉換至一目標資料類型之一指令。該源資料類型係選自由該指令支援之一或多個源資料類型,且該目標資料類型係選自由該指令支援之一或多個目標資料類型。基於該源資料類型及該目標資料類型中之一者之一經選擇資料類型,進行供該指令使用之一捨入模式的一判定。該捨入模式係基於該經選擇資料類型隱含地設定;該捨入模式經指派至該經選擇資料類型。執行該資料自該源資料類型至該目標資料類型之一轉換。該轉換包括使用基於該經選擇資料類型隱含地設定之該捨入模式來執行一捨入操作。執行該轉換提供該目標資料類型中之一結果。該結果被寫入至一選擇位置。
藉由提供經指派至特定資料類型之隱含設定捨入模式,轉換程序得以簡化且可藉由限制所支援捨入模式來改良處理速度。其亦促進程式碼之編寫,該程式碼轉換資料以在諸如共處理器之選擇處理器上使用。
在一個實例中,該經選擇資料類型為使用該指令指定之該目標資料類型。舉例而言,該目標資料類型為使用該指令指定之一機器特定資料類型。在一個實例中,該機器特定資料類型為一神經網路處理資料類型1資料類型。作為一實例,經指派至該神經網路處理資料類型1資料類型之該捨入模式為例如一就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入(round to nearest ties away from zero)。此外,在一個實例中,該源資料類型為使用該指令指定之一標準資料類型。
藉由提供經指派至諸如機器特定資料類型之特定資料類型的隱含設定捨入模式,轉換程序得以簡化且可藉由限制所支援捨入模式來改良處理速度。提高了效率,降低了複雜度,且增加了系統效能。轉換之效能得以改良,從而改良了系統效能及資料可用性。
在一個實例中,該經選擇資料類型為使用該指令指定之該源資料類型。舉例而言,該源資料類型為使用該指令指定之一機器特定資料類型。在一個實例中,該機器特定資料類型為一神經網路處理資料類型1資料類型。作為一實例,經指派至該神經網路處理資料類型1資料類型之該捨入模式為一就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入。此外,在一個實例中,該目標資料類型為使用該指令指定之一標準資料類型。
作為一實例,待轉換之該資料包括該源資料類型中之源資料。該源資料包括使用該指令之一個欄位指定之一個暫存器中之資料與使用該指令之另一欄位指定之另一暫存器中之其他資料的一串連。執行該轉換包括例如基於該捨入模式捨入該源資料以提供經捨入資料,及轉換該經捨入資料以提供該目標資料類型中之該結果。
作為另一實例,待轉換之該資料包括使用該指令獲得之該源資料類型中之源資料。執行該轉換包括例如基於該捨入模式捨入該源資料以按一目標資料類型數字之一精確度提供經捨入資料,及轉換該經捨入資料以提供該目標資料類型中之該結果。
本文中亦描述及主張與一或多個態樣相關之電腦實施方法及系統。此外,本文中亦描述及可能主張與一或多個態樣相關之服務。
經由本文中所描述之技術實現額外特徵及優勢。本文中詳細描述其他實施例及態樣且將其視為所主張態樣之一部分。
根據本發明之一或多個態樣,提供一種用於促進計算環境內之處理的能力。在一個態樣中,該能力包括採用特定機器模型之共處理器(諸如神經網路處理器)來執行功能,包括例如張量計算。機器或處理器之特定模型具有某些能力。機器或處理器之另一模型可具有額外、更少及/或不同能力及/或屬於具有額外、更少及/或不同能力之不同代(例如,當前或未來代)。為了提高效率且為了保持深度學習網路之準確度,特定機器模型可針對用以表示輸入/輸出資料(例如,輸入/輸出張量資料)之特定內部或機器特定資料格式/類型進行操作。作為一實例,輸入資料自標準格式轉換至機器特定格式,且輸出資料轉換回至標準格式。至/自機器特定格式之轉換可包括基於指定捨入模式之捨入操作。根據本發明之一或多個態樣,捨入模式並非可選的,而係基於機器特定資料格式暗示的。此簡化了轉換過程,且可藉由限制所支援捨入模式來改良處理速度。其亦促進程式碼之編寫,該程式碼轉換資料以在諸如神經網路處理器之共處理器上使用。
在一個實例中,轉換包括使用一或多個轉換指令。每一指令係經組態以至少執行轉換功能之單一指令(例如,硬體/軟體介面處之單一架構硬體機器指令)。每一指令可為藉由處理器(諸如,通用處理器)上之程式分派的通用處理器指令集架構(ISA)之部分,或可為耦接至通用處理器或為其部分之專用處理器(諸如,經組態以用於某些功能之共處理器)之部分。其他變化亦係可能的。
每一指令指示源資料類型及目標資料類型,且將源資料類型轉換至目標資料類型。作為一個實例,資料類型中之一者為標準資料類型,諸如二進位浮點資料類型。二進位浮點資料可以數種不同格式表示,包括例如微小、短、長或擴充之格式,其實例參考圖1A至圖1D進行描述。參考圖1A,二進位浮點微小格式100包括例如正負號102 (例如,位元0)、指數+ 15 (104) (例如,位元1至5)及分數106 (例如,位元6至15)。參考圖1B,二進位浮點短格式110包括例如正負號112 (例如,位元0)、指數+ 127 (114) (例如,位元1至8)及分數116 (例如,位元9至31);且參考圖1C,二進位浮點長格式120包括例如正負號122 (例如,位元0)、指數+ 1023 (124) (例如,位元1至11)及分數126 (例如,位元12至63)。此外,參考圖1D,二進位浮點擴充格式130包括例如正負號132 (例如,位元0)、指數+ 16383 (134) (例如,位元1至15)及分數136 (例如,位元16至127)。其他格式亦係可能的。
作為實例,當呈二進位浮點短格式之運算元經載入至浮點暫存器中時,其佔據暫存器之左半部且右半部保持不變。當呈二進位浮點長格式之運算元經載入至浮點暫存器中時,其佔據整個暫存器。呈二進位浮點擴充格式之運算元佔據暫存器對。正負號及有偏指數在暫存器對中編號較低之暫存器之最左16個位元,且後面為分數之最左48個位元。分數之最右64個位元在暫存器對中編號較高之暫存器中。
下文描述格式中之每一者之實例性質:
性質
微小
短
長
擴充
格式長度(位元) 16 32 64 128
有偏指數長度(位元) 5 8 11 15
分數長度(位元) 10 23 52 112
精確度(p) 11 24 53 113
Emax 15 127 1023 16383
Emin -14 -126 -1022 -16382
LUV偏差 15 127 1023 16383
Nmax (1-2
-11) x 2
16(1-2
-24) x 2
128(1-2
-53) x (1-2
-113) x
2
10242
16384
≈ 3.4 x 10
38 ≈ 1.8x 10
308≈ 1.2 x 10
4932
Nmin 1.0 x 2
-141.0 x 2
-1261.0 x 2
-10221.0 x 2
-16382
≈ 1.2 x 10
-38≈ 2.2 x 10
-308≈ 3.4 x 10
-4932
Dmin 1.0 x 2
-241.0 x 2
-1491.0 x 2
-10741.0 x 2
-16494
≈ 1.4 x 10
-45≈ 4.9 x 10
-324≈ 6.5 x 10
-4966
其中≈指示值為近似的,Emax為最大左單位視圖(LUV)指數,Emin為最小左單位視圖指數,Nmax為最大(在量值上)可表示有限數,且Nmin為最小(在量值上)可表示正常數。
作為實例,對於每一格式,上文指示用以允許所有指數表達為無正負號數之偏差。
在每一格式中,二進位浮點數之二進位小數點被視為在最左分數位元之左邊。二進位小數點之左邊存在暗示單位位元,其對於正常數被視為一且對於零及次正常數被視為零。左邊附有暗示單位位元之分數為數字之有效數(significand)。
正常二進位浮點數之值為有效數乘以基數2自乘至無偏指數冪。次正常二進位浮點數之值為有效數乘以基數2自乘至最小指數冪。
下文描述各種格式之非零數字的實例值:
| 數字類別 | 格式 | 值 |
| 正常 | 微小 | ± 2 e-15x (1.f) |
| 短 | ± 2 e-127x (1.f) | |
| 長 | ± 2 e-1023x (1.f) | |
| 擴充 | ± 2 e-16383x (1.f) | |
| 次正常 | 微小 | ± 2 -14x (0.f) |
| 短 | ± 2 -126x (0.f) | |
| 長 | ± 2 -1022x (0.f) | |
| 擴充 | ± 2 -16382x (0.f) |
其中:e為有偏指數(以十進位展示),且f為分數(以二進位)。
此外,下文描述實例浮點捨入及範圍作用:
| v 之範圍 | 狀況 | 當有效捨入方法為以下各項時之 非陷阱 結果 (r) | |||||
| 就近捨入, 若與兩邊的數距離相等 , 則取偶數值 | 就近捨入 , 若與兩邊的數距離相等 , 則向遠離 0 的方向捨入 | 向 0 | 向 +∞ | 向 -∞ | 準備更短精確度 | ||
| v < -Nmax, g < -Nmax | 溢位 | -∞ 1 | -∞ 1 | -Nmax | -Nmax | -∞ 1 | -Nmax |
| v < -Nmax, g = -Nmax | 正常 | -Nmax | -Nmax | -Nmax | -Nmax | - | -Nmax |
| -Nmax ≤ v ≤ -Nmin | 正常 | g | g | g | g | g | g |
| -Nmin < v ≤ -Dmin | 微小 | d * | d * | d | d | d * | d |
| -Dmin < v < -Dmin/2 | 微小 | -Dmin | -Dmin | -0 | -0 | -Dmin | -Dmin |
| v = -Dmin/2 | 微小 | -0 | -Dmin | -0 | -0 | -Dmin | -Dmin |
| -Dmin/2 < v < 0 | 微小 | -0 | -0 | -0 | -0 | -Dmin | -Dmin |
| v = 0 | 精確零差 2 | +0 | +0 | +0 | +0 | -0 | +0 |
| 0 < v < +Dmin/2 | 微小 | +0 | +0 | +0 | +Dmin | +0 | +Dmin |
| v = +Dmin/2 | 微小 | +0 | +Dmin | +0 | +Dmin | +0 | +Dmin |
| +Dmin/2 < v < +Dmin | 微小 | +Dmin | +Dmin | +0 | +Dmin | +0 | +Dmin |
| +Dmin ≤ v < +Nmin | 微小 | d* | d* | d | d* | d | d |
| +Nmin ≤ v +Nmax | 正常 | g | g | g | g | g | g |
| +Nmax < v, g = +Nmax | 正常 | +Nmax | +Nmax | +Nmax | - | +Nmax | +Nmax |
| +Nmax < v, +Nmax < g | 溢位 | +∞ 1 | +∞ 1 | +Nmax | +∞ 1 | +Nmax | +Nmax |
| 其中: | |||||||
| - | 此情形不會發生。 | ||||||
| * | 在極端狀況下,捨入值可為Nmin。在此狀況下,異常為反向溢位、不精確及遞增。 | ||||||
| 1 | 非陷阱結果r被視為已遞增。 | ||||||
| 2 | 精確零差狀況僅適用於某些指令,諸如向量浮點加、向量浮點減、向量浮點乘與加、向量浮點乘與減。對於所有其他二進位浮點運算,在不使用R(v)函數之情況下藉由檢查源運算元元素來偵測零結果。 | ||||||
| d | 非標準化值。在將精確中間值(v)捨入至包括精確度及有界指數範圍兩者之目標格式時得出的值。除註釋*中之解釋外,此為次正常數。 | ||||||
| g | 精確度捨入值。在將精確中間值(v)捨入至目標精確度但假定無界指數範圍時得出的值。 | ||||||
| v | 精確中間值。此為在捨入之前、假定無界精確度及無界指數範圍的值。對於捨入之向量負載,v為源值(a)。 | ||||||
| Dmin | 呈目標格式之最小(在量值上)可表示次正常數。 | ||||||
| Nmax | 呈目標格式之最大(在量值上)可表示有限數。 | ||||||
| Nmin | 呈目標格式之最小(在量值上)可表示正常數。 |
根據本發明之一態樣,另一資料類型為機器特定資料類型,而非標準資料類型。機器特定資料類型為例如經最佳化以供在特定硬體機器上執行之特定處理器使用的資料類型。舉例而言,機器特定資料類型可保持增強之準確度及/或使機器更易於實施。作為一實例,機器特定資料類型之一個實例為NNP資料類型1資料類型(亦被稱作神經網路處理資料類型1資料類型)。此資料類型為16位元浮點格式,其為例如深度學習訓練及推斷計算提供許多優勢,包括例如:保持深度學習網路之準確度;消除簡化捨入模式及處理極端狀況之次正常格式;自動捨入至最接近的算術運算值;及將無窮大且非數字(NaN)之特殊實體組合成一個值(NINF),其由算術運算接受及處理。對於指數溢位及無效運算(諸如除以零),NINF提供比其他格式更佳的預設。此允許許多程式在不隱藏此類錯誤之情況下及在不使用特殊化異常處理常式之情況下繼續執行。其他機器特定資料類型亦係可能的。
NNP資料類型1資料類型之格式的一個實例描繪於圖2中。如所描繪,在一個實例中,NNP資料類型1資料可以格式200表示,該格式包括例如正負號202 (例如,位元0)、指數+ 31 (204) (例如,位元1至6)及分數206 (例如,位元7至15)。
下文描述NNP資料類型1格式之實例性質:
性質
NNP
資料類型
1
格式長度(位元) 16位元
有偏指數長度(位元) 6位元
分數長度(位元) 9位元
精確度(p) 10位元
最大左單位視圖指數(Emax) 32
最小左單位視圖指數(Emin) -31
左單位視圖(LUV) 偏差 31
Nmax (1-2
-9) x 2
33≈ 8.6 x 10
9
Nmin (1+2
-9) x 2
-31≈ 4.6 x 10
-10
Dmin ---
其中≈指示值為近似的,Nmax為最大(在量值上)可表示有限數,且Nmin為最小(在量值上)可表示數。
除了NNP資料類型1資料類型之外(或替代NNP資料類型1資料類型),可支援之另一機器特定資料類型為NNP資料類型2資料類型。亦可支援額外、更少及/或其他資料類型。
下文描述NNP資料類型2格式之實例性質:
性質
NNP
資料類型
2
格式長度(位元) 16位元
有偏指數長度(位元) 5位元
分數長度(位元) 10位元
精確度(p) 11位元
最大左單位視圖指數(Emax) 16
最小左單位視圖指數(Emin) -15
左單位視圖(LUV)偏差 15
Nmax (1-2
-10) x -2
16
Nmin (1+2
-10) x 2
-15
Dmin ---
其中≈指示值為近似的,Nmax為最大(在量值上)可表示有限數,且Nmin為最小(在量值上)可表示正常數。
下文描述與NNP資料類型1及NNP資料類型2資料類型相關的其他細節:
有偏指數:上文展示了用以允許指數表達為無正負號數之偏差。有偏指數類似於二進位浮點格式之特性,不同之處在於全零及全一之有偏指數無特殊含義,如下文參考NNP資料類型1及NNP資料類型2資料類型之類別所描述。
有效數:NNP資料類型1及NNP資料類型2數字之二進位小數點被視為在最左分數位元之左邊。二進位小數點之左邊存在暗示單位位元,其對於正常數被視為一且對於零被視為零。左邊附有暗示單位位元之分數為數字之有效數。
正常NNP資料類型1或NNP資料類型2之值為有效數乘以基數2自乘至無偏指數冪。
非零數之值:下文展示非零數之值:
數字類別
值
正常數 ± 2
e-31x (1.f)
其中e為以十進位展示之有偏指數,且f為二進位之分數。
在一個實施例中,存在三種類別之NNP資料類型1資料及NNP資料類型2資料,包括數值及相關非數值實體。每一資料項包括正負號、指數及有效數。指數為有偏的,使得所有有偏指數為非負無正負號數且最小有偏指數為零。有效數包括二進位小數點左方之明確分數及隱含單位位元。正負號位元對於加為零,且對於減為一。
所准許之所有非零有限數具有唯一的NNP資料類型1或NNP資料類型2表示。不存在次正常數,該等數字可允許相同值之多個表示,且不存在次正常算術運算。三種類別包括例如:
資料類別
正負號
有偏指數
單位位元
*
分數
零 ± 0 0 0
正常數 ± 0 1 非0
正常數 ± 非0,非全一 1 任何
正常數 ± 全一 - 非全一
NINF ± 全一 - 全一
其中:-指示不適用,*指示暗示單位位元,NINF並非數字或無窮大。
下文描述關於類別中之每一者的其他細節:
零:零具有為零之有偏指數及零分數。暗示單位位元為零。
正常數:正常數可具有為任何值之有偏指數。當有偏指數為0時,分數為非零。當有偏指數為全一時,分數並非全一。其他有偏指數值可具有任何分數值。暗示單位位元對於所有正常數為一。
NINF:NINF由全一之有偏指數及全一之分數表示。NINF表示不在NNP資料類型1 (亦即,經設計用於深度學習(DL)之16位元浮點,其具有6個指數位元及9個分數位元)或NNP資料類型2中之可表示值之範圍內的值。通常,NINF僅在計算期間傳播,使得其在最後保持可見。
儘管提供二進位浮點資料格式、NNP資料類型1資料類型及NNP資料類型2資料類型作為實例,但亦可使用額外、更少及/或其他資料格式/類型。
參考圖3A描述併有及使用本發明之一或多個態樣的計算環境之一個實施例。作為一實例,圖3A之計算環境係基於由紐約阿蒙克市之國際商業機器公司(International Business Machines Corporation)供應的z/Architecture®指令集架構。z/Architecture指令集架構之一個實施例描述於標題為「z/Architecture Principles of Operation」之公開案(IBM公開案第SA22-7832-12號,第十三版,2019年9月)中,該公開案特此以全文引用之方式併入本文中。然而,z/Architecture指令集架構僅為一個實例架構;國際商業機器公司及/或其他實體之其他架構及/或其他類型的計算環境可包括及/或使用本發明之一或多個態樣。z/Architecture及IBM為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。
在一個實例中,計算環境10包括中央電子複合體(CEC) 11。中央電子複合體11包括複數個組件,諸如記憶體12 (亦稱為系統記憶體、主記憶體、主儲存器、中央儲存器、儲存器),其耦接至一或多個處理器,諸如一或多個通用處理器(亦稱為中央處理單元(CPU) 13)及一或多個專用處理器(例如,神經網路處理器31),且耦接至輸入/輸出(I/O)子系統14。
作為實例,一或多個專用處理器可與一或多個通用處理器分開,及/或至少一個專用處理器可嵌入於至少一個通用處理器內。其他變化亦係可能的。
I/O子系統14可為中央電子複合體之部分或與其分開。其引導主儲存器12與耦接至中央電子複合體之輸入/輸出控制單元15及輸入/輸出(I/O)裝置16之間的資訊流。
可使用許多類型之I/O裝置。一種特定類型為資料儲存裝置17。資料儲存裝置17可儲存一或多個程式18、一或多個電腦可讀程式指令19及/或資料等。電腦可讀程式指令可經組態以實行本發明之態樣之實施例的功能。
中央電子複合體11可包括及/或耦接至抽取式/非抽取式、揮發性/非揮發性電腦系統儲存媒體。舉例而言,其可包括及/或耦接至非抽取式非揮發性磁性媒體(通常稱為「硬碟機」)、用於自抽取式非揮發性磁碟(例如,「軟碟」)讀取及寫入至抽取式非揮發性磁碟之磁碟機,及/或用於自諸如CD-ROM、DVD-ROM或其他光學媒體之抽取式非揮發性光碟讀取或寫入至抽取式非揮發性光碟之光碟機。應理解,可結合中央電子複合體11使用其他硬體及/或軟體組件。實例包括但不限於:微碼或毫碼、裝置驅動程式、冗餘處理單元、外部磁碟機陣列、RAID系統、磁帶機及資料存檔儲存系統等。
此外,中央電子複合體11可與眾多其他通用或專用計算系統環境或組態一起操作。可適合與中央電子複合體11一起使用之熟知計算系統、環境及/或組態之實例包括但不限於:個人電腦(PC)系統、伺服器電腦系統、精簡型用戶端、複雜型用戶端、手持型或膝上型電腦裝置、多處理器系統、基於微處理器之系統、機上盒、可程式化消費型電子裝置、網路PC、小型電腦系統、大型電腦系統及包括以上系統或裝置中之任一者的分散式雲端計算環境,及類似者。
在一或多個實施例中,中央電子複合體11提供邏輯分割及/或虛擬化支援。如圖3B中所展示,記憶體12包括例如一或多個邏輯分割區20、管理邏輯分割區之超管理器21及處理器韌體22。超管理器21之一個實例為由紐約阿蒙克市之國際商業機器公司供應的處理器資源/系統管理器(PR/SM
TM)。如本文中所使用,韌體包括例如處理器之微碼或毫碼。其包括例如用於實施較高層級機器碼之硬體層級指令及/或資料結構。在一個實施例中,其包括例如專屬碼,該專屬碼通常作為包括受信任軟體之微碼或毫碼、特定於底層硬體之微碼或毫碼遞送,且控制對系統硬體之作業系統存取。PR/SM為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。
每一邏輯分割區20能夠充當單獨的系統。亦即,每一邏輯分割區可獨立地重設、執行客體作業系統23 (諸如由紐約阿蒙克市之國際商業機器公司供應的z/OS
®作業系統)或其他控制碼24 (諸如耦接設施控制碼(CFCC)),且用不同程式25操作。在邏輯分割區中執行之作業系統或應用程式呈現為能夠存取完整的系統,但實際上,僅其一部分可用。儘管供應z/OS作業系統作為一實例,但可根據本發明之一或多個態樣使用由國際商業機器公司及/或其他公司供應之其他作業系統。z/OS為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。
記憶體12耦接至例如CPU 13 (圖3A),其為可分配至邏輯分割區之實體處理器資源。舉例而言,邏輯分割區20可包括一或多個邏輯處理器,其中之每一者表示可動態地分配至邏輯分割區之實體處理器資源13中的全部或一部分。
在另一實施例中,中央電子複合體11提供虛擬化支援(具有或不具有邏輯分割支援)。如圖3C中所示,中央電子複合體11之記憶體12包括例如一或多個虛擬機26、管理虛擬機之諸如超管理器27的虛擬機管理器,及處理器韌體28。超管理器27之一個實例為由紐約阿蒙克市之國際商業機器公司供應的z/VM
®超管理器。超管理器有時被稱作主機。z/VM為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。
中央電子複合體之虛擬機支援提供操作大量虛擬機26之能力,該等虛擬機各自能夠用不同程式29操作且執行客體作業系統30,諸如Linux
®作業系統。每一虛擬機26能夠充當單獨的系統。亦即,每一虛擬機可獨立地進行重設,執行客體作業系統,且用不同程式操作。在虛擬機中執行之作業系統或應用程式呈現為能夠存取完整系統,但實際上,僅其一部分可用。儘管供應z/VM及Linux作為實例,但可根據本發明之一或多個態樣使用其他虛擬機管理器及/或作業系統。註冊商標Linux
®係依照Linux基金會(Linux Foundation)的轉授權而使用,Linux基金會為該商標在全球範圍內之擁有者Linus Torvalds的獨家被授權人。
在一個實例中,處理器(例如,處理器13及/或處理器31)包括用以執行指令之複數個功能組件(或其子集)。如圖3D中所描繪,此等功能組件包括例如:指令提取組件350,其用以提取待執行之指令;指令解碼單元352,其用以解碼所提取指令且獲得經解碼指令之運算元;一或多個指令執行組件354,其用以執行經解碼指令;記憶體存取組件356,其用以在必要時存取記憶體以執行指令;及寫回組件358,其用以提供所執行指令之結果。該等組件中之一或多者可在指令處理中存取及/或使用一或多個暫存器360。此外,根據本發明之一或多個態樣,組件中之一或多者可包括用於執行以下操作之一或多個其他組件之至少一部分或能夠存取該一或多個其他組件:例如一或多個轉換指令之轉換、捨入及/或處理,及/或例如神經網路處理輔助指令之神經網路處理輔助處理(或可使用本發明之一或多個態樣的其他處理),如本文中所描述。一或多個其他組件包括例如轉換及/或捨入組件370及/或神經網路處理輔助組件372 (及/或一或多個其他組件)。
根據本發明之一態樣,為了提高效率,特定機器模型之選擇機器可對用以表示輸入/輸出資料之特定內部或機器特定資料格式/類型進行操作。在此狀況下,作為一實例,將輸入資料自標準格式轉換至機器特定格式,且將輸出資料轉換回至標準格式。其他實例亦係可能的。根據本發明之一態樣,至/自機器特定格式之轉換可包括捨入。待使用之捨入模式係基於待使用之機器特定格式而暗示(亦被稱作預先選擇)的,而非可選的。作為實例,捨入模式經指派至機器特定格式,而非自例如允許可選捨入模式之指令運算元或控制暫存器(諸如浮點控制暫存器)獲得。實情為,根據本發明之一態樣,捨入模式經預先選擇且經指派至機器特定格式,使得機器特定格式僅使用彼捨入模式。此提供效率、降低複雜度且增加系統效能。轉換之效能得以改良,從而改良了系統效能及資料可用性。
在一個實例中,根據本發明之一態樣,轉換操作由例如通用處理器(例如,處理器13)執行,以使得特定機器模型之選擇處理器(例如,神經網路處理器31)能夠對呈機器特定格式之資料執行功能。此轉換操作包括執行如經選擇指令所指示之轉換,且可包括使用基於指令所指示之資料類型判定的捨入模式進行捨入。參考圖4A至圖4B描述關於此處理之其他細節。
參考圖4A,在一個實例中,選擇且解碼適當轉換指令400。經選擇之轉換指令取決於例如源資料類型及目標資料類型,以及待執行之其他處理。實例轉換指令包括例如來自神經網路處理高之向量浮點轉換及加長指令、來自神經網路處理低之向量浮點轉換及加長指令、向量浮點轉換及捨入至神經網路處理指令、來自神經網路處理之向量浮點轉換指令及向量浮點轉換至神經網路處理指令。取決於例如待轉換之資料類型等,可使用額外、更少及/或其他轉換指令。
解碼包括例如獲得指令之一或多個輸入運算元(例如,在一或多個遮罩中提供之本文資訊),及判定一或多個輸入運算元是否指定機器特定資料類型及指定何種類型之機器特定資料類型。舉例而言,源資料類型輸入運算元或目標資料類型輸入運算元可指定機器特定資料類型。作為一個實例,所解碼之指令(例如,由作業碼指示)已知其為指定機器特定資料類型之源資料類型抑或目標資料類型。在另一實例中,指令之運算元中之指示符指示哪一運算元指定機器特定資料類型(若存在)。指示符可為指定資料類型之運算元之部分或在單獨運算元中。在其他實施例中,源資料類型及目標資料類型兩者指定機器特定資料類型(例如,一種類型及另一類型)。其他實例亦係可能的。
判定指令是否指定第一機器特定資料類型,其在本文中被稱作機器特定資料類型1 (例如,NNP資料類型1) 410。若指令未指定第一機器特定資料類型,則進一步判定指令是否指定第二機器特定資料類型,其在本文中被稱作機器特定資料類型2 (例如,NNP資料類型2) (420)。在一個實例中,若未指定第一機器特定資料類型或第二機器特定資料類型,則指定不支援的資料類型異常430。儘管在此實例中對兩種機器特定資料類型進行檢查,但其他實施例可包括對額外或更少機器特定資料類型之額外或更少檢查。存在許多可能性。
返回至詢問410,若指定機器特定資料類型1,則捨入模式自動且隱含地設定為第一模式,諸如就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入。此外,返回至詢問420,若指定機器特定資料類型2,則捨入模式自動且隱含地設定為第二模式,諸如向0捨入。其他實例亦係可能的。
在設定基於經選擇之機器特定資料類型而預先指定的捨入模式之後,執行指令,且詳言之,執行轉換及捨入440,如參考圖4B所描述。
參考圖4B,在一個實施例中,獲得指令之一或多個輸入運算元(若先前未獲得),包括例如待轉換之資料450。判定使用指令之運算元指定的機器特定資料類型(假定指定了機器特定資料類型),且因此判定待使用之捨入模式460。基於經預先選擇且指派至機器特定資料類型之捨入模式執行捨入470。將已捨入之資料自源資料類型轉換至目標資料類型480,且提供捨入及轉換之結果490。在一個實例中,結果為目標資料類型中之輸出張量。在一個實例中,此完成捨入/轉換處理。
在其他實施例中,捨入可在轉換之後執行。此外,在其他實施例中,捨入模式可經預先選擇或指派至標準資料類型,而非機器特定資料類型。在一或多個實施例中,為一或多個選擇資料類型隱含地設定捨入模式,其中選擇資料類型為標準資料類型、機器特定資料類型及/或另一資料類型。其他實例亦係可能的。
在一個實施例中,轉換指令中之每一者為例如向量設施之部分,其提供例如範圍為一個至十六個元素之固定大小向量。每一向量包括由定義於設施中之向量指令操作的資料。在一個實施例中,若向量由多個元素構成,則每一元素與其他元素並行地經處理。在一個實例中,直至所有元素之處理完成才會發生指令完成。在其他實施例中,該等元素部分地經並行及/或順序處理。
在一個實施例中,存在32個向量暫存器,且其他類型之暫存器可映射至向量暫存器的一象限。舉例而言,暫存器檔案(其為中央處理單元(例如,處理器13)中之處理器暫存器之陣列)可包括32個向量暫存器,且每一暫存器之長度為128個位元。長度為64個位元之十六個浮點暫存器可覆疊向量暫存器。因此,作為一實例,當修改浮點暫存器2時,接著亦修改向量暫存器2。其他類型之暫存器的其他映射亦係可能的。
向量資料以例如與其他資料格式相同之自左向右序列呈現於儲存器中。資料格式之編號為0至7的位元構成儲存器中之最左(編號最低)位元組位置中的位元組,位元8至15形成下一順序位置中之位元組,以此類推。在另一實例中,向量資料可按諸如自右向左之另一順序呈現於儲存器中。
本文中所描述之向量指令中之每一者具有複數個欄位,且一欄位可具有與其相關聯之下標編號。與指令之欄位相關聯的下標編號指示該欄位應用於之運算元。舉例而言,與向量暫存器V
1相關聯之下標編號1指示使用V
1指定之暫存器包括第一運算元,以此類推。暫存器運算元之長度為一個暫存器,其為例如128個位元。
此外,向量指令中之每一者包括暫存器擴充位元(RXB)欄位,其包括向量暫存器指明運算元之最高有效位元。將保留未由指令指定之暫存器標識的位元且將其設定為零。舉例而言,在向量暫存器欄位之四位元暫存器標識左方串連最高有效位元以建立五位元向量暫存器標識。
在一個實例中,RXB欄位包括四個位元(例如,位元0至3),且該等位元定義如下:
0 - 指令之第一向量暫存器標識(例如,在位元8至11中)的最高有效位元。
1 - 指令之第二向量暫存器標識(例如,在位元12至15中)的最高有效位元(若存在)。
2 - 指令之第三向量暫存器標識(例如,在位元16至19中)的最高有效位元(若存在)。
3 - 指令之第四向量暫存器標識(例如,在位元32至35中)的最高有效位元(若存在)。
每一位元取決於暫存器編號由例如組合程式設定為零或一。舉例而言,對於暫存器0至15,將位元設定為0;對於暫存器16至31,將位元設定為1等。
在一個實施例中,每一RXB位元為指令中包括一或多個向量暫存器之特定位置的擴充位元。舉例而言,RXB之位元0為位置8至11之擴充位元,其經指派至例如V
1,以此類推。詳言之,對於向量暫存器,使用例如暫存器欄位之四位元欄位外加其作為最高有效位元之對應暫存器擴充位元(RXB)來指定含有運算元之暫存器。舉例而言,若四位元欄位為0110且擴充位元為0,則五位元欄位00110指示暫存器編號6。在另一實施例中,RXB欄位包括額外位元,且多於一個位元用作每一向量或位置之擴充。
在本文中對轉換指令及/或其他指令之描述中,指示特定位置、特定欄位及/或特定欄位大小(例如,特定位元組及/或位元)。然而,可提供其他位置、欄位及/或大小。此外,儘管可指定將位元設定為例如一或零之特定值,但此僅為一實例。在其他實例中,若設定,則可將位元設定為不同值,諸如相反值或另一值。許多變化係可能的。
向量轉換指令之一個實例為來自神經網路處理高之向量浮點轉換及加長指令,其實例參考圖5A進行描述。在一個實施例中,來自神經網路處理高之向量浮點轉換及加長指令500具有VRR格式,其指示向量暫存器用擴充作業碼暫存運算元。其包括例如:操作碼(作業碼)欄位502a、502b (例如,位元0至7及40至47),其指示將執行轉換;第一向量暫存器(V
1)欄位504 (例如,位元8至11),其用以指明第一向量暫存器;第二向量暫存器(V
2)欄位506 (例如,位元12至15),其用以指明第二向量暫存器;第一遮罩(M
4)欄位508 (例如,位元28至31);第二遮罩(M
3)欄位510 (例如,位元32至35);及暫存器擴充位元(RXB)欄位512 (例如,位元36至39),其中之每一者描述於本文中。在一個實施例中,該等欄位彼此分開且獨立;然而,在其他實施例中,可組合多於一個欄位。下文描述關於此等欄位之其他資訊。
在一個實施例中,向量暫存器(V
1)欄位504用以指示待儲存第一運算元之向量暫存器。第一運算元為自轉換獲得之結果。第二運算元含於使用向量暫存器(V
2)欄位506指定之向量暫存器中且為例如待轉換之值。在一個實例中,向量暫存器欄位504、506中之每一者與RXB欄位512一起使用以指明向量暫存器。在另一實施例中,向量暫存器欄位用以指明一或多個向量暫存器。
在一個實例中,M
4欄位508指定源資料類型。舉例而言,實例資料類型包括:
M
4
源資料類型
0 神經網路處理資料類型1
1 神經網路處理資料類型2
2-15 保留
若指定保留值,則辨識出IEEE不精確異常。
在一個實例中,M
3欄位510指定目標資料類型。舉例而言,實例資料類型包括:
M
3
目標資料類型
0-1 保留
2 二進位浮點短格式
3-15 保留
若指定保留值,則辨識出IEEE不精確異常。
在一個實施例中,若模型(例如,特定模型之選擇機器或處理器)不支援非保留M
3及M
4值之組合,則在一個實例中辨識出IEEE不精確異常。舉例而言,IEEE不精確異常旗標(在本文中亦被稱作指示符)經設定例如為一。若辨識出IEEE不精確異常,則第一運算元為例如不可預測的。在一個實例中,第一運算元經設定為預設值(例如,零、待轉換之值或另一值)。在其他實施例中,僅針對諸如無效機器特定資料類型(例如,NNP資料類型1、NNP資料類型2)之某些無效資料類型而非針對諸如無效標準資料類型(例如,二進位浮點格式)之其他資料類型辨識出IEEE不精確異常。其他實例亦係可能的。此外,在一個實施例中,若僅針對某些無效資料類型(例如,無效機器特定資料類型)而非其他無效資料類型(例如,無效標準類型)辨識出IEEE不精確異常,則可針對其他無效資料類型辨識出規格異常。其他變化係可能的。
儘管提供特定值及格式作為源資料類型及目標資料類型之實例,但可使用額外、更少及/或其他值及/或格式。此外,儘管在此實施例中,不針對此指令執行捨入,但在其他實施例中,執行根據本發明之一或多個態樣的捨入。若要執行捨入,則所使用之捨入模式為例如經指派至由指令指定之機器特定資料類型的捨入模式。
在執行來自神經網路處理高之向量浮點轉換及加長指令之一個實施例時,將第二運算元之最左半部中的指定源資料類型元素之值轉換至指定目標格式且置於第一運算元中之對應雙寬元素中。忽略第二運算元之最右半部。第二運算元元素之格式由M
4欄位中之源資料類型指定。第一運算元元素之格式由M
3欄位中之目標資料類型指定。
作為一實例,M
4指定神經網路處理資料類型1資料類型,且第二運算元中呈NNP資料類型1資料格式之值經轉換至由M
3指定之二進位浮點短格式,且結果置於第一運算元中。轉換包括例如:
第二運算元值=二進位1.1×2
1= 3.0十進位
在NNP資料類型1中:
正負號= 0 (對於正)
指數= 31 + 1 (1為2
1中之指數) = 32 = 100000
尾數= 1.100000000 (二進數之分數部分(例如,1)具有9個位元之精確度;應注意,前置「1.」為暗示的,且因此在置於實際NNP資料類型1格式數字中時被移除)
此以二進位提供0 100000 100000000
0x4100 (100000100000000轉換至十六進位)
在短二進位浮點中:
正負號= 0 (對於正)
指數= 127 + 1 = 128 = 10000000
尾數= .10000000000000000000000 (分數部分,23位元,其中暗示的「1.」亦被移除)
在十六進位中:0x40400000
在執行指令之一個實施例時,條件碼保持不變。可能的IEEE異常包括無效操作及不精確。
下文指示自NNP高/低進行向量浮點轉換及加長指令之實例結果:
| 運算元元素 (a) | 無效操作遮罩 (FPC 0.0) | 結果 |
| -Nmax ≤ v ≤ -Nmin | - | T(v) |
| -0 | - | T(-0) |
| +0 | - | T(+0) |
| Nmin ≤ v ≤ Nmax | - | T(v) |
| ±NINF | 0 | T(dNaN), SF←1 |
| ±NINF | 1 | PIV(1) |
| 其中: | ||
| - | 結果並不取決於此條件或遮罩位元。 | |
| Nmax | 可以源格式表示之最大正數。 | |
| Nmin | 可以源格式表示之最小正數。 | |
| PIV(h) | 向量處理異常之程式中斷,其中VXC (向量異常碼)含有元素索引及十六進位中h之VIC (向量索引)。 | |
| v | 精確中間浮點值,其為源值(a)。 | |
| SFi | IEEE無效操作旗標,FPC (浮點控制暫存器)1.0。 | |
| dNAN | 預設NaN。 | |
| T(x) | 值x經轉換至目標格式且置於目標運算元元素位置處。 |
轉換指令之另一實例為來自神經網路處理低之向量浮點轉換及加長指令。如圖5B中所描繪,來自神經網路處理低之向量浮點轉換及加長指令520具有VRR格式,其指示向量暫存器用擴充作業碼暫存運算元。其包括例如:操作碼(作業碼)欄位522a、522b (例如,位元0至7及40至47),其指示將執行轉換;第一向量暫存器(V
1)欄位524 (例如,位元8至11),其用以指明第一向量暫存器;第二向量暫存器(V
2)欄位526 (例如,位元12至15),其用以指明第二向量暫存器;第一遮罩(M
4)欄位528 (例如,位元28至31);第二遮罩(M
3)欄位530 (例如,位元32至35);及暫存器擴充位元(RXB)欄位532 (例如,位元36至39),其中之每一者描述於本文中。在一個實施例中,該等欄位彼此分開且獨立;然而,在其他實施例中,可組合多於一個欄位。下文描述關於此等欄位之其他資訊。
在一個實施例中,向量暫存器(V
1)欄位524用以指示待儲存第一運算元之向量暫存器。第一運算元為自轉換獲得之結果。第二運算元含於使用向量暫存器(V
2)欄位526指定之向量暫存器中且包括例如待轉換之值。在一個實例中,向量暫存器欄位524、526中之每一者與RXB欄位532一起使用以指明向量暫存器。在另一實施例中,向量暫存器欄位用以指明一或多個向量暫存器。
在一個實例中,M
4欄位528指定源資料類型。舉例而言,實例資料類型包括:
M
4
源資料類型
0 神經網路處理資料類型1
1 神經網路處理資料類型2
2-15 保留
若指定保留值,則辨識出IEEE不精確異常。
在一個實例中,M
3欄位530指定目標資料類型。舉例而言,實例資料類型包括:
M
3
目標資料類型
0-1 保留
2 二進位浮點短格式
3-15 保留
若指定保留值,則辨識出IEEE不精確異常。
在一個實施例中,若模型(例如,特定模型之選擇機器或處理器)不支援非保留M
3及M
4值之組合,則在一個實例中辨識出IEEE不精確異常。舉例而言,IEEE不精確異常旗標(在本文中亦被稱作指示符)經設定例如為一。若辨識出IEEE不精確異常,則第一運算元為例如不可預測的。在一個實例中,第一運算元經設定為預設值(例如,零、待轉換之值或另一值)。在其他實施例中,僅針對諸如無效機器特定資料類型(例如,NNP資料類型1、NNP資料類型2)之某些無效資料類型而非針對諸如無效標準資料類型(例如,二進位浮點格式)之其他資料類型辨識出IEEE不精確異常。其他實例亦係可能的。此外,在一個實施例中,若僅針對某些無效資料類型(例如,無效機器特定資料類型)而非其他無效資料類型(例如,無效標準類型)辨識出IEEE不精確異常,則可針對其他無效資料類型辨識出規格異常。其他變化係可能的。
儘管提供特定值及格式作為源資料類型及目標資料類型之實例,但可使用額外、更少及/或其他值及/或格式。此外,儘管在此實施例中,不針對此指令執行捨入,但在其他實施例中,執行根據本發明之一或多個態樣的捨入。若要執行捨入,則所使用之捨入模式為例如經指派至由指令指定之機器特定資料類型的捨入模式。
在執行來自神經網路處理低之向量浮點轉換及加長指令之一個實施例時,將第二運算元之最右半部中的指定源資料類型元素之值轉換至指定目標格式且置於第一運算元中之對應雙寬元素中。忽略第二運算元之最左半部。第二運算元元素之格式由M
4欄位中之源資料類型指定。第一運算元元素之格式由M
3欄位中之目標資料類型指定。
在執行指令之一個實施例時,條件碼保持不變。可能的IEEE異常包括無效操作及不精確。上文指示自NNP低進行向量浮點轉換及加長指令之實例結果:
轉換指令之另一實例為向量浮點轉換及捨入至神經網路處理指令。如圖5C中所描繪,向量浮點轉換及捨入至神經網路處理指令540具有VRR格式,其指示向量暫存器用擴充作業碼暫存運算元。其包括例如:操作碼(作業碼)欄位542a、542b (例如,位元0至7及40至47),其指示將執行轉換以及捨入;第一向量暫存器(V
1)欄位544 (例如,位元8至11),其用以指明第一向量暫存器;第二向量暫存器(V
2)欄位546 (例如,位元12至15),其用以指明第二向量暫存器;第三向量暫存器(V
3)欄位548 (例如,位元16至19),其用以指明第三向量暫存器;第一遮罩(M
5)欄位550 (例如,位元28至31);第二遮罩(M
4)欄位552 (例如,位元32至35);及暫存器擴充位元(RXB)欄位554 (例如,位元36至39),其中之每一者描述於本文中。在一個實施例中,該等欄位彼此分開且獨立;然而,在其他實施例中,可組合多於一個欄位。下文描述關於此等欄位之其他資訊。
在一個實施例中,向量暫存器(V
1)欄位544用以指示待儲存第一運算元之向量暫存器。第一運算元為自轉換及捨入獲得之結果。含於使用向量暫存器(V
2)欄位546指定之向量暫存器中的第二運算元及含於使用向量暫存器(V
3)欄位548指定之向量暫存器中的第三運算元串連以建立源向量。在一個實例中,向量暫存器欄位544、546、548中之每一者與RXB欄位554一起使用以指明向量暫存器。在另一實施例中,向量暫存器欄位用以指明一或多個向量暫存器。
在一個實例中,M
5欄位550指定源資料類型。舉例而言,實例資料類型包括:
M
5
源資料類型
0-1 保留
2 二進位浮點短格式
3-15 保留
若指定保留值,則辨識出IEEE不精確異常。
在一個實例中,M
4欄位552指定目標資料類型。舉例而言,實例資料類型包括:
M
4
目標資料類型
0 神經網路處理資料類型1
1 神經網路處理資料類型2
2-15 保留
若指定保留值,則辨識出IEEE不精確異常。
在一個實施例中,若模型(例如,特定模型之選擇機器或處理器)不支援非保留M
4及M
5值之組合,則在一個實例中辨識出IEEE不精確異常。舉例而言,IEEE不精確異常旗標(在本文中亦被稱作指示符)經設定例如為一。若辨識出IEEE不精確異常,則第一運算元為例如不可預測的。在一個實例中,第一運算元經設定為預設值(例如,零、待轉換之值或另一值)。在其他實施例中,僅針對諸如無效機器特定資料類型(例如,NNP資料類型1、NNP資料類型2)之某些無效資料類型而非針對諸如無效標準資料類型(例如,二進位浮點格式)之其他資料類型辨識出IEEE不精確異常。其他實例亦係可能的。此外,在一個實施例中,若僅針對某些無效資料類型(例如,無效機器特定資料類型)而非其他無效資料類型(例如,無效標準類型)辨識出IEEE不精確異常,則可針對其他無效資料類型辨識出規格異常。其他變化係可能的。
儘管提供特定值及格式作為源資料類型及目標資料類型之實例,但可使用額外、更少及/或其他值及/或格式。
在執行向量浮點轉換及捨入至神經網路處理指令之一個實施例時,自第二運算元後接第三運算元之串連建立源向量。以自左向右方式,將源向量之源資料類型元素捨入至目標資料類型數字之精確度且轉換至目標資料類型數字之格式。將一半大小之目標資料類型數字置於指定第一運算元之向量暫存器的對應元素中。根據本發明之一態樣,用於捨入之捨入模式係基於目標資料類型之機器特定資料類型。因此,在一個實例中,捨入模式為經指派至神經網路處理資料類型1之模式,此係由於此為經指定用於指令轉換之機器特定資料類型。在此實例中,經指派至神經網路處理資料類型1之捨入模式為就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入。
在另一實例中,指定神經網路處理資料類型2資料類型,且經指派至神經網路處理資料類型2之捨入模式為向0捨入,若與兩邊的數距離相等,則取偶數值。
下文說明自短格式二進位浮點數至NNP資料類型2值之實例轉換:
第二運算元值:呈BFP短格式之+1.0000000001×2
-16(二進位)。
正負號= 0 (對於正)
指數= -16+127 = 111 (十進位)
尾數= 1.0000000001 (分數部分具有10個位元之精確度;應注意,前置「1.」為暗示的,且因此在BFP短格式數字中被移除)
此提供0 01101111 00000000010000000000000或0x37802000。
在NNP資料類型2中,此數字無法直接表示,此係由於其指數值小於2
-15。實際上,此值恰好為NMin之一半。當使用就近捨入,若與兩邊的數距離相等,則取偶數值時,此值變為+0。因此結果將為0x0000。
在執行指令之一個實施例時,條件碼保持不變。可能的IEEE異常包括無效操作、溢位、反向溢位及不精確。
下文指示向量浮點轉換及捨入至神經網路處理指令之實例結果:
| 運算元元素 (a) | 無效操作遮罩 (FPC 0.0) | 溢位 遮罩 (FPC 0.2) | 反向溢位遮罩 (FPC 0.3) | 結果 |
| v <-Nmax, g < - Nmax | - | 0 | - | T(-NINF), SFo←1 |
| v < -Nmax, g < -Nmax | - | 1 | - | PIV(3) |
| v < -Nmax, g = -Nmax | - | - | - | T(-Nmax) |
| -Nmax ≤ v ≤ -Nmin | - | - | - | T(g) |
| -Nmin < v < 0, g < -Nmin | - | - | 0 | T(-0), SFu←1 |
| -Nmin < v < 0, g < - Nmin | - | - | 1 | PIV(4) |
| -Nmin < v < 0, g = -Nmin | - | - | 0 | -Nmin, SFu←1 |
| -Nmin < v < 0, g = -Nmin | - | - | 1 | PIV(4) |
| -0 | - | - | - | T(-0) |
| +0 | - | - | - | T(+0) |
| 0 < v < Nmin, g < Nmin | - | - | 0 | T(+0), SFu←1 |
| 0 < v < Nmin, g < Nmin | - | - | 1 | PIV(4) |
| 0 < v < Nmin, g = Nmin 0 < v < Nmin, g = Nmin Nmin ≤ v ≤ Nmax | - - - | - - - | 0 1 - | T(+Nmin),SFu←1 PIV(4) T(g) |
| Nmax < v, g = Nmax | - | - | - | T(+Nmax) |
| Nmax < v, g > Nmax | - | 0 | - | T(±NINF 1),SFo←1 |
| Nmax < v, g > Nmax | - | 1 | - | PIV(3) |
| ±∞ | - | 0 | - | T(±NINF 1),SFo←1 |
| ±∞ | - | 1 | - | PIV(3) |
| ±NaN | 0 | - | - | T(±NINF 1),SFi←1 |
| ±NaN | 1 | - | - | PIV(1) |
| 其中: | ||||
| 1 | 結果之正負號位元與源之正負號位元相同。 | |||
| - | 結果並不取決於此條件或遮罩位元。 | |||
| Nmax | 可以目標格式表示之最大正數。 | |||
| Nmin | 可以目標格式表示之最小正數。 | |||
| PIV(h) | 向量處理異常之程式中斷,其中VXC (向量異常碼)含有元素索引及十六進位中h之VIC (向量索引)。 | |||
| v | 精確中間浮點值,其為源值(a)。 | |||
| g | 精確度捨入值。在將精確中間值(v)捨入至目標精確度但假定無界指數範圍時得出的值。所使用之捨入模式為就近捨入,若與兩邊的數距離相等,則向遠離0的方向捨入。 | |||
| SFi | IEEE無效操作旗標,FPC (浮點控制暫存器)1.0。 | |||
| SFo | IEEE溢位旗標,FPC 1.2。 | |||
| SFu | IEEE反向溢位旗標,FPC 1.3。 | |||
| T(x) | 值x經轉換至目標格式且置於目標運算元元素位置處。 |
轉換指令之另一實例為來自神經網路處理之向量浮點轉換指令。如圖5D中所描繪,來自神經網路處理之向量浮點轉換指令560具有VRR格式,其指示向量暫存器用擴充作業碼暫存運算元。其包括例如:操作碼(作業碼)欄位562a、562b (例如,位元0至7及40至47),其指示將執行轉換;第一向量暫存器(V
1)欄位564 (例如,位元8至11),其用以指明第一向量暫存器;第二向量暫存器(V
2)欄位566 (例如,位元12至15),其用以指明第二向量暫存器;第一遮罩(M
4)欄位568 (例如,位元28至31);第二遮罩(M
3)欄位570 (例如,位元32至35);及暫存器擴充位元(RXB)欄位572 (例如,位元36至39),其中之每一者描述於本文中。在一個實施例中,該等欄位彼此分開且獨立;然而,在其他實施例中,可組合多於一個欄位。下文描述關於此等欄位之其他資訊。
在一個實施例中,向量暫存器(V
1)欄位564用以指示待儲存第一運算元之向量暫存器。第一運算元為自待執行之轉換獲得之結果。第二運算元含於使用向量暫存器(V
2)欄位566指定之向量暫存器中。在一個實例中,向量暫存器欄位564、566中之每一者與RXB欄位572一起使用以指明向量暫存器。在另一實施例中,向量暫存器欄位用以指明一或多個向量暫存器。
在一個實例中,M
4欄位568指定源資料類型。舉例而言,實例資料類型包括:
M
4
源資料類型
0 神經網路處理資料類型1
1 神經網路處理資料類型2
2-15 保留
若指定保留值,則辨識出IEEE不精確異常。
在一個實例中,M
3欄位570指定目標資料類型。舉例而言,實例資料類型包括:
M
3
目標資料類型
0 保留
1 二進位浮點微小格式
2-15 保留
若指定保留值,則辨識出IEEE不精確異常。
在一個實施例中,若模型(例如,特定模型之選擇機器或處理器)不支援非保留M
3及M
4值之組合,則在一個實例中辨識出IEEE不精確異常。舉例而言,IEEE不精確異常旗標(在本文中亦被稱作指示符)經設定例如為一。若辨識出IEEE不精確異常,則第一運算元為例如不可預測的。在一個實例中,第一運算元經設定為預設值(例如,零、待轉換之值或另一值)。在其他實施例中,僅針對諸如無效機器特定資料類型(例如,NNP資料類型1、NNP資料類型2)之某些無效資料類型而非針對諸如無效標準資料類型(例如,二進位浮點格式)之其他資料類型辨識出IEEE不精確異常。其他實例亦係可能的。此外,在一個實施例中,若僅針對某些無效資料類型(例如,無效機器特定資料類型)而非其他無效資料類型(例如,無效標準類型)辨識出IEEE不精確異常,則可針對其他無效資料類型辨識出規格異常。其他變化係可能的。
儘管提供特定值及格式作為源資料類型及目標資料類型之實例,但可使用額外、更少及/或其他值及/或格式。
在執行來自神經網路處理之向量浮點轉換指令之一個實施例時,將第二運算元之指定源資料類型元素捨入至目標資料類型數字之精確度。將結果轉換至指定目標資料類型且置於第一運算元位置之對應元素中。根據本發明之一態樣,用於捨入之捨入模式係基於源資料類型之機器特定資料類型。因此,在一個實例中,捨入模式為經指派至神經網路處理資料類型1之模式,此係由於此為經指定用於指令轉換之機器特定資料類型。若選擇另一資料類型(例如,NNP資料類型2或另一資料類型),則捨入模式為經指派至彼其他資料類型之捨入模式。
在執行指令之一個實施例時,條件碼保持不變。可能的IEEE異常包括無效操作、溢位、反向溢位及不精確。
下文指示來自神經網路處理之向量浮點轉換之實例結果:
| 運算元元素 (a) | 無效操作遮罩 (FPC 0.0) | 溢位 遮罩 (FPC 0.2) | 反向溢位遮罩 (FPC 0.3) | 結果 |
| v < -Nmax | - | 0 | - | T(-∞), SFo←1 |
| v < -Nmax | - | 1 | - | PIV(3) |
| -Nmax ≤ v ≤ -Nmin | - | - | - | (T(g) |
| -Nmin < v ≤ -Dmin, g = -Nmin | - | - | 0 | T(-Nmin), SFu←1 |
| -Nmin < v ≤ -Dmin, g = -Nmin | - | - | 1 | PIV(4) |
| -Nmin < v ≤ -Dmin, g < -Nmin | - | - | 0 | T(d), SFu←1 |
| -Nmin < v ≤ -Dmin, g < -Nmin | - | - | 1 | PIV(4) |
| -Dmin < v ≤ -Dmin/2 | - | - | 0 | T(-Dmin), SFu←1 |
| -Dmin < v ≤ -Dmin/2 | - | - | 1 | PIV(4) |
| -Dmin/2 < v < 0 | - | - | 0 | T(-0), SFu←1 |
| -Dmin/2 < v < 0 | - | - | 1 | PIV(4) |
| -0 | - | - | - | T(-0) |
| +0 | - | - | - | T(+0) |
| 0 < v < Dmin/2 | - | - | 0 | T(+0), SFu←1 |
| 0 < v < Dmin/2 | - | - | 1 | PIV(4) |
| Dmin/2 ≤ v < Dmin | - | - | 0 | T(+Dmin), SFu←1 |
| Dmin/2 ≤ v < Dmin | - | - | 1 | PIV(4) |
| Dmin ≤ v < Nmin, g < Nmin | - | - | 0 | T(d), SFu←1 |
| Dmin ≤ v < Nmin, g < Nmin | - | - | 1 | PIV(4) |
| Dmin≤ v < Nmin, g = Nmin | - | - | 0 | T(+Nmin), SFu←1 |
| Dmin ≤ v < Nmin, g + Nmin | - | - | 1 | PIV(4) |
| Nmin ≤ v ≤ Nmax | - | - | - | T(g) |
| Nmax < v | - | 0 | - | T(+∞), SFo←1 |
| Nmax < v | - | 1 | - | PIV(3) |
| +NINF | 0 | - | - | T(dNaN), SFi←1 |
| -NINF | 1 | - | - | PIV(1) |
| 其中: | ||||
| - | 結果並不取決於此條件或遮罩位元。 | |||
| d | 非標準化值。在將精確中間值(v)捨入至包括精確度及有界指數範圍兩者之目標格式時得出的值。 | |||
| Dmin | 呈目標格式之最小(在量值上)可表示次正常數。 | |||
| Nmax | 呈目標格式之最大(在量值上)可表示有限數。 | |||
| Nmin | 呈目標格式之最小(在量值上)可表示正常數。 | |||
| PIV(h) | 向量處理異常之程式中斷,其中VXC (向量異常碼)含有元素索引及十六進位中h之VIC (向量索引)。 | |||
| v | 精確中間浮點值,其為源值(a)。 | |||
| g | 精確度捨入值。在將精確中間值(v)捨入至目標精確度但假定無界指數範圍時得出的值。所使用之捨入模式為就近捨入,若與兩邊的數距離相等,則向遠離0的方向捨入。 | |||
| SFi | IEEE無效操作旗標,FPC (浮點控制暫存器)1.0。 | |||
| SFo | IEEE溢位旗標,FPC 1.2。 | |||
| SFu | IEEE反向溢位旗標,FPC 1.3。 | |||
| dNaN | 預設NaN。 | |||
| T(x) | 值x經轉換至目標格式且置於目標運算元元素位置處。 |
轉換指令之另一實例為向量浮點轉換至神經網路處理指令。如圖5E中所描繪,向量浮點轉換至神經網路處理指令580具有VRR格式,其指示向量暫存器用擴充作業碼暫存運算元。其包括例如:操作碼(作業碼)欄位582a、582b (例如,位元0至7及40至47),其指示將執行轉換;第一向量暫存器(V
1)欄位584 (例如,位元8至11),其用以指明第一向量暫存器;第二向量暫存器(V
2)欄位586 (例如,位元12至15),其用以指明第二向量暫存器;第一遮罩(M
4)欄位588 (例如,位元28至31);第二遮罩(M
3)欄位590 (例如,位元32至35);及暫存器擴充位元(RXB)欄位592 (例如,位元36至39),其中之每一者描述於本文中。在一個實施例中,該等欄位彼此分開且獨立;然而,在其他實施例中,可組合多於一個欄位。下文描述關於此等欄位之其他資訊。
在一個實施例中,向量暫存器(V
1)欄位584用以指示待儲存第一運算元之向量暫存器。第一運算元為自轉換獲得之結果。第二運算元含於使用向量暫存器(V
2)欄位586指定之向量暫存器中。在一個實例中,向量暫存器欄位584、586中之每一者與RXB欄位592一起使用以指明向量暫存器。在另一實施例中,向量暫存器欄位用以指明一或多個向量暫存器。
在一個實例中,M
4欄位588指定源資料類型。舉例而言,實例資料類型包括:
M
4
源資料類型
0 保留
1 二進位浮點微小格式
2-15 保留
若指定保留值,則辨識出IEEE不精確異常。
在一個實例中,M
3欄位590指定目標資料類型。舉例而言,實例資料類型包括:
M
3
目標資料類型
0 神經網路處理資料類型1
1 神經網路處理資料類型2
2-15 保留
若指定保留值,則辨識出IEEE不精確異常。
在一個實施例中,若模型(例如,特定模型之選擇機器或處理器)不支援非保留M
3及M
4值之組合,則在一個實例中辨識出IEEE不精確異常。舉例而言,IEEE不精確異常旗標(在本文中亦被稱作指示符)經設定例如為一。若辨識出IEEE不精確異常,則第一運算元為例如不可預測的。在一個實例中,第一運算元經設定為預設值(例如,零、待轉換之值或另一值)。在其他實施例中,僅針對諸如無效機器特定資料類型(例如,NNP資料類型1、NNP資料類型2)之某些無效資料類型而非針對諸如無效標準資料類型(例如,二進位浮點格式)之其他資料類型辨識出IEEE不精確異常。其他實例亦係可能的。此外,在一個實施例中,若僅針對某些無效資料類型(例如,無效機器特定資料類型)而非其他無效資料類型(例如,無效標準類型)辨識出IEEE不精確異常,則可針對其他無效資料類型辨識出規格異常。其他變化係可能的。
儘管提供特定值及格式作為源資料類型及目標資料類型之實例,但可使用額外、更少及/或其他值及/或格式。
在執行向量浮點轉換至神經網路處理指令之一個實施例時,將第二運算元之二進位浮點元素捨入至目標資料類型數字之精確度。將結果轉換至目標資料類型且置於第一運算元位置之對應元素中。根據本發明之一態樣,用於捨入之捨入模式係基於目標資料類型之機器特定資料類型。因此,在一個實例中,捨入模式為經指派至神經網路處理資料類型1之模式,此係由於此為經指定用於指令轉換之機器特定資料類型。若選擇另一資料類型(例如,NNP資料類型2或另一資料類型),則捨入模式為經指派至彼其他資料類型之捨入模式。
在一次執行指令之一個實施例時,條件碼保持不變。可能的IEEE異常包括無效操作、溢位及不精確。
下文指示向量浮點轉換至神經網路處理之實例結果:
| 運算元元素 (a) | 無效操作遮罩 (FPC 0.0) | 溢位遮罩 (FPC 0.2) | 結果 |
| -Nmax ≤ v < -Nmin | - | - | T(g) |
| -Nmin ≤ v ≤ -Dmin | - | - | T(v) |
| -0 | - | - | T(-0) |
| +0 | - | - | T(+0) |
| Dmin ≤ v ≤ Nmin | - | - | T(v) |
| Nmin < v ≤ Nmax | - | - | T(g) |
| +∞ | - | 0 | T(±NINF), SFo←1 |
| +∞ | - | 1 | PIV(3) |
| +NaN | 0 | - | T(±NINF), SFi←1 |
| +NaN | 1 | - | PIV(1) |
| 其中: | |||
| - | 結果並不取決於此條件或遮罩位元。 | ||
| Dmin | 呈源格式之最小(在量值上)可表示次正常數。 | ||
| Nmax | 呈源格式之最大(在量值上)可表示次正常數。 | ||
| Nmin | 呈源格式之最小(在量值上)可表示正常數。 | ||
| PIV(h) | 向量處理異常之程式中斷,其中VXC (向量異常碼)含有元素索引及十六進位中h之VIC (向量索引)。 | ||
| v | 精確中間浮點值,其為源值(a)。 | ||
| g | 精確度捨入值。在將精確中間值(v)捨入至目標精確度但假定無界指數範圍時得出的值。所使用之捨入模式為就近捨入,若與兩邊的數距離相等,則向遠離0的方向捨入。 | ||
| SFi | IEEE無效操作旗標,FPC (浮點控制暫存器)1.0。 | ||
| SFo | IEEE溢位旗標,FPC 1.2。 | ||
| T(x) | 值x經轉換至目標格式且置於目標運算元元素位置處。 |
根據本發明之一或多個態樣,使用以上轉換指令中之一或多者,以將資料以例如針對彼處理器/機器模型最佳化之格式提供至選擇機器模型之處理器,使得彼機器模型之處理器可使用彼資料來執行功能。彼機器模型之處理器提供彼資料類型之輸出,該資料類型可接著使用以上轉換指令中之一或多者轉換至標準資料類型或其他資料類型以供程式及/或其他處理器使用。
在一個實例中,資料係由例如通用處理器自標準資料類型(例如,二進位浮點格式)轉換(且可捨入)至特定機器模型之選擇處理器(例如,專用處理器)的機器特定資料類型(例如,NNP資料類型1、NNP資料類型2)。選擇處理器使用經轉換資料來執行一或多個功能。當一或多個功能之執行完成時,呈例如機器特定格式之經轉換資料由例如通用處理器轉換回至標準格式,以供例如通用處理器、其他處理器及/或其他處理使用。
作為一個實例,選擇處理器為共處理器,諸如用以執行例如張量計算及/或其他操作之神經網路處理器(例如,神經網路處理器31),且作為實例,經由例如指令(諸如神經網路處理輔助指令)將經轉換至NNP資料類型1格式或NNP資料類型2之資料提供至選擇處理器,其實例描述於下文。
參考圖6A描述神經網路處理輔助指令之一個實例。在一個實例中,指令在通用處理器(例如,處理器13)上起始且由指令指定之功能取決於功能而在通用處理器及/或專用處理器(例如,神經網路處理器31)上執行。指令接著在通用處理器上完成。在其他實例中,指令在一或多個通用處理器或一或多個專用處理器上起始、執行及完成。其他變化係可能的。在本文中之描述中,指示特定位置、特定欄位及/或特定欄位大小(例如,特定位元組及/或位元)。然而,可提供其他位置、欄位及/或大小。此外,儘管可指定將位元設定為例如一或零之特定值,但此僅為一實例。在其他實例中,若設定,則可將位元設定為不同值,諸如相反值或另一值。許多變化係可能的。
在一個實例中,參考圖6A,神經網路處理輔助指令600具有以擴充操作碼(作業碼)指示暫存器與暫存器操作之RRE格式。如圖6A中所展示,在一個實例中,神經網路處理輔助指令600包括指示神經網路處理輔助操作之操作碼(作業碼)欄位602 (例如,位元0至15)。在一個實例中,指令之位元16至31經保留且將含有零。
在一個實例中,指令使用由該指令隱含地指定之複數個通用暫存器。舉例而言,神經網路處理輔助指令600使用暗示暫存器,亦即通用暫存器0及通用暫存器1,其實例分別參考圖6B及圖6D進行描述。
參考圖6B,在一個實例中,通用暫存器0包括功能碼欄位及可在指令完成後更新之狀態欄位。作為一實例,通用暫存器0包括回應碼欄位610 (例如,位元0至15)、異常旗標欄位612 (例如,位元24至31)及功能碼欄位614 (例如,位元56至63)。此外,在一個實例中,通用暫存器0之位元16至23及32至55經保留且將含有零。一或多個欄位供由指令執行之特定功能使用。在一個實例中,並非所有欄位皆由所有功能使用。在下文描述欄位中之每一者:
回應碼(RC) 610:此欄位(例如,位元位置0至15)含有回應碼。當神經網路處理輔助指令之執行以例如一之條件碼完成時,儲存回應碼。當遇到無效輸入條件時,將非零值儲存至回應碼欄位,其指示在執行期間辨識出的無效輸入條件之原因,且設定經選擇條件碼,例如1。在一個實例中,如下定義儲存至回應碼欄位之程式碼:
回應碼
含義
0001 模型不支援如由參數區塊版本號碼指定之參數區塊格式。
0002 機器上未定義或安裝指定功能。
0010 不支援指定張量資料佈局格式。
0011 不支援指定張量資料類型。
0012 指定單一張量維度大於最大維度索引大小。
0013 指定張量之大小大於最大張量大小。
0014 指定張量位址未在4K位元組邊界上對準。
0015 功能特定保存區域位址未在4K位元組邊界上對準。
F000-FFFF功能特定回應碼。針對某些功能定義此等回應碼。
異常旗標(EF) 612:此欄位(例如,位元位置24至31)包括異常旗標。若在指令執行期間偵測到異常條件,則對應異常旗標控制(例如,位元)將被設定為例如一;否則,控制保持不變。在第一次調用指令之前,將異常旗標欄位初始化為零。所保留之旗標在指令執行期間不變。在一個實例中,如下定義儲存至異常旗標欄位之旗標:
EF (
位元
)
含義
0 範圍違規。當在輸入張量中偵測到非數值或非數值經儲存至輸出張量時,設定此旗標。此旗標例如僅在該指令以例如0之條件碼完成時係有效的。
1-7 保留。
功能碼(FC) 614:此欄位(例如,位元位置56至63)包括功能碼。為神經網路處理輔助指令指派之功能碼的實例描繪於圖6C中。未指派所有其他功能碼。若指定未指派或未安裝之功能碼,則設定例如0002 hex之回應碼及例如1之選擇條件碼。此欄位在執行期間不會被修改。
如所指示,除了通用暫存器0之外,神經網路處理輔助指令亦使用通用暫存器1,其實例描繪於圖6D中。作為實例,24位元定址模式中之位元40至63、31位元定址模式中之位元33至63或64位元定址模式中的位元0至63包括參數區塊位址620。舉例而言,通用暫存器1之內容指定儲存器中之參數區塊的最左位元組之邏輯位址。參數區塊待指明於雙字邊界上;否則,辨識出規格異常。對於所有功能,通用暫存器1之內容不會被修改。
在存取暫存器模式中,作為一實例,存取暫存器1指定含有參數區塊、輸入張量、輸出張量及功能特定保存區域之位址空間。
在一個實例中,取決於由待執行之指令指定的功能,參數區塊可具有不同格式。舉例而言,查詢功能具有一個格式之參數區塊,且指令之其他功能具有另一格式之參數區塊。在另一實例中,所有功能皆使用相同參數區塊格式。其他變化亦係可能的。
作為實例,參數區塊及/或參數區塊中之資訊儲存於記憶體、硬體暫存器及/或記憶體及/或暫存器之組合中。其他實例亦係可能的。
參考圖6E描述由諸如NNPA查詢可用功能(QAF)操作之查詢功能使用的參數區塊之一個實例。如所展示,在一個實例中,NNPA查詢可用功能參數區塊630包括例如:
已安裝功能向量632:參數區塊之此欄位(例如,位元組0至31)包括已安裝功能向量。在一個實例中,已安裝功能向量之位元0至255分別對應於神經網路處理輔助指令之功能碼0至255。當位元為例如一時,安裝對應功能;否則,不安裝功能。
已安裝參數區塊格式向量634:參數區塊之此欄位(例如,位元組32至47)包括已安裝參數區塊格式向量。在一個實例中,已安裝參數區塊格式向量之位元0至127對應於用於神經網路處理輔助指令之非查詢功能的參數區塊格式0至127。當位元為例如一時,安裝對應參數區塊格式;否則,不安裝參數區塊格式。
已安裝資料類型636:參數區塊之此欄位(例如,位元組48至49)包括已安裝資料類型向量。在一個實例中,已安裝資料類型向量之位元0至15對應於正安裝之資料類型。當位元為例如一時,安裝對應資料類型;否則,不安裝資料類型。實例資料類型包括(額外、更少及/或其他資料類型係可能的):
位元
資料類型
0 NNP資料類型1
1 NNP資料類型2
2-15 保留
已安裝資料佈局格式638:參數區塊之此欄位(例如,位元組52至55)包括已安裝資料佈局格式向量。在一個實例中,已安裝資料佈局格式向量之位元0至31對應於正安裝之資料佈局格式。當位元為例如一時,安裝對應資料佈局格式;否則,不安裝資料佈局格式。實例資料佈局格式包括(額外、更少及/或其他資料佈局格式係可能的):
位元
資料佈局格式
0 4D特徵張量
1 4D核心張量
2-31 保留
最大維度索引大小640:參數區塊之此欄位(例如,位元組60至63)包括例如32位元無正負號二進位整數,其指定任何指定張量之指定維度索引大小中的元素之最大數目。在另一實例中,最大維度索引大小指定任何指定張量之指定維度索引大小中的位元組之最大數目。其他實例亦係可能的。
最大張量大小642:參數區塊之此欄位(例如,位元組64至71)包括例如32位元無正負號二進位整數,其指定包括張量格式所需之任何填補位元組的任何指定張量中之位元組的最大數目。在另一實例中,最大張量大小指定包括張量格式所需之任何填補的任何指定張量中之總元素的最大數目。其他實例亦係可能的。
已安裝NNP資料類型1轉換向量644:參數區塊之此欄位(例如,位元組72至73)包括已安裝NNP資料類型1轉換向量。在一個實例中,已安裝NNP資料類型1轉換向量之位元0至15對應於自/至NNP資料類型1格式之已安裝資料類型轉換。當位元為一時,安裝對應轉換;否則,不安裝轉換。可指定額外、更少及/或其他轉換。
位元 資料類型
0 保留
1 BFP微小格式
2 BFP短格式
3-15 保留
在一或多個實施例中,針對所支援之每一機器特定資料類型將已安裝NNP資料類型轉換向量添加至查詢參數區塊。舉例而言,在一個實例中,針對NNP資料類型2提供已安裝NNP資料類型2轉換向量。其他變化係可能的。
儘管參考圖6E描述用於查詢功能之參數區塊的一個實例,但可使用用於查詢功能之參數區塊的其他格式,包括NNPA查詢可用功能操作。在一個實例中,格式可取決於待執行之查詢功能之類型。此外,參數區塊及/或參數區塊之每一欄位可包括額外、更少及/或其他資訊。
除了用於查詢功能之參數區塊之外,在一個實例中,亦存在用於非查詢功能(諸如神經網路處理輔助指令之非查詢功能)之參數區塊格式。參考圖6F描述由諸如神經網路處理輔助指令之非查詢功能的非查詢功能使用之參數區塊的一個實例。
如所展示,在一個實例中,由例如神經網路處理輔助指令之非查詢功能採用的參數區塊650包括例如:
參數區塊版本號碼652:參數區塊之此欄位(例如,位元組0至1)指定參數區塊之版本及大小。在一個實例中,參數區塊版本號碼之位元0至8經保留且將含有零,且參數區塊版本號碼之位元9至15含有指定參數區塊之格式的無正負號二進位整數。查詢功能提供指示可用之參數區塊格式的機制。當模型不支援指定參數區塊之大小或格式時,例如0001 hex之回應碼儲存於通用暫存器0中,且指令藉由設定條件碼(例如,條件碼1)而完成。參數區塊版本號碼係由程式指定且在指令執行期間不會被修改。
模型版本號碼654:參數區塊之此欄位(例如,位元組2)係識別執行指令(例如,特定非查詢功能)之模型的無正負號二進位整數。當接續旗標(下文所描述)為一時,模型版本號碼可為操作之輸入,以便解譯參數區塊之接續狀態緩衝區欄位(下文所描述)的內容,從而恢復操作。
接續旗標656:參數區塊之此欄位(例如,位元63)當例如為一時指示操作部分地完成且接續狀態緩衝區之內容可用以恢復操作。程式將接續旗標初始化為零且在出於恢復操作之目的而重新執行指令的情況下不修改接續旗標;否則,結果不可預測。
若在操作開始時設定接續旗標且參數區塊之內容自初始調用起已改變,則結果不可預測。
功能特定保存區域位址658:參數區塊之此欄位(例如,位元組56至63)包括功能特定保存區域之邏輯位址。在一個實例中,功能特定保存區域位址待在4K位元組邊界上對準;否則,例如0015 hex之回應碼設定於通用暫存器0中且指令以例如1之條件碼完成。位址以當前定址模式為準。功能特定保存區域之大小取決於功能碼。
當整個功能特定保存區域與程式事件記錄(PER)儲存區域標識重疊時,在適用時針對功能特定保存區域而辨識PER儲存更改事件。當功能特定保存區域之僅一部分與PER儲存區域標識重疊時,會發生以下情況中之哪一種為模型相依的:
* 在適用時針對整個功能特定保存區域而辨識PER儲存更改事件。
* 在適用時針對所儲存之功能特定保存區域的部分而辨識PER儲存更改事件。
當整個參數區塊與PER儲存區域標識重疊時,在適用時針對參數區塊而辨識PER儲存更改事件。當參數區塊之僅一部分與PER儲存區域標識重疊時,會發生以下哪一種情況為模型相依的:
* 在適用時針對整個參數區塊而辨識PER儲存更改事件。
* 在適用時針對所儲存之參數區塊的部分而辨識PER儲存更改事件。
在適用時針對參數區塊而辨識PER零位址偵測事件。在一個實例中,零位址偵測不適用於張量位址或功能特定保存區域位址。
輸出張量描述符(例如,1至2) 660/輸入張量描述符(例如,1至3) 665:參考圖6G描述張量描述符之一個實例。在一個實例中,張量描述符660、665包括:
資料佈局格式682:張量描述符之此欄位(例如,位元組0)指定資料佈局格式。舉例而言,有效資料佈局格式包括(額外、更少及/或其他資料佈局格式係可能的):
格式
描述
對準
(
位元組
)
0 4D特徵張量 4096
1 4D核心張量 4096
2-255 保留 --
若指定不支援的或保留的資料佈局格式,則例如0010 hex之回應碼儲存於通用暫存器0中,且指令藉由設定例如1之條件碼而完成。
資料類型684:此欄位(例如,位元組1)指定張量之資料類型。下文描述所支援之資料類型的實例(額外、更少及/或其他資料類型係可能的):
值
資料類型
資料大小
(
位元
)
0 NNP資料類型1 16
1 NNP資料類型2 16
2-255 保留 --
若指定不支援的或保留的資料類型,則例如0011 hex之回應碼儲存於通用暫存器0中,且指令藉由設定例如1之條件碼而完成。
維度1至4索引大小686:總體而言,維度索引大小一至四指定4D張量之形狀。每一維度索引大小將大於零且小於或等於最大維度索引大小(640,圖6E);否則,例如0012 hex之回應碼儲存於通用暫存器0中且指令藉由設定例如1之條件碼而完成。總張量大小將小於或等於最大張量大小(642,圖6E);否則,例如0013 hex之回應碼儲存於通用暫存器0中且指令藉由設定例如1之條件碼而完成。
在一個實例中,為了判定具有NNPA資料類型1之元素的4D特徵張量之數目(亦即,總張量大小),使用以下公式:維度索引4*維度索引3*ceil (維度索引2/32)*32*ceil (維度索引1/64)*64*2。
張量位址688:張量描述符之此欄位(例如,位元組24至31)包括張量之最左位元組的邏輯位址。位址以當前定址模式為準。
若位址在相關聯之資料佈局格式的邊界上未對準,則例如0014 hex之回應碼儲存於通用暫存器0中且指令藉由設定例如1之條件碼而完成。
在存取暫存器模式中,存取暫存器1指定儲存器中含有所有作用中輸入及輸出張量之位址空間。
返回至圖6F,在一個實例中,參數區塊650進一步包括可由特定功能使用之功能特定參數1至5 (670)。此外,在一個實例中,參數區塊650包括接續狀態緩衝區欄位675,該欄位包括在此指令之操作待恢復的情況下待使用之資料(或資料之位置)。
作為操作之輸入,參數區塊之保留欄位應含有零。當操作結束時,保留欄位可儲存為零或保持不變。
儘管參考圖6F描述用於非查詢功能之參數區塊的一個實例,但可使用用於非查詢功能(包括神經網路處理輔助指令之非查詢功能)之參數區塊的其他格式。在一個實例中,格式可取決於待執行之功能之類型。此外,儘管參考圖6G描述張量描述符之一個實例,但亦可使用其他格式。此外,可使用用於輸入及輸出張量之不同格式。其他變化係可能的。
下文描述關於由神經網路處理輔助指令之一個實施例支援之一或多個功能的其他細節:
功能碼
0
:
NNPA-QAF (
查詢可用功能
)
神經網路處理輔助(NNPA)查詢功能提供用以指示諸如以下各者之經選擇資訊的機制:已安裝功能之可用性;已安裝參數區塊格式;已安裝資料類型;已安裝資料佈局格式;最大維度索引大小及最大張量大小。獲得資訊且將其置於諸如參數區塊(例如,參數區塊630)之經選擇位置中。當操作結束時,參數區塊之保留欄位可儲存為零或可保持不變。
在執行查詢功能之一個實施例時,諸如通用處理器13之處理器獲得與經選擇處理器之特定模型相關的資訊,諸如神經網路處理器(諸如神經網路處理器31)之特定模型。將所獲得資訊置於參數區塊(例如,參數區塊630)或可由一或多個應用程式存取及/或供一或多個應用程式使用之其他結構中,該一或多個應用程式可在進一步處理中使用此資訊。在一個實例中,參數區塊及/或參數區塊之資訊維持於記憶體中。在其他實施例中,參數區塊及/或資訊可維持在一或多個硬體暫存器中。作為另一實例,查詢功能可為由作業系統執行之特權操作,其使應用程式設計介面可用以使此資訊可用於應用程式或非特權程式。在又另一實例中,查詢功能係由諸如神經網路處理器31之專用處理器執行。其他變化係可能的。
資訊係例如藉由執行查詢功能之處理器的韌體獲得。韌體知曉特定處理器(例如,神經網路處理器)之特定模型的屬性。此資訊可儲存於例如控制區塊、暫存器及/或記憶體中及/或以其他方式可由執行查詢功能之處理器存取。
舉例而言,所獲得資訊包括關於特定處理器之至少一或多個資料屬性的模型相依詳細資訊,包括例如特定處理器之選定模型的一或多個已安裝或支援的資料類型、一或多個已安裝或支援的資料佈局格式及/或一或多個已安裝或支援的資料大小。此資訊為模型相依的,此係因為其他模型(例如,先前模型及/或未來模型)可能不支援相同資料屬性,諸如相同資料類型、資料大小及/或資料佈局格式。當查詢功能(例如,NNPA-QAF功能)之執行完成時,作為一實例,設定條件碼0。在一個實例中,條件碼1、2及3不適用於查詢功能。下文描述與所獲得資訊相關之其他資訊。
在一個實例中,查詢功能獲得安裝於模型相依處理器上之資料類型的指示,且藉由例如設定參數區塊630之已安裝資料類型欄位636中之一或多個位元而將指示置於參數區塊中。可安裝之實例資料類型為NNP資料類型1資料類型及NNP資料類型2資料類型,其實例描述於上文。可安裝額外、更少及/或其他資料類型。待支援之資料類型可在查詢參數區塊中(例如,在已安裝資料類型欄位636中)具有一或多個經指派位元。舉例而言,在已安裝資料類型欄位中指示由特定處理器支援之機器特定或非標準資料類型,但不指示標準資料類型。在其他實施例中,亦指示一或多個標準資料類型。其他變化係可能的。
在一個特定實例中,針對NNP資料類型1資料類型保留已安裝資料類型欄位636之位元0,且當將位元設定為例如1時,其指示處理器支援NNP資料類型1;且針對NNP資料類型2保留位元1,且當將位元設定為例如1時,其指示處理器支援NNP資料類型2。作為一實例,已安裝資料類型之位元向量經組態以表示多達16個資料類型,其中向每一資料類型指派一位元。然而,在其他實施例中,位元向量可支援更多或更少資料類型。此外,可組態向量,其中向一資料類型指派一或多個位元。許多實例係可能的,及/或可在向量中支援及/或指示額外、更少及/或其他資料類型。
此外,在一個實例中,查詢功能獲得已安裝資料佈局格式(另一資料屬性)之指示,且藉由例如設定已安裝資料佈局格式欄位638中之一或多個位元而將資訊置於參數區塊中。舉例而言,實例資料佈局格式包括4D特徵張量佈局及4D核心張量佈局。在一個實例中,本文中所指示之功能使用4D特徵張量佈局,且在一個實例中,卷積功能使用4D核心張量佈局。此等資料佈局格式以提高執行神經網路處理輔助指令之功能之處理效率的方式配置儲存器中用於張量之資料。舉例而言,為了高效地操作,神經網路處理輔助指令使用以特定資料佈局格式提供之輸入張量。儘管提供實例佈局,但可針對本文中所描述之功能及/或其他功能提供額外、更少及/或其他佈局。
特定處理器模型之佈局的使用或可用性由已安裝資料佈局格式(例如,參數區塊630之欄位638)之向量提供。舉例而言,該向量為允許CPU向應用程式傳達支援哪些佈局之已安裝資料佈局格式之位元向量。舉例而言,針對4D特徵張量佈局保留位元0,且當將位元設定為例如1時,其指示處理器支援4D特徵張量佈局;且針對4D核心張量佈局保留位元1,且當將位元設定為例如1時,其指示處理器支援4D核心張量佈局。在一個實例中,已安裝資料佈局格式之位元向量經組態以表示至多16個資料佈局,其中向每一資料佈局指派一位元。然而,在其他實施例中,位元向量可支援更多或更少資料佈局。此外,可組態向量,其中向一資料佈局指派一或多個位元。許多實例係可能的。下文描述關於4D特徵張量佈局及4D核心張量佈局之其他細節。同樣,現在或在未來可使用其他佈局以最佳化效能。
在一個實例中,神經網路處理輔助指令利用4D張量,亦即具有4個維度之張量,進行操作。此等4D張量係例如以列優先方式自本文中所描述之泛型輸入張量獲得,亦即,當以遞增的記憶體位址次序列舉張量元素時,稱為E1之內部維度將首先經由以0開始至E1索引大小1之E1索引大小值遞增,之後將增加E2維度之索引且重複E1維度之步進。最後增加稱為E4維度之外部維度的索引。
具有較低數目個維度之張量(例如,3D或1D張量)將表示為4D張量,其中該4D張量之一或多個維度超過設定為1之原始張量維度。
本文中描述將具有維度E4、E3、E2、E1之列優先泛型4D張量變換成4D特徵張量佈局(在本文中亦被稱作NNPA資料佈局格式0 4D特徵張量):
舉例而言,所得張量可表示為例如64元素向量之4D張量或具有如下維度之5D張量:
泛型張量之元素[e4][e3][e2][e1]可映射至所得5D張量之以下元素:
,其中
為向下取整函數且mod為模數。(換言之,元素(E3 * e2_limit * e1_limit * e4x) + (e2_limit * e3x * 64) + (e2x * 64) + (
* e2_limit * E3 * 64) + (e1x mod 64),其中e2_limit =
* 32且e1_limit =
* 64。)
所得張量可大於泛型張量。在泛型張量中不具有對應元素之所得張量之元素稱為填補元素。
考慮64元素向量之NNPA資料佈局格式0 4D特徵張量的元素[fe4][fe1][fe3][fe2][fe0]或其等效表示為元素之5D張量。此元素為填補元素或其在泛型4D張量中之對應元素,其中維度E4、E3、E2、E1可藉由以下公式判定:
∙ 若fe2 ≥ E2,則此為E2 (或頁面)填補元素
∙ 否則,若fe1*64+fe0 ≥ E1,則此為E1 (或列)填補元素
∙ 否則,泛型4D張量中之對應元素為:
[fe4][fe3][fe2][fe1*64+fe0]
對於基於卷積神經網路之人工智慧模型,特徵張量之4個維度的含義通常可映射至:
∙ E4:N-小批次之大小
∙ E3:H-3D張量/影像之高度
∙ E2:W-3D張量/影像之寬度
∙ E1:C-3D張量之通道或類別
對於基於機器學習或遞回神經網路之人工智慧模型,4D特徵張量之4個維度的含義通常可映射至:
∙ E4:T-時間步驟或模型之數目
∙ E3:保留,通常設定為1
∙ E2:N
mb-小批次大小
∙ E1:L-特徵
NNPA資料佈局格式0提供例如具有4k位元組資料區塊(頁面)之二維資料局部性以及用於所產生張量之外部維度的4k位元組區塊資料對準。
對於輸入張量,填補元素位元組被忽略,且對於輸出張量,填補元素位元組不可預測。填補位元組上之PER儲存更改不可預測。
具有維度E1、E2、E3及E4之4D特徵張量佈局的輸入資料佈局之一個實例展示於圖7A至圖7C中,且4D特徵張量佈局之實例輸出描繪於圖8A至圖8C中。參考圖7A,展示3D張量700,其具有維度E1、E2及E3。在一個實例中,每一3D張量包括複數個2D張量702。每一2D張量702中之數字描述該張量之元素中之每一者將在記憶體中之位置的記憶體偏移。輸入用以將原始張量(例如,圖7A至圖7C之原始4D張量)之資料佈置於記憶體中,如對應於圖7A至圖7C之圖8A至圖8C中所展示。
在圖8A中,作為一實例,記憶體800之單元(例如,記憶體頁面)包括預選數目(例如,32)個列802,其中之每一者由例如e2_page_idx識別;且每一列具有預選數目(例如,64)個元素804,其各自由例如e1_page_idx識別。若一列不包括預選數目個元素,則其被填補806,此被稱作列或E1填補;且若記憶體單元不具有預選數目個列,則其被填補808,此被稱作頁面或E2填補。作為實例,列填補為例如預先指定值,諸如零、空格或其他值等,且頁面填補為例如不可預測資料、現有值、零、任何值等。
在一個實例中,列之輸出元素係基於該列之對應輸入在E1方向上之元素位置而提供於記憶體中(例如,頁面中)。舉例而言,參考圖7A,所展示之三個矩陣的元素位置0、1及2 (例如,在每一矩陣之同一位置處的元素位置)展示於圖8A之頁面0的列0中等。在此實例中,4D張量較小,且表示4D張量之每一2D張量的所有元素皆適配於一個頁面中。然而,此僅為一個實例。2D張量可包括一或多個頁面。若2D張量係基於4D張量之重新格式化而建立,則2D張量之頁面數目係基於4D張量之大小。在一個實例中,一或多個向上取整函數用以判定2D張量中之列數目及每一列中之元素數目,其將指示待使用多少頁面。其他變化係可能的。
除了4D特徵張量佈局之外,在一個實例中,神經網路處理器亦可支援4D核心張量佈局,其重新配置4D張量之元素以在執行諸如卷積之某些人工智慧(例如,神經網路處理輔助)操作時減少記憶體存取及資料收集步驟之數目。作為一實例,將具有維度E4、E3、E2、E1之列優先泛型4D張量變換成NNPA資料佈局格式1 4D核心張量(4D核心張量),如本文中所描述:
所得張量可表示為例如64元素向量之4D張量或具有如下維度之5D張量:
泛型張量之元素[e4][e3][e2[e1]可映射至所得5D張量之以下元素:
,其中
係指向下取整函數且mod為模數。換言之:元素(
* E4 * E3 * e2_limit * 64) + (e4x * E3 * e2_limit * 64) + (e3x * e2_limit * 64) + (e2x * 64) + (e1x mod 64),其中e2_limit =
* 32且e1_limit =
* 64。
所得張量可大於泛型張量。在泛型張量中不具有對應元素之所得張量之元素稱為填補元素。
考慮64元素向量之NNPA資料佈局格式1 4D特徵張量的元素[fe1][fe4][fe3][fe2][fe0]或其等效表示為元素之5D張量。此元素為填補元素或其在泛型4D張量中之對應元素,其中維度E4、E3、E2、E1可藉由以下公式判定:
∙ 若fe2 ≥ E2,則此為E2 (或頁面)填補元素
∙ 否則,若fe1*64+fe0 ≥ E1,則此為E1 (或列)填補元素
∙ 否則,泛型4D張量中之對應元素為
[fe4][fe3][fe2][fe1*64+fe0]
對於基於卷積神經網路之人工智慧模型,核心張量之4個維度的含義通常可映射至:
∙ E4:H-3D張量/影像之高度
∙ E3:W-3D張量/影像之寬度
∙ E2:C-3D張量之通道數目
∙ E1:K-核心數目
NNPA資料佈局格式1提供例如4k位元組資料區塊(頁面)內之二維核心平行度以及用於產生張量之外部維度的4k位元組區塊資料對準,以實現高效處理。
對於輸入張量,忽略填補位元組。填補位元組上之PER儲存更改不可預測。
同樣,儘管實例資料佈局格式包括4D特徵張量佈局及4D核心張量佈局,但處理器(例如,神經網路處理器31)可支援其他資料佈局格式。獲得所支援資料佈局之指示且藉由設定例如欄位638中之一或多個位元而將該指示置於查詢參數區塊中。
根據本發明之一或多個態樣,查詢參數區塊亦包括其他資料屬性資訊,其包括例如資料之所支援大小資訊。諸如神經網路處理器之處理器通常具有基於內部緩衝區大小、處理單元、資料匯流排結構、韌體限制等之限制,該等限制可限制張量維度的最大大小及/或張量之總體大小。因此,查詢功能提供欄位以將此等限制傳達至應用程式。舉例而言,基於執行查詢功能,處理器獲得各種資料大小,諸如最大維度索引大小(例如,65,536個元素)及最大張量大小(例如,8 GB),且將此資訊分別包括於參數區塊(例如,參數區塊630)之欄位640及642中。額外、更少及/或其他大小資訊亦可由處理器(例如,神經網路處理器31)支援,且因此經獲得且置於參數區塊中,例如欄位640、642及/或其他欄位中。在其他實施例中,限制可更小或更大,及/或大小可為其他單位,諸如位元組而非元素、元素而非位元組等。此外,其他實施例允許每一維度具有不同最大大小,而非所有維度具有相同最大值。許多變化係可能的。
根據本發明之一或多個態樣,提供查詢功能,該查詢功能傳達與經選擇處理器(例如,神經網路處理器31)之特定模型相關的詳細資訊。舉例而言,詳細資訊包括與特定處理器相關之模型相依資訊。(處理器亦可支援標準資料屬性,諸如標準資料類型、標準資料佈局等,該等屬性為暗示的且未必由查詢功能呈現;但在其他實施例中,查詢功能可指示資料屬性之所有或各種經選擇子集等。)儘管提供實例資訊,但在其他實施例中,可提供其他資訊。針對處理器之不同模型及/或不同處理器可能不同的所獲得資訊用以執行人工智慧及/或其他處理。人工智慧及/或其他處理可使用例如神經網路處理輔助指令之一或多個非查詢功能。藉由一或多次執行神經網路處理輔助指令及指定非查詢特定功能來執行用於處理中之特定非查詢功能。
如由查詢功能指示,由神經網路處理輔助指令支援之實例非查詢功能包括NNPA-ADD (加法)、NNPA-SUB (減法)、NNPA-MUL (乘法)、NNPA-DIV (除法)、NNPA-MIN (最小)、NNPA-MAX (最大)、NNPA-LOG (對數)、NNPA-EXP (指數)、NNPA-RELU (整流線性單元)、NNPA-TANH、NNPA-SIGMOID、NNPA-SOFTMAX、NNPA-BATCH-NORM (批次正規化)、NNPA-MAXPOOL2D、NNPA-AVGPOOL2D、NNPA-LSTMACT(長短期記憶啟動)、NNPA-GRUACT (選通遞回單元啟動)、NNPA-CONVOLUTION、NNPA-MATMUL-OP (矩陣乘法運算)及NNPA-MATMUL-OP-BCAST23 (矩陣乘法運算廣播23)。亦可支援額外、更少及/或其他功能。
功能中之一或多者由諸如神經網路處理器31之處理器執行。舉例而言,指定待執行之特定功能的神經網路處理輔助指令由通用處理器(例如,處理器13)起始,且若由指令指定之功能為非查詢功能,則資訊由通用處理器提供至例如神經網路處理器(例如,神經網路處理器31)以允許神經網路處理器執行功能。舉例而言,資訊包括待執行之功能之指示及/或該功能之輸入資料(例如,輸入張量資料)之一或多個位址。在一個實例中,輸入資料已自例如諸如二進位浮點格式之標準格式轉換至非標準格式,諸如由例如神經網路處理器31使用之機器特定格式(例如,NNP資料類型1或NNP資料類型2)。該功能使用輸入資料執行且以機器特定格式產生輸出資料(例如,輸出張量資料)。接著將彼資料(或資料之位置)提供至另一處理器(例如,通用處理器13)以用於轉換回至標準格式。呈標準格式之輸出資料可接著用於其他處理中。在其他實例中,指令可在一或多個通用處理器或一或多個專用處理器上起始、執行及完成。其他變化係可能的。
下文描述關於由神經網路處理指令支援且由例如神經網路處理器31執行之實例非查詢功能的其他細節(在其他實施例中,可支援額外、更少及/或其他功能):
功能碼
16
:
NNPA-ADD (
加法
)
當指定NNPA-ADD功能時,將由張量描述符1描述之輸入張量1的每一元素加至由張量描述符2描述之輸入張量2的對應元素,且將所得總和置於由輸出張量描述符描述之輸出張量的對應元素中。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1、輸入張量2及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識出一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符3、功能特定參數1至5及功能特定保存區域位址欄位。
儘管提供NPPA-ADD功能作為一個實例,但可指定如本文所描述之其他及/或額外功能。
對於神經網路處理輔助指令,在一個實施例中,若輸出張量與任何輸入張量或參數區塊重疊,則結果不可預測。
作為一實例,當嘗試執行神經網路處理輔助指令且未在例如雙字邊界上指明參數區塊時,辨識出規格異常。
當嘗試執行神經網路處理輔助指令且存在例如張量描述符不一致時,辨識出一般運算元資料異常。
神經網路處理輔助指令之所得條件碼包括例如:0-正常完成;1-設定回應碼;2--;3-CPU判定之所處理資料量。
在一個實施例中,神經網路處理輔助指令之執行優先順序包括例如:
1.-7. 優先順序與一般狀況之程式中斷條件之優先順序相同的異常。
8.A 歸因於指定之未指派或未安裝功能碼的條件碼1。
8.B 歸因於未在雙字邊界上指明參數區塊之規格異常。
9. 存取參數區塊之存取異常。
10. 歸因於模型不支援參數區塊之指定格式的條件碼1。
11.A 歸因於不支援指定張量資料佈局之條件碼1。
11.B 歸因於張量描述符之間的不同資料佈局之一般運算元資料異常。
12.A 歸因於除包括於以上條項8.A、10及11.A以及以下12.B.1中之彼等條件以外的條件之條件碼1。
12.B.1 歸因於NNPA-RELU及NNPA-CONVOLUTION之無效輸出張量資料類型的條件碼1。
12.B.2 NNPA-RELU功能特定參數1及NNPA-CONVOLUTION功能特定參數4之無效值的一般運算元資料異常。
13.A 存取輸出張量之存取異常。
13.B 存取輸入張量之存取異常。
13.C 存取功能特定保存區域之存取異常。
14. 條件碼0。
如本文中所描述,在一或多個態樣中,提供一種用於執行至/自機器特定資料類型之轉換的能力,其中特定機器特定資料類型具有經指派捨入模式,使得捨入模式並非可選的,從而促進轉換及處理。
在一個實例中,機器特定資料類型為經最佳化以供在特定硬體機器上執行之特定處理器使用的資料類型。舉例而言,機器特定資料類型可保持增強之準確度及/或使機器更易於實施。機器特定資料類型之實例為可由神經網路處理器之模型使用的NNP資料類型1資料類型及NNP資料類型2資料類型。作為一實例,神經網路處理輔助指令在經選擇機器特定資料類型(亦被稱作內部資料類型)上操作以表示輸入/輸出資料,從而提高效率。因此,輸入/輸出資料自標準格式(例如,IEEE 754二進位浮點等)轉換至機器上可用的經選擇機器特定格式(例如,NNP資料類型1、NNP資料類型2等)。機器特定資料類型可能因機器模型而異,以便針對新的及/或其他處理器架構進行最佳化,且因此,可存在複數個NNP資料類型(例如,NNP資料類型1至NNP資料類型x)及/或其他機器特定資料類型。
本發明之一或多個態樣與電腦技術密不可分且促進電腦內之處理,從而改良其效能。在一或多個態樣中,提供一種轉換操作,其促進資料轉換,包括執行捨入之轉換操作,從而改良系統效能且減少系統資源之使用。經轉換及/或經捨入資料、用以執行轉換操作之指令及/或使用資料之指令可用於許多技術領域,諸如電腦處理、醫療處理、工程、汽車技術、製造等。藉由在轉換操作之轉換及/或捨入方面提供最佳化,藉由例如減少執行時間來改良此等技術領域。
參考圖9A至圖9B描述促進計算環境內之處理的一或多個實施例之其他細節,此係因為該計算環境與本發明之一或多個態樣有關。
參考圖9A,獲得將資料自源資料類型轉換至目標資料類型之指令900。源資料類型係選自由指令支援之一或多個源資料類型902,且目標資料類型係選自由指令支援之一或多個目標資料類型904。基於源資料類型及目標資料類型中之一者之經選擇資料類型,進行供指令使用之捨入模式的判定906。捨入模式係基於經選擇資料類型隱含地設定908;該捨入模式經指派至經選擇資料類型910。執行自源資料類型至目標資料類型之資料轉換912。轉換包括使用基於經選擇資料類型隱含地設定之捨入模式來執行捨入操作914。執行轉換提供目標資料類型中之結果916。將結果寫入至選擇位置918。
藉由提供經指派至特定資料類型之隱含設定捨入模式,轉換程序得以簡化且可藉由限制所支援捨入模式來改良處理速度。其亦促進程式碼之編寫,該程式碼轉換資料以在諸如共處理器之選擇處理器上使用。此外,藉由提供可選的源資料類型及/或目標資料類型,可使用數目減少之轉換指令,從而節省操作碼空間且促進解碼指令及提供在加速器上執行之軟體。
在一個實例中,經選擇資料類型為使用指令指定之目標資料類型920。舉例而言,目標資料類型為使用指令指定之機器特定資料類型922。在一個實例中,機器特定資料類型為神經網路處理資料類型1資料類型924。作為一實例,經指派至神經網路處理資料類型1資料類型之捨入模式為例如就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入926。此外,在一個實例中,源資料類型為使用指令指定之標準資料類型928。
藉由提供經指派至諸如機器指定資料類型之特定資料類型的隱含設定捨入模式,轉換程序得以簡化且可藉由限制所支援捨入模式來改良處理速度。提高了效率,降低了複雜度,且增加了系統效能。轉換之效能得以改良,從而改良了系統效能及資料可用性。
在另一實例中,參考圖9B,經選擇資料類型為使用指令指定之源資料類型930。舉例而言,源資料類型為使用指令指定之機器特定資料類型932。在一個實例中,機器特定資料類型為神經網路處理資料類型1資料類型934。作為一實例,經指派至神經網路處理資料類型1資料類型之捨入模式為例如就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入936。此外,在一個實例中,目標資料類型為使用指令指定之標準資料類型938。
作為一實例,待轉換之資料包括源資料類型中之源資料940。源資料包括使用指令之一個欄位指定之一個暫存器中之資料與使用指令之另一欄位指定之另一暫存器中之其他資料的串連942。執行轉換包括例如基於捨入模式捨入源資料以提供經捨入資料944,及轉換經捨入資料以提供目標資料類型中之結果946。
作為另一實例,待轉換之資料包括使用指令獲得之源資料類型中之源資料950。執行轉換包括例如基於捨入模式捨入源資料以按目標資料類型數字之精確度提供經捨入資料952,及轉換經捨入資料以提供目標資料類型中之結果954。
其他變化及實施例係可能的。
本發明之態樣可由許多類型之計算環境使用。參考圖10描述併有及使用本發明之一或多個態樣的計算環境之另一實例。作為一實例,圖10之計算環境係基於由紐約阿蒙克市之國際商業機器公司(International Business Machines Corporation)供應的z/Architecture
®指令集架構。然而,z/Architecture指令集架構僅為一個實例架構。同樣,計算環境可基於其他架構,包括但不限於Intel
®x86架構、國際商業機器公司之其他架構及/或其他公司之架構。Intel為英特爾公司(Intel Corporation)或其子公司在美國及其他國家之商標或註冊商標。
參考圖10,在一個實例中,計算環境1000包括例如以例如通用計算裝置之形式展示的電腦系統1002。電腦系統1002可包括但不限於經由一或多個匯流排及/或其他連接而彼此耦接的一或多個通用處理器或處理單元1004 (例如,中央處理單元(CPU))、諸如神經網路處理器1005之至少一個專用處理器、記憶體1006 (作為實例,亦稱為系統記憶體、主記憶體、主儲存器、中央儲存器或儲存器)及一或多個輸入/輸出(I/O)介面1008。舉例而言,處理器1004、1005及記憶體1006經由一或多個匯流排1010耦接至I/O介面1008,且處理器1004、1005經由一或多個匯流排1011彼此耦接。
舉例而言,匯流排1011為記憶體或快取一致性匯流排,且匯流排1010表示例如若干類型之匯流排結構中之任何一或多者,包括使用多種匯流排架構中之任一者的記憶體匯流排或記憶體控制器、周邊匯流排、加速圖形埠及處理器或區域匯流排。藉助於實例而非限制,此類架構包括工業標準架構(ISA)、微通道架構(MCA)、增強型ISA (EISA)、視訊電子標準協會(VESA)區域匯流排及周邊組件互連(PCI)。
作為實例,一或多個專用處理器(例如,神經網路處理器)可與一或多個通用處理器分離但耦接至該一或多個通用處理器,及/或可嵌入於一或多個通用處理器內。許多變化係可能的。
舉例而言,記憶體1006可包括快取記憶體1012,諸如共用快取記憶體,該快取記憶體可經由例如一或多個匯流排1011耦接至處理器1004之本端快取記憶體1014及/或神經網路處理器1005。此外,記憶體1006可包括一或多個程式或應用程式1016及至少一個作業系統1018。實例作業系統包括由紐約阿蒙克市之國際商業機器公司供應之z/OS
®作業系統。亦可使用由國際商業機器公司及/或其他實體供應的其他作業系統。記憶體1006亦可包括一或多個電腦可讀程式指令1020,該一或多個電腦可讀程式指令可經組態以實行本發明之態樣之實施例的功能。
電腦系統1002可經由例如I/O介面1008與一或多個外部裝置1030通信,該一或多個外部裝置諸如使用者終端機、磁帶機、指標裝置、顯示器及一或多個資料儲存裝置1034等。資料儲存裝置1034可儲存一或多個程式1036、一或多個電腦可讀程式指令1038及/或資料等。電腦可讀程式指令可經組態以實行本發明之態樣之實施例的功能。
電腦系統1002亦可經由例如I/O介面1008與網路介面1032進行通信,該網路介面使得電腦系統1002能夠與諸如區域網路(LAN)、通用廣域網路(WAN)及/或公用網路(例如,網際網路)之一或多個網路進行通信,從而提供與其他計算裝置或系統之通信。
電腦系統1002可包括及/或耦接至抽取式/非抽取式、揮發性/非揮發性電腦系統儲存媒體。舉例而言,其可包括及/或耦接至非抽取式非揮發性磁性媒體(通常稱為「硬碟機」)、用於自抽取式非揮發性磁碟(例如,「軟碟」)讀取及寫入至抽取式非揮發性磁碟之磁碟機,及/或用於自諸如CD-ROM、DVD-ROM或其他光學媒體之抽取式非揮發性光碟讀取或寫入至抽取式非揮發性光碟之光碟機。應理解,可結合電腦系統1002使用其他硬體及/或軟體組件。實例包括但不限於:微碼或毫碼、裝置驅動程式、冗餘處理單元、外部磁碟機陣列、RAID系統、磁帶驅動機及資料存檔儲存系統等。
電腦系統1002可與眾多其他通用或專用計算系統環境或組態一起操作。可適合與電腦系統1002一起使用之熟知計算系統、環境及/或組態之實例包括但不限於:個人電腦(PC)系統、伺服器電腦系統、精簡型用戶端、複雜型用戶端、手持型或膝上型電腦裝置、多處理器系統、基於微處理器之系統、機上盒、可程式化消費型電子裝置、網路PC、小型電腦系統、大型電腦系統及包括以上系統或裝置中之任一者的分散式雲端計算環境,及其類似者。
參考圖11A描述併有且使用本發明之一或多個態樣的計算環境之另一實施例。在此實例中,計算環境36包括例如原生中央處理單元(CPU) 37、記憶體38及一或多個輸入/輸出裝置及/或介面39,前述各者經由例如一或多個匯流排40及/或其他連接而彼此耦接。作為實例,計算環境36可包括:由紐約阿蒙克市之國際商業機器公司供應的PowerPC
®處理器;由加州帕洛阿爾托市(Palo Alto,California)之惠普公司(Hewlett Packard Co.)供應的具有Intel
®Itanium
®II處理器之HP Superdome;及/或基於由國際商業機器公司、惠普公司、英特爾公司、甲骨文公司(Oracle)及/或其他公司供應之架構的其他機器。PowerPC為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。Itanium為英特爾公司或其子公司在美國及其他國家之商標或註冊商標。
原生中央處理單元37包括一或多個原生暫存器41,諸如在環境內之處理期間使用的一或多個通用暫存器及/或一或多個專用暫存器。此等暫存器包括表示環境在任何特定時間點之狀態的資訊。
此外,原生中央處理單元37執行儲存於記憶體38中之指令及程式碼。在一個特定實例中,中央處理單元執行儲存於記憶體38中之仿真器程式碼42。此程式碼使得在一個架構中組態之計算環境能夠仿真另一架構。舉例而言,仿真器程式碼42允許基於除z/Architecture指令集架構以外之架構的機器,諸如PowerPC處理器、HP Superdome伺服器或其他者,能夠仿真z/Architecture指令集架構且執行基於z/Architecture指令集架構開發之軟體及指令。
參考圖11B描述與仿真器程式碼42有關之其他細節。儲存於記憶體38中之客體指令43包含經開發以在除原生CPU 37之架構以外的架構中執行之軟體指令(例如,與機器指令相關)。舉例而言,客體指令43可能已經設計以在基於z/Architecture指令集架構之處理器上執行,但替代地,在可為例如Intel Itanium II處理器之原生CPU 37上仿真。在一個實例中,仿真器程式碼42包括指令提取常式44以自記憶體38獲得一或多個客體指令43,且視情況提供對所獲得指令之本端緩衝。該仿真器程式碼亦包括指令轉譯常式45以判定已獲得之客體指令的類型且將該客體指令轉譯成一或多個對應的原生指令46。此轉譯包括例如識別待藉由客體指令執行之功能及選擇原生指令以執行彼功能。
此外,仿真器程式碼42包括仿真控制常式47以使原生指令得以執行。仿真控制常式47可使原生CPU 37執行仿真一或多個先前所獲得之客體指令之原生指令的常式且在此執行完結時,將控制傳回至指令提取常式以仿真獲得下一客體指令或一組客體指令。原生指令46之執行可包括將資料自記憶體38載入至暫存器中;將資料自暫存器儲存回至記憶體;或執行某一類型之算術或邏輯運算(如藉由轉譯常式判定)。
每一常式係例如以軟體來實施,軟體儲存於記憶體中且由原生中央處理單元37執行。在其他實例中,該等常式或操作中之一或多者係以韌體、硬體、軟體或其某一組合來實施。可使用原生CPU之暫存器41或藉由使用記憶體38中之位置來仿真所仿真處理器的暫存器。在實施例中,客體指令43、原生指令46及仿真器程式碼42可駐留於同一記憶體中或可分配於不同記憶體裝置當中。
根據本發明之一或多個態樣,可仿真之實例指令為本文中所描述之來自神經網路處理高之向量浮點轉換及加長指令、來自神經網路處理低之向量浮點轉換及加長指令、向量浮點轉換及捨入至神經網路處理指令、來自神經網路處理之向量浮點轉換指令、向量浮點轉換至神經網路處理指令及/或神經網路處理輔助指令。
上文所描述之計算環境僅為可使用之計算環境的實例。可使用其他環境,包括但不限於未經分割之環境、經分割之環境、雲端環境及/或仿真環境;實施例不限於任何一種環境。儘管本文中描述計算環境之各種實例,但本發明之一或多個態樣可與許多類型之環境一起使用。本文中所提供之計算環境僅為實例。
每一計算環境能夠經組態以包括本發明之一或多個態樣。
一或多個態樣可與雲端計算有關。
應理解,儘管本發明包括關於雲端計算之詳細描述,但本文中所敍述之教示之實施不限於雲端計算環境。實情為,本發明之實施例能夠結合現在已知或稍後開發之任何其他類型之計算環境來實施。
雲端計算係用於使得能夠對可組態計算資源(例如,網路、網路頻寬、伺服器、處理、記憶體、儲存器、應用程式、虛擬機及服務)之共用集區進行便利的隨選網路存取的服務遞送之模型,可組態計算資源可藉由最少的管理工作或與服務提供者之互動而快速地佈建及釋放。此雲端模型可包括至少五個特性、至少三個服務模型及至少四個部署模型。
特性如下:
按需自助服務:雲端消費者可按需要自動地單向佈建計算能力(諸如伺服器時間及網路儲存),而無需與服務提供者進行人為互動。
寬頻網路存取:可經由網路獲得能力及經由標準機制存取能力,該等標準機制藉由異質精簡型或複雜型用戶端平台(例如,行動電話、膝上型電腦及PDA)促進使用。
資源集用:提供者之計算資源經集用以使用多租用戶模型為多個消費者服務,其中根據需求動態指派及再指派不同實體及虛擬資源。存在位置獨立性之意義,此在於消費者通常並不能夠控制或知道所提供資源之確切位置,但可能能夠在較高抽象層級(例如,國家、州或資料中心)下指定位置。
快速彈性:可快速地且彈性地(在一些狀況下,自動地)佈建能力以迅速地向外延展,且可快速地釋放能力以迅速地向內延展。在消費者看來,可用於佈建之能力常常看起來為無限的且可在任何時間以任何量來購買。
經量測服務:雲端系統藉由在適合於服務類型(例如,儲存、處理、頻寬及作用中使用者賬戶)之某一抽象層級下利用計量能力而自動控制及最佳化資源使用。可監視、控制及報告資源使用狀況,從而為所利用服務之提供者及消費者兩者提供透明度。
服務模型如下:
軟體即服務(SaaS):提供給消費者之能力係使用在雲端基礎架構上執行之提供者之應用程式。可經由諸如網頁瀏覽器(例如,基於網頁之電子郵件)之精簡型用戶端介面自各種用戶端裝置存取應用程式。消費者並不管理或控制包括網路、伺服器、作業系統、儲存器或甚至個別應用程式能力之底層雲端基礎架構,其中可能的異常為有限的使用者特定應用程式組態設定。
平台即服務(PaaS):提供給消費者之能力係將消費者創建之應用程式或使用提供者所支援之程式設計語言及工具建立的所獲取之應用程式部署至雲端基礎架構上。消費者並不管理或控制包括網路、伺服器、作業系統或儲存器之底層雲端基礎架構,而是控制所部署之應用程式及可能的代管環境組態之應用程式。
基礎架構即服務(IaaS):提供給消費者之能力係佈建處理、儲存、網路及其他基礎計算資源,其中消費者能夠部署及執行可包括作業系統及應用程式之任意軟體。消費者並不管理或控制底層雲端基礎架構,而是控制作業系統、儲存器、所部署應用程式,且可能有限地控制選擇網路連接組件(例如,主機防火牆)。
部署模型如下:
私用雲端:僅針對組織操作雲端基礎架構。私用雲端可由組織或第三方來管理且可存在內部部署或外部部署。
社群雲端:雲端基礎架構由若干組織共用且支援具有共用關注事項(例如,任務、安全要求、策略及合規性考量)的特定社群。社群雲端可由組織或第三方來管理且可存在內部部署或外部部署。
公用雲端:可使得雲端基礎架構可用於公眾或大型工業集團且為出售雲端服務之組織所擁有。
混合雲端:雲端基礎架構為兩個或更多個雲端(私用、社群或公用)之組合物,該等雲端保持獨特實體但藉由實現資料及應用程式攜帶性(例如,用於在雲端之間實現負載平衡的雲端爆裂)之標準化或專屬技術系結在一起。
藉由集中於無狀態性、低耦合、模組化及語義互操作性對雲端計算環境進行服務定向。雲端計算之關鍵為包括互連節點之網路的基礎架構。
現參考圖12,描繪說明性雲端計算環境50。如所展示,雲端計算環境50包括一或多個雲端計算節點52,雲端消費者所使用之諸如個人數位助理(PDA)或蜂巢式電話54A、桌上型電腦54B、膝上型電腦54C及/或汽車電腦系統54N的本端計算裝置可與該一或多個雲端計算節點進行通信。節點52可彼此通信。可在一或多個網路(諸如,如上文所描述之私用、社群、公用或混合雲端或其組合)中將該等節點實體地或虛擬地分組(未展示)。此情形允許雲端計算環境50提供基礎架構、平台及/或軟體作為服務,針對該等服務,雲端消費者不需要在本端計算裝置上維護資源。應理解,圖12中所展示之計算裝置54A至54N之類型意欲僅為說明性的,且計算節點52及雲端計算環境50可經由任何類型之網路及/或網路可定址連接(例如,使用網頁瀏覽器)與任何類型之電腦化裝置通信。
現參考圖13,展示由雲端計算環境50 (圖12)提供之一組功能抽象層。事先應理解,圖13中所展示之組件、層及功能意欲僅為說明性的且本發明之實施例不限於此。如所描繪,提供以下層及對應功能:
硬體及軟體層60包括硬體及軟體組件。硬體組件之實例包括:大型電腦61;基於精簡指令集電腦(RISC)架構之伺服器62;伺服器63;刀鋒伺服器64;儲存裝置65;及網路及網路連接組件66。在一些實施例中,軟體組件包括網路應用程式伺服器軟體67及資料庫軟體68。
虛擬化層70提供抽象層,可自該抽象層提供虛擬實體之以下實例:虛擬伺服器71;虛擬儲存器72;虛擬網路73,其包括虛擬私用網路;虛擬應用程式及作業系統74;及虛擬用戶端75。
在一個實例中,管理層80可提供下文所描述之功能。資源佈建81提供計算資源及用以執行雲端計算環境內之任務之其他資源的動態採購。當在雲端計算環境內利用資源時,計量及定價82提供成本追蹤,以及對此等資源之消耗之帳務處理及發票開立。在一個實例中,此等資源可包括應用程式軟體授權。安全性為雲端消費者及任務提供身分驗證,以及對資料及其他資源之保護。使用者入口網站83為消費者及系統管理員提供對雲端計算環境之存取。服務等級管理84提供雲端計算資源分配及管理以使得滿足所需服務等級。服務等級協議(SLA)規劃及履行85提供雲端計算資源之預先配置及採購,針對雲端計算資源之未來要求係根據SLA來預期。
工作負載層90提供功能性之實例,可針對該功能性利用雲端計算環境。可自此層提供之工作負載及功能的實例包括:地圖繪製及導航91;軟體開發及生命週期管理92;虛擬教室教育遞送93;資料分析處理94;異動處理95;及轉換、捨入及/或神經網路處理輔助處理96。
本發明之態樣可為在任何可能的技術細節整合層級下之系統、方法及/或電腦程式產品。電腦程式產品可包括電腦可讀儲存媒體,其上具有電腦可讀程式指令以使處理器實行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可保持及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為(例如但不限於)電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述各者之任何合適組合。電腦可讀儲存媒體之更特定實例之非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型緊密光碟唯讀記憶體(CD-ROM)、數位化通用光碟(DVD)、記憶棒、軟碟、機械編碼裝置(諸如其上記錄有指令之凹槽中之打孔卡片或凸起結構)及前述各者之任何合適組合。如本文中所使用,不應將電腦可讀儲存媒體本身解釋為暫時性信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纖纜線傳遞之光脈衝),或經由導線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別計算/處理裝置或經由網路(例如,網際網路、區域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存裝置。網路可包含銅傳輸纜線、光傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。每一計算/處理裝置中之網路配接器卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以用於儲存於各別計算/處理裝置內之電腦可讀儲存媒體中。
用於實行本發明之操作的電腦可讀程式指令可為以一或多種程式設計語言之任何組合撰寫的組譯程式指令、指令集架構(ISA)指令、機器指令、機器相依性指令、微碼、韌體指令、狀態設定資料、積體電路系統之組態資料或原始碼或目標碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言及諸如「C」程式設計語言或類似程式設計語言之程序性程式設計語言。電腦可讀程式指令可完全在使用者電腦上執行、作為獨立套裝軟體部分在使用者電腦上執行、部分在使用者電腦上及部分在遠端電腦上執行,或完全在遠端電腦或伺服器上執行。在後一情境中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者之電腦,或可(例如,經由使用網際網路服務提供者之網際網路)連接至外部電腦。在一些實施例中,包括例如可程式化邏輯電路系統、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA)之電子電路系統可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路系統而執行電腦可讀程式指令,以便執行本發明之態樣。
本文參考根據本發明之實施例之方法、設備(系統)及電腦程式產品的流程圖說明及/或方塊圖描述本發明之態樣。將理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖之每一區塊及流程圖說明及/或方塊圖中之區塊的組合。
可將此等電腦可讀程式指令提供至電腦或其他可程式化資料處理設備之處理器以產生一機器,以使得經由該電腦或其他可程式化資料處理設備之處理器執行之指令建立用於實施一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之手段。亦可將此等電腦可讀程式指令儲存於電腦可讀儲存媒體中,該等指令可指導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,以使得儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之態樣的指令。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理設備或其他裝置上,以使得一系列操作步驟在該電腦、其他可程式化設備或其他裝置上執行以產生電腦實施程序,使得在該電腦、其他可程式化設備或其他裝置上執行之指令實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例之系統、方法及電腦程式產品之可能實施的架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示指令之模組、片段或部分,其包含用於實施指定邏輯功能的一或多個可執行指令。在一些替代實施中,區塊中提及之功能可能不以諸圖中所提及之次序發生。舉例而言,取決於所涉及之功能性,連續展示的兩個區塊實際上可實現為一個步驟,同時、實質上同時、以部分或完全在時間上重疊之方式執行,或該等區塊有時可以相反次序執行。亦將注意,可由執行經指定功能或動作或實行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或流程圖說明之每一區塊及方塊圖及/或流程圖說明中之區塊的組合。
除了上述情形之外,可藉由供應消費者環境之管理之服務提供者對一或多個態樣進行提供、供應、部署、管理、服務等。舉例而言,服務提供者可對電腦程式碼及/或執行用於一或多個消費者之一或多個態樣的電腦基礎架構進行建立、維護、支援等。作為回報,服務提供者可根據訂用及/或收費協議接收來自消費者之付款,作為實例。另外或替代地,服務提供者可接收來自向一或多個第三方出售廣告內容之付款。
在一個態樣中,可部署一應用程式以用於執行一或多個實施例。作為一個實例,應用程式之部署包含提供可操作以執行一或多個實施例之電腦基礎架構。
作為另一態樣,可部署計算基礎架構,包含將電腦可讀程式碼整合至計算系統中,其中程式碼結合計算系統能夠執行一或多個實施例。
作為又一態樣,可提供一種用於整合計算基礎架構之程序,包含將電腦可讀程式碼整合至電腦系統中。電腦系統包含電腦可讀媒體,其中電腦媒體包含一或多個實施例。程式碼結合電腦系統能夠執行一或多個實施例。
儘管上文描述各種實施例,但此等實施例僅為實例。舉例而言,其他架構之計算環境可用以併有及/或使用一或多個態樣。此外,可使用不同指令或操作。另外,可使用不同類型之暫存器及/或不同暫存器。此外,可支援其他資料格式、資料佈局及/或資料大小。在一或多個實施例中,可使用一或多個通用處理器、一或多個專用處理器或通用處理器與專用處理器之組合。許多變化係可能的。
本文中描述各種態樣。此外,在不脫離本發明之態樣之精神的情況下,許多變化係可能的。應注意,除非不一致,否則本文中所描述之每一態樣或特徵及其變體可與任何其他態樣或特徵組合。
此外,其他類型之計算環境可為有益的且可被使用。作為一實例,可使用適合於儲存及/或執行程式碼之資料處理系統,其包括直接或經由系統匯流排間接地耦接至記憶體元件之至少兩個處理器。記憶體元件包括例如在實際執行程式碼期間使用之本端記憶體、大容量儲存器,及提供至少某一程式碼之臨時儲存以便減少在執行期間必須自大容量儲存器擷取程式碼之次數的快取記憶體。
輸入/輸出或I/O裝置(包括但不限於鍵盤、顯示器、指標裝置、DASD、磁帶、CD、DVD、隨身碟(thumb drive)及其他記憶體媒體等)可直接地或經由介入I/O控制器耦接至系統。網路配接器亦可耦接至系統以使得資料處理系統能夠變成經由介入之私人網路或公用網路耦接至其他資料處理系統或遠端印表機或儲存裝置。數據機、纜線數據機及乙太網路卡僅為幾種可用類型之網路配接器。
本文中所使用之術語僅出於描述特定實施例之目的且並不意欲為限制性的。如本文中所使用,除非上下文另有清晰指示,否則單數形式「一」及「該」亦意欲包括複數形式。應進一步理解,術語「包含(comprises及/或comprising)」在用於本說明書中時指定所陳述特徵、整數、步驟、操作、元件及/或組件之存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組之存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件之對應結構、材料、動作及等效物(若存在)意欲包括用於結合如具體主張之其他所主張元件來執行功能的任何結構、材料或動作。已出於說明及描述之目的呈現一或多個實施例之描述,但其不意欲為窮盡性的或限於所揭示之形式。許多修改及變化將對一般熟習此項技術者顯而易見。選擇及描述實施例以便最佳地解釋各種態樣及實際應用,且使得一般熟習此項技術者能夠理解各種實施例及適於所預期之特定用途的各種修改。
10:計算環境
11:中央電子複合體
12:記憶體
13:中央處理單元/實體處理器資源/處理器
14:輸入/輸出(I/O)子系統
15:輸入/輸出控制單元
16:輸入/輸出(I/O)裝置
17:資料儲存裝置
18:程式
19:電腦可讀程式指令
20:邏輯分割區
21:超管理器
22:處理器韌體
23:客體作業系統
24:控制碼
25:程式
26:虛擬機
27:超管理器
28:處理器韌體
29:程式
30:客體作業系統
31:神經網路處理器
36:計算環境
37:原生中央處理單元
38:記憶體
39:輸入/輸出裝置/介面
40:匯流排
41:原生暫存器
42:仿真器程式碼
43:客體指令
44:指令提取常式
45:指令轉譯常式
46:原生指令
47:仿真控制常式
50:雲端計算環境
52:雲端計算節點
54A:蜂巢式電話
54B:桌上型電腦
54C:膝上型電腦
54N:汽車電腦系統
60:硬體及軟體層
61:大型電腦
62:基於精簡指令集電腦(RISC)架構之伺服器
63:伺服器
64:刀鋒伺服器
65:儲存裝置
66:網路及網路連接組件
67:網路應用程式伺服器軟體
68:資料庫軟體
70:虛擬化層
71:虛擬伺服器
72:虛擬儲存器
73:虛擬網路
74:虛擬應用程式及作業系統
75:虛擬用戶端
80:管理層
81:資源佈建
82:計量及定價
83:使用者入口網站
84:服務等級管理
85:服務等級協議(SLA)規劃及履行
90:工作負載層
91:地圖繪製及導航
92:軟體開發及生命週期管理92
93:虛擬教室教育遞送
94:資料分析處理
95:異動處理
96:轉換、捨入及/或神經網路處理輔助處理
100:二進位浮點微小格式
102:正負號
104:指數+ 15
106:分數
110:二進位浮點短格式
112:正負號
114:指數+ 127
116:分數
120:二進位浮點長格式
122:正負號
124:指數+ 1023
126:分數
130:二進位浮點擴充格式
132:正負號
134:指數+ 16383
136:分數
200:格式
202:正負號
204:指數+ 31
206:分數
350:指令提取組件
352:指令解碼單元
354:指令執行組件
356:記憶體存取組件
358:寫回組件
360:暫存器
370:轉換及/或捨入組件
372:神經網路處理輔助組件
400:步驟
410:詢問
420:詢問
430:步驟
440:步驟
450:步驟
460:步驟
470:步驟
480:步驟
490:步驟
500:來自神經網路處理高之向量浮點轉換及加長指令
502a:操作碼欄位
502b:操作碼欄位
504:第一向量暫存器欄位
506:第二向量暫存器欄位
508:第一遮罩欄位
510:第二遮罩欄位
512:暫存器擴充位元欄位
520:來自神經網路處理低之向量浮點轉換及加長指令
522a:操作碼欄位
522b:操作碼欄位
524:第一向量暫存器欄位
526:第二向量暫存器欄位
528:第一遮罩欄位
530:第二遮罩欄位
532:暫存器擴充位元欄位
540:向量浮點轉換及捨入至神經網路處理指令
542a:操作碼欄位
542b:操作碼欄位
544:第一向量暫存器欄位
546:第二向量暫存器欄位
548:第三向量暫存器欄位
550:第一遮罩欄位
552:第二遮罩欄位
554:暫存器擴充位元欄位
560:來自神經網路處理之向量浮點轉換指令
562a:操作碼欄位
562b:操作碼欄位
564:第一向量暫存器欄位
566:第二向量暫存器欄位
568:第一遮罩欄位
570:第二遮罩欄位
572:暫存器擴充位元欄位
580:向量浮點轉換至神經網路處理指令
582a:操作碼欄位
582b:操作碼欄位
584:第一向量暫存器欄位
586:第二向量暫存器欄位
588:第一遮罩欄位
590:第二遮罩欄位
592:暫存器擴充位元欄位
600:神經網路處理輔助指令
602:操作碼欄位
610:回應碼欄位
612:異常旗標欄位
614:功能碼欄位
620:參數區塊位址
630:參數區塊
632:已安裝功能向量
634:已安裝參數區塊格式向量
636:已安裝資料類型
638:已安裝資料佈局格式
640:最大維度索引大小
642:最大張量大小
644:已安裝NNP資料類型1轉換向量
650:參數區塊
652:參數區塊版本號碼
654:模型版本號碼
656:接續旗標
658:功能特定保存區域位址
660:輸出張量描述符
665:輸入張量描述符
670:功能特定參數1至5
675:接續狀態緩衝區欄位
682:資料佈局格式
684:資料類型
686:維度1至4索引大小
688:張量位址
700: 3D張量
702: 2D張量
800:記憶體
802:列
900:步驟
902:步驟
904:步驟
906:步驟
908:步驟
910:步驟
912:步驟
914:步驟
916:步驟
918:步驟
920:步驟
922:步驟
924:步驟
926:步驟
928:步驟
930:步驟
932:步驟
934:步驟
936:步驟
938:步驟
940:步驟
942:步驟
944:步驟
946:步驟
950:步驟
952:步驟
954:步驟
1000:計算環境
1002:電腦系統
1004:處理器
1005:神經網路處理器
1006:記憶體
1008:輸入/輸出(I/O)介面
1010:匯流排
1011:匯流排
1012:快取記憶體
1014:本端快取記憶體
1016:應用程式
1018:作業系統
1020:電腦可讀程式指令
1030:外部裝置
1032:網路介面
1034:資料儲存裝置
1036:程式
1038:電腦可讀程式指令
在本說明書之結尾處之申請專利範圍中作為實例特別地指出且清楚地主張一或多個態樣。一或多個態樣之前述內容及目標、特徵及優勢自結合隨附圖式進行的以下詳細描述顯而易見,其中:
圖1A至圖1D描繪根據本發明之一或多個態樣的二進位浮點格式之實例;
圖2描繪根據本發明之一或多個態樣的神經網路處理(NNP)資料類型1資料類型之格式的一個實例;
圖3A描繪併有及使用本發明之一或多個態樣的計算環境之一個實例;
圖3B描繪根據本發明之一或多個態樣的圖3A之記憶體之其他細節的一個實例;
圖3C描繪根據本發明之一或多個態樣的圖3A之記憶體之其他細節的另一實例;
圖3D描繪根據本發明之一或多個態樣的圖3A之處理器的其他細節;
圖4A描繪根據本發明之一或多個態樣的執行轉換操作之一個實例;
圖4B描繪根據本發明之一或多個態樣的與圖4A之轉換操作之轉換及捨入相關的其他細節;
圖5A描繪根據本發明之一或多個態樣的來自神經網路處理高之向量浮點轉換及加長指令之格式的一個實例;
圖5B描繪根據本發明之一或多個態樣的來自神經網路處理低之向量浮點轉換及加長指令之格式的一個實例;
圖5C描繪根據本發明之一或多個態樣的向量浮點轉換及捨入至神經網路處理指令之格式的一個實例;
圖5D描繪根據本發明之一或多個態樣的來自神經網路處理之向量浮點轉換指令之格式的一個實例;
圖5E描繪根據本發明之一或多個態樣的向量浮點轉換至神經網路處理指令之格式的一個實例;
圖6A描繪根據本發明之一或多個態樣使用的神經網路處理輔助指令之格式的一個實例;
圖6B描繪根據本發明之一或多個態樣的由神經網路處理輔助指令使用之通用暫存器的一個實例;
圖6C描繪根據本發明之一或多個態樣的由神經網路處理輔助指令支援之功能碼的實例;
圖6D描繪根據本發明之一或多個態樣的由神經網路處理輔助指令使用之另一通用暫存器的一個實例;
圖6E描繪根據本發明之一或多個態樣的由神經網路處理輔助指令之查詢功能使用之參數區塊的一個實例;
圖6F描繪根據本發明之一或多個態樣的由神經網路處理輔助指令之一或多個非查詢功能使用之參數區塊的一個實例;
圖6G描繪根據本發明之一或多個態樣的由神經網路處理輔助指令使用之張量描述符的一個實例;
圖7A至圖7C描繪根據本發明之一或多個態樣的由神經網路處理輔助指令使用之輸入資料佈局的實例;
圖8A至圖8C描繪根據本發明之一或多個態樣的對應於圖7A至圖7C之輸入資料佈局的實例輸出;
圖9A至圖9B描繪根據本發明之一或多個態樣的促進計算環境內之處理的一個實例;
圖10描繪併有及使用本發明之一或多個態樣的計算環境之另一實例;
圖11A描繪併有及使用本發明之一或多個態樣的計算環境之又一實例;
圖11B描繪根據本發明之一或多個態樣的圖11A之記憶體的其他細節;
圖12描繪根據本發明之一或多個態樣的雲端計算環境之一個實施例;且
圖13描繪根據本發明之一或多個態樣的抽象模型層之一個實例。
900:指令
902:步驟
904:步驟
906:步驟
908:步驟
910:步驟
912:步驟
914:步驟
916:步驟
918:步驟
920:步驟
922:步驟
924:步驟
926:步驟
928:步驟
Claims (20)
- 一種用於促進一計算環境內之處理的電腦程式產品,該電腦程式產品包含: 一或多個電腦可讀儲存媒體及共同地儲存於該一或多個電腦可讀儲存媒體上以執行一方法之程式指令,該方法包含: 獲得將資料自一源資料類型轉換至一目標資料類型之一指令,該源資料類型係選自由該指令支援之一或多個源資料類型,且該目標資料類型係選自由該指令支援之一或多個目標資料類型; 基於該源資料類型及該目標資料類型中之一者之一經選擇資料類型,判定供該指令使用之一捨入模式,該捨入模式係基於該經選擇資料類型隱含地設定,其中該捨入模式經指派至該經選擇資料類型; 執行該資料自該源資料類型至該目標資料類型之一轉換,該轉換包括使用基於該經選擇資料類型隱含地設定之該捨入模式來執行一捨入操作,其中執行該轉換提供該目標資料類型中之一結果;及 將該結果寫入至一選擇位置。
- 如請求項1之電腦程式產品,其中該經選擇資料類型為使用該指令指定之該目標資料類型,該目標資料類型包含使用該指令指定之一機器特定資料類型。
- 如請求項2之電腦程式產品,其中該機器特定資料類型包含一神經網路處理資料類型1資料類型,且其中經指派至該神經網路處理資料類型1資料類型之該捨入模式為一就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入。
- 如請求項2之電腦程式產品,其中該源資料類型為使用該指令指定之一標準資料類型。
- 如請求項1之電腦程式產品,其中該經選擇資料類型為使用該指令指定之該源資料類型,該源資料類型包含使用該指令指定之一機器特定資料類型。
- 如請求項5之電腦程式產品,其中該機器特定資料類型包含一神經網路處理資料類型1資料類型,且其中經指派至該神經網路處理資料類型1資料類型之該捨入模式為一就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入。
- 如請求項5之電腦程式產品,其中該目標資料類型為使用該指令指定之一標準資料類型。
- 如請求項1之電腦程式產品,其中待轉換之該資料包括該源資料類型中之源資料,該源資料包括使用該指令之一個欄位指定之一個暫存器中之資料與使用該指令之另一欄位指定之另一暫存器中之其他資料的一串連。
- 如請求項8之電腦程式產品,其中執行該轉換包括基於該捨入模式捨入該源資料以提供經捨入資料,及轉換該經捨入資料以提供該目標資料類型中之該結果。
- 如請求項1之電腦程式產品,其中待轉換之該資料包括使用該指令獲得之該源資料類型中之源資料,且其中執行該轉換包括基於該捨入模式捨入該源資料以按一目標資料類型數字之一精確度提供經捨入資料,及轉換該經捨入資料以提供該目標資料類型中之該結果。
- 一種用於促進一計算環境內之處理的電腦系統,該電腦系統包含: 一記憶體;及 一處理器,其與該記憶體通信,其中該電腦系統經組態以執行一方法,該方法包含: 獲得將資料自一源資料類型轉換至一目標資料類型之一指令,該源資料類型係選自由該指令支援之一或多個源資料類型,且該目標資料類型係選自由該指令支援之一或多個目標資料類型; 基於該源資料類型及該目標資料類型中之一者之一經選擇資料類型,判定供該指令使用之一捨入模式,該捨入模式係基於該經選擇資料類型隱含地設定,其中該捨入模式經指派至該經選擇資料類型; 執行該資料自該源資料類型至該目標資料類型之一轉換,該轉換包括使用基於該經選擇資料類型隱含地設定之該捨入模式來執行一捨入操作,其中執行該轉換提供該目標資料類型中之一結果;及 將該結果寫入至一選擇位置。
- 如請求項11之電腦系統,其中該經選擇資料類型為使用該指令指定之該目標資料類型,該目標資料類型包含使用該指令指定之一機器特定資料類型。
- 如請求項12之電腦系統,其中該機器特定資料類型包含一神經網路處理資料類型1資料類型,且其中經指派至該神經網路處理資料類型1資料類型之該捨入模式為一就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入。
- 如請求項11之電腦系統,其中該經選擇資料類型為使用該指令指定之該源資料類型,該源資料類型包含使用該指令指定之一機器特定資料類型。
- 如請求項14之電腦系統,其中該機器特定資料類型包含一神經網路處理資料類型1資料類型,且其中經指派至該神經網路處理資料類型1資料類型之該捨入模式為一就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入。
- 一種促進一計算環境內之處理的電腦實施方法,該電腦實施方法包含: 獲得將資料自一源資料類型轉換至一目標資料類型之一指令,該源資料類型係選自由該指令支援之一或多個源資料類型,且該目標資料類型係選自由該指令支援之一或多個目標資料類型; 基於該源資料類型及該目標資料類型中之一者之一經選擇資料類型,判定供該指令使用之一捨入模式,該捨入模式係基於該經選擇資料類型隱含地設定,其中該捨入模式經指派至該經選擇資料類型; 執行該資料自該源資料類型至該目標資料類型之一轉換,該轉換包括使用基於該經選擇資料類型隱含地設定之該捨入模式來執行一捨入操作,其中執行該轉換提供該目標資料類型中之一結果;及 將該結果寫入至一選擇位置。
- 如請求項16之電腦實施方法,其中該經選擇資料類型為使用該指令指定之該目標資料類型,該目標資料類型包含使用該指令指定之一機器特定資料類型。
- 如請求項17之電腦實施方法,其中該機器特定資料類型包含一神經網路處理資料類型1資料類型,且其中經指派至該神經網路處理資料類型1資料類型之該捨入模式為一就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入。
- 如請求項16之電腦實施方法,其中該經選擇資料類型為使用該指令指定之該源資料類型,該源資料類型包含使用該指令指定之一機器特定資料類型。
- 如請求項19之電腦實施方法,其中該機器特定資料類型包含一神經網路處理資料類型1資料類型,且其中經指派至該神經網路處理資料類型1資料類型之該捨入模式為一就近捨入,若與兩邊的數距離相等,則向遠離零的方向捨入。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/350,418 US11269632B1 (en) | 2021-06-17 | 2021-06-17 | Data conversion to/from selected data type with implied rounding mode |
| US17/350,418 | 2021-06-17 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202303393A TW202303393A (zh) | 2023-01-16 |
| TWI792987B true TWI792987B (zh) | 2023-02-11 |
Family
ID=80473447
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111115155A TWI792987B (zh) | 2021-06-17 | 2022-04-21 | 使用暗示捨入模式之資料轉換至經選擇資料類型/來自經選擇資料類型之資料轉換 |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US11269632B1 (zh) |
| EP (1) | EP4356243A1 (zh) |
| JP (1) | JP2024522443A (zh) |
| KR (1) | KR102802356B1 (zh) |
| CN (1) | CN117396847A (zh) |
| AU (1) | AU2022292887B2 (zh) |
| CA (1) | CA3215165A1 (zh) |
| TW (1) | TWI792987B (zh) |
| WO (1) | WO2022263468A1 (zh) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11687336B2 (en) * | 2020-05-08 | 2023-06-27 | Black Sesame Technologies Inc. | Extensible multi-precision data pipeline for computing non-linear and arithmetic functions in artificial neural networks |
| US12159140B2 (en) * | 2022-04-28 | 2024-12-03 | Qualcomm Incorporated | Instruction set architecture for neural network quantization and packing |
| US12260214B1 (en) | 2022-09-30 | 2025-03-25 | Amazon Technologies, Inc. | Throughput increase for compute engine |
| US12099840B1 (en) * | 2023-03-16 | 2024-09-24 | Amazon Technologies, Inc. | Throughput increase for tensor operations |
| IT202300002226U1 (it) * | 2023-05-25 | 2024-11-25 | Energy Tech S R L | Apparato di controllo multifunzione. |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20010016902A1 (en) * | 1998-04-30 | 2001-08-23 | Abdallah Mohammad A.F. | Conversion from packed floating point data to packed 8-bit integer data in different architectural registers |
| US20140019713A1 (en) * | 2011-12-23 | 2014-01-16 | Elmoustapha Ould-Ahmed-Vall | Systems, apparatuses, and methods for performing a double blocked sum of absolute differences |
| US20190079762A1 (en) * | 2018-11-09 | 2019-03-14 | Intel Corporation | Systems and methods for performing instructions to convert to 16-bit floating-point format |
| CN112711440A (zh) * | 2019-10-25 | 2021-04-27 | 安徽寒武纪信息科技有限公司 | 用于转换数据类型的转换器、芯片、电子设备及其方法 |
| TW202117534A (zh) * | 2019-10-25 | 2021-05-01 | 大陸商安徽寒武紀信息科技有限公司 | 用於轉換資料類型的轉換器、晶片、電子設備及其方法 |
Family Cites Families (70)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5761105A (en) | 1995-09-26 | 1998-06-02 | Advanced Micro Devices, Inc. | Reservation station including addressable constant store for a floating point processing unit |
| US5862067A (en) * | 1995-12-29 | 1999-01-19 | Intel Corporation | Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations |
| US6058410A (en) * | 1996-12-02 | 2000-05-02 | Intel Corporation | Method and apparatus for selecting a rounding mode for a numeric operation |
| US6058420A (en) * | 1998-02-27 | 2000-05-02 | Netsolve, Inc. | Alarm server systems, apparatus, and processes |
| US8291003B2 (en) | 2008-09-09 | 2012-10-16 | International Business Machines Corporation | Supporting multiple formats in a floating point processor |
| US9286130B2 (en) | 2012-08-27 | 2016-03-15 | International Business Machines Corporation | Optimizing virtual machine deployment time by temporarily allocating more processing resources during the initial deployment time of the virtual machine |
| US10623386B1 (en) | 2012-09-26 | 2020-04-14 | Pure Storage, Inc. | Secret sharing data protection in a storage system |
| US9916130B2 (en) * | 2014-11-03 | 2018-03-13 | Arm Limited | Apparatus and method for vector processing |
| US10061824B2 (en) | 2015-01-30 | 2018-08-28 | Splunk Inc. | Cell-based table manipulation of event data |
| US9747546B2 (en) | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
| US10460230B2 (en) | 2015-06-04 | 2019-10-29 | Samsung Electronics Co., Ltd. | Reducing computations in a neural network |
| US9710401B2 (en) | 2015-06-26 | 2017-07-18 | Intel Corporation | Processors, methods, systems, and instructions to support live migration of protected containers |
| US10728169B1 (en) | 2015-06-26 | 2020-07-28 | Amazon Technologies, Inc. | Instance upgrade migration |
| US9940101B2 (en) | 2015-08-25 | 2018-04-10 | Samsung Electronics Co., Ltd. | Tininess prediction and handler engine for smooth handling of numeric underflow |
| US10726328B2 (en) | 2015-10-09 | 2020-07-28 | Altera Corporation | Method and apparatus for designing and implementing a convolution neural net accelerator |
| US10353862B2 (en) | 2015-10-08 | 2019-07-16 | Via Alliance Semiconductor Co., Ltd. | Neural network unit that performs stochastic rounding |
| US9569277B1 (en) | 2016-01-29 | 2017-02-14 | International Business Machines Corporation | Rebalancing virtual resources for virtual machines based on multiple resource capacities |
| US10778707B1 (en) | 2016-05-12 | 2020-09-15 | Amazon Technologies, Inc. | Outlier detection for streaming data using locality sensitive hashing |
| US10891538B2 (en) | 2016-08-11 | 2021-01-12 | Nvidia Corporation | Sparse convolutional neural network accelerator |
| US10802992B2 (en) | 2016-08-12 | 2020-10-13 | Xilinx Technology Beijing Limited | Combining CPU and special accelerator for implementing an artificial neural network |
| US10810484B2 (en) | 2016-08-12 | 2020-10-20 | Xilinx, Inc. | Hardware accelerator for compressed GRU on FPGA |
| US10175980B2 (en) | 2016-10-27 | 2019-01-08 | Google Llc | Neural network compute tile |
| US9959498B1 (en) | 2016-10-27 | 2018-05-01 | Google Llc | Neural network instruction set architecture |
| US10395165B2 (en) * | 2016-12-01 | 2019-08-27 | Via Alliance Semiconductor Co., Ltd | Neural network unit with neural memory and array of neural processing units that collectively perform multi-word distance rotates of row of data received from neural memory |
| US20180173527A1 (en) * | 2016-12-15 | 2018-06-21 | Optimum Semiconductor Technologies, Inc. | Floating point instruction format with embedded rounding rule |
| US10120680B2 (en) | 2016-12-30 | 2018-11-06 | Intel Corporation | Systems, apparatuses, and methods for arithmetic recurrence |
| EP3607453B1 (en) | 2017-04-07 | 2022-08-31 | Intel Corporation | Methods and apparatus for deep learning network execution pipeline on multi-processor platform |
| US10515303B2 (en) | 2017-04-17 | 2019-12-24 | Cerebras Systems Inc. | Wavelet representation for accelerated deep learning |
| CN107704922B (zh) | 2017-04-19 | 2020-12-08 | 赛灵思公司 | 人工神经网络处理装置 |
| US12154028B2 (en) | 2017-05-05 | 2024-11-26 | Intel Corporation | Fine-grain compute communication execution for deep learning frameworks via hardware accelerated point-to-point primitives |
| US10338925B2 (en) | 2017-05-24 | 2019-07-02 | Microsoft Technology Licensing, Llc | Tensor register files |
| US11216437B2 (en) | 2017-08-14 | 2022-01-04 | Sisense Ltd. | System and method for representing query elements in an artificial neural network |
| US10642835B2 (en) | 2017-08-14 | 2020-05-05 | Sisense Ltd. | System and method for increasing accuracy of approximating query results using neural networks |
| US10558599B2 (en) | 2017-09-12 | 2020-02-11 | Nxp Usa, Inc. | Method and apparatus for loading a matrix into an accelerator |
| CN109543826A (zh) | 2017-09-21 | 2019-03-29 | 杭州海康威视数字技术股份有限公司 | 一种基于深度神经网络的激活量量化方法及装置 |
| KR102610820B1 (ko) | 2017-09-27 | 2023-12-06 | 삼성전자주식회사 | 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법 |
| GB2568087B (en) | 2017-11-03 | 2022-07-20 | Imagination Tech Ltd | Activation functions for deep neural networks |
| US11373088B2 (en) | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
| WO2019140067A1 (en) | 2018-01-10 | 2019-07-18 | LynJohnston, LLC | Compact injector systems and methods |
| US11093830B2 (en) | 2018-01-30 | 2021-08-17 | D5Ai Llc | Stacking multiple nodal networks |
| US20210004668A1 (en) | 2018-02-16 | 2021-01-07 | The Governing Council Of The University Of Toronto | Neural network accelerator |
| US10552199B2 (en) | 2018-02-26 | 2020-02-04 | Nutanix, Inc. | System and method for binary throttling for live migration of virtual machines |
| US20200074293A1 (en) | 2018-08-29 | 2020-03-05 | DinoplusAI Holdings Limited | Computing Device for Multiple Activation Functions in Neural Networks |
| US20190340499A1 (en) | 2018-05-04 | 2019-11-07 | Microsoft Technology Licensing, Llc | Quantization for dnn accelerators |
| US10656913B2 (en) | 2018-06-05 | 2020-05-19 | International Business Machines Corporation | Enhanced low precision binary floating-point formatting |
| US10832139B2 (en) | 2018-06-22 | 2020-11-10 | Moffett Technologies Co. Limited | Neural network acceleration and embedding compression systems and methods with activation sparsification |
| US10620951B2 (en) | 2018-06-22 | 2020-04-14 | Intel Corporation | Matrix multiplication acceleration of sparse matrices using column folding and squeezing |
| US10908906B2 (en) | 2018-06-29 | 2021-02-02 | Intel Corporation | Apparatus and method for a tensor permutation engine |
| CN109146072B (zh) | 2018-08-01 | 2021-03-23 | 上海天数智芯半导体有限公司 | 基于卷积神经网络加速器的数据重用方法 |
| US10885277B2 (en) | 2018-08-02 | 2021-01-05 | Google Llc | On-device neural networks for natural language understanding |
| US10817042B2 (en) | 2018-09-27 | 2020-10-27 | Intel Corporation | Power savings for neural network architecture with zero activations during inference |
| US11676003B2 (en) | 2018-12-18 | 2023-06-13 | Microsoft Technology Licensing, Llc | Training neural network accelerators using mixed precision data formats |
| US10699465B1 (en) | 2018-12-28 | 2020-06-30 | Intel Corporation | Cluster of scalar engines to accelerate intersection in leaf node |
| US20200218985A1 (en) | 2019-01-03 | 2020-07-09 | Alibaba Group Holding Limited | System and method for synthetic-model-based benchmarking of ai hardware |
| US11645358B2 (en) | 2019-01-29 | 2023-05-09 | Hewlett Packard Enterprise Development Lp | Generation of executable files corresponding to neural network models |
| US12165038B2 (en) | 2019-02-14 | 2024-12-10 | Microsoft Technology Licensing, Llc | Adjusting activation compression for neural network training |
| US11442700B2 (en) | 2019-03-29 | 2022-09-13 | Stmicroelectronics S.R.L. | Hardware accelerator method, system and device |
| US10789402B1 (en) | 2019-05-01 | 2020-09-29 | Xilinx, Inc. | Compiler and hardware abstraction layer architecture for a neural network accelerator |
| US11366771B2 (en) | 2019-05-02 | 2022-06-21 | EMC IP Holding Company LLC | Host device with multi-path layer configured for detection and resolution of initiator-related conditions |
| US11790250B2 (en) | 2019-05-09 | 2023-10-17 | Intel Corporation | Using computational cost and instantaneous load analysis for intelligent deployment of neural networks on multiple hardware executors |
| CN110197260B (zh) | 2019-06-06 | 2020-10-02 | 百度在线网络技术(北京)有限公司 | 一种数据处理方法及装置 |
| TWI701612B (zh) | 2019-06-19 | 2020-08-11 | 創鑫智慧股份有限公司 | 用於神經網路中激勵函數的電路系統及其處理方法 |
| US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
| US11568238B2 (en) | 2019-06-28 | 2023-01-31 | Amazon Technologies, Inc. | Dynamic processing element array expansion |
| US11907827B2 (en) | 2019-06-28 | 2024-02-20 | Intel Corporation | Schedule-aware tensor distribution module |
| US11630770B2 (en) | 2019-07-11 | 2023-04-18 | Meta Platforms Technologies, Llc | Systems and methods for reading and writing sparse data in a neural network accelerator |
| US11727267B2 (en) | 2019-08-30 | 2023-08-15 | Intel Corporation | Artificial neural network with trainable activation functions and fractional derivative values |
| US11567555B2 (en) | 2019-08-30 | 2023-01-31 | Intel Corporation | Software assisted power management |
| US11797188B2 (en) | 2019-12-12 | 2023-10-24 | Sk Hynix Nand Product Solutions Corp. | Solid state drive with multiplexed internal channel access during program data transfers |
| US11669331B2 (en) * | 2021-06-17 | 2023-06-06 | International Business Machines Corporation | Neural network processing assist instruction |
-
2021
- 2021-06-17 US US17/350,418 patent/US11269632B1/en active Active
-
2022
- 2022-04-21 TW TW111115155A patent/TWI792987B/zh active
- 2022-06-14 AU AU2022292887A patent/AU2022292887B2/en active Active
- 2022-06-14 CA CA3215165A patent/CA3215165A1/en active Pending
- 2022-06-14 JP JP2023565909A patent/JP2024522443A/ja active Pending
- 2022-06-14 WO PCT/EP2022/066224 patent/WO2022263468A1/en not_active Ceased
- 2022-06-14 EP EP22736204.3A patent/EP4356243A1/en active Pending
- 2022-06-14 CN CN202280038622.6A patent/CN117396847A/zh active Pending
- 2022-06-14 KR KR1020237041125A patent/KR102802356B1/ko active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20010016902A1 (en) * | 1998-04-30 | 2001-08-23 | Abdallah Mohammad A.F. | Conversion from packed floating point data to packed 8-bit integer data in different architectural registers |
| US20140019713A1 (en) * | 2011-12-23 | 2014-01-16 | Elmoustapha Ould-Ahmed-Vall | Systems, apparatuses, and methods for performing a double blocked sum of absolute differences |
| US20190079762A1 (en) * | 2018-11-09 | 2019-03-14 | Intel Corporation | Systems and methods for performing instructions to convert to 16-bit floating-point format |
| CN112711440A (zh) * | 2019-10-25 | 2021-04-27 | 安徽寒武纪信息科技有限公司 | 用于转换数据类型的转换器、芯片、电子设备及其方法 |
| TW202117534A (zh) * | 2019-10-25 | 2021-05-01 | 大陸商安徽寒武紀信息科技有限公司 | 用於轉換資料類型的轉換器、晶片、電子設備及其方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2022292887B2 (en) | 2025-04-10 |
| TW202303393A (zh) | 2023-01-16 |
| KR102802356B1 (ko) | 2025-04-29 |
| AU2022292887A1 (en) | 2023-11-09 |
| KR20230173203A (ko) | 2023-12-26 |
| CN117396847A (zh) | 2024-01-12 |
| EP4356243A1 (en) | 2024-04-24 |
| JP2024522443A (ja) | 2024-06-21 |
| CA3215165A1 (en) | 2022-12-22 |
| US11269632B1 (en) | 2022-03-08 |
| WO2022263468A1 (en) | 2022-12-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI792987B (zh) | 使用暗示捨入模式之資料轉換至經選擇資料類型/來自經選擇資料類型之資料轉換 | |
| TWI840790B (zh) | 用於促進一運算環境內之處理的電腦程式產品、電腦系統及電腦實施方法 | |
| TWI859529B (zh) | 電腦程式產品、電腦系統及電腦實施方法 | |
| TWI833205B (zh) | 用於遞歸神經網路中使用之串連輸入/輸出張量 | |
| TWI807767B (zh) | 神經網路處理輔助指令 | |
| TW202303457A (zh) | 重新格式化張量以提供子張量 | |
| AU2022293937B2 (en) | Single function to perform multiple operations with distinct operation parameter validation | |
| TW202301110A (zh) | 用於一神經網路加速器指令之程式事件記錄儲存改變處理 | |
| TW202303420A (zh) | 遞歸神經網路單元啟動以執行一單一引動中之複數個運算 | |
| TW202301108A (zh) | 執行組合卷積及選擇運算之單一函式 | |
| TWI804285B (zh) | 查詢模型相依資訊之指令 | |
| JP7812601B2 (ja) | 個別の演算パラメータのバリデーションを伴う複数の演算を実行するための単一関数 | |
| TW202301112A (zh) | 用於在指令執行期間偵測之無效值之例外摘要 | |
| HK40099081A (zh) | 采用隐含的舍入模式的向/从所选择的数据类型的数据转换 | |
| JPWO2022263277A5 (zh) |