TW202301204A - 查詢模型相依資訊之指令 - Google Patents

查詢模型相依資訊之指令 Download PDF

Info

Publication number
TW202301204A
TW202301204A TW111115167A TW111115167A TW202301204A TW 202301204 A TW202301204 A TW 202301204A TW 111115167 A TW111115167 A TW 111115167A TW 111115167 A TW111115167 A TW 111115167A TW 202301204 A TW202301204 A TW 202301204A
Authority
TW
Taiwan
Prior art keywords
tensor
data
processor
model
dimension
Prior art date
Application number
TW111115167A
Other languages
English (en)
Other versions
TWI804285B (zh
Inventor
提摩西 史洛歌
拉斯 M 艾爾巴拉凱特
強納森 D 布瑞布里
塞德瑞 里奇丹拿
賽門 衛蕭普特
Original Assignee
美商萬國商業機器公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商萬國商業機器公司 filed Critical 美商萬國商業機器公司
Publication of TW202301204A publication Critical patent/TW202301204A/zh
Application granted granted Critical
Publication of TWI804285B publication Critical patent/TWI804285B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Neurology (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)

Abstract

執行一指令以執行一查詢功能。該執行包括獲得關於一處理器之一選定模型的資訊。該資訊包括該處理器之該選定模型之至少一個模型相依資料屬性。該資訊置放於一選定位置中以供至少一個應用程式在執行一或多個功能時使用。

Description

查詢模型相依資訊之指令
一或多個態樣大體上係關於促進計算環境內之處理,且特定言之,係關於改良此類處理。
為了增強資料及/或計算密集型計算環境中之處理,利用共處理器,諸如人工智慧加速器(亦被稱作神經網路處理器或神經網路加速器)。此類加速器提供大量計算能力,用於執行例如所涉及計算,諸如對矩陣或張量之計算。
作為一實例,張量計算用於複雜處理,包括深度學習,其為機器學習之子集。深度學習或機器學習(人工智慧之態樣)用於各種技術中,包括但不限於工程化、製造、醫療技術、汽車技術、電腦處理等。
張量及張量計算使得大量資料及/或詳細資料能夠輸入至深度學習處理。然而,用於深度學習處理中之加速器受到往返加速器之資料頻寬限制。當前,為了致力於解決此限制,在加速器處使用資料局部性及資料再使用。張量使用及/或使用此類張量之處理的進步將改良使用機器學習之技術,包括電腦處理。
經由提供用於促進計算環境內之處理的電腦程式產品來克服先前技術之缺點且提供額外優點。該電腦程式產品包括一或多個電腦可讀儲存媒體及共同地儲存於該一或多個電腦可讀儲存媒體上以執行一方法之程式指令。該方法包括執行一指令以執行查詢功能。該執行包括獲得關於處理器之選定模型的資訊。該資訊包括處理器之選定模型之至少一個模型相依資料屬性。該資訊置放於選定位置中以供至少一個應用程式在執行一或多個功能時使用。
查詢功能提供以下資訊:其使得機器能夠適應存在於機器之特定模型上之能力且促進解決涉及較大資料之問題。此改良使用機器學習之技術,包括電腦處理。
藉由執行查詢功能,至少一個資料屬性之模型相依資訊經獲得,且可用於使用具有至少一個資料屬性之資料來執行一或多個功能。對至少一個資料屬性之瞭解藉由為至少一個資料屬性準備應用程式來節省執行時間,從而允許該應用程式適應於資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省執行時間,且改良系統效能。
當至少一個資料屬性係關於張量及/或處理使用張量時,查詢功能提供對張量的使用及/或使用此類張量之處理的增強。
在一個實例中,至少一個模型相依資料屬性包括處理器之選定模型的一或多個經支援資料類型。藉由獲得經支援資料類型,應用程式係針對由處理器之特定模型所支援的資料類型進行定製,從而允許該應用程式適應資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省執行時間,且改良系統效能。
選定位置包括例如可由至少一個應用程式存取之參數區塊,且一或多個經支援資料類型包括於參數區塊之一或多個欄位中。藉由使參數區塊可由至少一個應用程式存取,該應用程式可學習經支援資料類型,且在處理時使用此知識,從而允許該應用程式適應資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省執行時間,且改良系統效能。
在一個實例中,至少一個模型相依資料屬性包括處理器之選定模型之一或多個經支援資料佈局格式。藉由獲得一或多個經支援資料佈局格式,針對由處理器之特定模型所支援的一或多個資料佈局格式定製應用程式,從而允許該應用程式適應資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省執行時間,且改良系統效能。
選定位置包括例如可由至少一個應用程式存取之參數區塊,且一或多個經支援資料佈局格式包括於參數區塊之一或多個欄位中。藉由使參數區塊可由至少一個應用程式存取,該應用程式可學習一或多個經支援資料佈局格式且在處理時使用此知識,從而允許該應用程式適應資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省執行時間,且改良系統效能。
在一個實例中,至少一個模型相依資料屬性包括處理器之選定模型的一或多個經支援資料大小。藉由獲得經支援資料大小,針對由處理器之特定模型所支援的一或多個資料大小定製應用程式,從而允許該應用程式適應資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省執行時間,且改良系統效能。
該選定位置包括例如可由至少一個應用程式存取之參數區塊,且一或多個經支援資料大小包括於參數區塊之一或多個欄位中。藉由使參數區塊可由至少一個應用程式存取,該應用程式可學習經支援資料大小,且在在處理時使用此知識,從而允許該應用程式適應資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省執行時間,且改良系統效能。
作為實例,一或多個經支援資料大小包括最大維度索引大小及最大張量大小。
作為一實例,選定位置包括可由至少一個應用程式存取之參數區塊,且參數區塊包括複數個欄位以儲存選定模型之複數個模型相依資料屬性。複數個欄位包括例如用以包括處理器之選定模型之一或多個經支援資料類型之已安裝資料類型欄位、用以包括處理器之選定模型之一或多個經支援資料佈局格式的已安裝資料佈局格式欄位,及用以包括處理器之選定模型之經支援資料大小的一或多個欄位。藉由使參數區塊可由至少一個應用程式存取,該應用程式可學習經支援資料類型、資料佈局格式及資料大小,且在處理時使用此知識,從而允許該應用程式適應資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省執行時間,且改良系統效能。
在一個實例中,該參數區塊進一步包括已安裝功能向量欄位及已安裝參數區塊格式欄位中之至少一者。已安裝功能向量欄位指示處理器之選定模型之一或多個經支援功能,且已安裝參數區塊格式欄位指示用於參數區塊之一或多個經支援格式。
本文中亦描述及主張與一或多個態樣相關之電腦實施方法及系統。此外,本文中亦描述及可能主張與一或多個態樣相關之服務。
藉由本文中所描述之技術實現額外特徵及優勢。本文中詳細描述其他實施例及態樣且將其視為所主張態樣之部分。
根據本發明之一或多個態樣,提供一種促進計算環境內之處理的能力。作為一實例,提供查詢功能,其傳達關於例如處理器之選定屬性(諸如,處理器之特定模型之選定屬性)的模型相依詳細資訊。選定屬性包括例如關於由處理器儲存及/或使用之資料的選定屬性,包括例如資料佈局、資料類型及/或資料大小。
在一個實例中,包括查詢功能作為經組態以執行包括例如查詢功能之多個功能的指令之部分,該指令諸如單個指令(例如,硬體/軟體介面處之單個架構化硬體機器指令)。該查詢功能經組態以指示由指令支援之功能/操作,以及關於一或多個資料屬性之詳細資訊。功能中之每一者經組態為單個指令(例如,單個架構化指令)之部分,從而縮減系統資源之使用並降低複雜度且改良系統效能。
該指令可為由諸如通用處理器之處理器上之程式分派的通用處理器指令集架構(ISA)之部分。其可由通用處理器執行,及/或該指令之一或多個功能可由諸如經組態以用於某些功能之共處理器之專用處理器執行,該專用處理器耦接至通用處理器或為該通用處理器之部分。其他變化亦為可能的。
用以包括且使用查詢功能之指令之一個實例為神經網路處理輔助指令,其用於提供與張量計算及/或其他操作相關的功能。下文進一步描述此指令之實例。儘管神經網路處理輔助指令為用以使用查詢功能之指令之實例,但其他指令亦可使用此功能。
參看圖1A描述併有及使用本發明之一或多個態樣的計算環境之一個實施例。作為一實例,該計算環境係基於由紐約阿蒙克市之國際商業機器公司提供之z/Architecture ®指令集架構。z/Architecture指令集架構之一個實施例描述於標題為「z/Architecture Principles of Operation」之公開案(IBM公開案第SA22-7832-12號,第十三版,2019年9月)中,該公開案特此以全文引用之方式併入本文中。然而,z/Architecture指令集架構僅為一個實例架構;國際商業機器公司及/或其他實體之其他架構及/或其他類型的計算環境可包括及/或使用本發明之一或多個態樣。z/Architecture及IBM為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。
參考圖1A,計算環境100包括例如以例如通用計算裝置之形式展示的電腦系統102。電腦系統102可包括但不限於經由一或多個匯流排及/或其他連接彼此耦接的一或多個通用處理器或處理單元104 (例如,中央處理單元(CPU))、諸如神經網路處理器105之至少一個專用處理器、記憶體106 (作為實例,亦稱為系統記憶體、主記憶體、主儲存器、中心儲存器或儲存器)及一或多個輸入/輸出(I/O)介面108。舉例而言,處理器104、105及記憶體106經由一或多個匯流排110耦接至I/O介面108,且處理器104、105經由一或多個匯流排111耦接至彼此。
舉例而言,匯流排111為記憶體或快取一致性匯流排,且匯流排110表示例如若干類型之匯流排結構中之任何一或多者,包括使用多種匯流排架構中之任一者的記憶體匯流排或記憶體控制器、周邊匯流排、加速圖形埠及處理器或區域匯流排。作為實例而非限制,此類架構包括工業標準架構(ISA)、微通道架構(MCA)、增強型ISA (EISA)、視訊電子標準協會(VESA)區域匯流排及周邊組件互連(PCI)。
作為實例,一或多個專用處理器(例如,神經網路處理器)可與一或多個通用處理器分離但耦接至該一或多個通用處理器,及/或可嵌入於一或多個通用處理器內。許多變化係可能的。
舉例而言,記憶體106可包括快取記憶體112,諸如共用快取記憶體,該快取記憶體可經由例如一或多個匯流排111耦接至處理器104之本端快取記憶體114及/或神經網路處理器105。另外,記憶體106可包括一或多個程式或應用程式116及至少一個作業系統118。實例作業系統包括由紐約阿蒙克市之國際商業機器公司提供之z/OS ®作業系統。z/OS為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。亦可使用由國際商業機器公司及/或其他實體供應的其他作業系統。記憶體106亦可包括一或多個電腦可讀程式指令120,該等指令可經組態以實行本發明之態樣之實施例的功能。
此外,在一或多個實施例中,記憶體106包括處理器韌體122。處理器韌體包括例如處理器之微碼或毫碼。其包括例如用於實施較高階機器碼之硬體層級指令及/或資料結構。在一個實施例中,其包括例如專屬碼,該專屬碼通常作為包括受信任軟體之微碼或毫碼、特定於底層硬體之微碼或毫碼遞送,且控制對系統硬體之作業系統存取。
電腦系統102可經由例如I/O介面108與一或多個外部裝置130通信,該一或多個外部裝置諸如使用者終端機、磁帶機、指標裝置、顯示器及一或多個資料儲存裝置134等。資料儲存裝置134可儲存一或多個程式136、一或多個電腦可讀程式指令138及/或資料等。電腦可讀程式指令可經組態以實行本發明之態樣的實施例之功能。
電腦系統102亦可經由例如I/O介面108與網路介面132通信,該網路介面使得電腦系統102能夠與諸如區域網路(LAN)、通用廣域網路(WAN)及/或公用網路(例如,網際網路)之一或多個網路通信,從而提供與其他計算裝置或系統之通信。
電腦系統102可包括及/或耦接至抽取式/非抽取式、揮發性/非揮發性電腦系統儲存媒體。舉例而言,其可包括及/或耦接至非抽取式非揮發性磁性媒體(通常被稱作「硬碟機」)、用於自抽取式非揮發性磁碟(例如,「軟碟」)讀取及寫入至抽取式非揮發性磁碟(例如,「軟碟」)之磁碟機,及/或用於自諸如CD-ROM、DVD-ROM或其他光學媒體之抽取式非揮發性光碟讀取或寫入至抽取式非揮發性光碟之光碟機。應理解,可結合電腦系統102使用其他硬體及/或軟體組件。實例包括但不限於:微碼或毫碼、裝置驅動程式、冗餘處理單元、外部磁碟機陣列、RAID系統、磁帶機及資料存檔儲存系統等。
電腦系統102可與眾多其他通用或專用計算系統環境或組態一起操作。可適合與電腦系統102一起使用之熟知計算系統、環境及/或組態之實例包括但不限於:個人電腦(PC)系統、伺服器電腦系統、精簡型用戶端、複雜型用戶端、手持型或膝上型電腦裝置、多處理器系統、基於微處理器之系統、機上盒、可程式化消費型電子裝置、網路PC、小型電腦系統、大型電腦系統及包括以上系統或裝置中之任一者的分散式雲端計算環境,以及其類似者。
在一個實例中,處理器(例如,處理器104及/或處理器105)包括用以執行指令之複數個功能組件(或其子集)。如圖1B中所描繪,此等功能組件包括例如:指令提取組件150,其用以提取將執行之指令;指令解碼單元152,其用以解碼所提取指令且獲得經解碼指令之運算元;一或多個指令執行組件154,其用以執行經解碼指令;記憶體存取組件156,其用以在必要時存取記憶體以執行指令;及寫回組件158,其用以提供所執行指令之結果。該等組件中之一或多者可在指令處理中存取及/或使用一或多個暫存器160。此外,組件中之一或多者可根據本發明之一或多個態樣包括用於執行查詢功能及/或例如神經網路處理輔助指令之神經網路處理輔助處理(或可使用本發明之一或多個態樣之其他處理)的一或多個其他組件之至少一部分或能夠存取該一或多個其他組件,如本文中所描述。一或多個其他組件包括例如查詢功能組件170及/或神經網路處理輔助組件172 (及/或一或多個其他組件)。
根據本發明之一或多個態樣,提供查詢功能,該查詢功能傳達與選定處理器(例如,神經網路處理器105)之特定模型相關的詳細資訊。作為實例,查詢功能經實施於處理器104中,此係由於處理器已知選定處理器之特定模型之細節,或其經實施於選定處理器(例如,神經網路處理器105)中。詳細資訊包括例如由諸如處理器之特定模型的處理器支援之模型相依資料屬性,以及由選定指令提供之功能/操作。在一個實例中,處理器為神經網路處理器(亦稱為神經網路加速器),諸如神經網路處理器105,且查詢功能係用於傳達至少關於由神經網路處理器之特定模型支援的資料屬性之詳細資訊。
參看圖2描述處理查詢功能之一個實例。此處理係由諸如通用處理器104之通用處理器執行。在其他實施例中,其可由諸如神經網路處理器105之專用處理器執行。其他實施例係可能的。
參看圖2,在一個實施例中,查詢功能係經由一指令起動,且因此,獲得指令200且執行指令210。在一個實例中,該執行包括判定該查詢功能是否由指令指定220。此包括例如解碼該指令且檢查該指令之至少一個運算元以判定起動哪一功能。若不指定查詢功能220,則執行其他指令處理230。然而,若指定查詢功能220,則獲得與特定處理器(尤其,處理器之特定模型)相關的資訊240。機器或處理器之特定模型具有某些能力。機器或處理器(例如,當前實施)之另一模型可具有額外、更少及/或不同能力及/或屬於具有額外、更少及/或不同能力之不同代(例如,當代或未來一代)。經獲得資訊包括例如特定處理器之模型相依屬性,尤其關於由特定處理器之特定模型使用及/或儲存之資料的屬性。查詢功能亦獲得例如特定功能之指示,該等特定功能可經由例如用於執行查詢功能之指令在處理器上執行。亦可獲得額外、較少及/或其他資訊。
在一個實例中,該資訊係由執行查詢功能之處理器之韌體獲得。韌體知曉特定處理器(例如,神經網路處理器)之特定模型的屬性。此資訊可儲存於例如控制區塊、暫存器及/或記憶體中及/或以其他方式可由執行查詢功能之處理器存取。
經獲得資訊置放於例如參數區塊或其他結構中,該參數區塊或其他結構可由一或多個應用程式存取及/或用於與一或多個應用程式一起使用,該一或多個應用程式可在進一步處理時使用此資訊250。在一個實例中,參數區塊及/或參數區塊之資訊維持於記憶體中。在其他實施例中,參數區塊及/或資訊可維持在一或多個硬體暫存器中。作為另一實例,查詢功能可為由作業系統執行之特權操作,其使應用程式設計介面可用以使此資訊可用於應用程式或其他非特權程式。在又另一實例中,該查詢功能係由諸如神經網路處理器105之專用處理器執行。其他實例係可能的。
在一個特定實例中,該查詢功能經執行以判定關於諸如神經網路處理器105之神經網路處理器的資訊。該資訊包括例如由神經網路處理器之選定模型支援的資料類型、資料大小及/或資料佈局格式。此資訊為模型相依的,此係因為其他模型(例如,先前模型及/或未來模型)可能不支援相同資料屬性,諸如相同資料類型、資料大小及/或資料佈局格式。
在其他實施例中,可獲得其他資訊。例如,應用程式在進一步處理時使用經獲得資訊(例如,模型相依資料屬性及/或其他資訊)。舉例而言,應用程式在諸如通用處理器104之處理器上執行神經網路處理輔助指令,以便獲得關於神經網路處理器之模型相依資訊(例如,模型相依資料屬性),及/或其他資訊(例如,由指令及/或神經網路處理器、參數區塊格式等支援之功能)。接著,經獲得資訊(至少選定資訊)用於神經網路處理輔助指令之其他執行中,以執行由該指令指定之其他功能,在本文中被稱作非查詢功能。此等非查詢功能用於執行與例如張量計算相關的操作。在一個實施例中,神經網路處理輔助指令之其他執行係由通用處理器起動,但由指令指定之非查詢功能係由專用處理器(例如,神經網路處理器105)使用經獲得資訊之至少一部分來執行。在下文描述關於查詢功能及神經網路處理輔助指令之其他細節。
參看圖3A描述神經網路處理輔助指令之一個實例。在一個實例中,指令在通用處理器(例如,處理器104)上起動且由指令指定之功能取決於該功能而在通用處理器及/或專用處理器(例如,專用處理器105)上執行。該指令接著在通用處理器上完成。在其他實例中,該指令在一或多個通用處理器或一或多個專用處理器上起動、執行及完成。其他變化為可能的。在本文中之描述中,指示特定位置、特定欄位及/或特定欄位大小(例如,特定位元組及/或位元)。然而,可提供其他位置、欄位及/或大小。此外,儘管可指定將位元設定為例如一或零之特定值,但此僅為實例。在其他實例中,若設定,則可將位元設定為不同值,諸如相反值或另一值。許多變化係可能的。
在一個實例中,參看圖3A,神經網路處理輔助指令300具有RRE格式,其表示具有延伸作業碼(opcode)之暫存器及暫存器操作。如圖3A中所展示,在一個實例中,神經網路處理輔助指令300包括指示神經網路處理輔助操作之作業碼(opcode)欄位302 (例如,位元0至15)。在一個實例中,指令之位元16至31被保留且將含有零。
在一個實例中,該指令使用由該指令隱含地指定之複數個通用暫存器。舉例而言,神經網路處理輔助指令300使用隱含的暫存器:通用暫存器0及通用暫存器1,其實例係分別參看圖3B及圖3D進行描述。
參看圖3B,在一個實例中,通用暫存器0包括功能碼欄位及可在指令完成後更新之狀態欄位。作為實例,通用暫存器0包括回應碼欄位310 (例如,位元0至15)、異常旗標欄位312 (例如,位元24至31)及功能碼欄位314 (例如,位元56至63)。此外,在一個實例中,保留通用暫存器0之位元16至23及32至55,且其將含有零。一或多個欄位供由指令執行之特定功能使用。在一個實例中,並非所有欄位均由所有功能使用。在下文描述欄位中之每一者:
回應碼(RC) 310:此欄位(例如,位元位置0至15)含有回應碼。當神經網路處理輔助指令之執行以例如一之條件碼完成時,儲存回應碼。當遇到無效輸入條件時,將非零值儲存至回應碼欄位,其指示在執行期間辨識到無效輸入條件之原因,且設定選定條件碼,例如1。在一個實例中,如下定義儲存至回應碼欄位之碼:
回應碼 含義
0001         模型不支援如由參數區塊版本號碼指定之參數區塊的格式。
0002         機器上未定義或安裝指定功能。
0010         不支援指定張量資料佈局格式。
0011         不支援指定張量資料類型。
0012         指定單個張量維度大於最大維度索引大小。
0013         指定張量之大小大於最大張量大小。
0014         指定張量位址未在4K位元組邊界上對準。
0015         功能特定保存區域位址未在4K位元組邊界上對準。
F000-FFFF功能特定回應碼。針對某些功能定義此等回應碼。
異常旗標(EF) 312:此欄位(例如,位元位置24至31)包括異常旗標。若在指令執行期間偵測到異常條件,則對應異常旗標控制項(例如,位元)將被設定為例如一;否則,控制項保持不變。在第一次調用指令之前,將異常旗標欄位初始化為零。在指令執行期間,保留旗標不變。在一個實例中,如下定義儲存至異常旗標欄位之旗標:
EF (位元) 含義
0            範圍違規。當在輸入張量中偵測到非數值或非數值經儲存至輸出張量時,設定此旗標。此旗標例如僅在該指令運用例如0之條件碼完成時係有效的。
1-7         保留。
功能碼(FC) 314:此欄位(例如,位元位置56至63)包括功能碼。為神經網路處理輔助指令指派之功能碼的實例描繪於圖3C中。未指派所有其他功能碼。若指定未指派或未安裝之功能碼,則設定例如0002 hex之回應碼及例如1之選擇條件碼。此欄位在執行期間不會被修改。
如所指示,除通用暫存器0以外,神經網路處理輔助指令亦使用通用暫存器1,其實例描繪於圖3D中。作為實例,24位元定址模式中之位元40至63、31位元定址模式中之位元33至63或64位元定址模式中之位元0至63包括參數區塊320之位址。舉例而言,通用暫存器1之內容指定儲存器中之參數區塊的最左位元組之邏輯位址。參數區塊待指明於雙字邊界上;否則,辨識到規格異常。對於所有功能,通用暫存器1之內容不會被修改。
在存取暫存器模式中,作為實例,存取暫存器1指定含有參數區塊、輸入張量、輸出張量及功能特定保存區域之位址空間。
在一個實例中,取決於由待執行之指令指定的功能,參數區塊可具有不同格式。舉例而言,查詢功能具有一個格式之參數區塊,且該指令之其他功能具有另一格式之參數區塊。在另一實例中,所有功能均使用相同的參數區塊格式。其他變化亦係可能的。
參看圖3E描述由諸如NNPA查詢可用功能(QAF)操作之查詢功能使用的參數區塊之一個實例。如所展示,在一個實例中,NNPA查詢可用功能參數區塊330包括例如:
已安裝功能向量332:參數區塊之此欄位(例如,位元組0至31)包括已安裝功能向量。在一個實例中,已安裝功能向量之位元0至255分別對應於神經網路處理輔助指令之功能碼0至255。當位元為例如一時,安裝對應功能;否則,不安裝功能。
已安裝參數區塊格式向量334:參數區塊之此欄位(例如,位元組32至47)包括已安裝參數區塊格式向量。在一個實例中,已安裝參數區塊格式向量之位元0至127對應於用於神經網路處理輔助指令之非查詢功能的參數區塊格式0至127。當位元為例如一時,安裝對應參數區塊格式;否則,不安裝該參數區塊格式。
已安裝資料類型336:參數區塊之此欄位(例如,位元組48至49)包括已安裝資料類型向量。在一個實例中,已安裝資料類型向量之位元0至15對應於正安裝之資料類型。當位元為例如一時,安裝對應資料類型;否則,不安裝資料類型。實例資料類型包括(額外、更少及/或其他資料類型係可能的):
位元 料類型
0                   NNP資料類型1
1-15              保留
已安裝資料佈局格式338:參數區塊之此欄位(例如,位元組52至55)包括已安裝資料佈局格式向量。在一個實例中,已安裝資料佈局格式向量之位元0至31對應於正安裝之資料佈局格式。當位元為例如一時,安裝對應資料佈局格式;否則,不安裝該資料佈局格式。實例資料佈局格式包括(額外、更少及/或其他資料佈局格式係可能的):
位元 資料佈局格式
0                4D-特徵張量
1                4D-內核張量
2-31           保留
最大維度索引大小340:參數區塊之此欄位(例如,位元組60至63)包括例如32位元無正負號二進位整數,其指定任何指定張量之指定維度索引大小中的元素之最大數目。在另一實例中,最大維度索引大小指定任何指定張量之指定維度索引大小中的位元組之最大數目。其他實例亦為可能的。
最大張量大小342:參數區塊之此欄位(例如,位元組64至71)包括例如32位元無正負號二進位整數,其指定包括張量格式所需之任何填補位元組的任何指定張量中之位元組的最大數目。在另一實例中,最大張量大小指定包括張量格式所需之任何填補的任何指定張量中之總元素的最大數目。其他實例亦為可能的。
已安裝NNP資料類型1轉換向量344:參數區塊之此欄位(例如,位元組72至73)包括已安裝NNP資料類型1轉換向量。在一個實例中,已安裝NNP資料類型1轉換向量之位元0至15對應於自/至NNP資料類型1格式之已安裝資料類型轉換。當位元為一時,安裝對應轉換;否則,不安裝轉換。可指定額外、更少及/或其他轉換。
位元           資料類型
0                保留
1                BFP微格式
2                BFP短格式
3-15           保留
儘管參看圖3E描述用於查詢功能之參數區塊的一個實例,但可使用用於查詢功能之參數區塊的其他格式,包括NNPA查詢可用功能操作。在一個實例中,該格式可取決於待執行之查詢功能之類型。另外,參數區塊及/或參數區塊之每一欄位可包括額外、更少及/或其他資訊。
除用於查詢功能之參數區塊以外,在一個實例中,亦存在用於非查詢功能之參數區塊格式,諸如神經網路處理輔助指令之非查詢功能。參看圖3F描述由非查詢功能使用之參數區塊的一個實例,諸如神經網路處理輔助指令之非查詢功能。
如所展示,在一個實例中,由例如神經網路處理輔助指令之非查詢功能使用的參數區塊350包括例如:
參數區塊版本號碼352:參數區塊之此欄位(例如,位元組0至1)指定參數區塊之版本及大小。在一個實例中,參數區塊版本號碼之位元0至8被保留且將含有零,且參數區塊版本號碼之位元9至15含有指定參數區塊之格式的無正負號二進位整數。查詢功能提供指示可用之參數區塊格式的機制。當模型不支援指定參數區塊之大小或格式時,例如0001 hex之回應碼儲存於通用暫存器0中,且指令藉由設定條件碼(例如,條件碼1)而完成。參數區塊版本號碼係由程式指定且在指令執行期間不會被修改。
模型版本號碼354:參數區塊之此欄位(例如,位元組2)為識別執行指令(例如,特定非查詢功能)之模型的無正負號二進位整數。當接續旗標(下文所描述)為一時,模型版本號碼可為操作之輸入,以便解譯參數區塊之接續狀態緩衝器欄位(下文所描述)的內容,以重新繼續操作。
接續旗標356:參數區塊之此欄位(例如,位元63)當為例如一時指示操作部分完成且接續狀態緩衝器之內容可用以重新繼續操作。程式將接續旗標初始化為零且在出於重新繼續操作之目的而重新執行指令的情況下不修改接續旗標;否則,結果不可預測。
若在操作開始時設定接續旗標且參數區塊之內容自初始調用起已改變,則結果不可預測。
功能特定保存區域位址358:參數區塊之此欄位(例如,位元組56至63)包括功能特定保存區域之邏輯位址。在一個實例中,功能特定保存區域位址待在4K位元組邊界上對準;否則,例如0015 hex之回應碼設定於通用暫存器0中且指令以例如1之條件碼完成。位址以當前定址模式為準。功能特定保存區域之大小取決於功能碼。
當整個功能特定保存區域與指明的程式事件記錄(PER)儲存區域重疊時,在適用時針對功能特定保存區域而辨識PER儲存區改變事件。當僅功能特定保存區域之一部分與指明的PER儲存區域重疊時,會發生以下情況中之哪一種為模型相依的:
*  在適用時針對整個功能特定保存區域而辨識PER儲存區改變事件。
*  在適用時針對所儲存之功能特定保存區域的部分而辨識PER儲存區改變事件。
當整個參數區塊與指定的PER儲存區域重疊時,適當時針對參數區塊辨識到PER儲存區改變事件。當僅參數區塊之一部分與指定的PER儲存區域重疊時,會發生以下情況中之哪一種為模型相依的:
*  在適用時針對整個參數區塊而辨識PER儲存區改變事件。
*  適當時針對參數區塊中經儲存部分辨識到PER儲存器改變事件。
在適用時針對參數區塊而辨識PER零位址偵測事件。在一個實例中,零位址偵測不適用於張量位址或功能特定保存區域位址。
輸出張量描述符(例如,1至2) 360/輸入張量描述符(例如,1至3) 365:參看圖3G描述張量描述符之一個實例。在一個實例中,張量描述符360、365包括:
資料佈局格式382:張量描述符之此欄位(例如,位元組0)指定資料佈局格式。舉例而言,有效資料佈局格式包括(額外、更少及/或其他資料佈局格式係可能的):
格式 描述 對準 ( 位元組 )
0             4D-特徵張量          4096
1             4D-內核張量          4096
2-255       保留                         --
若指定不支援或保留的資料佈局格式,則例如0010 hex之回應碼儲存於通用暫存器0中,且指令藉由設定例如1之條件碼而完成。
資料類型384:此欄位(例如,位元組1)指定張量之資料類型。下文描述所支援之資料類型的實例(額外、更少及/或其他資料類型係可能的):
資料類型 資料大小 ( 位元 )
0                NNP資料類型1            16
1-255         保留                          --
若指定不支援或保留的資料類型,則例如0011 hex之回應碼儲存於通用暫存器0中,且指令藉由設定例如1之條件碼而完成。
維度1至4索引大小386:總體而言,維度索引大小一至四指定4D張量之形狀。每一維度索引大小將大於零且小於或等於最大維度索引大小(340,圖3E);否則,例如0012 hex之回應碼儲存於通用暫存器0中且指令藉由設定例如1之條件碼而完成。總張量大小將小於或等於最大張量大小(342,圖3E);否則,例如0013 hex之回應碼儲存於通用暫存器0中且指令藉由設定例如1之條件碼而完成。
在一個實例中,為判定具有NNPA資料類型1之元素的4D特徵張量中的位元組之數目(亦即,總張量大小),使用以下公式:維度索引4*維度索引3*ceil (維度索引2/32)*32*ceil (維度索引1/64)*64*2。
張量位址388:張量描述符之此欄位(例如,位元組24至31)包括張量之最左位元組的邏輯位址。位址以當前定址模式為準。
若位址在相關聯的資料佈局格式的邊界上未對準,則例如0014 hex之回應碼儲存於通用暫存器0中且指令藉由設定例如1之條件碼而完成。
在存取暫存器模式中,存取暫存器1指定儲存器中含有所有作用中輸入及輸出張量之位址空間。
返回圖3F,在一個實例中,參數區塊350進一步包括可由特定功能使用之功能特定參數1至5 (370),如本文中所描述。
此外,在一個實例中,參數區塊350包括接續狀態緩衝器欄位375,該欄位包括在此指令之操作待重新繼續的情況下使用的資料(或資料之位置)。
作為操作之輸入,參數區塊之保留欄位應含有零。當操作結束時,保留欄位可儲存為零或保持不變。
儘管參看圖3F描述用於非查詢功能之參數區塊的一個實例,但可使用用於非查詢功能之參數區塊的其他格式,包括神經網路處理輔助指令之非查詢功能。在一個實例中,該格式可取決於待執行之功能之類型。此外,儘管參看圖3G描述張量描述符之一個實例,但亦可使用其他格式。此外,可使用用於輸入及輸出張量之不同格式。其他變化為可能的。
下文描述關於由神經網路處理輔助指令之一個實施例支援之各種功能的其他細節:
功能碼 0 NNPA - QAF ( 查詢可用功能 )
神經網路處理輔助(NNPA)查詢功能提供指示諸如以下各者之選定資訊的機制:已安裝功能之可用性;已安裝參數區塊格式;已安裝資料類型;已安裝資料佈局格式;最大維度索引大小及最大張量大小。獲得資訊且將其置放於諸如參數區塊(例如,參數區塊330)之選定位置中。當操作結束時,參數區塊之保留欄位可儲存為零或可保持不變。
在執行查詢功能之一個實施例時,諸如通用處理器104之處理器獲得與選定處理器之特定模型相關之資訊,諸如神經網路處理器(諸如,神經網路處理器105)之特定模型。將經獲得資訊置放於參數區塊(例如,參數區塊330)或可由一或多個應用程式存取及/或用於與一或多個應用程式一起使用之其他結構中,該一或多個應用程式可在進一步處理中使用此資訊。
舉例而言,所獲得資訊包括關於特定處理器之至少一或多個資料屬性的模型相依詳細資訊,包括例如特定處理器之選定模型的一或多個已安裝或支援的資料類型、一或多個已安裝或支援的資料佈局格式及/或一或多個已安裝或支援的資料大小。此資訊為模型相依的,此係因為其他模型(例如,先前模型及/或未來模型)可能不支援相同資料屬性,諸如相同資料類型、資料大小及/或資料佈局格式。當查詢功能(例如,NNPA-QAF功能)之執行完成時,作為實例,設定條件碼0。在一個實例中,條件碼1、2及3不適用於查詢功能。下文描述與所獲得資訊相關之其他資訊。
如所指示,在一個實例中,所獲得資訊包括關於例如神經網路處理器之特定模型之一或多個資料屬性的模型相依資訊。資料屬性之一個實例為神經網路處理器之已安裝資料類型。舉例而言,作為實例,神經網路處理器(或其他處理器)之特定模型可支援一或多個資料類型,諸如NNP資料類型1資料類型(亦被稱作神經網路處理資料類型1資料類型)及/或其他資料類型。NNP資料類型1資料類型為16位元浮點格式,其為深度學習訓練及推斷計算提供數個優點,包括例如:保持深度學習網路之準確度;消除簡化捨入模式及處置極端狀況之次正常格式;自動捨入至最接近的算術運算值;及將無窮大且非數字(NaN)之特殊實體組合成一個值(NINF),其由算術運算接受及處置。NINF提供指數溢出及無效運算(諸如,除以零)之較佳預設。此允許許多程式在不隱藏此類錯誤之情況下及在不使用特殊化異常處理常式之情況下繼續執行。其他模型相依資料類型亦係可能的。
NNP資料類型1資料類型之格式的一個實例描繪於圖4中。如所描繪,在一個實例中,NNP資料類型1資料可以格式400表示,其包括例如正負號402 (例如,位元0)、指數+31 404(例如,位元1至6)及分數406 (例如,位元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資料類型1數之二進位小數點被視為在最左分數位元之左方。二進位小數點之左邊存在暗示單位位元,其對於正常數被視為一且對於零被視為零。左方附加有隱含的單位位元之分數為數字之有效位。
正常NNP資料類型1之值為有效位乘以基數2之無偏指數冪。
非零數之值:下文展示非零數之值:
數字類別
正常數                         ± 2 e-31x (1.f)
其中e為以十進位展示之有偏指數,且f為二進位的分數。
在一個實施例中,存在三個類別之NNP資料類型1資料,包括數值及相關非數值實體。每一資料項目包括正負號、指數及有效位。指數為有偏的,使得所有有偏指數為非負無正負號數且最小有偏指數為零。有效位包括在二進位小數點左方之顯式分數及隱式單位位元。正負號位元對於加為零,且對於減為一。
所准許之所有非零有限數具有唯一的NNP資料類型1表示。不存在次正常數,該等數字可允許相同值之多個表示,且不存在次正常算術運算。三種類別包括例如:
資料類別 正負號 有偏指數 單位位元 * 分數
零             ±                   0               0           0
正常數       ±                   0               1           非0
正常數       ±          非0,並非全一     1           任一值
正常數       ±                全一             -         並非全一
NINF        ±                全一             -           全一 其中:-指示不適用,*指示暗示單位位元,NINF並非數字或無窮大。
下文描述關於類別中之每一者的其他細節:
零:零具有為零之有偏指數及零分數。暗示單位位元為零。
正常數:正常數可具有任何值之有偏指數。當有偏指數為0時,分數為非零。當有偏指數為全一時,分數並非全一。其他有偏指數值可具有任何分數值。對於所有正常數,隱含的單位位元為一。
NINF:NINF由全一之有偏指數及全一之分數表示。NINF表示不在NNP資料類型1 (亦即,經設計用於深度學習之16位元浮點,其具有6個指數位元及9個分數位元)中之可表示值之範圍內的值。通常,NINF僅在計算期間傳播使得其在最後保持可見。
儘管在一個實例中支援NNP資料類型1資料類型,但可支援其他模型相依(例如,特殊的或非標準的)資料類型以及一或多個標準資料類型,包括但不限於:僅舉幾例,IEEE 754短精度、二進位浮點16位元、IEEE半精度浮點、8位元浮點、4位元整數格式及/或8位元整數格式。此等資料格式對於神經網路處理具有不同品質。作為實例,較小資料類型(例如,較少位元)可被較快地處理且使用較少快取記憶體/記憶體,且較大資料類型在神經網路中提供較高的結果準確度。待支援之資料類型可在查詢參數區塊中(例如,在參數區塊330之已安裝資料類型欄位336中)具有一或多個指派位元。舉例而言,在已安裝資料類型欄位中指示由特定處理器支援之模型相依、特殊或非標準資料類型,但不指示標準資料類型。在其他實施例中,亦指示一或多個標準資料類型。其他變化為可能的。
在一個特定實例中,為NNP資料類型1資料類型保留已安裝資料類型欄位336之位元0,且當將其設定為例如1時,其指示處理器支援NNP資料類型1。在一個實例中,已安裝資料類型之位元向量經組態以表示多達16個資料類型,其中將一位元指派給每一資料類型。然而,在其他實施例中,位元向量可支援更多或更少資料類型。另外,可組態向量,其中將一或多個位元指派給一資料類型。許多實例係可能的及/或可在向量中支援及/或指示額外、更少及/或其他資料類型。
在一個實例中,查詢功能獲得安裝於模型相依處理器上之資料類型的指示,且藉由例如設定參數區塊330之已安裝資料類型欄位336中之一或多個位元而將指示置放於參數區塊中。另外,在一個實例中,查詢功能獲得已安裝資料佈局格式(另一資料屬性)之指示,且藉由例如設定已安裝資料佈局格式欄位338中之一或多個位元而將資訊置放於參數區塊中。舉例而言,實例資料佈局格式包括4D特徵張量佈局及4D內核張量佈局。在一個實例中,本文中所指示之功能使用4D特徵張量佈局,且在一個實例中,卷積功能使用4D內核張量佈局。此等資料佈局格式以提高執行神經網路處理輔助指令之功能之處理效率的方式配置儲存器中用於張量之資料。舉例而言,為高效地操作,神經網路處理輔助指令使用以特定資料佈局格式提供之輸入張量。儘管提供實例佈局,但可針對本文中所描述之功能及/或其他功能提供額外、更少及/或其他佈局。
特定處理器模型之佈局的使用或可用性由已安裝資料佈局格式(例如,參數區塊330之欄位338)之向量提供。舉例而言,該向量為允許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張量:
Figure 02_image001
Figure 02_image003
係指向上取整函數。(換言之:E4 * E3 * ceil (E2/32) * 32 * ceil (E1/64) * 64個元素。)
通用張量之元素[e4][e3][e2][e1]可映射至所得5D張量之以下元素:
Figure 02_image005
,其中
Figure 02_image007
為向下取整函數且mod係模數。(換言之:元素(E3 * e2_limit * e1_limit * e4x) + (e2_limit * e3x * 64) + (e2x * 64) + (
Figure 02_image009
* e2_limit * E3 * 64) + (e1x mod 64),其中e2_limit =
Figure 02_image011
* 32且e1_limit =
Figure 02_image013
* 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特徵張量佈局的輸入資料佈局之一個實例展示於圖5A至圖5C中,且4D特徵張量佈局之實例輸出描繪於圖6A至圖6C中。參看圖5A,展示3D張量500,其具有維度E1、E2及E3。在一個實例中,每一3D張量包括複數個2D張量502。每一2D張量502中之數字描述其元素中之每一者將在記憶體中之位置的記憶體偏移。輸入用以將原始張量(例如,圖5A至圖5C之原始4D張量)之資料佈置在記憶體中,如對應於圖5A至圖5C之圖6A至圖6C中所展示。
在圖6A中,作為實例,記憶體600之單元(例如,記憶體頁面)包括預選數目(例如,32)個列602,其中之每一者由例如e2_page_idx識別;且每一列具有預選數目(例如,64)個元素604,其各自由例如e1_page_idx識別。若一列不包括預選數目個元素,則其被填補606,被稱作列或E1填補;且若記憶體單元不具有預選數目個列,則其被填補608,被稱作頁面或E2填補。作為實例,列填補為例如零或其他值,且頁面填補為例如現有值、零或其他值。
在一個實例中,列之輸出元素係基於其對應輸入在E1方向上之元素位置而提供於記憶體中(例如,頁面中)。舉例而言,參看圖5A,所展示之三個矩陣的元素位置0、1及2 (例如,在每一矩陣之同一位置處的元素位置)展示於圖6A之頁面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張量:
Figure 02_image015
Figure 02_image017
係指向上取整函數。(換言之:E4 * E3 * ceil (E2/32) * 32 * ceil (E1/64) * 64個元素。)
通用張量之元素[e4][e3][e2][e1]可映射至所得5D張量之以下元素:
Figure 02_image019
,其中
Figure 02_image021
係指向下取整函數且mod係模數。換言之:元素(
Figure 02_image023
* E4 * E3 * e2_limit * 64) + (e4x * E3 * e2_limit * 64) + (e3x * e2_limit * 64) + (e2x * 64) + (e1x mod 64),其中e2_limit =
Figure 02_image025
* 32且e1_limit =
Figure 02_image027
* 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內核張量佈局,但處理器(例如,神經網路處理器105)可支援其他資料佈局格式。獲得所支援資料佈局之指示且藉由設定例如欄位338中之一或多個位元而將其置放於查詢參數區塊中。
根據本發明之一或多個態樣,查詢參數區塊亦包括其他資料屬性資訊,其包括例如資料之所支援大小資訊。諸如神經網路處理器之處理器通常具有基於內部緩衝器大小、處理單元、資料匯流排結構、韌體限制等之限制,其可限制張量維度之最大大小及/或張量之總大小。因此,查詢功能提供欄位以將此等限制傳達至應用程式。舉例而言,基於執行查詢功能,處理器獲得各種資料大小,諸如最大維度索引大小(例如,65,536個元素)及最大張量大小(例如,8 GB),且將此資訊分別包括於參數區塊(例如,參數區塊330)之欄位340及342中。額外、更少及/或其他大小資訊亦可由處理器(例如,神經網路處理器105)支援,且因此獲得並置放於參數區塊中,例如欄位340、342及/或其他欄位中。在其他實施例中,限制可更小或更大,及/或大小可為其他單位,諸如位元組而非元素、元素而非位元組等。此外,其他實施例允許每一維度具有不同最大大小,而非所有維度具有相同最大值。許多變化係可能的。
根據本發明之一或多個態樣,提供查詢功能,該查詢功能傳達與選定處理器(例如,神經網路處理器105)之特定模型相關的詳細資訊。舉例而言,詳細資訊包括與特定處理器相關之模型相依資訊。(處理器亦可支援標準資料屬性,諸如標準資料類型、標準資料佈局等,該等屬性為隱含的且未必由查詢功能呈現;但在其他實施例中,查詢功能可指示資料屬性之所有或各種選定子集等。)儘管提供實例資訊,但在其他實施例中,可提供其他資訊。針對處理器之不同模型及/或不同處理器可能不同的所獲得資訊用以執行人工智慧及/或其他處理。人工智慧及/或其他處理可使用例如神經網路處理輔助指令之一或多個非查詢功能。藉由一或多次執行神經網路處理輔助指令及指定非查詢特定功能來執行用於處理中之特定非查詢功能。
下文描述由神經網路處理輔助指令支援之非查詢功能的實例(在其他實施例中,可支援額外、更少及/或其他功能):
功能碼 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及功能特定保存區域位址欄位。
功能碼 17 NNPA - SUB ( 減法 )
當指定NNPA-SUB功能時,自藉由張量描述符1所描述之輸入張量1的對應元素減去由張量描述符2所描述之輸入張量2的每一元素,且將所得差置放於輸出張量之對應元素中。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1、輸入張量2及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符3、功能特定參數1至5及功能特定保存區域位址欄位。
功能碼 18 NNPA - MUL ( 乘法 )
當指定NNPA-MUL功能時,將由張量描述符1所描述之輸入張量1 (乘數)之每一元素與由張量描述符2所描述之輸入張量2 (被乘數)之對應元素的乘積置放於輸出張量之對應元素中。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1、輸入張量2及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符3、功能特定參數1至5及功能特定保存區域位址欄位。
功能碼 19 NNPA - DIV ( 除法 )
當指定NNPA-DIV功能時,將由張量描述符1所描述之輸入張量1 (被除數)的每一元素除以由張量描述符2所描述之輸入張量2 (除數)的對應元素,且將商置放於輸出張量之對應元素中。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1、輸入張量2及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符3、功能特定參數1至5及功能特定保存區域位址欄位。
功能碼 20 NNPA - MIN ( 最小值 )
當指定NNPA-MIN功能時,將由張量描述符1所描述之輸入張量1的每一元素與由張量描述符2所描述之輸入張量2的對應元素進行比較。將兩個值中之較小值置放於輸出張量描述符之對應元素中。若兩個值相等,則將值置放於輸出張量之對應元素中。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1、輸入張量2及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符3、功能特定參數1至5及功能特定保存區域位址欄位。
功能碼 21 NNPA - MAX ( 最大值 )
當指定NNPA-MAX功能時,將由張量描述符1所描述之輸入張量1的每一元素與由張量描述符2所描述之輸入張量2的對應元素進行比較。將兩個值中之較大值置放於輸出張量描述符之對應元素中。若兩個值相同,則將值置放於輸出張量之對應元素中。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1、輸入張量2及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符3、功能特定參數1至5及功能特定保存區域位址欄位。
功能碼 32 NNPA - LOG ( 自然對數 )
當指定NNPA-LOG功能時,對於由張量描述符1所描述之輸入張量的每一元素,若彼元素大於零,則由輸出張量描述符所描述之輸出張量中的對應元素為彼元素之自然對數。否則,輸出張量中之對應元素無法用數值表示,且儲存與目標資料類型中之負無窮大相關聯的值。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符2、輸入張量描述符3、功能特定參數1至5及功能特定保存區域位址欄位。
功能碼 33 NNPA - EXP ( 指數 )
當指定NNPA-EXP功能時,對於由張量描述符1所描述之輸入張量的每一元素,由輸出張量描述符所描述之輸出張量中的對應元素為彼元素之指數。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符2、輸入張量描述符3、功能特定參數1至5及功能特定保存區域位址欄位。
功能碼 49 NNPA - RELU ( 整流線性單元 )
當指定NNPA-RELU功能時,對於由張量描述符1所描述之輸入張量的每一元素,若彼元素小於或等於零,則由輸出張量描述符所描述之輸出張量中的對應元素為零。否則,輸出張量中之對應元素為輸入張量中之元素與在功能特定參數1中指定之限幅值中的最小值。
作為實例,功能特定參數1定義RELU操作之限幅值。舉例而言,限幅值在功能特定參數1之位元16至31中。限幅值指定於例如NNPA資料類型1格式中。限幅值零指示使用最大正值;換言之,不執行限幅。若指定負值,則辨識到一般運算元資料異常。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符2、輸入張量描述符3及功能特定保存區域位址欄位。在一個實例中,功能特定參數2至5將含有零。
功能碼 50 NNPA - TANH
當指定NNPA-TANH功能時,對於由張量描述符1所描述之輸入張量的每一元素,由輸出張量描述符所描述之輸出張量中的對應元素值為彼元素之雙曲正切。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符2、輸入張量描述符3、功能特定參數1至5及功能特定保存區域位址欄位。
功能碼 51 NNPA - SIGMOID
當指定NNPA-SIGMOID功能時,對於由張量描述符1所描述之輸入張量的每一元素,由輸出張量描述符所描述之輸出張量中的對應元素為彼元素之S型。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,輸入張量1及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符2、輸入張量描述符3、功能特定參數1至5及功能特定保存區域位址欄位。
功能碼 52 NNPA - SOFTMAX
當指定NNPA-SOFTMAX功能時,對於輸入張量1之維度1中的每一向量,計算輸出張量中之對應向量,如下文所描述:
*  計算向量之最大值。
*  計算向量之維度1中的每一元素與上文計算之最大值之間的差之指數的總和。若輸入向量之維度1中的元素及上文計算之最大值兩者為數值且差為非數值,則彼元素之指數的結果強制為零。
*  對於向量中之每一元素,中間商由元素與上文計算之最大值之間的差之指數除以上文計算之總和形成。將視情況選用之激勵函數應用於此中間商以形成輸出向量中之對應元素。
對於例如維度1中的所有維度4索引大小×維度3索引大小×維度2索引大小個向量,重複此程序。
在一個實例中,NNPA-SOFTMAX函數特定參數1控制激勵函數。作為一實例,功能特定參數1之ACT欄位(例如,位元28至31)指定激勵函數。實例激勵函數包括:
ACT 激勵函數
0                不執行激勵函數
1                LOG
2-15           保留
若為ACT欄位指定保留值,則報告例如F001 hex之回應碼且操作以例如1之條件碼完成。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,若輸入張量之維度3索引大小不等於一,則儲存例如F000 hex之回應碼且指令以例如1之條件碼完成。
在一個實例中,輸入張量1及輸出張量之形狀、資料佈局及資料類型將相同;否則,辨識到一般運算元資料異常。
在一個實例中,忽略輸出張量描述符2、輸入張量描述符2及輸入張量描述符3。在一個實例中,功能特定參數2至5將含有零。
此功能可使用8K位元組功能特定保存區域。
在一個實施例中,當獲得維度1中之向量時,取決於指定資料佈局格式,元素在記憶體中可能不連續。若輸入張量1之維度1向量的所有元素含有可在指定資料類型中表示之最大量值負數,則結果可能不太準確。
功能碼 64 NNPA - BATCHNORM ( 批次正規化 )
當指定NNPA-BATCHNORM功能時,對於輸入1張量之維度1中的每一向量,藉由將向量中之每一元素乘以構成輸入2張量之維度1向量中之對應元素來計算輸出張量之維度1中的對應向量。接著將全精度乘積加至構成輸入3張量之維度1向量中的對應元素,且接著捨入至輸出張量之指定資料類型的精度。對於例如維度1中的所有維度4索引大小×維度3索引大小×維度2索引大小個向量,重複此程序。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,以下條件將為真,否則,辨識到一般運算元資料異常:
*  輸入張量1及輸出張量之形狀及資料佈局將相同。
*  輸入張量及輸出張量之資料類型將相同。
*  輸入張量1、2、3及輸出張量之維度1索引大小將相同。
*  輸入張量2及3之維度2、3及4索引大小將為一。
在一個實例中,忽略輸出張量描述符2及功能特定保存區域位址欄位。在一個實例中,功能特定參數2至5將含有零。
功能碼 80 NNPA - MAXPOOL2D 功能碼 81 NNPA - AVGPOOL2D
當指定NNPA-MAXPOOL2D或NNPA-AVGPOOL2D功能時,藉由指定操作減少由輸入張量1描述符所描述之輸入張量1以彙總輸入窗口。藉由在維度索引2及3上移動2D滑動窗口來選擇輸入窗口。窗口之摘要為輸出張量中之元素。滑動窗口維度係由例如功能特定參數4及功能特定參數5描述。當計算鄰近輸出張量元素時滑動窗口在輸入1張量上移動的量稱為步幅。滑動窗口步幅係由例如功能特定參數2及功能特定參數3指定。當指定NNPA-MAXPOOL2D操作時,在窗口上執行下文所定義之Max運算。當指定NNPA-AVGPOOL2D操作時,在窗口上執行下文所描述之AVG運算。若指定填補類型為有效(Valid),則將窗口中之所有元素添加至用以計算所得輸出元素之集合。若指定填補類型為相同(Same),則取決於窗口之位置,僅來自窗口之元素之子集可添加至用以計算所得輸出元素之集合。
在一個實例中,CollectElements操作將元素添加至元素之集合且遞增集合中元素之數目。每當窗口開始位置移動時,集合被清空。是否存取執行操作不需要之元素為不可預測的。
Max運算:在一個實例中,藉由將集合中之所有元素彼此進行比較及傳回最大值來計算窗口中之元素的集合中之最大值。
Avg (求平均)運算:在一個實例中,將窗口中之元素的集合之平均值計算為集合中之所有元素的總和除以集合中元素之數目。
在一個實例中,如下分配欄位:
*  集用功能特定參數1控制填補類型。舉例而言,功能特定參數1之位元29至31包括指定填補類型之填補(PAD)欄位。舉例而言,實例類型包括:
填補 填補類型
0                 有效
1                 相同
2-7              保留
若為填補欄位指定保留值,則報告例如F000 hex之回應碼且操作以例如1之條件碼完成。
在一個實例中,保留功能特定參數1之位元位置0至28,且其將含有零。
*  功能特定參數2含有例如32位元無正負號二進位整數,其指定維度2步幅(D2S),該步幅指定滑動窗口在維度2中移動之元素數目。
*  功能特定參數3含有例如32位元無正負號二進位整數,其指定維度3步幅(D3S),該步幅指定滑動窗口在維度3中移動之元素數目。
*  功能特定參數4含有例如32位元無正負號二進位整數,其指定維度2窗口大小(D2WS),該大小指定滑動窗口含有之維度2中之元素數目。
*  功能特定參數5含有例如32位元無正負號二進位整數,其指定維度3窗口大小(D3WS),該大小指定滑動窗口含有之維度3中之元素數目。
在一個實例中,功能特定參數2至5中之指定值小於或等於最大維度索引大小,且功能特定參數4至5中之指定值大於零;否則,報告例如0012 hex之回應碼且操作以例如1之條件碼完成。
若維度2步幅及維度3步幅兩者均為零且維度2窗口大小或維度3窗口大小大於例如1024,則儲存例如F001 hex之回應碼。若維度2步幅及維度3步幅兩者均大於例如零且維度2窗口大小或維度3窗口大小大於例如64,則儲存例如F002 hex之回應碼。若維度2步幅及維度3步幅兩者均大於例如零且維度2步幅或維度3步幅大於例如30,則儲存例如F003 hex之回應碼。若維度2步幅及維度3步幅兩者均大於例如零且輸入張量維度2索引大小或輸入張量維度3索引大小大於例如1024,則儲存例如F004 hex之回應碼。對於所有以上條件,指令以例如1之條件碼完成。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實例中,以下條件將為真,否則,辨識到一般運算元資料異常:
*  輸入張量及輸出張量之維度4索引大小及維度1索引大小將相同。
*  輸入張量及輸出張量之資料佈局及資料類型將相同。
*  在一個實例中,若維度2步幅及維度3步幅兩者均為零,則以下額外條件將為真:
*  輸入張量維度2索引大小將等於維度2窗口大小。
*  輸入張量之輸入張量維度3索引大小將等於維度3窗口大小。
*  輸出張量之維度2索引大小及維度3索引大小將為一。
*  指定填補將為有效。
*  在一個實例中,若維度2步幅或維度3步幅為非零,則兩個步幅將為非零。
*  在一個實例中,若維度2步幅及維度3步幅兩者均大於零,則以下額外條件將為真:
*  當指定填補為有效時,維度2窗口大小將小於或等於輸入張量之維度2索引大小。
*  當指定填補為有效時,維度3窗口大小將小於或等於輸入張量之維度3索引大小。
*  當指定填補為相同時,將滿足輸入及輸出張量之維度2索引大小與維度3索引大小之間的以下關係(集用相同填補):
Figure 02_image029
Figure 02_image031
其中:
IxDyIS    定義於張量描述符x中之輸入張量x的維度y索引大小。
OxDyIS   定義於張量描述符x中之輸出張量x的維度y索引大小。
D2S        維度2步幅。
D3S        維度3步幅。
*  當指定填補為有效時,將滿足輸入及輸出張量之維度2索引大小與維度3索引大小之間的以下關係(集用有效填補):
Figure 02_image033
Figure 02_image035
其中D2WS為維度2窗口大小且D3WS為維度3窗口大小。
忽略輸出張量描述符2、輸入張量描述符2及3以及功能特定保存區域位址欄位。
功能碼 96 NNPA - LSTMACT ( 長短期 記憶體激勵 )
當指定NNPA-LSTMACT功能時,由輸入張量1描述符所描述、針對每一維度4索引值而分裂成四個子張量的輸入張量1連同由輸入張量2描述符所描述、針對每一維度4索引值而分裂成四個子張量的輸入張量2以及由輸入張量3描述符所描述之輸入張量3為LSTMACT操作之輸入。在LSTMACT操作結束時,將結果寫入至由輸出張量1描述符所描述之輸出張量1及由輸出張量2描述符所描述之輸出張量2。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼0010 hex或0011 hex分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實施例中,以下條件將為真,否則,辨識到一般運算元資料異常:
*  輸入張量3以及輸出張量1及2之維度4索引大小將等於例如一。
*  輸入張量1及輸入張量2之維度4索引大小將等於例如四。
*  例如所有輸入張量及兩個輸出張量之維度3索引大小將等於例如一。
*  例如所有輸入張量及兩個輸出張量之資料佈局及資料類型將相同。
*  例如所有輸入張量及兩個輸出張量之維度1索引大小將相同。
*  例如所有輸入張量及兩個輸出張量之維度2索引大小將相同。
在一個實例中,忽略功能特定保存區域位址欄位。在一個實例中,功能特定參數1至5將含有零。
功能碼 97 NNPA - GRUACT ( 閘控遞迴單元激勵 )
當指定NNPA-GRUACT功能時,由輸入張量1描述符所描述、針對每一維度4索引值而分裂成三個子張量的輸入張量1連同由輸入張量2描述符所描述、針對每一維度4索引值而分裂成三個子張量的輸入張量2以及由輸入張量3描述符所描述之輸入張量3為GRUACT操作之輸入。在GRUACT操作結束時,儲存由輸出張量描述符所描述之輸出張量。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實施例中,以下條件將為真,否則,辨識到一般運算元資料異常:
*  輸出張量及輸入張量3之維度4索引大小將等於例如一。
*  例如,輸入張量1及輸入張量2之維度4索引大小將等於例如三。
*  例如所有輸入張量及輸出張量之維度3索引大小將等於例如一。
*  例如所有輸入張量及輸出張量之維度1索引大小將相同。
*  例如所有輸入張量及輸出張量之維度2索引大小將相同。
*  例如所有輸入張量及輸出張量之資料佈局及資料類型將相同。
在一個實例中,忽略輸出張量描述符2及功能特定保存區域位址欄位。在一個實例中,功能特定參數2至5將含有零。
功能碼 112 NNPA - CONVOLUTION
當指定NNPA-CONVOLUTION功能時,對於由輸出張量1描述符所描述之輸出張量中的每一輸出元素,自藉由輸入張量1描述符所描述之輸入張量1選擇由維度索引3、2及1組成之3維輸入1窗口。自藉由輸入張量2描述符所描述之張量2選擇由維度索引4、3及2組成的相同大小之3維輸入2窗口。將輸入1窗口中之元素乘以輸入2窗口中之對應元素,且將所有乘積加在一起以產生初始總和。將此初始總和加至輸入張量3之對應元素以計算中間總和值。輸出張量之元素為對中間總和執行之指定激勵函數的結果。若未指定激勵函數,則輸出元素等於中間總和。
若指定填補類型為有效,則窗口中之所有元素用以計算所得初始總和。若指定填補類型為相同,則當計算所得初始總和時,取決於窗口之位置,輸入1窗口之一些元素可能隱含為零。
是否存取執行操作不需要之元素為不可預測的。
在一個實例中,如下分配由卷積函數使用之功能特定參數的欄位:
*  NNPA-CONVOLUTION功能特定參數1控制填補類型及激勵函數。在一個實例中,功能特定參數1之位元29至31包括指定填補類型之填補欄位。實例類型如下:
PAD 填補類型
0            有效
1            相同
2-7         保留
若為填補欄位指定保留值,則報告例如F000 hex之回應碼且操作以例如1之條件碼完成。
此外,在一個實例中,NNPA-CONVOLUTION功能特定參數1之位元24至27包括指定激勵函數之激勵欄位。實例函數如下:
ACT 激勵函數
0            不執行激勵函數
1            RELU
2-15        保留
若指定RELU之激勵函數,則如下判定所得輸出元素值:若中間總和值小於或等於零,則輸出張量中之對應元素為零;否則,輸出張量中之對應元素為中間總和值與在功能特定參數4中指定之限幅值中的最小值。
若為ACT欄位指定保留值,則報告例如F001 hex之回應碼且操作以例如1之條件碼完成。
*  功能特定參數2含有例如32位元無正負號二進位整數,其指定維度2步幅(D2S),該步幅指定滑動窗口在維度2中移動之元素數目。
*  功能特定參數3含有例如32位元無正負號二進位整數,其指定維度3步幅(D3S),該步幅指定滑動窗口在維度3中移動之元素數目。
功能特定參數2至3中之指定值將小於最大維度索引大小;否則,報告例如0012 hex之回應碼且操作以例如1之條件碼完成。
*  功能特定參數4定義用於視情況選用之RELU操作的限幅值。在一個實例中,限幅值在功能特定參數4之位元16至31中。
在一個實例中,若ACT欄位為零,則忽略限幅值欄位。若ACT欄位指定RELU,則限幅值指定於NNP資料類型1格式中。限幅值零指示使用最大正值;換言之,不執行限幅。若指定非零,則辨識到一般運算元資料異常。
在一個實例中,若除輸入張量2以外的指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若輸入張量2中之指定資料佈局未指定4D內核張量(例如,資料佈局=1),則回應碼,例如0010 hex設定於通用暫存器0中,且指令以例如1之條件碼完成。在一個實例中,若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則例如0011 hex之回應碼設定於通用暫存器0中且指令以例如1之條件碼完成。
若維度2步幅及維度3步幅兩者均為零且輸入張量2之維度3索引大小或維度4索引大小大於例如448,則儲存例如F002 hex之回應碼。若維度2步幅及維度3步幅兩者均大於零且輸入張量2之維度3索引大小或維度4索引大小大於例如64,則儲存例如F003 hex之回應碼且操作以例如1之條件碼完成。若維度2步幅或維度3步幅大於例如13,則儲存例如F004 hex之回應碼且操作以例如1之條件碼完成。
在一個實例中,以下條件將為真,否則,辨識到一般運算元資料異常:
*  輸入張量1、輸入張量3及輸出張量之資料佈局將相同。
*  所有輸入張量及輸出張量之資料類型將相同。
*  輸入3張量之維度2、維度3及維度4索引大小將為1。
*  輸出張量之維度4索引大小將等於輸入1張量之維度4索引大小。
*  輸出張量之維度1索引大小將等於輸入2張量之維度1索引大小及輸入3張量之維度1索引大小。
*  輸入1張量之維度1索引大小將等於輸入2張量之維度2索引大小。
*  在一個實例中,若維度2步幅及維度3步幅兩者均為零,則以下額外條件將為真:
*輸入1張量維度2索引大小將等於輸入2張量之維度3索引大小。
*  輸入張量之輸入1張量維度3索引大小將等於輸入2張量之維度4索引大小。
*  輸出張量之維度2索引大小及維度3索引大小將為一。
*  指定填補將為有效。
*  若維度2步幅或維度3步幅為非零,則兩個步幅將為非零。
*  在一個實例中,若維度2步幅及維度3步幅兩者均大於零,則以下額外條件將為真:
*  當指定填補為有效時,輸入1張量之維度2索引大小將大於或等於輸入張量2之維度3索引大小。
*  當指定填補為有效時,輸入1張量之維度3索引大小將大於或等於輸入2張量之維度4索引大小。
*  在一個實例(卷積相同填補)中,當指定填補為相同時,將滿足輸入1張量及輸出張量之維度2索引大小與維度3索引大小之間的以下關係:
Figure 02_image037
Figure 02_image039
其中:
O1D2IS        輸出張量之維度2索引大小。
O1D3IS        輸出張量之維度3索引大小。
I1D2IS         輸入1張量之維度2索引大小。
I1D3IS         輸入1張量之維度3索引大小。
D2S             維度2步幅。
D3S             維度3步幅。
*  在一個實例(卷積有效填補)中,當指定填補為有效時,將滿足輸入1張量之維度2索引大小及維度3索引大小、輸入2張量及輸出張量之維度3索引大小及維度4索引大小之間的以下關係:
Figure 02_image041
Figure 02_image043
其中:
O1D2IS        輸出張量之維度2索引大小。
O1D3IS        輸出張量之維度3索引大小。
I1D2IS         輸入1張量之維度2索引大小。
I1D3IS         輸入1張量之維度3索引大小。
I2D3IS         輸入2張量之維度3索引大小。
I2D4IS         輸入2張量之維度4索引大小。
D2S             維度2步幅。
D3S             維度3步幅。
在一個實例中,忽略輸出張量描述符2及功能特定保存區域位址欄位。在一個實例中,功能特定參數5將含有零。
功能碼 113 NNPA - MATMUL - OP ( 矩陣乘法運算 )
在一個實例中,當指定NNPA-MATMUL功能時,如下文所描述計算由輸出張量描述符所描述之輸出張量中的每一元素:
*  使用下文所描述之獲得維度1向量(get-dimension-1-vector)操作自藉由輸入張量1描述符所描述之輸入張量1選擇維度1向量。
*  使用下文所描述之獲得維度2向量操作自藉由輸入張量2描述符所描述之輸入張量2選擇維度2向量。
*  使用下文所描述之點積運算來計算維度1向量及維度2向量之中間點積。
*  對中間點積及由輸入張量3描述符所描述之輸入張量3之元素執行運算,其中維度索引4及維度索引1值與輸出張量元素相同。所得元素儲存於輸出張量中。藉由功能特定參數1判定且下文描述融合運算。
獲得維度1向量操作:對於指定輸出元素,自輸入1張量選擇維度1向量,其中輸入維度4索引為輸出維度4索引,輸入維度3索引為輸出維度3索引,且輸入維度2索引為輸出維度2索引。
獲得維度2向量操作:對於指定輸出元素,自輸入2張量選擇維度2向量,其中輸入維度4索引為輸出維度4索引,輸入維度3索引為輸出維度3索引,且輸入維度1索引為輸出維度1索引。
點積運算:相同大小及資料類型之兩個向量的中間點積經計算為輸入向量1中之每一元素與輸入向量2之對應元素的乘積之總和。
融合運算:功能特定參數1控制對中間點積及來自輸入張量3之對應元素執行的運算。在一個實例中,NNPA-MATMUL-OP功能特定參數1包括例如位元24至31中之運算欄位。運算欄位指定經執行運算。下文指示實例運算:
運算 運算類型
0            加法
1            比較點積是否為高的
2            比較點積是否不低
3            比較點積及元素是否相等
4            比較點積及元素是否不相等
5            比較點積是否不高
6            比較點積是否為低的
在一個實例中,對於加法運算類型,將輸入張量3元素加至中間點積。對於比較運算類型,將中間點積與輸入張量3元素進行比較,且若比較為真,則將結果設定為例如值+1;否則,在為輸出張量指定之資料類型中,將其設定為例如值+0。
在一個實例中,保留運算(OPERATION)欄位之所有其他值。若為運算欄位指定保留值,則報告例如F000 hex之回應碼且操作以例如1之條件碼完成。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實施例中,以下條件將為真,否則,辨識到一般運算元資料異常:
*  所有輸入張量及輸出張量之維度4索引大小將相同。
*  所有輸入張量及輸出張量之維度3索引大小將等於一。
*  輸入張量3之維度2索引大小將等於一。
*  輸入張量1及輸出張量之維度2索引大小將相同。
*  輸入張量1之維度1索引大小及輸入張量2之維度2索引大小將相同。
*  輸入張量2、輸入張量3及輸出張量之維度1索引大小將相同。
*  所有輸入張量及輸出張量之資料佈局及資料類型將相同。
在一個實施例中,忽略輸出張量描述符2及功能特定保存區域位址欄位。在一實例中,功能特定參數2至5將含有零。
功能碼 114 NNPA - MATMUL - OP - BCAST23 ( 矩陣乘法運算 - 廣播 23 )
在一個實例中,當指定NNPA-MATMUL-OP-BCAST23功能時,如下文所描述計算由輸出張量描述符所描述之輸出張量中的每一元素:
*  使用下文所描述之獲得維度1向量操作自藉由輸入張量1描述符所描述之輸入張量1選擇維度1向量。
*  使用下文所描述之獲得維度2向量操作自藉由輸入張量2描述符所描述之輸入張量2選擇維度2向量。
*  使用下文所描述之點積運算來計算維度1向量及維度2向量之點積。
*  將具有與輸出張量元素相同之維度索引1值的由輸入張量3描述符所描述之輸入張量3的元素加至先前計算之點積且儲存於輸出張量中。
獲得維度1向量操作:對於指定輸出元素,自輸入1張量選擇維度1向量,其中輸入維度4索引為輸出維度4索引,輸入維度3索引為輸出維度3索引,且輸入維度2索引為輸出維度2索引。
獲得維度2向量操作:對於指定輸出元素,自輸入2張量選擇維度2向量,其中輸入維度4索引為一,輸入維度3索引為輸出維度3索引,且輸入維度1索引為輸出維度1索引。
點積運算:相同大小及資料類型之兩個向量的中間乘積經計算為輸入向量1中之每一元素與輸入向量2之對應元素的乘積之總和。
在一個實例中,若指定張量描述符中之任一者中的指定資料佈局未指定4D特徵張量(例如,資料佈局=0)或若任何指定張量描述符中之資料類型未指定NNP資料類型1 (例如,資料類型=0),則回應碼,例如0010 hex或0011 hex,分別設定於通用暫存器0中,且指令以例如1之條件碼完成。
在一個實施例中,以下條件將為真,否則,辨識到一般運算元資料異常:
*  輸入張量1及輸出張量之維度4索引大小將相同。
*  輸入張量2及輸入張量3之維度4索引大小將等於一。
*  所有輸入張量及輸出張量之維度3索引大小將等於一。
*  輸入張量3之維度2索引大小將等於一。
*  輸入張量1及輸出張量之維度2索引大小將相同。
*  輸入張量1之維度1索引大小及輸入張量2之維度2索引大小將相同。
*  輸入張量2、輸入張量3及輸出張量之維度1索引大小將相同。
*  所有輸入張量及輸出張量之資料佈局及資料類型將相同。
在一個實施例中,忽略輸出張量描述符2及功能特定保存區域位址欄位。在一個實例中,功能特定參數1至5將含有零。
對於神經網路處理輔助指令,在一個實施例中,若輸出張量與任何輸入張量或參數區塊重疊,則結果不可預測。
作為實例,當嘗試執行神經網路處理輔助指令且未在例如雙字邊界上指明參數區塊時,辨識到規格異常。
當嘗試執行神經網路處理輔助指令且存在例如張量描述符不一致時,辨識到一般運算元資料異常。
神經網路處理輔助指令之所得條件碼包括例如: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。
如本文中所描述,單個指令(例如,神經網路處理輔助指令)經組態以執行複數個功能,包括查詢功能。根據本發明之一或多個態樣,查詢功能提供對應用程式執行一或多個功能(例如,與張量計算相關)有用的資訊。此資訊不僅傳達指令及/或處理器所支援之功能,且亦傳達關於指令及/或處理器如何工作之額外資訊,諸如關於由指令及/或處理器使用之資料的資訊。作為一個實例,該資訊包括模型相依資料屬性,諸如經安裝在處理器上之資料類型、由處理器所支援之可用的資料佈局格式,及資料大小資訊,諸如最大張量大小及最大維度索引大小。該查詢功能允許應用程式判定其是否經設計以與其上運行非查詢功能之特定模型的屬性一起工作。替代地,應用程式可經寫入以動態地改變其行為以在不同模型上工作,此取決於彼模型之確切屬性,如由查詢指令所判定。在一些狀況下,若該應用程式不知道如何處置特定模型,則其可運用軟體而非使用加速器功能來執行神經網路計算。
查詢功能可適用於各種任務,包括例如虛擬機之不停機移轉,使得應用程式可針對其上正運行應用程式之模型最佳化其行為。許多其他任務可使用查詢功能。
儘管在一個實例中,查詢功能係作為神經網路處理輔助指令之部分提供,但其亦可與其他指令一起使用以提供關於處理器之功能、操作及/或屬性及/或與其相關聯的操作之詳細資訊。神經網路處理輔助指令僅為一個實例。
本發明之一或多個態樣不可避免地與電腦技術相關且促進電腦內之處理,從而改善其效能。經組態以執行包括查詢功能之各種功能之單個架構化機器指令的使用藉由降低複雜度、減少資源使用及提高處理速度來改良計算環境內之效能。藉由使用查詢功能且獲得描述處理器之包括資料屬性的模型相依屬性的詳細資訊,改良處理。在一個實例中,藉由在執行非查詢功能之前判定處理器所支援之內容,改良效能。應用程式處理複雜性以及執行時間經縮減,此係由於該應用程式預先已知所預期的內容。資料及/或指令可用於許多技術領域中,諸如電腦處理、醫療處理、工程化、汽車技術、製造等。藉由在獲得模型相依處理器相關資料時提供最佳化,藉由縮減執行時間來改良此等技術領域。
參看圖7A至圖7B描述促進計算環境內之處理的一個實施例之其他細節,此係因為該計算環境與本發明之一或多個態樣有關。
參看圖7A,在一個實施例中,執行用以執行查詢功能之指令700。該執行包括例如獲得關於處理器之選定模型的資訊702。作為一實例,該資訊包括處理器之選定模型之至少一個模型相依資料屬性704。該資訊置放於選定位置中以供至少一個應用程式在執行一或多個功能時使用706。
查詢功能提供以下資訊:其使得機器能夠適應存在於機器之特定模型上之能力且促進解決涉及較大資料之問題。此改良使用機器學習之技術,包括電腦處理。
藉由執行查詢功能,至少一個資料屬性之模型相依資訊經獲得,且可用於使用具有至少一個資料屬性之資料來執行一或多個功能。對至少一個資料屬性之瞭解藉由為至少一個資料屬性準備應用程式來節省執行時間,從而允許該應用程式適應於資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省執行時間,且改良系統效能。
當至少一個資料屬性係關於張量及/或處理使用張量時,查詢功能提供對張量的使用及/或使用此類張量之處理的增強。
作為實例,至少一個模型相依資料屬性包括處理器之選定模型之一或多個經支援資料類型710、處理器之選定模型之一或多個經支援資料佈局格式712,及/或處理器之選定模型之一或多個經支援資料大小714。藉由獲得經支援資料類型、資料佈局格式及/或資料大小,針對由處理器之特定模型所支援的資料類型、資料佈局格式及/或資料大小定製應用程式,從而允許該應用程式適應資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省執行時間,且改良系統效能。
在一個實例中,選定位置包括可由至少一個應用程式存取之參數區塊720。作為實例,一或多個經支援資料類型包括於參數區塊之一或多個欄位中722,一或多個經支援資料佈局格式包括於參數區塊之一或多個欄位中724,及/或一或多個經支援資料大小包括於參數區塊之一或多個欄位中726。藉由使參數區塊可由至少一個應用程式存取,該應用程式可學習一或多個經支援資料類型、一或多個經支援資料佈局格式及/或一或多個資料大小,且在處理時使用此知識,從而允許該應用程式適應資料、資料佈局及/或資料大小,以能夠例如在彼特定模型上執行神經網路處理。藉由準備該應用程式,縮減錯誤,節省異常時間,且改良系統效能。
參看圖7B,在一個實例中,處理器之選定模型之一或多個經支援資料大小包括最大維度索引大小及最大張量大小730。
在一個實例中,該參數區塊包括複數個欄位,以儲存選定模型之複數個模型相依資料屬性740。複數個欄位包括例如用以包括處理器之選定模型之一或多個經支援資料類型之已安裝資料類型欄位、用以包括處理器之選定模型之一或多個經支援資料佈局格式的已安裝資料佈局格式欄位,及用以包括處理器之選定模型之一或多個經支援資料大小的一或多個欄位742。
參數區塊進一步包括例如已安裝功能向量欄位及已安裝參數區塊格式欄位中之至少一者750。作為一實例,已安裝功能向量欄位指示處理器之選定模型之一或多個經支援功能752。此外,在一個實例中,已安裝參數區塊格式欄位指示用於參數區塊之一或多個經支援格式754。
藉由使用查詢功能以判定其上將執行選定功能之處理器之模型相依屬性,藉由具有適當資訊來縮減應用程式複雜性,及/或應用程式可經定製以使用正確屬性,例如,資料類型、資料佈局格式及/或資料大小。更快速地執行功能,從而縮減執行時間且改良處理器及/或總系統效能。
其他變化及實施例為可能的。
本發明之態樣可由許多類型之計算環境使用。參考圖8A描述併有及使用本發明之一或多個態樣的計算環境之另一實例。作為實例,圖8A之計算環境係基於由紐約阿蒙克市之國際商業機器公司供應之z/Architecture®指令集架構。然而,z/Architecture指令集架構僅為一個實例架構。再次,計算環境可基於其他架構,包括但不限於Intel ®x86架構、國際商業機器公司之其他架構及/或其他公司之架構。Intel為英特爾公司(Intel Corporation)或其子公司在美國及其他國家之商標或註冊商標。
在一個實例中,計算環境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提供邏輯分割及/或虛擬化支援。在一個實施例中,如圖8B中所展示,記憶體12包括例如一或多個邏輯分割區20、管理邏輯分割區之超管理器21,及處理器韌體22。超管理器21之一個實例為由紐約阿蒙克市之國際商業機器公司提供的處理器資源/系統管理器(PR/SM TM)。PR/SM為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。
每一邏輯分割區20能夠充當單獨的系統。亦即,每一邏輯分割區可獨立地重設、運行客體作業系統23 (諸如由紐約阿蒙克市的國際商業機器公司提供的z/OS ®作業系統)或其他控制碼24 (諸如耦接設施控制碼(CFCC)),且用不同程式25操作。在邏輯分割區中運行之作業系統或應用程式呈現為能夠存取完整的系統,但實際上,僅其一部分可用。儘管供應z/OS作業系統作為一實例,但可根據本發明之一或多個態樣使用由國際商業機器公司及/或其他公司供應之其他作業系統。
記憶體12耦接至例如CPU 13 (圖8A),其為可分配至邏輯分割區之實體處理器資源。舉例而言,邏輯分割區20可包括一或多個邏輯處理器,其中之每一者表示可動態地分配至邏輯分割區之實體處理器資源13中的全部或一部分。
在又一實施例中,中央電子複合體提供虛擬機支援(具有或不具有邏輯分割支援)。如圖8C中所展示,中央電子複合體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的獨家被授權人。
參考圖9A描述併有及使用本發明之一或多個態樣的計算環境之另一實施例。在此實例中,計算環境36包括例如原生中央處理單元(CPU) 37、記憶體38及一或多個輸入/輸出裝置及/或介面39,前述各者經由例如一或多個匯流排40及/或其他連接而彼此耦接。作為實例,計算環境36可包括:由紐約阿蒙克市之國際商業機器公司提供之PowerPC ®處理器;由加州帕洛阿爾托(Palo Alto,California)之惠普公司(Hewlett Packard Co.)提供的具有Intel ®Itanium ®II處理器之HP Superdome;及/或基於由國際商業機器公司、惠普公司、英特爾公司(Intel Corporation)、甲骨文公司(Oracle)及/或其他公司提供之架構的其他機器。PowerPC為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。Itanium為英特爾公司或其子公司在美國及其他國家之商標或註冊商標。
原生中央處理單元37包括一或多個原生暫存器41,諸如在環境內之處理期間使用的一或多個通用暫存器及/或一或多個專用暫存器。此等暫存器包括表示在任何特定時間點處之環境狀態之資訊。
此外,原生中央處理單元37執行儲存於記憶體38中之指令及程式碼。在一個特定實例中,中央處理單元執行儲存於記憶體38中之仿真器程式碼42。此程式碼使得在一個架構中組態之計算環境能夠仿真另一架構。舉例而言,仿真器程式碼42允許基於除z/Architecture指令集架構以外之架構的機器,諸如PowerPC處理器、HP Superdome伺服器或其他者,能夠仿真z/Architecture指令集架構且執行基於z/Architecture指令集架構開發之軟體及指令。
參考9B描述與仿真器程式碼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):提供給消費者之能力係佈建處理、儲存、網絡及其他基礎計算資源,其中消費者能夠部署及運行可包括作業系統及應用程式之任意軟體。消費者並不管理或控制基礎雲端基礎架構,但具有對作業系統、儲存器、所部署應用程式之控制,及可能的對選擇網路連接組件(例如,主機防火牆)之有限控制。
部署模型如下:
私用雲端:僅針對組織操作雲端基礎架構。私用雲端可由組織或第三方來管理且可存在於內部部署或外部部署。
社群雲端:該雲端基礎架構由若干組織共用且支援具有共用關注事項(例如,任務、安全要求、策略及合規性考量)之特定社群。社群雲端可由組織或第三方來管理且可存在內部部署或外部部署。
公用雲端:可使得雲端基礎架構可用於公眾或大型工業集團且為出售雲端服務之組織所擁有。
混合雲端:該雲端基礎架構為兩個或多於兩個雲端(私用、社群或公用)之組合物,該等雲端保持獨特實體但藉由實現資料及應用程式攜帶性(例如,用於在雲端之間實現負載平衡之雲端爆裂)之標準化或專屬技術繫結在一起。
藉由集中於無狀態性、低耦合、模組化及語義互操作性對雲端計算環境進行服務定向。雲端計算之關鍵為包括互連節點之網路的基礎架構。
現參考圖10,描繪說明性雲端計算環境50。如所展示,雲端計算環境50包括一或多個雲端計算節點52,雲端消費者所使用之諸如個人數位助理(PDA)或蜂巢式電話54A、桌上型電腦54B、膝上型電腦54C及/或汽車電腦系統54N的本端計算裝置可與該一或多個雲端計算節點進行通信。節點52可彼此通信。可在一或多個網路(諸如,如上文所描述之私用、社群、公用或混合雲端或其組合)中將該等節點實體地或虛擬地分組(未圖示)。此情形允許雲端計算環境50提供基礎架構、平台及/或軟體作為服務,針對該等服務,雲端消費者不需要在本端計算裝置上維護資源。應理解,圖10中所展示之計算裝置54A至54N之類型意欲僅為說明性的,且計算節點52及雲端計算環境50可經由任何類型之網路及/或網路可定址連接(例如,使用網頁瀏覽器)與任何類型之電腦化裝置通信。
現參考圖11,展示由雲端計算環境50 (圖10)提供之一組功能抽象層。事先應理解,圖11中所展示之組件、層及功能意欲僅為說明性的且本發明之實施例不限於此。如所描繪,提供以下層及對應功能:
硬體及軟體層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控制器耦接至系統。網路配接器亦可耦接至系統以使得資料處理系統能夠變成經由介入的私人網路或公用網路耦接至其他資料處理系統或遠端印表機或儲存裝置。數據機、纜線數據機及乙太網卡僅為幾個可用類型之網路配接器。
本文中所使用之術語僅出於描述特定實施例之目的且並不意欲為限制性的。如本文中所使用,除非上下文另外明確指示,否則單數形式「一(/an)及「該」意欲亦包括複數形式。應進一步理解,術語「包含(comprises及/或comprising)」在用於本說明書中時指定所陳述特徵、整數、步驟、操作、元件及/或組件之存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組之存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件之對應結構、材料、動作及等效物(若存在)意欲包括用於結合如特定主張之其他所主張元件來執行功能的任何結構、材料或動作。已出於說明及描述之目的呈現一或多個實施例之描述,但其不意欲為窮盡性的或限於所揭示之形式。對於一般熟習此項技術者而言,許多修改及變化將為顯而易見的。選取及描述實施例以便最佳地解釋各種態樣及實際應用,且使得一般熟習此項技術者能夠理解具有如適於所預期之特定用途之各種修改的各種實施例。
0:通用暫存器 1:通用暫存器 10:計算環境 11:中央電子複合體(CEC) 12:記憶體 13:中央處理單元(CPU) 14:輸入/輸出(I/O)子系統 15:輸入/輸出控制單元 16:輸入/輸出(I/O)裝置 17:資料儲存裝置 18:程式 19:電腦可讀程式指令 20:邏輯分割區 21:超管理器 22:處理器韌體 23:客體作業系統 24:控制碼 25:不同程式 26:虛擬機 27:超管理器 28:處理器韌體 31:神經網路處理器 36:計算環境 37:原生中央處理單元(CPU) 38:記憶體 39:輸入/輸出裝置及/或介面 40:匯流排 41:原生暫存器 42:仿真器程式碼 43:客體指令 44:指令提取常式 45:指令轉譯常式 46:原生指令 47:仿真控制常式 50:說明性雲端計算環境 52:雲端計算節點 54A:個人數位助理(PDA)或蜂巢式電話 54B:桌上型電腦 54C:膝上型電腦 54N:汽車電腦系統 60:硬體及軟體層 61:大型電腦 62:基於精簡指令集電腦(IRSC)架構之伺服器 63:伺服器 64:刀片伺服器 65:儲存裝置 66:網路及網路連接組件 67:網路應用程式伺服器軟體 68:資料庫軟體 71:虛擬伺服器 72:虛擬儲存器 73:虛擬網路 74:虛擬應用程式及作業系統 75:虛擬用戶端 80:管理層 81:資源佈建 82:計量及定價 83:使用者入口網站 84:服務等級管理 85:服務等級協定(SLA)規劃及實現 90:工作負載層 91:地圖測繪及導航 92:軟體開發及生命週期管理 93:虛擬教室教育遞送 94:資料分析處理 95:異動處理 96:神經網路處理輔助處理 100:計算環境 102:電腦系統 104:通用處理器 105:神經網路處理器 106:記憶體 108:輸入/輸出(I/O)介面 110:匯流排 111:匯流排 112:快取記憶體 114:本端快取記憶體 116:程式或應用程式 118:至少一個作業系統 120:電腦可讀程式指令 122:處理器韌體 130:外部裝置 132:網路介面 134:資料儲存裝置 136:程式 138:電腦可讀程式指令 150:指令提取組件 152:指令解碼單元 154:指令執行組件 156:記憶體存取組件 158:寫回組件 160:暫存器 170:查詢功能組件 172:神經網路處理輔助組件 200:步驟 210:步驟 220:步驟 230:步驟 240:步驟 250:步驟 300:神經網路處理輔助指令 302:作業碼(opcode)欄位 310:回應碼欄位 312:異常旗標欄位 314:功能碼欄位 320:參數區塊 330:NNPA查詢可用功能參數區塊 332:已安裝功能向量 334:已安裝參數區塊格式向量 336:已安裝資料類型 338:已安裝資料佈局格式 340:最大維度索引大小 342:最大張量大小 344:已安裝NNP資料類型1轉換向量 350:參數區塊 352:參數區塊版本號碼 354:模型版本號碼 356:接續旗標 358:功能特定保存區域位址 360:輸出張量描述符 365:輸入張量描述符 370:功能特定參數 375:接續狀態緩衝器欄位 382:資料佈局格式 384:資料類型 386:維度1至4索引大小 388:張量位址 400:格式 402:正負號 404:指數+31 406:分數 500:3D張量 502:2D張量 600:記憶體 602:預選數目個列 604:預選數目個元素 606:步驟 608:步驟 700:步驟 702:步驟 704:步驟 706:步驟 710:步驟 712:步驟 714:步驟 720:步驟 722:步驟 724:步驟 726:步驟 730:步驟 740:步驟 742:步驟 750:步驟 752:步驟 754:步驟 E1:維度 E2:維度 E3:維度 E4:維度
在本說明書之結尾處之申請專利範圍中作為實例特定地指出且清楚地主張一或多個態樣。一或多個態樣之前述內容以及物件、特徵及優點自結合隨附圖式進行之以下詳細描述顯而易見,其中: 圖1A描繪併有及使用本發明之一或多個態樣的計算環境之一個實例; 圖1B描繪根據本發明之一或多個態樣的圖1A之處理器的其他細節; 圖2描繪根據本發明之一或多個態樣之查詢功能的處理之一個實例; 圖3A描繪根據本發明之一或多個態樣之用以執行查詢功能的神經網路處理輔助指令之格式之一個實例; 圖3B描繪根據本發明之一或多個態樣的由神經網路處理輔助指令使用之通用暫存器的一個實例; 圖3C描繪根據本發明之一或多個態樣的由神經網路處理輔助指令支援之功能碼的實例; 圖3D描繪根據本發明之一或多個態樣的由神經網路處理輔助指令使用之另一通用暫存器的一個實例; 圖3E描繪根據本發明之一或多個態樣的由神經網路處理輔助指令之查詢功能使用的參數區塊之一個實例; 圖3F描繪根據本發明之一或多個態樣的由神經網路處理輔助指令之一或多個非查詢功能使用的參數區塊之一個實例; 圖3G描繪根據本發明之一或多個態樣的由神經網路處理輔助指令使用之張量描述符的一個實例; 圖4描繪根據本發明之一或多個態樣的神經網路處理(NNP)資料類型-1資料類型之格式的一個實例; 圖5A至圖5C描繪根據本發明之一或多個態樣的由神經網路處理輔助指令使用之輸入資料佈局的實例; 圖6A至圖6C描繪根據本發明之一或多個態樣的對應於圖5A至圖5C之輸入資料佈局的實例輸出; 圖7A至圖7B描繪根據本發明之一或多個態樣之促進計算環境內之處理的一個實例; 圖8A描繪併有及使用本發明之一或多個態樣的計算環境之另一實例; 圖8B描繪根據本發明之一或多個態樣的圖8A之記憶體之其他細節的一個實例; 圖8C描繪根據本發明之一或多個態樣的圖8A之記憶體之其他細節的另一實例; 圖9A描繪併有及使用本發明之一或多個態樣的計算環境之又一實例; 圖9B描繪根據本發明之一或多個態樣之圖9A的記憶體之其他細節; 圖10描繪根據本發明之一或多個態樣的雲端計算環境之一個實施例;且 圖11描繪根據本發明之一或多個態樣的抽象模型層之一個實例。
200:步驟
210:步驟
220:步驟
230:步驟
240:步驟
250:步驟

Claims (20)

  1. 一種用於促進一計算環境內之處理的電腦程式產品,該電腦程式產品包含: 一或多個電腦可讀儲存媒體及共同地儲存於該一或多個電腦可讀儲存媒體上以執行一方法之程式指令,該方法包含: 執行一指令以執行一查詢功能,其中該執行包括: 獲得關於一處理器之一選定模型之資訊,該資訊包括該處理器之該選定模型之至少一個模型相依資料屬性;及 將該資訊置放在一選定位置中以供至少一個應用程式在執行一或多個功能時使用。
  2. 如請求項1之電腦程式產品,其中該至少一個模型相依資料屬性包括該處理器之該選定模型之一或多個經支援資料類型。
  3. 如請求項2之電腦程式產品,其中該選定位置包含可由該至少一個應用程式存取之一參數區塊,且其中該一或多個經支援資料類型包括於該參數區塊之一或多個欄位中。
  4. 如請求項1之電腦程式產品,其中該至少一個模型相依資料屬性包括該處理器之該選定模型之一或多個經支援資料佈局格式。
  5. 如請求項4之電腦程式產品,其中該選定位置包含可由該至少一個應用程式存取之一參數區塊,且其中該一或多個經支援資料佈局格式包括於該參數區塊之一或多個欄位中。
  6. 如請求項1之電腦程式產品,其中該至少一個模型相依資料屬性包括該處理器之該選定模型之一或多個經支援資料大小。
  7. 如請求項6之電腦程式產品,其中該選定位置包含可由該至少一個應用程式存取之一參數區塊,且其中該一或多個經支援資料大小包括於該參數區塊之一或多個欄位中。
  8. 如請求項6之電腦程式產品,其中該處理器之該選定模型之該一或多個經支援資料大小包括一最大維度索引大小及一最大張量大小。
  9. 如請求項1之電腦程式產品,其中該選定位置包含可由該至少一個應用程式存取之一參數區塊,且其中該參數區塊包括複數個欄位以儲存該選定模型之複數個模型相依資料屬性,該複數個欄位包括用以包括該處理器之該選定模型之一或多個經支援資料類型的一已安裝資料類型欄位、用以包括該處理器之該選定模型之一或多個經支援資料佈局格式的一已安裝資料佈局格式欄位,及用以包括該處理器之該選定模型之一或多個經支援資料大小的一或多個欄位。
  10. 如請求項9之電腦程式產品,其中該參數區塊進一步包括一已安裝功能向量欄位及一已安裝參數區塊格式欄位中之至少一者,該已安裝功能向量欄位指示該處理器之該選定模型之一或多個經支援功能,且該已安裝參數區塊格式欄位指示用於該參數區塊之一或多個經支援格式。
  11. 一種用於促進一計算環境內之處理的電腦系統,該電腦系統包含: 一記憶體;及 至少一個處理器,其與該記憶體進行通信,其中該電腦系統經組態以執行一方法,該方法包含: 執行一指令以執行一查詢功能,其中該執行包括: 獲得關於一處理器之一選定模型之資訊,該資訊包括該處理器之該選定模型之至少一個模型相依資料屬性;及 將該資訊置放在一選定位置中以供至少一個應用程式在執行一或多個功能時使用。
  12. 如請求項11之電腦系統,其中該至少一個模型相依資料屬性包括該處理器之該選定模型之一或多個經支援資料類型。
  13. 如請求項11之電腦系統,其中該至少一個模型相依資料屬性包括該處理器之該選定模型之一或多個經支援資料佈局格式。
  14. 如請求項11之電腦系統,其中該至少一個模型相依資料屬性包括該處理器之該選定模型之一或多個經支援資料大小。
  15. 如請求項11之電腦系統,其中該選定位置包含可由該至少一個應用程式存取之一參數區塊,且其中該參數區塊包括複數個欄位以儲存該選定模型之複數個模型相依資料屬性,該複數個欄位包括用以包括該處理器之該選定模型之一或多個經支援資料類型的一已安裝資料類型欄位、用以包括該處理器之該選定模型之一或多個經支援資料佈局格式的一已安裝資料佈局格式欄位,及用以包括該處理器之該選定模型之一或多個經支援資料大小的一或多個欄位。
  16. 一種促進一計算環境內之處理的電腦實施方法,該電腦實施方法包含: 執行一指令以執行一查詢功能,其中該執行包括: 獲得關於一處理器之一選定模型之資訊,該資訊包括該處理器之該選定模型之至少一個模型相依資料屬性;及 將該資訊置放在一選定位置中以供至少一個應用程式在執行一或多個功能時使用。
  17. 如請求項16之電腦實施方法,其中該至少一個模型相依資料屬性包括該選定處理器之該模型之一或多個經支援資料類型。
  18. 如請求項16之電腦實施方法,其中該至少一個模型相依資料屬性包括該處理器之該選定模型之一或多個經支援資料佈局格式。
  19. 如請求項16之電腦實施方法,其中該至少一個模型相依資料屬性包括該處理器之該選定模型之一或多個經支援資料大小。
  20. 如請求項16之電腦實施方法,其中該選定位置包含可由該至少一個應用程式存取之一參數區塊,且其中該參數區塊包括複數個欄位以儲存該選定模型之複數個模型相依資料屬性,該複數個欄位包括用以包括該處理器之該選定模型之一或多個經支援資料類型的一已安裝資料類型欄位、用以包括該處理器之該選定模型之一或多個經支援資料佈局格式的一已安裝資料佈局格式欄位,及用以包括該處理器之該選定模型之一或多個經支援資料大小的一或多個欄位。
TW111115167A 2021-06-17 2022-04-21 查詢模型相依資訊之指令 TWI804285B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/350,326 2021-06-17
US17/350,326 US11675592B2 (en) 2021-06-17 2021-06-17 Instruction to query for model-dependent information

Publications (2)

Publication Number Publication Date
TW202301204A true TW202301204A (zh) 2023-01-01
TWI804285B TWI804285B (zh) 2023-06-01

Family

ID=84490396

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111115167A TWI804285B (zh) 2021-06-17 2022-04-21 查詢模型相依資訊之指令

Country Status (6)

Country Link
US (1) US11675592B2 (zh)
CN (1) CN117396902A (zh)
DE (1) DE112022003109T5 (zh)
GB (1) GB2622333A (zh)
TW (1) TWI804285B (zh)
WO (1) WO2022264003A1 (zh)

Family Cites Families (74)

* Cited by examiner, † Cited by third party
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
US8015889B2 (en) * 2005-11-15 2011-09-13 Honeywell International Inc. Ballscrew with an integral high-efficiency thrust bearing
US8291003B2 (en) 2008-09-09 2012-10-16 International Business Machines Corporation Supporting multiple formats in a floating point processor
US20100274823A1 (en) 2009-04-23 2010-10-28 Sailesh Sathish Method, apparatus and computer program product for providing an adaptive context model framework
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
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
US10728169B1 (en) 2015-06-26 2020-07-28 Amazon Technologies, Inc. Instance upgrade migration
US9710401B2 (en) 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US10452995B2 (en) 2015-06-29 2019-10-22 Microsoft Technology Licensing, Llc Machine learning classification on hardware accelerators with stacked memory
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
US10509765B2 (en) 2015-10-08 2019-12-17 Via Alliance Semiconductor Co., Ltd. Neural processing unit that selectively writes back to neural memory either activation function output or accumulator value
US9569277B1 (en) 2016-01-29 2017-02-14 International Business Machines Corporation Rebalancing virtual resources for virtual machines based on multiple resource capacities
US20170286114A1 (en) 2016-04-02 2017-10-05 Intel Corporation Processors, methods, and systems to allocate load and store buffers based on instruction type
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
US10810484B2 (en) 2016-08-12 2020-10-20 Xilinx, Inc. Hardware accelerator for compressed GRU on FPGA
US10802992B2 (en) 2016-08-12 2020-10-13 Xilinx Technology Beijing Limited Combining CPU and special accelerator for implementing an artificial neural network
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
US10120680B2 (en) 2016-12-30 2018-11-06 Intel Corporation Systems, apparatuses, and methods for arithmetic recurrence
EP4120070B1 (en) 2016-12-31 2024-05-01 INTEL Corporation Systems, methods, and apparatuses for heterogeneous computing
PL3607453T3 (pl) 2017-04-07 2022-11-28 Intel Corporation Sposoby i urządzenie dla potoku wykonawczego sieci głębokiego uczenia na platformie multiprocesorowej
CA3060368C (en) 2017-04-17 2020-07-28 Cerebras Systems Inc. Dataflow triggered tasks for accelerated deep learning
CN107704922B (zh) 2017-04-19 2020-12-08 赛灵思公司 人工神经网络处理装置
US20180322386A1 (en) 2017-05-05 2018-11-08 Intel Corporation Fine-grain compute communication execution for deep learning frameworks
US10338925B2 (en) 2017-05-24 2019-07-02 Microsoft Technology Licensing, Llc Tensor register files
CN107451663B (zh) 2017-07-06 2021-04-20 创新先进技术有限公司 算法组件化、基于算法组件建模方法、装置以及电子设备
US10642835B2 (en) 2017-08-14 2020-05-05 Sisense Ltd. System and method for increasing accuracy of approximating query results using neural networks
US11216437B2 (en) 2017-08-14 2022-01-04 Sisense Ltd. System and method for representing query elements in an artificial neural network
EP3451190B1 (en) 2017-09-04 2020-02-26 Sap Se Model-based analysis in a relational database
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 삼성전자주식회사 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법
US10275710B1 (en) 2017-10-31 2019-04-30 KenSci Inc. Machine learning model repository
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
JP7304354B2 (ja) 2018-01-10 2023-07-06 リンジョンストン, エルエルシー コンパクトな注入器システムおよび方法
US10832137B2 (en) 2018-01-30 2020-11-10 D5Ai Llc Merging 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
US10620951B2 (en) 2018-06-22 2020-04-14 Intel Corporation Matrix multiplication acceleration of sparse matrices using column folding and squeezing
US10832139B2 (en) 2018-06-22 2020-11-10 Moffett Technologies Co. Limited Neural network acceleration and embedding compression systems and methods with activation sparsification
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
US20200264876A1 (en) 2019-02-14 2020-08-20 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
US20190392296A1 (en) * 2019-06-28 2019-12-26 John Brady Hardware agnostic deep neural network compiler
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
US20210089316A1 (en) * 2019-09-25 2021-03-25 Intel Corporation Deep learning implementations using systolic arrays and fused operations
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
US11507831B2 (en) * 2020-02-24 2022-11-22 Stmicroelectronics International N.V. Pooling unit for deep learning acceleration

Also Published As

Publication number Publication date
CN117396902A (zh) 2024-01-12
US11675592B2 (en) 2023-06-13
US20220405100A1 (en) 2022-12-22
GB2622333A (en) 2024-03-13
TWI804285B (zh) 2023-06-01
GB202319034D0 (en) 2024-01-24
WO2022264003A1 (en) 2022-12-22
DE112022003109T5 (de) 2024-04-11

Similar Documents

Publication Publication Date Title
TWI792987B (zh) 使用暗示捨入模式之資料轉換至經選擇資料類型/來自經選擇資料類型之資料轉換
TWI807767B (zh) 神經網路處理輔助指令
TWI833205B (zh) 用於遞歸神經網路中使用之串連輸入/輸出張量
TW202303394A (zh) 在資料轉換期間之無效機器特定資料類型之偵測
TWI804285B (zh) 查詢模型相依資訊之指令
TWI840790B (zh) 用於促進一運算環境內之處理的電腦程式產品、電腦系統及電腦實施方法
TWI818518B (zh) 用於促進一運算環境內之處理的電腦程式產品、電腦系統及電腦實施方法
TWI815407B (zh) 用於促進一計算環境內之處理的電腦程式產品、電腦系統及電腦實施方法
TWI840785B (zh) 用於在指令執行期間偵測之無效值之例外摘要
TWI813258B (zh) 重新格式化張量以提供子張量
US12008395B2 (en) Program event recording storage alteration processing for a neural network accelerator instruction
TWI832214B (zh) 用於促進一運算環境內之處理的電腦程式產品、電腦系統及電腦實施方法
AU2022292046B2 (en) Reformatting of tensors to provide sub-tensors
US11734013B2 (en) Exception summary for invalid values detected during instruction execution
TW202301109A (zh) 執行組合矩陣乘法及偏差加法運算之單一函式
TW202303420A (zh) 遞歸神經網路單元啟動以執行一單一引動中之複數個運算