TW202234236A - 用以最佳化邊緣網路中的資源之方法、系統、製品及設備 - Google Patents

用以最佳化邊緣網路中的資源之方法、系統、製品及設備 Download PDF

Info

Publication number
TW202234236A
TW202234236A TW110148288A TW110148288A TW202234236A TW 202234236 A TW202234236 A TW 202234236A TW 110148288 A TW110148288 A TW 110148288A TW 110148288 A TW110148288 A TW 110148288A TW 202234236 A TW202234236 A TW 202234236A
Authority
TW
Taiwan
Prior art keywords
workload
information
devices
platform resource
circuitry
Prior art date
Application number
TW110148288A
Other languages
English (en)
Inventor
拉維珊卡 艾爾
歐麥許 蒂科
尼勒許 傑恩
拉傑許 普納夏德蘭
赫克托 柯多里爾馬魯里
荷西 R 卡馬喬佩瑞茲
胡利奧 札莫拉埃斯奎維爾
保羅 洛佩茲梅耶
維克拉姆 薩萊托爾
艾瑞可 努爾維塔德希
維承 蔡
尚蒂 萊斯威爾
安納希塔 布希汪迪瓦拉
金世準
胡安 P 穆諾茲
雅許 亞克豪里
赫蘇斯 A 克魯茲瓦加斯
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 TW202234236A publication Critical patent/TW202234236A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • H04L47/726Reserving resources in multiple paths to be used simultaneously
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • H04L47/765Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the end-points
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • 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/047Probabilistic or stochastic networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)

Abstract

揭露用以最佳化邊緣網路中之資源的方法、設備、系統及製品。一種實例設備包括代理管理電路系統,其用以:調用一探索代理以識別平台資源裝置;選擇所識別平台資源裝置中之一第一者;及針對對應於該等所識別平台資源裝置中之該第一者的工作負載,產生第一最佳化量度,該等第一最佳化量度對應於一第一路徑。該實例代理進一步用以選擇該等所識別平台資源裝置中之一第二者;針對對應於該等所識別平台資源裝置中之該第二者的該工作負載,產生第二最佳化量度,該等第二最佳化量度對應於一第二路徑。該實例設備亦包括:基準管理電路系統,其用以將第二語義資訊嵌入至該工作負載,該第二語義資訊包括對應於該等所識別平台資源裝置中之該第二者的經最佳化圖資訊及平台結構資訊;及重組態管理電路系統,其用以在運行時間期間基於對應於該第一所識別平台資源裝置及該第二所識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇該第一路徑或該第二路徑。

Description

用以最佳化邊緣網路中的資源之方法、系統、製品及設備
相關申請案
本專利源於2020年12月24日申請之第63/130,508號美國臨時專利申請案。第63/130,508號美國專利申請案特此以全文引用的方式併入本文中。特此主張第63/130,508號美國專利申請案之優先權。 發明領域
本揭露內容大體上係關於邊緣網路連接,且更特定而言,係關於用以最佳化邊緣網路中的資源之方法、系統、製品及設備。
發明背景
近年來,服務於工作負載請求之實體被授權負責以滿足用戶端要求之方式分佈彼等工作負載。在一些環境中,事先已知底層平台資源。邊緣運算資源正在被更大程度地利用,且目標運算裝置為異質的。目標運算裝置可包括CPU、GPU、FPGA及/或其他類型之加速器。
依據本發明之一實施例,係特地提出一種包含指令之至少一電腦可讀儲存媒體,該等指令當被執行時致使至少一個處理器至少進行下列動作:調用一探索代理以識別平台資源裝置;選擇經識別之該等平台資源裝置中之一第一者;針對對應於經識別之該等平台資源裝置中之該第一者的工作負載,產生第一最佳化量度,該等第一最佳化量度對應於一第一路徑;將第一語義資訊嵌入至該工作負載,該第一語義資訊包括對應於經識別之該等平台資源裝置中之該第一者的最佳化圖資訊及平台結構資訊;選擇經識別之該等平台資源裝置中之一第二者;針對對應於經識別之該等平台資源裝置中之該第二者的該工作負載,產生第二最佳化量度,該等第二最佳化量度對應於一第二路徑;將第二語義資訊嵌入至該工作負載,該第二語義資訊包括對應於經識別之該等平台資源裝置中之該第二者的最佳化圖資訊及平台結構資訊;以及在運行時間期間基於對應於該第一經識別平台資源裝置及該第二經識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇該第一路徑或該第二路徑。
較佳實施例之詳細說明
包括機器學習(ML)、深度學習(DL)及/或其他人工機器驅動式邏輯之人工智慧(AI)使得機器(例如,電腦、邏輯電路等)能夠使用模型來處理輸入資料,以基於先前由模型經由訓練程序習得的圖案及/或關聯而產生輸出。如本文中所使用,資料為可由處理器電路系統攝取、處理、解譯及/或以其他方式操縱以產生結果的任何形式之資訊。所產生結果自身可為資料。如本文中所使用,模型為可由處理器電路系統攝取、處理、解譯及/或以其他方式操縱以產生結果的指令及/或資料集。常常,使用輸入資料來操作模型以根據模型中反映之一或多個關係產生輸出資料。模型可係基於訓練資料。例如,可藉由資料訓練模型以辨識圖案及/或關聯,並在處理輸入資料時遵循此類圖案及/或關聯,使得其他輸入產生符合所辨識圖案及/或關聯之輸出。
存在許多不同類型之機器學習模型及/或機器學習架構。在本文中所揭露之一些非限制性實例中,使用神經網路(NN)模型,但本文中所揭露之實例不限於此。
大體而言,實施ML/AI系統涉及至少二個階段:學習/訓練階段及推斷階段。在學習/訓練階段中,使用訓練演算法來訓練模型以根據基於例如訓練資料之圖案及/或關聯進行操作。大體而言,模型包括內部參數,該等內部參數指導如何將輸入資料變換成輸出資料,諸如經由模型內之一系列節點及連接將輸入資料變換成輸出資料。在一些實例中,參數與量度同義。在一些實例中,量度包括潛時值(例如,以毫秒為單位之持續時間)、準確度值(例如,所計算值與地面真值(例如,對於模型)之間的百分數差)等。另外,超參數用作訓練程序之部分以控制如何執行學習(例如,學習速率、待用於機器學習模型中之層數等)。超參數界定為在起始訓練程序之前判定的訓練參數。
不同類型之訓練可基於ML/AI模型之類型及/或預期輸出而執行。例如,受監督訓練使用輸入及對應預期(例如,經標記)輸出來選擇減少模型誤差的用於ML/AI模型之參數(例如,藉由對選擇參數之組合進行迭代)。如本文中所使用,標記參考機器學習模型之預期輸出(例如,分類、預期輸出值等)。替代地,無監督訓練(例如,用於深度學習、機器學習之子集等)涉及自輸入推斷圖案以選擇用於ML/AI模型之參數(例如,並不利用預期(例如,經標記)輸出)。無監督訓練可尤其有助於預先不知曉資料中之圖案的情形中。無監督學習可有助於識別可進一步使得資料特性化之細節(例如,識別資料中之細微圖案)。
在本文中所揭露之實例中,使用任何訓練演算法來訓練ML/AI模型。在本文中所揭露之實例中,執行訓練,直至收斂及/或臨限誤差量度經量測為止。如本文中所使用,「臨限值」表示為可由處理器電路系統用作比較操作之參考的諸如以任何形式表示之數值的資料。在本文中所揭露之實例中,在具有例如適當處理能力、適當功率及/或適當記憶體之邊緣網路內的任何位置處執行訓練。使用控制如何執行學習(例如,學習速率、待用於機器學習模型中之層數等)之超參數來執行訓練。在一些實例中,可執行再訓練。可回應於回饋量度及/或誤差量度來執行此類再訓練。
使用訓練資料來執行訓練。在本文中所揭露之實例中,訓練資料來源於任何源,諸如來自先前執行之程序的歷史資料。在一些實例中,因為使用受監督訓練,所以訓練資料經標記。
一旦訓練完成,模型經部署用作基於界定於模型中之節點網路及連接處理輸入且提供輸出的可執行構造。模型儲存於邊緣網路之一或多個位置處,包括伺服器、平台及/或IoT裝置處。模型接著可由邊緣裝置執行。
一旦經訓練,可在推斷階段中操作所部署模型以處理資料。在推斷階段中,待分析資料(例如,活資料)經輸入至模型,且模型執行以產生輸出。此推斷階段可被視為AI基於自訓練習得之內容而「進行思考」以產生輸出(例如,藉由執行模型以將所習得圖案及/或關聯應用於活資料)。在一些實例中,輸入資料在用作至機器學習模型之輸入之前會經歷預處理。此外,在一些實例中,輸出資料在由AI模型產生之後可經歷後處理以將輸出變換成有用結果(例如,資料之顯示、待由機器執行之指令等)。
在一些實例中,所部署模型之輸出可經擷取並提供為回饋。藉由分析回饋,可判定所部署模型之準確度。若回饋指示所部署模型之準確度小於臨限值或其他準則,則可使用回饋及經更新訓練資料集、超參數等來觸發經更新模型之訓練以產生經更新所部署模型。
圖A1為展示用於邊緣運算之組態之概述的方塊圖A100,其包括在許多以下實例中稱為「邊緣雲端」之處理層。如所示,邊緣雲端A110共置於諸如接取點或基地台A140、本端處理集線器A150或總局A120之邊緣位置處,且因此可包括多個實體、裝置及設備例項。邊緣雲端A110定位成相比雲端資料中心A130較接近端點(消費者及生產者)資料源A160 (例如,自主車輛A161、使用者設備A162、商業及工業設備A163、視訊擷取裝置A164、無人機A165、智慧型城市及建築裝置A166、感測器及IoT裝置A167等)。在邊緣雲端A110中之邊緣處提供的運算、記憶體及儲存資源對於為端點資料源A160使用之服務及功能提供超低潛時回應時間,以及減少自邊緣雲端A110朝向雲端資料中心A130之網路回程訊務至關重要,因此改良能耗及總網路使用,以及其他益處。
運算、記憶體及儲存為稀缺資源,且大體上取決於邊緣位置而減少(例如,消費者端點裝置處可用之處理資源少於基地台處,基地台處可用之處理資源少於總局處)。然而,邊緣位置距端點(例如,使用者設備(UE))愈接近,空間及功率常常愈受限。因此,邊緣運算嘗試經由分佈在地理及網路接取時間二者上較接近地定位之較多資源來減少網路服務所需的資源量。以此方式,邊緣運算嘗試在適當時將運算資源引入至工作負載資料,或將工作負載資料引入至運算資源。在一些實例中,工作負載包括但不限於可執行程序,諸如演算法、機器學習演算法、影像辨識演算法、增益/損耗演算法等。
下文描述邊緣雲端架構之態樣,該架構涵蓋了多個潛在部署且解決了一些網路業者或服務提供者在其自身基礎架構中可具有之限制。此等包括基於邊緣位置之組態變化(因為基地台層級處之邊緣例如在多租戶情境中可具有更受限效能及能力);基於可用於邊緣位置、位置階層或位置群組之運算、記憶體、儲存、網狀架構、加速度或類似資源之類型的組態;服務、安全性及管理以及協調能力;及用以實現終端服務之可用性及效能的相關目標。此等部署可實現網路層中之處理,該等網路層取決於潛時、距離及時序特性可被視為「近邊緣」、「接近邊緣」、「本端邊緣」、「中間邊緣」或「遠邊緣」層。
邊緣運算為正在發展的範式,其中通常經由使用在基地台、閘道器、網路路由器或較接近產生及耗用資料之端點裝置的其他裝置處實施的運算平台(例如,x86或ARM運算硬體架構)在網路之「邊緣」處或較接近該「邊緣」執行運算。例如,邊緣閘道器伺服器可裝備有記憶體及儲存資源池,以針對所連接用戶端裝置之低潛時用例(例如,自主駕駛或視訊監控)即時地執行運算。或作為一實例,基地台可擴增有運算及加速度資源以直接處理用於所連接使用者設備之服務工作負載,而無需經由回程網路進一步傳達資料。或作為另一實例,總局網路管理硬體可用執行虛擬化網路功能且提供運算資源以用於執行所連接裝置之服務及消費者功能的標準化運算硬體來替換。在邊緣運算網路內,可存在其中運算資源將「移動」至資料之服務情境,以及其中資料將「移動」至運算資源之情境。或作為一實例,基地台運算、加速度及網路資源可藉由啟動休眠容量(訂用、按需容量)提供服務,以便根據需要縮放至工作負載要求,從而管理拐角情況、緊急情況或在顯著更長的實施生命週期內為經部署資源提供耐久性。
圖A2說明端點、邊緣雲端及雲端運算環境當中的可操作層。特定而言,圖A2描繪運算用例A205之實例,其利用網路運算之多個例示性層當中的邊緣雲端A110。該等層在端點(裝置及事物)層A200處開始,該端點層接取邊緣雲端A110以進行資料產生、分析及資料耗用活動。邊緣雲端A110可跨越多個網路層,諸如邊緣裝置層A210,其具有閘道器、本地(on-premise)伺服器或位於實體地接近之邊緣系統中的網路設備(節點A215);網路接取層A220,其涵蓋基地台、無線電處理單元、網路集線器、區域資料中心(DC)或區域網路設備(設備A225);及位於其間的任何設備、裝置或節點(在層A212中,未詳細說明)。邊緣雲端A110內及各種層當中的網路通訊可經由任何數目個有線或無線媒體進行,包括經由連接性架構及未描繪的技術。
由網路通訊距離及處理時間約束條件引起的潛時之實例可在以下範圍內:在端點層A200當中時小於一毫秒(ms),在邊緣裝置層A210處在5 ms下,在與網路接取層A220處之節點通訊時甚至介於10至40 ms之間。在邊緣雲端A110之外為核心網路A230及雲端資料中心A240層,每一層皆具有增大之潛時(例如,在核心網路層A230處介於50至60 ms之間,在雲端資料中心層處至100 ms或更多)。因此,潛時為至少50至100 ms或更多的核心網路資料中心A235或雲端資料中心A245處之操作將不能夠實現用例A205的許多時間關鍵功能。出於說明及對比之目的提供此等潛時值中之每一者;應理解,其他接取網路媒體及技術之使用可進一步減少潛時。在一些實例中,相對於網路源及目的地,網路之各別部分可被分類為「接近邊緣」、「本端邊緣」、「近邊緣」、「中間邊緣」或「遠邊緣」層。例如,自核心網路資料中心A235或雲端資料中心A245之視角而言,總局或內容資料網路可被視為位於「近邊緣」層內(「靠近」雲端,在與用例A205之裝置及端點通訊時具有高潛時值),而接取點、基地台、本地伺服器或網路閘道器可被視為位於「遠邊緣」層內(「遠離」雲端,在與用例A205之裝置及端點通訊時具有低潛時值)。應理解,構成「接近」、「本端」、「近」、「中間」或「遠」邊緣之特定網路層的其他分類可係基於潛時、距離、網路躍點數目或其他可量測特性,如自網路層A200至A240中之任一者中的源所量測。
由於利用邊緣雲端之多個服務,各種用例A205可在來自傳入串流之使用壓力下接取資源。為實現具有低潛時之結果,在邊緣雲端A110內執行之服務在以下方面平衡了不同的要求:(a)優先級(輸送量或潛時)及服務品質(QoS) (例如,在回應時間要求方面,自主汽車之訊務相比溫度感測器可具有較高優先級;或取決於應用,在運算/加速器、記憶體、儲存或網路資源處可存在效能敏感度/瓶頸);(b)可靠性及彈性(例如,取決於應用,需要對一些輸入串流採取行動並且訊務的路由具有關鍵任務可靠性,而一些其他輸入串流可容許偶發性故障);及(c)實體約束條件(例如,功率、冷卻及外觀尺寸)。
此等用例之端對端服務視圖涉及服務流程的概念且與交易相關聯。交易詳述了耗用服務之實體的總服務要求,以及資源、工作負載、工作流程以及業務功能及業務層級要求之相關聯服務。所描述的用「條項」執行之服務可在每一層處進行管理,方式為在服務之生命週期期間確保交易之即時及運行時間合約遵從性。當交易中之組分缺少其商定之服務等級協議(SLA)時,系統作為一個整體(交易中之組分)可提供以下能力:(1)理解SLA違反之影響,及(2)擴增系統中之其他組分以恢復總交易SLA,及(3)實施補救步驟。在一些實例中,SLA為實體之間的協議、承諾及/或合約。SLA可包括在SLA被視為符合或不符合之前必須滿足的參數(例如,潛時)及對應值(例如,以毫秒為單位的時間)。
因此,考慮到此等變化及服務特徵,邊緣雲端A110內之邊緣運算可提供即時地或近即時地伺服用例A205之多個應用(例如,物件追蹤、視訊監控、連接的汽車等)並作出回應的能力,並滿足此等多個應用之超低潛時要求。此等優勢使一類全新的應用(虛擬網路功能(VNF)、功能即服務(FaaS)、邊緣即服務(EaaS)、標準程序等)得以實現,由於潛時或其他限制,此等應用無法充分利用習知雲端運算。
然而,邊緣運算之優勢伴隨著以下注意事項。位於邊緣處之裝置常常受到資源限制,且因此在邊緣資源之使用上存在壓力。通常,此係經由彙集供多個使用者(租戶)及裝置使用之記憶體及儲存資源來解決。邊緣可受到功率及冷卻限制,且因此耗用大部分功率之應用需要考慮功率使用情況。在此等所彙集記憶體資源中可存在固有的功率-效能權衡,此係因為許多資源很可能使用新興的記憶體技術,其中較多功率需要較大記憶體頻寬。同樣,亦需要硬體及信任根可信功能之經改良安全性,此係因為邊緣位置可能係無人操縱的且甚至可能需要經許可接取(例如,在容納於第三方位置中時)。在邊緣雲端A110中,在有許多使用者請求服務及應用程式之多租戶、多所有者或多重接取設定中,此等問題被放大,尤其係在網路使用動態波動且多個利益相關者、用例及服務之組成變化時。
在更一般層級上,邊緣運算系統可描述為涵蓋在邊緣雲端A110中操作之先前所論述層(網路層A200至A240)處的任何數目個部署,其提供來自用戶端及分佈式運算裝置之協調。一或多個邊緣閘道器節點、一或多個邊緣聚集節點及一或多個核心資料中心可跨越網路之層分佈,以由或代表電信服務提供者(「telco」或「TSP」)、物聯網服務提供者、雲端服務提供者(CSP)、企業實體或任何其他數目個實體提供邊緣運算系統之實施。可動態地提供邊緣運算系統之各種實施及組態,諸如在經協調以滿足服務目標時。
根據本文中所提供之實例,用戶端運算節點可體現為能夠作為資料之生產者或消費者通訊的任何類型之端點組件、裝置、器具或其他事物。此外,如邊緣運算系統中使用之標記「節點」或「裝置」未必意謂此類節點或裝置以用戶端或代理/從屬/跟隨器角色來操作;實際上,邊緣運算系統中之節點或裝置中之任一者指代個別實體、節點或子系統,其包括離散或經連接硬體或軟體組態以促進或使用邊緣雲端A110。
因此,邊緣雲端A110由網路組件及功能特徵形成,該等網路組件及功能特徵由網路層A210至A230當中之邊緣閘道器節點、邊緣聚集節點或其他邊緣運算節點操作且操作於該等節點內。邊緣雲端A110因此可體現為任何類型之網路,其提供接近本文中所論述的支援無線電接取網路(RAN)之端點裝置(例如,行動運算裝置、IoT裝置、智慧型裝置等)定位的邊緣運算及/或儲存資源。換言之,邊緣雲端A110可經設想為連接端點裝置與充當至服務提供者核心網路之進入點的傳統網路接取點之「邊緣」,同時亦提供儲存及/或運算能力,該服務提供者核心網路包括行動載波網路(例如,全球行動通訊系統(GSM)網路、長期演進(LTE)網路、5G/6G網路等)。其他類型及形式之網路接取(例如,Wi-Fi、包括光學網路之遠程無線、有線網路)亦可用於代替此類3GPP載波網路或結合此類3GPP載波網路使用。
邊緣雲端A110之網路組件可為伺服器、多租戶伺服器、器具運算裝置及/或任何其他類型之運算裝置。例如,邊緣雲端A110可包括器具運算裝置,其為包括殼體、機箱、機殼或外殼之獨立電子裝置。在一些情形下,殼體可經尺寸設定以實現可攜性,使得其可由人類攜帶及/或經運送。實例殼體可包括形成部分或完全保護器具之內含物的一或多個外部表面之材料,其中保護可包括氣象保護、危險環境保護(例如,EMI、振動、極端溫度)及/或支援可浸沒性。實例殼體可包括用以為固定及/或可攜式實施提供電力之電力電路系統,諸如AC電力輸入、DC電力輸入、AC/DC或DC/AC轉換器、電力調節器、變壓器、充電電路系統、電池、有線輸入及/或無線電力輸入。實例殼體及/或其表面可包括或連接至安裝硬體以支援附接至諸如建築、電信結構(例如,極、天線結構等)及/或機架(例如,伺服器機架、葉片安裝件等)之結構。實例殼體及/或其表面可支援一或多個感測器(例如,溫度感測器、振動感測器、光感測器、聲學感測器、電容式感測器、近接感測器等)。一或多個此類感測器可包含於器具之表面中、由該表面攜載或以其他方式嵌入於該表面中及/或安裝至該表面。實例殼體及/或其表面可支援機械連接性,諸如推進硬體(例如,車輪、螺旋槳等)及/或鉸接硬體(例如,機器人臂、可樞轉附件等)。在一些情形下,感測器可包括任何類型之輸入裝置,諸如使用者介面硬體(例如,按鈕、開關、撥號盤、滑塊等)。在一些情形下,實例殼體包括包含在其中、由其攜載、嵌入於其中及/或附接至其上之輸出裝置。輸出裝置可包括顯示器、觸控螢幕、燈、LED、揚聲器、I/O埠(例如,USB)等。在一些情形下,邊緣裝置為出於特定目的在網路中呈現之裝置(例如,交通訊號燈),但可具有可用於其他目的之處理及/或其他能力。此類邊緣裝置可獨立於其他網路連接裝置且可具備具有適於其主要目的之外觀尺寸的殼體;但仍可供用於並不干擾其主要任務之其他運算任務。邊緣裝置包括物聯網裝置。器具運算裝置可包括硬體及軟體組件以管理本端問題,諸如裝置溫度、振動、資源利用率、更新、功率問題、實體及網路安全性等。結合下文進一步詳細描述之圖D1B描述用於實施器具運算裝置之實例硬體。邊緣雲端A110亦可包括一或多個伺服器及/或一或多個多租戶伺服器。此類伺服器可包括作業系統且實施虛擬運算環境。虛擬運算環境可包括管理(例如,產生、部署、破壞等)一或多個虛擬機、一或多個容器等之超管理器。此類虛擬運算環境提供如下執行環境:其中一或多個應用程式及/或其他軟體、程式碼或指令碼可在與一或多個其他應用程式、軟體、程式碼或指令碼隔離時執行。
在圖A3中,各種用戶端端點A310 (呈行動裝置、電腦、自主車輛、商業運算設備、工業處理設備之形式)交換特定針對於端點網路聚集類型之請求及回應。例如,用戶端端點A310可藉由經由本地網路系統A332交換請求及回應A322而經由有線寬頻網路獲得網路接取。諸如行動運算裝置之一些用戶端端點A310可藉由經由接取點(例如,蜂巢式網路塔) A334交換請求及回應A324而經由無線寬頻網路獲得網路接取。諸如自主車輛之一些用戶端端點A310可經由街道定位式網路系統A336來經由無線車輛網路獲得對請求及回應A326之網路接取。然而,不管網路接取之類型如何,TSP皆可部署邊緣雲端A110內之聚集點A342、A344以聚集訊務及請求。因此,在邊緣雲端A110內,TSP可諸如在邊緣聚集節點A340處部署各種運算及儲存資源以提供所請求內容。邊緣雲端A110之邊緣聚集節點A340及其他系統連接至雲端或資料中心A360,該雲端或資料中心使用回程網路A350以實現來自雲端/資料中心的針對網站、應用程式、資料庫伺服器等之較高潛時請求。邊緣聚集節點A340及聚集點A342、A344之額外或合併例項,包括部署於單一伺服器框架上之彼等例項亦可存在於邊緣雲端A110或TSP基礎架構之其他區域內。
在其他實例中,可基於圖D1A及圖D1B中所描繪之組件實現參考本發明邊緣運算系統及環境所論述之運算節點或裝置中之任一者。各別邊緣運算節點可體現為能夠與其他邊緣、網路連接或端點組件通訊的裝置、器具、電腦或其他「事物」類型。例如,邊緣運算裝置可體現為個人電腦、伺服器、智慧型手機、行動運算裝置、智慧型器具、車輛內運算系統(例如,導航系統)、具有外機殼、外殼等之獨立裝置,或能夠執行所描述功能之其他裝置或系統。
在圖D1A中描繪之簡化實例中,邊緣運算節點D100包括運算引擎(在本文中亦稱為「運算電路系統」) D102、輸入/輸出(I/O)子系統D108、資料儲存器D110、通訊電路系統子系統D112,且任擇地包括一或多個周邊裝置D114。在其他實例中,各別運算裝置可包括其他或額外組件,諸如通常見於電腦中之彼等組件(例如,顯示器、周邊裝置等)。另外,在一些實例中,例示性組件中之一或多者可併入於另一組件中或以其他方式形成另一組件的一部分。
運算節點D100可體現為能夠執行各種運算功能的任何類型之引擎、裝置或裝置集合。在一些實例中,運算節點D100可體現為單一裝置,諸如積體電路、嵌入式系統、現場可程式化閘陣列(FPGA)、系統單晶片(SOC)或其他整合式系統或裝置。在例示性實例中,運算節點D100包括或體現為處理器D104及記憶體D106。處理器D104可體現為能夠執行本文中所描述之功能(例如,執行應用程式)的任何類型之處理器。例如,處理器D104可體現為多核心處理器、微控制器、處理單元、特定化或特定用途處理單元,或其他處理器或處理/控制電路。
在一些實例中,處理器D104可體現為、包括或耦接至FPGA、特殊應用積體電路(ASIC)、可重組配硬體或硬體電路系統,或其他特定化硬體以促進執行本文中所描述之功能。亦在一些實例中,處理器D104可體現為特定化x處理單元(xPU),亦稱為資料處理單元(DPU)、基礎架構處理單元(IPU)或網路處理單元(NPU)。此類xPU可體現為獨立電路或電路封裝、整合於SOC內,或與網路連接電路系統(例如,在SmartNIC或增強型SmartNIC中)、加速電路系統、儲存裝置、儲存磁碟或AI硬體(例如,GPU或經規劃FPGA)整合。此類xPU可設計成接收規劃以處理一或多個資料串流,並在CPU或通用處理硬體外部針對資料串流(諸如代管微服務、執行服務管理或協調、組織或管理伺服器或資料中心硬體、管理服務網格,或收集及分佈遙測)執行特定任務及動作。然而,應理解,xPU、SOC、CPU及處理器D104之其他變型可彼此協調地起作用,以在運算節點D100內及代表該運算節點執行許多類型之操作及指令。
記憶體D106可體現為能夠執行本文中所描述之功能的任何類型之依電性(例如,動態隨機存取記憶體(DRAM)等)或非依電性記憶體或資料儲存器。依電性記憶體可為需要功率以維持由媒體儲存之資料之狀態的儲存媒體。依電性記憶體之非限制性實例可包括各種類型之隨機存取記憶體(RAM),諸如DRAM或靜態隨機存取記憶體(SRAM)。可用於記憶體模組中之一種特定類型的DRAM為同步動態隨機存取記憶體(SDRAM)。
在一實例中,記憶體裝置為區塊可定址記憶體裝置,諸如基於NAND或NOR技術之彼等裝置(例如,單位準胞元(「SLC」)、多位準胞元(「MLC」)、四位準胞元(「QLC」)、三位準胞元(「TLC」)或某一其他NAND)。在一些實例中,記憶體裝置包括位元組可定址就地寫入三維交叉點記憶體裝置或其他位元組可定址就地寫入非依電性記憶體(NVM)裝置,諸如單位準或多位準相變記憶體(PCM)或具有開關之相變記憶體(PCMS)、使用硫族化物相變材料(例如,硫族化物玻璃)之NVM裝置、包括金屬氧化物基、氧空缺基及導電橋接隨機存取記憶體(CB-RAM)之電阻式記憶體、奈米線記憶體、鐵電電晶體隨機存取記憶體(FeTRAM)、並有憶阻器技術之磁阻式隨機存取記憶體(MRAM)、自旋轉移力矩(STT)-MRAM、基於自旋電子磁性接面記憶體之裝置、基於磁性穿隧接面(MTJ)之裝置、基於疇壁(DW)及自旋軌道轉移(SOT)之裝置、基於閘流體之記憶體裝置,或上文各者中的任一者之組合或其他合適記憶體。記憶體裝置亦可包括三維交叉點記憶體裝置(例如,Intel® 3D XPoint™記憶體),或其他位元組可定址就地寫入非依電性記憶體裝置。記憶體裝置可指代晶粒自身及/或指代封裝記憶體產品。在一些實例中,3D交叉點記憶體(例如,Intel® 3D XPoint™記憶體)可包含無電晶體可堆疊交叉點架構,其中記憶體胞元位於字線及位元線的相交處且可個別定址,且其中位元儲存係基於體電阻之變化。在一些實例中,記憶體D106之全部或一部分可整合至處理器D104中。記憶體D106可儲存在操作期間使用之各種軟體及資料,諸如一或多個應用程式、由應用程式操作之資料、程式庫及驅動程式。
在一些實例中,基於電阻及/或無電晶體記憶體架構包括奈米標度相變記憶體(PCM)裝置,其中一定體積之相變材料駐存於至少二個電極之間。實例相變材料之部分展現不同程度之結晶相及非晶相,其中可量測至少二個電極之間的不同程度之電阻。在一些實例中,相變材料為基於硫族化物之玻璃材料。此類電阻式記憶體裝置有時被稱作記得先前流過之電流的歷史的憶阻裝置。藉由量測電阻自實例PCM裝置擷取所儲存資料,其中當相比於具有相對較高電阻值(例如,邏輯「1」)之非晶相時,結晶相展現相對較低電阻值(例如,邏輯「0」)。
實例PCM裝置歷時長時間週期(例如,在室溫下大約10年)儲存資料。至實例PCM裝置之寫入操作(例如,設定為邏輯「0」,設定為邏輯「1」,設定為中間電阻值)係藉由將一或多個電流脈衝施加至至少二個電極來實現,其中脈衝具有特定電流量值及持續時間。例如,施加至至少二個電極之長低電流脈衝(SET)致使實例PCM裝置駐存於低電阻結晶態,而施加至至少二個電極之相對短高電流脈衝(RESET)致使實例PCM裝置駐存於高電阻非晶態。
在一些實例中,PCM裝置之實施促進支援記憶體內運算能力之非範紐曼運算架構。大體而言,傳統運算架構包括經由匯流排通訊地連接至一或多個記憶體裝置之中央處理單元(CPU)。因此,有限量之能量及時間經耗用以在CPU與記憶體之間轉移資料,此為範紐曼運算架構之已知瓶頸。然而,PCM裝置藉由在記憶體內執行一些運算操作最小化且在一些情況下消除CPU與記憶體之間的資料轉移。換言之,PCM裝置儲存資訊且執行運算任務。此類非範紐曼運算架構可實施具有相對較高維數之向量以促進超維運算,諸如具有10,000個位元之向量。相對大位元寬度向量支援以人腦模型化之運算範式,其亦處理類似於寬位元向量之資訊。
運算電路系統D102經由I/O子系統D108通訊地耦接至運算節點D100之其他組件,該I/O子系統可體現為用以促進與運算電路系統D102 (例如,與處理器D104及/或主記憶體D106)及運算電路系統D102之其他組件的輸入/輸出操作之電路系統及/或組件。例如,I/O子系統D108可體現為或以其他方式包括記憶體控制器集線器、輸入/輸出控制集線器、整合式感測器集線器、韌體裝置、通訊鏈路(例如,點對點鏈路、匯流排鏈路、導線、電纜、光導、印刷電路板跡線等)及/或其他組件及子系統以促進輸入/輸出操作。在一些實例中,I/O子系統D108可形成系統單晶片(SoC)之一部分,且連同處理器D104、記憶體D106及運算電路系統D102之其他組件中之一或多者併入至運算電路系統D102中。
一或多個例示性資料儲存裝置/磁碟D110可體現為經組配用於短期或長期儲存資料的任何類型之實體裝置中之一或多者,諸如記憶體裝置、記憶體、電路系統、記憶卡、快閃記憶體、硬碟機、固態磁碟機(SSD)及/或其他資料儲存裝置/磁碟。個別資料儲存裝置/磁碟D110可包括儲存用於資料儲存裝置/磁碟D110之資料及韌體程式碼的系統分區。個別資料儲存裝置/磁碟D110亦可包括一或多個作業系統分區,其取決於例如運算節點D100之類型而儲存用於作業系統之資料檔案及可執行碼。
通訊電路系統D112可體現為能夠經由運算電路系統D102與另一運算裝置(例如,實施邊緣運算系統之邊緣閘道器)之間的網路支援通訊的任何通訊電路、裝置或其集合。通訊電路系統D112可經組配以使用任一或多種通訊技術(例如,有線或無線通訊)及相關聯協定(例如,諸如3GPP 4G或5G標準之蜂巢式網路連接協定、諸如IEEE 802.11/Wi-Fi®之無線區域網路協定、無線廣域網路協定、乙太網路、Bluetooth®、低功耗藍牙、諸如IEEE 802.15.4或ZigBee®之IoT協定、低功率廣域網路(LPWAN)或低功率廣域(LPWA)協定等)來實現此類通訊。
例示性通訊電路系統D112包括網路介面控制器(NIC) D120,其亦可稱為主機網狀架構介面(HFI)。NIC D120可體現為一或多個擴充板、子卡、網路介面卡、控制器晶片、晶片組或可由運算節點D100使用以與另一運算裝置(例如,邊緣閘道器節點)連接的其他裝置。在一些實例中,NIC D120可體現為包括一或多個處理器,或包括於亦包含一或多個處理器之多晶片封裝上的系統單晶片(SoC)之部分。在一些實例中,NIC D120可包括均在NIC D120本端之本端處理器(未圖示)及/或本端記憶體(未圖示)。在此類實例中,NIC D120之本端處理器可能夠執行本文中所描述之運算電路系統D102的功能中之一或多者。另外或替代地,在此類實例中,NIC D120之本端記憶體可在板層級、插口層級、晶片層級及/或其他層級處整合至用戶端運算節點之一或多個組件中。
另外,在一些實例中,各別運算節點D100可包括一或多個周邊裝置D114。取決於運算節點D100之特定類型,此類周邊裝置D114可包括見於運算裝置或伺服器中的任何類型之外圍裝置,諸如音訊輸入裝置、顯示器、其他輸入/輸出裝置、介面裝置及/或其他周邊裝置。在其他實例中,運算節點D100可由邊緣運算系統中之各別邊緣運算節點(不論是用戶端、閘道器還是聚集節點)或類似形式之器具、電腦、子系統、電路系統或其他組件體現。
在更詳細實例中,圖D1B說明可存在於用於實施本文中所描述之技術(例如,操作、程序、方法及方法論)的邊緣運算節點D150中的組件之實例的方塊圖。此邊緣運算節點D150在被實施為運算裝置或為運算裝置之部分(例如,為行動裝置、基地台、伺服器、閘道器等)時提供節點D100之各別組件的更近視圖。邊緣運算節點D150可包括本文中參考的硬體或邏輯組件之任何組合,且其可包括可與邊緣通訊網路或此類網路之組合一起使用的任何裝置或與該任何裝置耦接。組件可實施為調適於邊緣運算節點D150中的積體電路(IC)、其部分、離散電子裝置或其他模組、指令集、可程式化邏輯或演算法、硬體、硬體加速器、軟體、韌體或其組合,或實施為以其他方式併入於較大系統之機箱內的組件。
邊緣運算裝置D150可包括呈處理器D152之形式的處理電路系統,其可為微處理器、多核心處理器、多執行緒處理器、超低電壓處理器、嵌入式處理器、xPU/DPU/IPU/NPU、特定用途處理單元、特定化處理單元或其他已知處理元件。處理器D152可為其中處理器D152及其它組件形成為單一積體電路或單一封裝之系統單晶片(SoC)的部分,諸如來自加利福尼亞州聖克拉拉之因特爾公司的Edison™或Galileo™ SoC板。作為一實例,處理器D152可包括基於Intel®架構Core™之CPU處理器,諸如Quark™、Atom™、i3、i5、i7、i9或MCU類處理器,或可自Intel®獲得之另一此類處理器。然而,可使用任何數目個其他處理器,諸如可自加利福尼亞州森尼維耳市之美國超威半導體公司獲得之處理器(AMD®)、來自加利福尼亞州森尼維耳市之MIPS技術公司的基於MIPS®之設計、自ARM控股有限公司或其客戶或其被許可方或採用者獲得許可的基於ARM®之設計。處理器可包括單元,諸如來自Apple®公司之A5至A13處理器、來自Qualcomm®技術公司之Snapdragon™處理器或來自德州儀器公司之OMAP™處理器。處理器D152及隨附電路系統可以單一插口外觀尺寸、多個插口外觀尺寸或多種其他格式提供,包括呈有限硬體組態或包括少於圖D1B中所示之所有元件的組態。
處理器D152可經由互連件D156 (例如,匯流排)與系統記憶體D154通訊。任何數目個記憶體裝置可用於提供給定量之系統記憶體。作為實例,記憶體754可為根據諸如DDR或行動DDR標準(例如,LPDDR、LPDDR2、LPDDR3或LPDDR4)之聯合電子裝置工程委員會(JEDEC)設計的隨機存取記憶體(RAM)。在特定實例中,記憶體組件可符合由JEDEC頒佈之DRAM標準,諸如用於DDR SDRAM之JESD79F、用於DDR2 SDRAM之JESD79-2F、用於DDR3 SDRAM之JESD79-3F、用於DDR4 SDRAM之JESD79-4A、用於低功率DDR (LPDDR)之JESD209、用於LPDDR2之JESD209-2、用於LPDDR3之JESD209-3及用於LPDDR4之JESD209-4。此類標準(及類似標準)可被稱為基於DDR之標準,且實施此類標準之儲存裝置之通訊介面可被稱為基於DDR之介面。在各種實施中,個別記憶體裝置可具有任何數目個不同封裝類型,諸如單晶粒封裝(SDP)、雙晶粒封裝(DDP)或四晶粒封裝(Q17P)。在一些實例中,此等裝置可直接焊接至主板上以提供較低構形解決方案,而在其他實例中,裝置經組配為又藉由給定連接器耦接至主板之一或多個記憶體模組。可使用任何數目個其他記憶體實施,諸如其他類型之記憶體模組,例如,不同種類之雙列直插記憶體模組(DIMM),包括但不限於microDIMM或MiniDIMM。
為了提供諸如資料、應用程式、作業系統等之資訊之持久性儲存,儲存器D158亦可經由互連件D156耦接至處理器D152。在一實例中,儲存器D158可經由固態磁碟機(SSDD)實施。可用於儲存器D158之其他裝置包括快閃記憶卡,諸如安全數位(SD)卡、microSD卡、極速數位(XD)圖像卡等,及通用串列匯流排(USB)快閃驅動器。在一實例中,記憶體裝置可為或可包括使用硫族化物玻璃之記憶體裝置,多臨限值位準NAND快閃記憶體、NOR快閃記憶體、單位準或多位準相變記憶體(PCM)、電阻式記憶體、奈米線記憶體、鐵電電晶體隨機存取記憶體(FeTRAM)、反鐵電記憶體、並有憶阻器技術之磁阻式隨機存取記憶體(MRAM)、包括金屬氧化物基、氧空缺基及導電橋接隨機存取記憶體(CB-RAM)之電阻式記憶體,或自旋轉移力矩(STT)-MRAM、基於自旋電子磁性接面記憶體之裝置、基於磁性穿隧接面(MTJ)之裝置、基於疇壁(DW)及自旋軌道轉移(SOT)之裝置、基於閘流體之記憶體裝置,或上文各者中之任一者的組合,或其他記憶體。
在低功率實施中,儲存器D158可為與處理器D152相關聯之晶粒上記憶體或暫存器。然而,在一些實例中,儲存器D158可使用微型硬碟機(HDD)實施。此外,除了所描述技術之外或代替所描述技術,任何數目個新技術可用於儲存器D158,諸如電阻變化記憶體、相變記憶體、全像記憶體或化學記憶體等。
組件可經由互連件D156通訊。互連件D156可包括任何數目個技術,包括工業標準架構(ISA)、擴展型ISA (EISA)、周邊組件互連(PCI)、周邊組件互連擴展(PCIx)、PCI高速(PCIe)或任何數目個其他技術。互連件D156可為例如用於基於SoC之系統中的專有匯流排。可包括其他匯流排系統,諸如積體電路間(I2C)介面、串列周邊介面(SPI)介面、點對點介面及功率匯流排等。
互連件D156可將處理器D152耦接至收發器D166,以用於與所連接邊緣裝置D162通訊。收發器D166可使用任何數目個頻率及協定,諸如在IEEE 802.15.4標準下的2.4千兆赫(GHz)傳輸,使用如由Bluetooth®特別興趣小組界定的Bluetooth®低功耗(BLE)標準,或ZigBee®標準等。經組配用於特定無線通訊協定之任何數目個無線電可用於連接至所連接邊緣裝置D162。例如,無線區域網路(WLAN)單元可用於根據電機電子工程師學會(IEEE) 802.11標準實施Wi-Fi®通訊。另外,例如根據蜂巢式或其他無線廣域協定之無線廣域通訊可經由無線廣域網路(WWAN)單元發生。
無線網路收發器D166 (或多個收發器)可使用用於不同範圍處之通訊的多個標準或無線電通訊。例如,邊緣運算節點D150可使用基於低功耗藍牙(BLE)之本端收發器或另一低功率無線電與例如約10公尺內之接近裝置通訊,以節省電力。經由ZigBee®或其他中間功率無線電可到達例如在約50公尺內之更遠所連接邊緣裝置D162。兩通訊技術皆可經由單一無線電以不同功率位準進行或可經由單獨收發器,例如使用BLE之本端收發器及使用ZigBee®之單獨網狀收發器進行。
可包括無線網路收發器D166 (例如,無線電收發器)以經由本端或廣域網路協定與雲端(例如,邊緣雲端D195)中之裝置或服務通訊。無線網路收發器D166可為遵循IEEE 802.15.4或IEEE 802.15.4g標準等之低功率廣域(LPWA)收發器。邊緣運算節點D150可使用由Semtech及LoRa聯盟開發之LoRaWAN™ (遠程廣域網路)在廣域上通訊。本文中所描述之技術不限於此等技術,而是可與實施諸如Sigfox及其他技術之遠程低頻寬通訊的任何數目個其他雲端收發器一起使用。此外,可使用IEEE 802.15.4e規範中描述的其他通訊技術,諸如時槽化跳頻。
除了針對無線網路收發器D166所提及之系統之外,亦可使用任何數目個其他無線電通訊及協定,如本文中所描述。例如,收發器D166可包括使用展頻(SPA/SAS)通訊來實施高速通訊之蜂巢式收發器。此外,可使用任何數目個其他協定,諸如用於中速通訊及佈建網路通訊之Wi-Fi®網路。收發器D166可包括與本揭露內容之末端處進一步詳細論述的任何數目個第三代合作夥伴計劃(3GPP)規範相容之無線電,該等規範諸如長期演進(LTE)及第5代(5G)通訊系統。可包括網路介面控制器(NIC) D168以將有線通訊提供至邊緣雲端D195之節點或其他裝置,諸如所連接邊緣裝置D162 (例如,在網格中操作)。有線通訊可提供乙太網路連接或可係基於其他類型之網路,諸如控制器區域網路(CAN)、本端互連網路(LIN)、DeviceNet、ControlNet、資料Highway+、PROFIBUS或PROFINET等。可包括額外NIC D168以支援連接至第二網路,例如,第一NIC D168經由乙太網路將通訊提供至雲端,且第二NIC D168經由另一類型之網路將通訊提供至其他裝置。
鑒於自裝置至另一組件或網路之多種類型的可適用通訊,由裝置使用之可適用通訊電路系統可包括組件D164、D166、D168或D170中之任一或多者或由其體現。因此,在各種實例中,用於通訊(例如,接收、傳輸等)之可適用構件可由此類通訊電路系統體現。
邊緣運算節點D150可包括或耦接至加速電路系統D164,其可由一或多個人工智慧(AI)加速器、神經運算棒、神經形態硬體、FPGA、GPU之配置、xPU/DPU/IPU/NPU之配置、一或多個SoC、一或多個CPU、一或多個數位信號處理器、專用ASIC,或設計成實現一或多個特定化任務的其他形式之特定化處理器或電路系統來體現。此等任務可包括AI處理(包括機器學習、訓練、推斷及分類操作)、視覺資料處理、網路資料處理、物件偵測、規則分析等。此等任務亦可包括用於本文件中別處所論述之服務管理及服務操作的特定邊緣運算任務。
互連件D156可將處理器D152耦接至用於連接額外裝置或子系統之感測器集線器或外部介面D170。裝置可包括感測器D172,諸如加速計、位準感測器、流量感測器、光學光感測器、相機感測器、溫度感測器、全球導航系統(例如,GPS)感測器、壓力感測器、大氣壓感測器等。集線器或介面D170進一步可用於將邊緣運算節點D150連接至致動器D174,諸如電力開關、閥致動器、可聽聲音產生器、視覺警告裝置等。
在一些任擇實例中,各種輸入/輸出(I/O)裝置可存在於邊緣運算節點D150內或連接至該邊緣運算節點。例如,可包括顯示器或其他輸出裝置D184以展示諸如感測器讀數或致動器位置之資訊。可包括諸如觸控螢幕或小鍵盤之輸入裝置D186以接受輸入。輸出裝置D184可包括任何數目種形式之音訊或視覺顯示器,包括諸如二進位狀態指示器(例如,發光二極體(LED))之簡單視覺輸出及多字元視覺輸出,或諸如顯示螢幕(例如,液晶顯示器(LCD)螢幕)之更複雜輸出,其中自邊緣運算節點D150之操作產生字元、圖形、多媒體物件等之輸出。在本發明系統之上下文中,顯示器或控制台硬體可用以提供邊緣運算系統之輸出及接收其輸入;管理邊緣運算系統之組件或服務;識別邊緣運算組件或服務之狀態;或進行任何其他數目個管理功能或服務用例。
電池D176可為邊緣運算節點D150供電,但在邊緣運算節點D150安裝於固定位置中之實例中,節點可具有耦接至電網之電力供應器,或電池可用作備份或用於臨時能力。電池D176可為鋰離子電池或金屬空氣電池,諸如鋅空氣電池、鋁空氣電池、鋰空氣電池等。
電池監測器/充電器D178可包括於邊緣運算節點D150中以追蹤電池D176 (若包括)之充電狀態(SoCh)。電池監測器/充電器D178可用於監測電池D176之其他參數以提供故障預測,諸如電池D176之健康狀態(SoH)及功能狀態(SoF)。電池監測器/充電器D178可包括電池監測積體電路,諸如來自線性技術之LTC4020或LTC2990、來自亞利桑那州菲尼克斯之ON半導體的ADT7488A,或來自德克薩斯州達拉斯之德州儀器公司的UCD90xxx系列之IC。電池監測器/充電器D178可經由互連件D156將關於電池D176之資訊傳達至處理器D152。電池監測器/充電器D178亦可包括類比對數位(ADC)轉換器,其使得處理器D152能夠直接監測電池D176之電壓或來自電池D176之電流流動。電池參數可用於判定邊緣運算節點D150可執行之動作,諸如傳輸頻率、網狀網路操作、感測頻率等。
電力區塊D180或耦接至電網之其他電力供應器可與電池監測器/充電器D178耦接以對電池D176充電。在一些實例中,電力區塊D180可由無線電力接收器替換以例如經由邊緣運算節點D150中之環形天線無線地獲得電力。電池監測器/充電器D178中可包括無線電池充電電路,諸如來自加利福尼亞州米爾皮塔斯之線性技術的LTC4020晶片等。可基於電池D176之大小,且因此所需電流而選擇特定充電電路。可使用由Airfuel聯盟頒佈之Airfuel標準、由無線電力協會頒佈之Qi無線充電標準或由無線電力聯盟頒佈之Rezence充電標準等執行充電。
儲存器D158可包括呈軟體、韌體或硬體命令形式之指令D182以實施本文中所描述之技術。儘管此類指令D182展示為包括於記憶體D154及儲存器D158中之程式碼區塊,但可理解,程式碼區塊中之任一者可由例如構建至特殊應用積體電路(ASIC)中之固線式電路替換。
在一實例中,經由記憶體D154、儲存器D158或處理器D152提供之指令D182可體現為非暫時性機器可讀媒體D160,該媒體包括用以指示處理器D152在邊緣運算節點D150中執行電子操作之程式碼。處理器D152可經由互連件D156接取非暫時性機器可讀媒體D160。例如,非暫時性機器可讀媒體D160可由針對儲存器D158描述之裝置體現,或可包括諸如儲存裝置及/或儲存磁碟之特定儲存單元,包括光碟(例如,數位化通用光碟(DVD)、緊密光碟(CD)、CD-ROM、Blu-ray光碟)、快閃驅動器、軟碟、硬碟機(例如,SSD),或歷時任何持續時間儲存資訊(例如,歷時經延長時間週期、永久性地、歷時短暫時刻、用於臨時緩衝及/或快取)的任何數目個其他硬體裝置。非暫時性機器可讀媒體D160可包括用以指示處理器D152執行特定動作序列或流程之指令,例如,如關於上文描繪之操作及功能性之流程圖及方塊圖所描述的動作。如本文中所使用,術語「機器可讀媒體」及「電腦可讀媒體」為可互換的。如本文中所使用,術語「非暫時性電腦可讀媒體」明確地界定為包括任何類型之電腦可讀儲存裝置及/或儲存磁碟且排除傳播信號並排除傳輸媒體。
亦在特定實例中,處理器D152上之指令D182 (單獨地,或與機器可讀媒體D160之指令D182組合)可組配可信執行環境(TEE) D190之執行或操作。在一實例中,TEE D190操作為處理器D152可接取之受保護區域,以用於安全指令執行及安全資料接取。可例如經由使用Intel®軟體防護擴展(SGX)或ARM® TrustZone®硬體安全擴展、Intel®管理引擎(ME)或Intel®融合式安全可管理性引擎(CSME)提供TEE D190之各種實施及處理器D152或記憶體D154中之隨附安全區域。可經由TEE D190及處理器D152在裝置D150中實施安全強化、硬體信任根及可信或受保護操作之其他態樣。
圖D2為實例處理器平台D200之方塊圖,其經構造以執行及/或具現化本文中所揭露之流程圖中之任一者的機器可讀指令及/或操作以實施本文中所揭露之設備及/或結構中之任一者。處理器平台D200可例如為伺服器、個人電腦、工作站、自主學習機器(例如,神經網路)、行動裝置(例如,蜂巢式電話、智慧型手機、諸如iPad TM之平板電腦)、個人數位助理(PDA)、網際網路器具、DVD播放機、CD播放機、數位視訊記錄器、Blu-ray播放機、遊戲控制台、個人視訊記錄器、機上盒、耳機(例如,擴增實境(AR)耳機、虛擬實境(VR)耳機等)或其他可佩戴式裝置,或任何其他類型的運算裝置。
所說明實例之處理器平台D200包括處理器電路系統D212。所說明實例之處理器電路系統D212為硬體。例如,處理器電路系統D212可由來自任何所要系列或製造商之一或多個積體電路、邏輯電路、FPGA微處理器、GPU、GPU、DSP及/或微控制器實施。處理器電路系統D212可由一或多個基於半導體(例如,基於矽)之裝置實施。
所說明實例之處理器電路系統D212包括本端記憶體D213 (例如,快取記憶體、暫存器等)。所說明實例之處理器電路系統D212藉由匯流排D218與包括依電性記憶體D214及非依電性記憶體D216之主記憶體通訊。依電性記憶體D214可由同步動態隨機存取記憶體(SDRAM)、動態隨機存取記憶體(DRAM)、RAMBUS®動態隨機存取記憶體(RDRAM®)及/或任何其他類型之RAM裝置實施。非依電性記憶體D216可由快閃記憶體及/或任何其他所要類型之記憶體裝置實施。對所說明實例之主記憶體D214、D216的存取由記憶體控制器D217控制。
所說明實例之處理器平台D200亦包括介面電路系統D220。介面電路系統D220可由硬體根據任何類型之介面標準實施,諸如乙太網路介面、通用串列匯流排(USB)介面、Bluetooth®介面、近場通訊(NFC)介面、PCI介面及/或PCIe介面。
在所說明實例中,一或多個輸入裝置D222連接至介面電路系統D220。輸入裝置D222准許使用者將資料及/或命令鍵入至處理器電路系統D212中。輸入裝置D222可由例如音訊感測器、麥克風、相機(靜態或視訊)、鍵盤、按鈕、滑鼠、觸控螢幕、軌跡墊、軌跡球、isopoint裝置及/或語音辨識系統實施。
一或多個輸出裝置D224亦連接至所說明實例之介面電路系統D220。輸出裝置D224可例如由顯示裝置(例如,發光二極體(LED)、有機發光二極體(OLED)、液晶顯示器(LCD)、陰極射線管(CRT)顯示器、就地切換(IPS)顯示器、觸控螢幕等)、觸覺輸出裝置、印表機及/或揚聲器實施。因此,所說明實例之介面電路系統D220通常包括圖形驅動器卡、圖形驅動器晶片及/或諸如GPU之圖形處理器電路系統。
所說明實例之介面電路系統D220亦包括通訊裝置,諸如傳輸器、接收器、收發器、數據機、住宅閘道器、無線接取點及/或網路介面以促進資料藉由網路D226與外部機器(例如,任何種類的運算裝置)之交換。例如,通訊可係藉由乙太網路連接、數位用戶線(DSL)連接、電話線連接、同軸電纜系統、衛星系統、站線無線系統、蜂巢式電話系統、光學連接等。
所說明實例之處理器平台D200亦包括用以儲存軟體及/或資料之一或多個大容量儲存裝置D228。此類大容量儲存裝置D228之實例包括磁性儲存裝置、光學儲存裝置、軟碟驅動器、HDD、CD、Blu-ray磁碟機、獨立磁碟冗餘陣列(RAID)系統、固態儲存裝置(諸如快閃記憶體裝置)及DVD驅動器。
可由本文中所揭露之流程圖中之任一者的機器可讀指令實施的機器可執行指令D232可儲存於大容量儲存裝置D228中、依電性記憶體D214中、非依電性記憶體D216中,及/或諸如CD或DVD之可移除非暫時性電腦可讀儲存媒體上。
圖D3為圖D2之處理器電路系統D212的實例實施之方塊圖。在此實例中,圖D2之處理器電路系統D212由微處理器D300實施。例如,微處理器D300可實施諸如CPU、DSP、GPU、XPU等之多核心硬體電路系統。儘管其可包括任何數目個實例核心D302 (例如,1個核心),但此實例之微處理器D300為包括N個核心之多核心半導體裝置。微處理器D300之核心D302可獨立地操作或可協作以執行機器可讀指令。例如,對應於韌體程式、嵌入式軟體程式或軟體程式的機器碼可由核心D302中之一者執行或可由核心D302中之多者在相同或不同時間執行。在一些實例中,對應於韌體程式、嵌入式軟體程式或軟體程式之機器碼經分割成執行緒且由核心D302中的二者或更多者並行地執行。軟體程式可對應於由本文中所揭露之流程圖表示的機器可讀指令及/或操作之一部分或全部。
核心D302可藉由實例匯流排D304通訊。在一些實例中,匯流排D304可實施通訊匯流排以實現與核心D302中之一或多者相關聯的通訊。例如,匯流排D304可實施積體電路間(I2C)匯流排、串列周邊介面(SPI)匯流排、PCI匯流排或PCIe匯流排中之至少一者。另外或替代地,匯流排D304可實施任何其他類型之運算或電氣匯流排。核心D302可藉由實例介面電路系統D306自一或多個外部裝置獲得資料、指令及/或信號。核心D302可藉由介面電路系統D306將資料、指令及/或信號輸出至一或多個外部裝置。儘管此實例之核心D302包括實例本端記憶體D320(例如,可分割成1階(L1)資料快取記憶體及L1指令快取記憶體之L1快取記憶體),但微處理器D300亦包括可由核心共享以用於高速接取資料及/或指令的實例共享記憶體D310 (例如,2階(L2_快取記憶體))。可藉由寫入至共享記憶體D310及/或自該共享記憶體讀取來轉移(例如,共享)資料及/或指令。核心D302中之每一者的本端記憶體D320及共享記憶體D310可為包括多個層級之快取記憶體及主記憶體(例如,圖D2之主記憶體D214、D216)的儲存裝置階層之部分。通常,相比較低層級記憶體,階層中之較高層級記憶體展現較低接取時間且具有較小儲存容量。快取記憶體階層之各種層級變化係藉由快取同調性策略管理(例如,協調)。
每一核心D302可被稱為CPU、DSP、GPU等,或任何其他類型之硬體電路系統。每一核心D302包括控制單元電路系統D314、算術及邏輯(AL)電路系統(有時被稱作ALU) D316、複數個暫存器D318、L1快取記憶體D320及實例匯流排D322。可存在其他結構。例如,每一核心D302可包括向量單元電路系統、單指令多資料(SIMD)單元電路系統、載入/儲存單元(LSU)電路系統、分支/跳轉單元電路系統、浮點單元(FPU)電路系統等。控制單元電路系統D314包括經構造以控制(例如,協調)對應核心D302內之資料移動的基於半導體之電路。AL電路系統D316包括經構造以對對應核心D302內之資料執行一或多個數學及/或邏輯運算的基於半導體之電路。一些實例之AL電路系統D316執行基於整數之運算。在其他實例中,AL電路系統D316亦執行浮點運算。在又其他實例中,AL電路系統D316可包括執行基於整數之運算的第一AL電路系統及執行浮點運算之第二AL電路系統。在一些實例中,AL電路系統D316可被稱為算術邏輯單元(ALU)。暫存器D318為用以儲存資料及/或指令的基於半導體之結構,該等資料及/或指令諸如由對應核心D302之AL電路系統D316執行之運算中之一或多者的結果。例如,暫存器D318可包括向量暫存器、SIMD暫存器、通用暫存器、旗標暫存器、分段暫存器、機器特定暫存器、指令指標暫存器、控制暫存器、偵錯暫存器、記憶體管理暫存器、機器檢查暫存器等。暫存器D318可配置成如圖D3中所示之組。替代地,暫存器D318可以任何其他配置、格式或結構來組織,包括遍及核心D302分佈以縮短接取時間。匯流排D320可實施I2C匯流排、SPI匯流排、PCI匯流排或PCIe匯流排中的至少一者。
每一核心D302,及/或更大體而言,微處理器D300可包括上文所展示及描述之彼等結構的額外及/或替代結構。例如,可存在一或多個時脈電路、一或多個電力供應器、一或多個電源閘、一或多個快取本籍代理(CHA)、一或多個融合式/共同網格光闌(CMS)、一或多個移位器(例如,桶移位器)及/或其他電路系統。微處理器D300為半導體裝置,其製造成包括互連之許多電晶體以在一或多個封裝中包含之一或多個積體電路(IC)中實施上文所描述結構。處理器電路系統可包括一或多個加速器及/或與一或多個加速器協作。在一些實例中,加速器由邏輯電路系統實施以相比可由通用處理器進行之任務更快速及/或高效地執行某些任務。加速器之實例包括諸如本文中所論述之彼等ASIC及FPGA的ASIC及FPGA。GPU或其他可程式化裝置亦可為加速器。加速器可在處理器電路系統上、在與處理器電路系統相同之晶片封裝中及/或在與處理器電路系統分離之一或多個封裝中。
圖D4為圖D2之處理器電路系統D212的另一實例實施之方塊圖。在此實例中,處理器電路系統D212由FPGA電路系統D400實施。FPGA電路系統D400可用以例如執行在其他方面可由執行對應機器可讀指令的圖D3之實例微處理器D300執行的操作。然而,一旦經組配,FPGA電路系統D400以硬體具現化機器可讀指令,且因此,相比可由執行對應軟體之通用微處理器執行操作,該電路系統常常可更快地執行操作。
更特定而言,與上文所描述之圖D3之微處理器D300 (其為可經規劃以執行由本文中所揭露之流程圖表示的機器可讀指令中之一些或全部的通用裝置,但一旦經製造,該裝置之互連及邏輯電路系統則固定)對比,圖D4之實例的FPGA電路系統D400包括如下互連及邏輯電路系統:其可在製造之後以不同方式組配及/或互連,以具現化例如由本文中整體揭露之流程圖表示的機器可讀指令中之一些或全部。特定而言,FPGA D400可被視為邏輯閘、互連及開關之陣列。開關可經規劃以改變如何藉由互連來互連邏輯閘,從而有效地形成一或多個專用邏輯電路(除非且直至FPGA電路系統D400經重新規劃)。經組配邏輯電路使得邏輯閘能夠以不同方式協作以對由輸入電路系統接收之資料執行不同運算。彼等運算可對應於由本文中所揭露之流程圖表示的軟體中之一些或全部。因此,FPGA電路系統D400可經構造以有效地將本文中揭露之流程圖的機器可讀指令中之一些或全部具現化為專用邏輯電路,從而以類似於ASIC之專用方式執行對應於彼等軟體指令的運算。因此,相比通用微處理器可執行之速度,FPGA電路系統D400可更快地執行對應於本文中所揭露之指令之機器可讀指令中的一些或全部的操作。
在圖D4之實例中,FPGA電路系統D400經構造以由終端使用者藉由諸如Verilog之硬體描述語言(HDL)規劃(及/或一或多次重新規劃)。圖D4之FPGA電路系統D400包括實例輸入/輸出(I/O)電路系統D402,以自實例組態電路系統D404及/或外部硬體(例如,外部硬體電路系統) D406獲得資料及/或將資料輸出至該組態電路系統及/或外部硬體。例如,組態電路系統D404可實施介面電路系統,該介面電路系統可獲得機器可讀指令以組配FPGA電路系統D400或其部分。在一些此類實例中,組態電路系統D404可自使用者、機器(例如,可實施人工智慧/機器學習(AI/ML)模型以產生指令的硬體電路系統(例如,經規劃或專用電路系統))等獲得機器可讀指令。在一些實例中,外部硬體D406可實施圖D3之微處理器D300。FPGA電路系統D400亦包括實例邏輯閘電路系統D408、複數個實例可組配互連D410及實例儲存電路系統D412之陣列。邏輯閘電路系統D408及互連D410可經組配以具現化可對應於本文中所揭露之機器可讀指令中之至少一些的一或多個運算及/或其他所要運算。圖D4中所示之邏輯閘電路系統D408係以群組或區塊形式製造。每一區塊包括可經組配成邏輯電路的基於半導體之電氣結構。在一些實例中,電氣結構包括為邏輯電路提供基本構建區塊之邏輯閘(例如,及閘、或閘、反或閘等)。電氣可控制開關(例如,電晶體)存在於邏輯閘電路系統D408中之每一者內以支援電氣結構及/或邏輯閘之組態,從而形成電路來執行所要操作。邏輯閘電路系統D408可包括其他電氣結構,諸如查找表(LUT)、暫存器(例如,正反器或鎖存器)、多工器等。
所說明實例之互連D410為可包括電氣可控制開關(例如,電晶體)的導電路徑、跡線、通孔等,該等開關的狀態可藉由規劃(例如,使用HDL指令語言)來改變以啟動或撤銷啟動邏輯閘電路系統D408中之一或多者之間的一或多個連接來規劃所要邏輯電路。
所說明實例之儲存電路系統D412經構造以儲存由對應邏輯閘執行之運算中之一或多者的結果。儲存電路系統D412可由暫存器等實施。在所說明實例中,儲存電路系統D412分佈在邏輯閘電路系統D408當中以促進接取及增大執行速度。
圖D4之實例FPGA電路系統D400亦包括實例專用操作電路系統D414。在此實例中,專用操作電路系統D414包括可經調用以實施常用功能以避免在場中規劃彼等功能之需要的特定用途電路系統D416。此類特定用途電路系統D416之實例包括記憶體(例如,DRAM)控制器電路系統、PCIe控制器電路系統、時脈電路系統、收發器電路系統、記憶體及乘法器-累加器電路系統。可存在其他類型之特定用途電路系統。在一些實例中,FPGA電路系統D400亦可包括實例通用可程式化電路系統D418,諸如實例CPU D420及/或實例DSP D422。可另外或替代地存在可經規劃以執行其他操作的其他通用可程式化電路系統D418,諸如GPU、XPU等。
儘管圖D3及圖D4說明圖D2之處理器電路系統D212的二個實例實施,但應設想到許多其他方法。例如,如上文所提及,現代FPGA電路系統可包括機載CPU,諸如圖D4之實例CPU D420中之一或多者。因此,圖D2之處理器電路系統D212可另外藉由組合圖D3之實例微處理器D300與圖D4之實例FPGA電路系統D400來實施。在一些此類混合實例中,由本文中所揭露之流程圖表示的機器可讀指令之第一部分可由圖D3之核心D302中的一或多者執行,且由本文中所揭露之流程圖表示的機器可讀指令之第二部分可由圖D4之FPGA電路系統D400執行。
在一些實例中,圖D2之處理器電路系統D212可在一或多個封裝中。例如,圖D2之處理器電路系統D200及/或圖D4之FPGA電路系統D300可在一或多個封裝中。在一些實例中,XPU可由可在一或多個封裝中的圖D2之處理器電路系統D212實施。例如,XPU可包括一個封裝中之CPU、另一封裝中之DSP、又一封裝中之GPU及再一封裝中之FPGA。
圖F1說明用於經由鏈路耦接至各別閘道器之各別物聯網(IoT)網路的實例域拓樸。物聯網(IoT)為其中大量運算裝置彼此互連並互連至網際網路以提供在極低位準處之功能性及資料獲取的概念。因此,如本文中所使用,IoT裝置可包括半自主裝置,其執行與其他IoT裝置及諸如網際網路之較寬網路通訊的功能,諸如感測或控制等。
常常,IoT裝置在記憶體、大小或功能性上受到限制,從而允許以與較小數目個較大裝置類似的成本部署較大數目個裝置。然而,IoT裝置可為智慧型手機、膝上型電腦、平板電腦或PC或其他較大裝置。此外,IoT裝置可為虛擬裝置,諸如智慧型手機或其他運算裝置上的應用程式。IoT裝置可包括用以將IoT裝置耦接至其他IoT裝置及雲端應用程式以用於資料儲存、程序控制等的IoT閘道器。
IoT裝置之網路可包括商業及家庭自動化裝置,諸如配水系統、配電系統、管線控制系統、電廠控制系統、燈開關、恆溫器、鎖、相機、警報器、運動感測器等。IoT裝置可經由例如遠端電腦、伺服器及其他系統可接取以控制系統或接取資料。
網際網路及類似網路之未來發展可涉及極大量IoT裝置。因此,在本文中所論述技術之上下文中,用於此類未來網路連接之數個創新將解決如下需要:所有此等層不受阻礙地增長、發現所連接資源並使其可接取,以及支援隱藏及劃分所連接資源之能力。可使用任何數目個網路協定及通訊標準,其中每一協定及標準設計成解決特定目標。此外,協定為支援人類可接取服務之網狀架構的部分,該等服務之操作無關於位置、時間或空間。創新包括服務遞送及相關聯基礎架構,諸如硬體及軟體;安全性增強;及基於服務等級及服務遞送協議中指定之服務品質(QoS)條項的服務佈建。如將理解,諸如圖F1及圖F2中介紹之彼等的IoT裝置及網路之使用在包含有線與無線技術之組合的異質連接性網路中提出了數個新的挑戰。
圖F1特定地提供可用於包含物聯網(IoT)裝置F104之數個IoT網路之域拓樸的簡化圖,其中IoT網路F156、F158、F160、F162經由骨幹鏈路F102耦接至各別閘道器F154。例如,數個IoT裝置F104可與閘道器F154通訊並經由閘道器F154彼此通訊。為簡化圖式,並未標記每一IoT裝置F104或通訊鏈路(例如,鏈路F116、F122、F128或F132)。骨幹鏈路F102可包括任何數目個有線或無線技術,包括光學網路,且可為區域網路(LAN)、廣域網路(WAN)或網際網路的部分。另外,此類通訊鏈路促進了IoT裝置F104及閘道器F154二者當中的光學信號路徑,包括使用促進各種裝置之互連的多工/解多工組件。
網路拓樸可包括任何數目種類型之IoT網路,諸如具備使用低功耗藍牙(BLE)鏈路F122之網路F156的網狀網路。可存在的其他類型之IoT網路包括用於經由IEEE 802.11 (Wi-Fi®)鏈路F128與IoT裝置F104通訊之無線區域網路(WLAN)網路F158、用於經由LTE/LTE-A (4G)或5G蜂巢式網路與IoT裝置F104通訊之蜂巢式網路F160,及低功率廣域(LPWA)網路F162,例如,與由LoRa聯盟頒佈之LoRaWan規範相容的LPWA網路,或與由網際網路工程任務小組(IETF)頒佈之規範相容的經由IPv6之低功率廣域網路(LPWAN)網路。此外,各別IoT網路可使用任何數目個通訊鏈路與外部網路提供者(例如,階層2或階層3提供者)通訊,諸如LTE蜂巢式鏈路、LPWA鏈路或基於諸如Zigbee®之IEEE 802.15.4標準的鏈路。各別IoT網路亦可藉由使用諸如受限應用程式協定(CoAP)之多種網路及網際網路應用程式協定來操作。各別IoT網路亦可與協調器裝置整合,該等協調器裝置提供形成所鏈接裝置及網路之叢集樹的一系列鏈路。
此等IoT網路中之每一者可為諸如如本文中所描述之彼等的新技術特徵提供機會。經改良技術及網路可支援裝置及網路之指數增長,包括將IoT網路用於「霧端」裝置中或整合至「邊緣」運算系統中。隨著此類經改良技術之使用不斷增長,IoT網路可經開發用於自管理、功能性演進及協作,而無需直接人工干預。經改良技術甚至可使得IoT網路能夠在無集中式控制系統的情況下起作用。因此,本文中所描述之經改良技術可用以自動化並增強遠超出當前實施之網路管理及操作功能。
在一實例中,IoT裝置F104之間諸如經由骨幹鏈路F102的通訊可由用於鑑認、授權及計費(AAA)的分散式系統保護。在分散式AAA系統中,可跨越互連異質網路基礎架構實施分佈式支付、信用、審計、授權及鑑認系統。此允許系統及網路朝向自主操作移動。在此等類型之自主操作中,機器甚至可簽訂人力資源合約並與其他機器網路協商夥伴關係。此可允許針對所概述之計劃服務等級協議實現共同目標及平衡服務遞送,以及實現提供計量、量測、可追溯性及可追蹤性之解決方案。新供應鏈結構及方法之產生可使得能夠在無任何人類參與之情況下產生眾多服務、挖掘其價值並使其崩塌。
此類IoT網路可藉由將諸如聲音、光、電子交通、面部及圖案辨識、氣味、振動之感測技術整合至IoT裝置當中的自主組織中而進一步增強。感覺系統之整合可允許系統性及自主通訊,並針對合約服務目標、協調以及基於服務品質(QoS)的資源群集及融合協調服務遞送。基於網路之資源處理之個別實例中的一些包括以下各者。
例如,網狀網路F156可藉由執行聯機資料至資訊變換之系統來增強。例如,包含多鏈路網路之自形成處理資源鏈可以高效方式分佈原始資料至資訊之變換,且能夠區分資產與資源以及每一者之相關聯管理。此外,可插入基礎架構之適當組件以及基於資源之信任及服務索引以改良資料完整性、品質、保證並遞送資料置信度之量度。
例如,WLAN網路F158可使用執行標準轉換以提供多標準連接性之系統,從而使得IoT裝置F104能夠使用不同協定進行通訊。其他系統可跨越包含可見網際網路資源及隱藏網際網路資源之多標準基礎架構提供無縫互連性。
例如,蜂巢式網路F160中之通訊可藉由卸載資料、將通訊延伸至較多遠端裝置或此二者的系統來增強。LPWA網路F162可包括執行非網際網路協定(IP)至IP互連、定址及路由之系統。此外,IoT裝置F104中的每一者可包括用於與彼裝置之廣域通訊的適當收發器。此外,每一IoT裝置F104可包括用於使用額外協定及頻率進行通訊之其他收發器。關於圖F3及圖F4中所描繪之IoT處理裝置的通訊環境及硬體進一步論述此情況。
最終,IoT裝置之叢集可經裝備以與其他IoT裝置以及雲端網路通訊。此可允許IoT裝置在裝置之間形成特用網路,從而允許IoT裝置充當單一裝置,其可被稱為霧端裝置、霧端平台或霧端網路。下文關於圖F2進一步論述此組態。
圖F2說明與IoT裝置(裝置F202)之網狀網路通訊的雲端運算網路,該等IoT裝置在網路連接情境中操作為霧端平台。IoT裝置之網狀網路可被稱為霧端網路F220,其係自在雲端F200之邊緣處操作之裝置網路建立。為簡化圖式,並未標記每一IoT裝置F202。
霧端網路F220可被視為大規模互連網路,其中數個IoT裝置F202例如藉由無線電鏈路F222彼此通訊。霧端網路F220可建立可被視為駐存於IoT邊緣裝置與雲端或資料中心之間的水平、實體或虛擬資源平台。在一些實例中,霧端網路可經由分層式、聯合式或分佈式運算、儲存及網路連接性操作來支援豎直地隔開、潛時敏感的應用程式。然而,霧端網路亦可用以在邊緣及雲端處及當中分佈資源及服務。因此,本文件中對「邊緣」、「霧端」及「雲端」之參考未必係離散的或彼此排斥。
作為一實例,可使用藉由Open Connectivity Foundation™ (OCF)發佈之互連規範來促進霧端網路F220。此標準允許裝置發現彼此並建立互連通訊。亦可使用其他互連協定,包括例如經最佳化鏈路狀態路由(OLSR)協定、行動特用網路連接之較佳方法(B.A.T.M.A.N.)路由協定,或OMA輕量化M2M (LWM2M)協定等。
在此實例中展示三種類型之IoT裝置F202:閘道器F204、資料聚集器F226及感測器F228,但可使用IoT裝置F202及功能性之任何組合。閘道器F204可為提供雲端F200與霧端網路F220之間的通訊之邊緣裝置,且亦可提供對自感測器F228獲得之資料之後端處理功能,該資料諸如運動資料、流量資料、溫度資料等。資料聚集器F226可自任何數目個感測器F228收集資料,且執行後端處理功能以用於分析。可經由閘道器F204將結果、原始資料或此二者傳遞至雲端F200。感測器F228可為例如能夠收集資料及處理資料二者的完整IoT裝置F202。在一些情況下,感測器F228可在功能性上受到更多限制,例如收集資料且允許資料聚集器F226或閘道器F204處理資料。
來自任何IoT裝置F202之通訊可沿著IoT裝置F202中之任一者之間的便利路徑傳遞以到達閘道器F204。在此等網路中,互連之數目提供相當大的冗餘,從而甚至在損耗數個IoT裝置F202的情況下亦允許維持通訊。此外,使用網狀網路可允許使用功率極低或位於基礎架構一段距離處的IoT裝置F202,此係因為連接至另一IoT裝置F202之範圍可能比連接至閘道器F204之範圍小得多。
自此等IoT裝置F202提供之霧端網路F220可作為位於雲端F200之邊緣處的單一裝置,例如操作為裝置或平台之霧端網路而呈現至雲端F200中的裝置,諸如伺服器F206。在此實例中,來自霧端平台之警示可在未被識別為來自霧端網路F220內之特定IoT裝置F202的情況下經發送。以此方式,霧端網路F220可被視為提供運算及儲存資源以執行諸如資料分析、資料聚集及機器學習等的處理或資料密集型任務的分佈式平台。
在一些實例中,IoT裝置F202可使用命令式規劃樣式組配,例如其中每一IoT裝置F202具有特定功能及通訊夥伴。然而,形成霧端平台之IoT裝置F202可以宣告式規劃樣式組配,使得IoT裝置F202能夠重組配其操作及通訊,以便回應於狀況、查詢及裝置故障而判定所需資源。作為一實例,來自位於伺服器F206處之使用者的關於由IoT裝置F202監測之設備子集之操作的查詢可能使得霧端網路F220裝置——諸如特定感測器F228之IoT裝置F202需要回答該查詢。來自此等感測器F228之資料接著可由感測器F228、資料聚集器F226或閘道器F204之任一組合聚集及分析,之後由霧端網路F220發送至伺服器F206以回答該查詢。在此實例中,霧端網路F220中之IoT裝置F202可基於查詢選擇使用的感測器F228,諸如添加來自流量感測器或溫度感測器的資料。此外,若IoT裝置F202中之一些不可操作,則霧端網路F220中之其他IoT裝置F202可提供類似資料(若可用)。
在其他實例中,本文中所描述之操作及功能性可由呈電子處理系統之實例形式的IoT或邊緣運算裝置體現,根據實例實施例,可在該系統內執行指令集或序列以致使電子處理系統執行本文中所論述之方法論中之任一者。裝置可為IoT裝置或IoT閘道器,包括由個人電腦(PC)、平板PC、個人數位助理(PDA)、行動電話或智慧型手機之態樣體現的機器,或能夠執行(依序或以其他方式)指定待由彼機器採取之動作的指令的任何機器。
此外,雖然在上文實例中僅可描繪及參考單一機器,但此類機器亦應被視為包括個別地或聯合地執行指令集(或多個指令集)以執行本文中所論述之方法論中之任一或多者的機器之任何集合。此外,基於處理器之系統的此等及類似實例應被視為包括由處理器、處理器集合或處理電路系統(例如,電腦)控制或操作以個別地或聯合地執行指令來執行本文中所論述之方法論中之任一或多者的一或多個機器之任何集合。因此,在各種實例中,用於處理(例如,處理、控制、產生、評估等)之可適用構件可由此類處理電路系統體現。
圖F3說明與數個物聯網(IoT)裝置通訊的雲端運算網路或雲端F300之圖式。雲端F300可表示網際網路,或可為區域網路(LAN)或廣域網路(WAN),諸如公司的專有網路。IoT裝置可包括以各種組合分組的任何數目個不同類型之裝置。例如,交通控制群組F306可包括沿著城市中之街道的IoT裝置。此等IoT裝置可包括交通訊號燈、交通流量監測器、相機、氣象感測器等。交通控制群組F306或其他子組可經由諸如LPWA鏈路等之有線或無線鏈路F308與雲端F300通訊。此外,有線或無線子網路F312可允許IoT裝置諸如經由區域網路、無線區域網路等彼此通訊。IoT裝置可使用諸如閘道器F310或F328的另一裝置與諸如雲端F300之遠端位置通訊;IoT裝置亦可使用一或多個伺服器F330以促進與雲端F300或與閘道器F310通訊。例如,一或多個伺服器F330可操作為中間網路節點以支援區域網路當中之本端邊緣雲端或霧端實施。此外,所描繪之閘道器F328可在雲端至閘道器至許多邊緣裝置組態中操作,諸如其中各種IoT裝置F314、F320、F324受到限制或動態地指派及使用雲端F300中之資源。
IoT裝置之其他實例群組可包括遠端氣象站F314、本端資訊終端F316、警報系統F318、自動櫃員機F320、警報面板F322,或諸如緊急車輛F324或其他車輛F326之移動車輛等。此等IoT裝置中之每一者可與其他IoT裝置、與伺服器F304、與另一IoT霧端裝置或系統(未展示,但描繪於圖F2中)或其中之組合通訊。IoT裝置之群組可部署於各種住宅、商業及工業環境中(包括在私人或公共環境二者中)。
如自圖F3可見,大量IoT裝置可經由雲端F300通訊。此可允許不同IoT裝置自主地請求資訊或將資訊提供至其他裝置。例如,IoT裝置之群組(例如,交通控制群組F306)可自遠端氣象站F314的群組請求當前天氣預報,該等氣象站可在無人工干預之情況下提供預報。此外,自動櫃員機F320可向緊急車輛F324警示正發生盜竊。在緊急車輛F324朝向自動櫃員機F320前進時,緊急車輛F324可接取交通控制群組F306以請求至該位置之暢通通行,例如藉由信號燈變紅以在足以使緊急車輛F324不受阻礙地通過交叉路口的時間中阻止交叉路口處之十字路口交通。
諸如遠端氣象站F314或交通控制群組F306之IoT裝置之叢集可經裝備以與其他IoT裝置以及雲端F300通訊。此可允許IoT裝置在裝置之間形成特用網路,從而允許IoT裝置充當單一裝置,其可被稱為霧端裝置或系統(例如,如上文參考圖F2所描述)。
圖F4為可存在於用於實施本文中所描述之技術的IoT裝置F450中之組件的實例之方塊圖。IoT裝置F450可包括在實例中展示或在上文揭露內容中參考的組件之任何組合。組件可實施為調適於IoT裝置F450中之IC、其部分、離散電子裝置或其他模組、邏輯、硬體、軟體、韌體或其組合,或實施為以其他方式併入於較大系統之機箱內的組件。另外,圖F4之方塊圖意欲描繪IoT裝置F450之組件的高層級視圖。然而,可省略所展示組件中之一些,可存在額外組件,且可在其他實施中出現所展示組件之不同配置。
IoT裝置F450可包括呈處理器F452之形式的處理電路系統,其可為微處理器、多核心處理器、多執行緒處理器、超低電壓處理器、嵌入式處理器或其他已知處理元件。處理器F452可為其中處理器F452及其它組件形成為單一積體電路或單一封裝之系統單晶片(SoC)的部分,諸如來自因特爾的Edison™或Galileo™ SoC板。作為一實例,處理器F452可包括基於Intel®架構Core™之處理器,諸如Quark™、Atom™、i3、i5、i7或MCU類處理器,或可自加利福尼亞州聖克拉拉之Intel®公司獲得之另一此類處理器。然而,可使用任何數目個其他處理器,諸如可自加利福尼亞州森尼維耳市之美國超威半導體公司(AMD)獲得之處理器、來自加利福尼亞州森尼維耳市之MIPS技術公司的基於MIPS之設計、自ARM控股有限公司或其客戶或其被許可方或採用者獲得許可的基於ARM之設計。處理器可包括單元,諸如來自Apple®公司之A5至A14處理器、來自Qualcomm®技術公司之Snapdragon™處理器或來自德州儀器公司之OMAP™處理器。
處理器F452可經由互連件F456 (例如,匯流排)與系統記憶體F454通訊。任何數目個記憶體裝置可用於提供給定量之系統記憶體。作為實例,記憶體可為根據諸如DDR或行動DDR標準(例如,LPDDR、LPDDR2、LPDDR3或LPDDR4)之聯合電子裝置工程委員會(JEDEC)設計的隨機存取記憶體(RAM)。在各種實施中,個別記憶體裝置可具有任何數目個不同封裝類型,諸如單晶粒封裝(SDP)、雙晶粒封裝(DDP)或四晶粒封裝(Q17P)。在一些實例中,此等裝置可直接焊接至主板上以提供較低構形解決方案,而在其他實例中,裝置經組配為又藉由給定連接器耦接至主板之一或多個記憶體模組。可使用任何數目個其他記憶體實施,諸如其他類型之記憶體模組,例如,不同種類之雙列直插記憶體模組(DIMM),包括但不限於microDIMM或MiniDIMM。
為了提供諸如資料、應用程式、作業系統等之資訊之持久性儲存,儲存器F458亦可經由互連件F456耦接至處理器F452。在一實例中,儲存器F458可經由固態磁碟機(SSDD)實施。可用於儲存器F458之其他裝置包括快閃記憶卡,諸如SD卡、microSD卡、xD圖像卡等,及USB快閃驅動器。在低功率實施中,儲存器F458可為與處理器F452相關聯之晶粒上記憶體或暫存器。然而,在一些實例中,儲存器F458可使用微型硬碟機(HDD)實施。此外,除了所描述技術之外或代替所描述技術,任何數目個新技術可用於儲存器F458,諸如電阻變化記憶體、相變記憶體、全像記憶體或化學記憶體等。
組件可經由互連件F456通訊。互連件F456可包括任何數目個技術,包括工業標準架構(ISA)、擴展型ISA (EISA)、周邊組件互連(PCI)、周邊組件互連擴展(PCIx)、PCI高速(PCIe)或任何數目個其他技術。互連件F456可為例如用於基於SoC之系統中的專有匯流排。可包括其他匯流排系統,諸如I2C介面、SPI介面、點對點介面及功率匯流排等。
鑒於自裝置至另一組件或網路之多種類型的可適用通訊,由裝置使用之可適用通訊電路系統可包括組件F462、F466、F468或F470中之任一或多者或由其體現。因此,在各種實例中,用於通訊(例如,接收、傳輸等)之可適用構件可由此類通訊電路系統體現。
互連件F456可將處理器F452耦接至網狀收發器F462以用於與其他網狀裝置F464通訊。網狀收發器F462可使用任何數目個頻率及協定,諸如在IEEE 802.15.4標準下的2.4千兆赫(GHz)傳輸,使用如由Bluetooth®特別興趣小組界定的Bluetooth®低功耗(BLE)標準,或ZigBee®標準等。經組配用於特定無線通訊協定之任何數目個無線電可用於連接至網狀裝置F464。例如,WLAN單元可用於根據電機電子工程師學會(IEEE) 802.11標準實施Wi-Fi™通訊。另外,例如根據蜂巢式或其他無線廣域協定之無線廣域通訊可經由WWAN單元發生。
網狀收發器F462可使用用於不同範圍處之通訊的多個標準或無線電通訊。例如,IoT裝置F450可使用基於BLE之本端收發器或另一低功率無線電與例如約10公尺內之接近裝置通訊,以節省電力。經由ZigBee或其他中間功率無線電可到達例如在約50公尺內之更遠網狀裝置F464。兩通訊技術皆可經由單一無線電以不同功率位準進行或可經由單獨收發器,例如使用BLE之本端收發器及使用ZigBee之單獨網狀收發器進行。
可包括無線網路收發器F466以經由本端或廣域網路協定與雲端F400中之裝置或服務通訊。無線網路收發器F466可為遵循IEEE 802.15.4或IEEE 802.15.4g標準等之LPWA收發器。IoT裝置F450可使用由Semtech及LoRa聯盟開發之LoRaWAN™ (遠程廣域網路)在廣域上通訊。本文中所描述之技術不限於此等技術,而是可與實施諸如Sigfox及其他技術之遠程低頻寬通訊的任何數目個其他雲端收發器一起使用。此外,可使用IEEE 802.15.4e規範中描述的其他通訊技術,諸如時槽化跳頻。
除了針對網狀收發器F462及無線網路收發器F466所提及之系統之外,亦可使用任何數目個其他無線電通訊及協定,如本文中所描述。例如,無線電收發器F462及F466可包括使用展頻(SPA/SAS)通訊來實施高速通訊之LTE或其他蜂巢式收發器。此外,可使用任何數目個其他協定,諸如用於中速通訊及佈建網路通訊之Wi-Fi®網路。
無線電收發器F462及F466可包括與任何數目個第三代合作夥伴計劃(3GPP)規範相容之無線電,該等規範尤其為長期演進(LTE)、進階長期演進(LTE-A)及進階長期演進Pro (LTE-A Pro)。可注意到,可選擇與任何數目個其他固定、行動或衛星通訊技術及標準相容的無線電。此等可包括例如任何蜂巢式廣域無線電通訊技術,其可包括例如第五代(5G)通訊系統、全球行動通訊系統(GSM)無線電通訊技術、通用封包無線電服務(GPRS)無線電通訊技術、或用於GSM演進之增強型資料速率(EDGE)無線電通訊技術、全球行動電信系統(UMTS)通訊技術。除了上文所列之標準之外,任何數目個衛星上行鏈路技術亦可用於無線網路收發器F466,包括例如符合由國際電信聯盟(ITU)或歐洲電信標準學會(ETSI)發出之標準的無線電等。本文中所提供之實例因此被理解為適用於現有及尚未制定之各種其他通訊技術。
可包括網路介面控制器(NIC) F468以提供至雲端F400或諸如網狀裝置F464之其他裝置的有線通訊。有線通訊可提供乙太網路連接或可係基於其他類型之網路,諸如控制器區域網路(CAN)、本端互連網路(LIN)、DeviceNet、ControlNet、資料Highway+、PROFIBUS或PROFINET等。可包括額外NIC F468以允許連接至第二網路,例如,NIC F468經由乙太網路將通訊提供至雲端,且第二NIC F468經由另一類型之網路將通訊提供至其他裝置。
互連件F456可將處理器F452耦接至用於連接外部裝置或子系統之外部介面F470。外部裝置可包括感測器F472,諸如加速計、位準感測器、流量感測器、光學光感測器、相機感測器、溫度感測器、全球定位系統(GPS)感測器、壓力感測器、大氣壓感測器等。外部介面F470進一步可用以將IoT裝置F450連接至致動器F474,諸如電力開關、閥致動器、可聽聲音產生器、視覺警告裝置等。
在一些任擇實例中,各種輸入/輸出(I/O)裝置可存在於IoT裝置F450內或連接至該IoT裝置。例如,可包括顯示器或其他輸出裝置F484以展示諸如感測器讀數或致動器位置之資訊。可包括諸如觸控螢幕或小鍵盤之輸入裝置F486以接受輸入。輸出裝置F486可包括任何數目種形式之音訊或視覺顯示器,包括諸如二進位狀態指示器(例如,LED)之簡單視覺輸出及多字元視覺輸出,或諸如顯示螢幕(例如,LCD螢幕)之更複雜輸出,其中自IoT裝置F450之操作產生字元、圖形、多媒體物件等之輸出。
電池F476可為IoT裝置F450供電,但在IoT裝置F450安裝於固定位置中之實例中,裝置可具有耦接至電網之電力供應器。電池F476可為鋰離子電池或金屬空氣電池,諸如鋅空氣電池、鋁空氣電池、鋰空氣電池等。
電池監測器/充電器F478可包括於IoT裝置F450中以追蹤電池F476之充電狀態(SoCh)。電池監測器/充電器F478可用以監測電池F476之其他參數以提供故障預測,諸如電池F476之健康狀態(SoH)及功能狀態(SoF)。電池監測器/充電器F478可包括電池監測積體電路,諸如來自線性技術之LTC4020或LTC2990、來自亞利桑那州菲尼克斯之ON半導體的ADT7488A,或來自德克薩斯州達拉斯之德州儀器公司的UCD90xxx系列之IC。電池監測器/充電器F478可經由互連件F456將關於電池F476之資訊傳達至處理器F452。電池監測器/充電器F478亦可包括類比對數位(ADC)轉換器,其允許處理器F452直接監測電池F476之電壓或來自電池F476之電流流動。電池參數可用於判定IoT裝置F450可執行之動作,諸如傳輸頻率、網狀網路操作、感測頻率等。
電力區塊F480或耦接至電網之其他電力供應器可與電池監測器/充電器F478耦接以對電池F476充電。在一些實例中,電力區塊F480可由無線電力接收器替換以例如經由IoT裝置F450中之環形天線無線地獲得電力。電池監測器/充電器F478中可包括無線電池充電電路,諸如來自加利福尼亞州米爾皮塔斯之線性技術的LTC4020晶片等。取決於電池F476之大小,且因此所需電流而選擇特定充電電路。可使用由Airfuel聯盟頒佈之Airfuel標準、由無線電力協會頒佈之Qi無線充電標準或由無線電力聯盟頒佈之Rezence充電標準等執行充電。
儲存器F458可包括呈軟體、韌體或硬體命令形式之指令F482以實施本文中所描述之技術。儘管此類指令F482展示為包括於記憶體F454及儲存器F458中之程式碼區塊,但可理解,程式碼區塊中之任一者可由例如構建至特殊應用積體電路(ASIC)中之固線式電路替換。
在一實例中,經由記憶體F454、儲存器F458或處理器F452提供之指令F482可體現為非暫時性機器可讀媒體F460,該媒體包括用以指示處理器F452在IoT裝置F450中執行電子操作之程式碼。處理器F452可經由互連件F456接取非暫時性機器可讀媒體F460。例如,非暫時性機器可讀媒體F460可由針對圖F4之儲存器F458描述之裝置體現,或可包括特定儲存單元,諸如光碟、快閃驅動器或任何數目個其他硬體裝置。非暫時性機器可讀媒體F460可包括用以指示處理器F452執行特定動作序列或流程之指令,例如,如關於上文描繪之操作及功能性之流程圖及方塊圖所描述的動作。
亦在特定實例中,處理器F452上之指令F488 (單獨地,或與機器可讀媒體F460之指令F488組合)可組配可信執行環境(TEE) F490之執行或操作。在一實例中,TEE F490操作為處理器F452可接取之受保護區域,以用於安全指令執行及安全資料接取。可例如經由使用Intel®軟體防護擴展(SGX)或ARM® TrustZone®硬體安全擴展、Intel®管理引擎(ME)或Intel®融合式安全可管理性引擎(CSME)提供TEE F490之各種實施及處理器F452或記憶體F454中之隨附安全區域。可經由TEE F490及處理器F452在裝置F450中實施安全強化、硬體信任根及可信或受保護操作之其他態樣。
在更一般層級上,邊緣運算系統可描述為涵蓋在邊緣雲端A110中操作之任何數目個部署,其提供來自用戶端及分佈式運算裝置之協調。圖F5出於說明之目的提供部署於邊緣運算環境當中之分佈式運算層之又一抽象概述。
圖F5一般性地描繪用於將邊緣服務及應用程式提供至如跨越網路之層分佈的多利益相關者實體的邊緣運算系統,該等實體如分佈於一或多個用戶端運算節點F502、一或多個邊緣閘道器節點F512、一或多個邊緣聚集節點F522、一或多個核心資料中心F532及全域網路雲端F542當中。邊緣運算系統之實施可提供於電信服務提供者(「telco」或「TSP」)、物聯網服務提供者、雲端服務提供者(CSP)、企業實體或任何其他數目個實體處或代表以上各者提供。
邊緣運算系統之每一節點或裝置位於對應於層F510、F520、F530、F540、F550之特定層處。例如,用戶端運算節點F502各自位於端點層F510處,而邊緣閘道器節點F512中之每一者位於邊緣運算系統之邊緣裝置層F520 (本端層級)處。另外,邊緣聚集節點F522中之每一者(及/或霧端裝置F524,若用霧端網路連接組態F526或在該霧端網路連接組配當中配置或操作)位於網路接取層F530 (中間層級)處。霧端運算(或「霧端處理」)大體上係指通常在經協調之分佈式或多節點網路中雲端運算至企業網路之邊緣的擴展。一些形式之霧端運算代表雲端運算位置在終端裝置與雲端運算資料中心之間提供運算、儲存及網路連接服務之部署。此類形式之霧端運算提供符合如本文中所論述之邊緣運算的操作;本文中所論述之許多邊緣運算態樣適用於霧端網路、霧端處理及霧端組態。此外,本文中所論述之邊緣運算系統之態樣可經組配為霧端,或霧端之態樣可經整合至邊緣運算架構中。
核心資料中心F532位於核心網路層F540 (例如,區域或地理中央層級)處,而全域網路雲端F542位於雲端資料中心層F550 (例如,國家或全域層)處。「核心」之使用係作為集中式網路位置之術語來提供,該集中式網路位置處於網路中較深處,可由多個邊緣節點或組件接取;然而,「核心」未必指定網路之「中心」或最深位置。因此,核心資料中心F532可位於邊緣雲端A110內、處或附近。
儘管圖F5中展示例示性數目個用戶端運算節點F502、邊緣閘道器節點F512、邊緣聚集節點F522、核心資料中心F532、全域網路雲端F542,但應瞭解,邊緣運算系統可在每一層處包括較多或較少裝置或系統。另外,如圖F5中所示,每一層F510、F520、F530、F540、F550之組件數目大體上在每一較低層級處(亦即,在較接近端點移動時)增大。因此,一個邊緣閘道器節點F512可服務於多個用戶端運算節點F502,且一個邊緣聚集節點F522可服務於多個邊緣閘道器節點F512。
根據本文中所提供之實例,每一用戶端運算節點F502可體現為能夠作為資料之生產者或消費者通訊的任何類型之端點組件、裝置、器具或「事物」。此外,如邊緣運算系統F500中使用之標記「節點」或「裝置」未必意謂此類節點或裝置以用戶端或代理/從屬/跟隨器角色來操作;實際上,邊緣運算系統F500中之節點或裝置中之任一者指代個別實體、節點或子系統,其包括離散或經連接硬體或軟體組態以促進或使用邊緣雲端A110。
因此,邊緣雲端A110由網路組件及功能特徵形成,該等網路組件及功能特徵分別由層F520、F530之邊緣閘道器節點F512及邊緣聚集節點F522操作且操作於該等節點內。邊緣雲端A110可體現為任何類型之網路,其提供接近支援無線電接取網路(RAN)之端點裝置(例如,行動運算裝置、IoT裝置、智慧型裝置等)定位的邊緣運算及/或儲存資源,該等端點裝置在圖F5中展示為用戶端運算節點F502。換言之,邊緣雲端A110可經設想為連接端點裝置與充當至服務提供者核心網路之進入點的傳統行動網路接取點之「邊緣」,同時亦提供儲存及/或運算能力,該服務提供者核心網路包括載波網路(例如,全球行動通訊系統(GSM)網路、長期演進(LTE)網路、5G網路等)。其他類型及形式之網路接取(例如,Wi-Fi、遠程無線網路)亦可用於代替此類3GPP載波網路或結合此類3GPP載波網路使用。
在一些實例中,邊緣雲端A110可形成霧端網路連接組態F526 (例如,霧端裝置F524之網路,未詳細展示)的一部分或以其他方式提供至或跨越該組配之進入點,該組配可體現為分佈資源及服務以執行特定功能之系統層級水平且分佈式架構。例如,霧端裝置F524之經協調且分佈式網路可在IoT系統配置之上下文中執行運算、儲存、控制或網路連接態樣。其他網路連接的、經聚集且分佈式功能可存在於雲端資料中心層F550與用戶端端點(例如,用戶端運算節點F502)之間的邊緣雲端A110中。此等功能中之一些在以下章節中在網路功能或服務虛擬化之上下文中加以論述,包括經協調用於多個利益相關者之虛擬邊緣及虛擬服務之使用。
邊緣閘道器節點F512及邊緣聚集節點F522協作以向用戶端運算節點F502提供各種邊緣服務及安全性。此外,因為每一用戶端運算節點F502可為固定的或行動的,所以每一邊緣閘道器節點F512可與其他邊緣閘道器裝置協作以在對應用戶端運算節點F502圍繞一區移動時傳播目前提供的邊緣服務及安全性。為此,邊緣閘道器節點F512及/或邊緣聚集節點F522中之每一者可支援多次租用及多個利益相關者組態,其中可跨越單一或多個運算裝置來支援及協調來自(或託管給)多個服務提供者及多個消費者之服務。
圖I1中說明如下方塊圖:其說明用以將諸如圖D2之實例機器可讀指令D232之軟體分佈至由第三方擁有及/或操作之硬體裝置的實例軟體分佈平台I105。實例軟體分佈平台I105可由能夠儲存軟體且將軟體傳輸至其他運算裝置之任何電腦伺服器、資料設施、雲端服務等來實施。第三方可為擁有及/或操作軟體分佈平台I105之實體的客戶。例如,擁有及/或操作軟體分佈平台I105之實體可為諸如圖D2之實例機器可讀指令D232的軟體之開發者、賣方及/或許可方。第三方可為消費者、使用者、零售商、OEM等,其購買及/或獲得軟體許可以進行使用及/或轉售及/或再許可。在所說明實例中,軟體分佈平台I105包括一或多個伺服器及一或多個儲存裝置。儲存裝置儲存機器可讀指令D232,該等指令可對應於本文中所揭露之所有流程圖的實例機器可讀指令。實例軟體分佈平台I105之一或多個伺服器與網路I110通訊,該網路可對應於網際網路及/或本文中所揭露之實例網路中之任一者中的任一或多者。在一些實例中,作為商業交易之部分,一或多個伺服器回應於將軟體傳輸至請求方之請求。對軟體遞送、銷售及/或許可之支付可由軟體分佈平台之一或多個伺服器及/或由第三方支付實體來處置。伺服器使得購買者及/或許可方能夠自軟體分佈平台I105下載機器可讀指令D232。例如,可對應於本文中所揭露之實例機器可讀指令中之任一者的軟體可經下載至實例處理器平台D200,該平台用以執行機器可讀指令D232以實施本文中所揭露之設備。在一些實例中,軟體分佈平台I105之一或多個伺服器週期性地提供、傳輸及/或強制更新軟體(例如,圖D2之實例機器可讀指令D232)以確保改良、修補程式、更新等經分佈並應用於終端使用者裝置處之軟體。 用於異質目標及多租用支援之工作負載最佳化(ID5)
服務於工作負載請求之實體被授權負責以滿足用戶端要求之方式分佈彼等工作負載。在一些環境中,事先已知底層平台資源,使得目標運算資源之工作負載經最佳化。然而,邊緣運算資源正在被更大程度地利用,且目標運算裝置為異質的。目標運算裝置可包括CPU、GPU、FPGA及/或其他類型之加速器。
當第一時間在第一運算裝置(例如,CPU)上操作工作負載且第二時間在第二運算裝置(例如,GPU)上操作工作負載時,未以可縮放方式處置當前工作負載最佳化,其中自第一時間至第二時間之運算裝置係不同的。當前工作負載最佳化亦未能將服務等級協議(SLA)與利用率資訊結合起來考慮。現今,處置目標運算裝置中之此類動態不一致致使工作負載效率受損,此進一步造成用戶端期望問題。本文中所揭露之實例亦支援動態混合組合。例如,在一種情況下,工作負載可僅在CPU或GPU上運行,但在第二情況下,工作負載可經構造以在二者上或在運算資源之各種組合上運行。
本文中所揭露之實例改良以考慮用戶端SLA參數及利用率參數之方式開發用於異質環境(例如,具有CPU之第一邊緣平台、具有GPU之第二邊緣平台、具有CPU與FPGA之組合的第三邊緣平台等)之工作負載最佳化。在本文中所揭露之一些實例中,在運行時間之前(例如,推斷階段)進行針對當前/已知平台之所有裝置的最佳化,以允許動態切換工作負載之一或多個部分(例如,選擇不同經最佳化圖)。在本文中所揭露之一些實例中,工作負載之一或多個部分的動態切換可經引導至邊緣網路之可用異質裝置的替代裝置。在一些實例中,不同可用資源可位於上文所描述之實例邊緣雲端A110內的任何位置處。在一些實例中,可用資源在第一時間期間駐存於遠邊緣處,且由於例如遠邊緣資源之變化要求,剩餘資源變得限於邊緣雲端A110內之近邊緣位置。本文中所揭露之實例適應於工作負載要求及加速器之對應選擇(例如,基於需要)為動態的情形。
本文中所揭露之實例考慮任何數目及/或類型之工作負載,諸如AI演算法、連接圖及/或拼接在一起以實現相對較大任務目標的其他演算法。例如,當最佳化ResNet50神經網路時,本文中所揭露之實例識別特定層是否較適於運行於諸如CPU而非GPU的特定目標裝置上。
圖ID5_A說明用以最佳化工作負載之實例框架ID5_A100。在圖ID5_A之所說明實例中,框架ID5_A100包括實例工作負載或工作負載池ID5_A102,及在給定時刻已知可用之實例平台資源ID5_A104。實例平台資源ID5_A104包括能夠執行工作負載任務的任何數目及或類型之裝置,包括但不限於CPU、GPU、FPGA、ASIC、加速器等。如下文更詳細地描述,鑒於各別資源ID5_A104最佳化工作負載ID5_A102以產生對應於每一資源之經最佳化圖ID5_A106。在一些實例中,經最佳化圖表示為具有特定數目個層、連接(節點)、權重及/或超參數之神經架構。本文中所揭露之實例權重包括由文數字字元表示之一或多個值。此類值可儲存於一或多個資料結構(例如,資料結構)中,其中實例資料結構包括整數、浮點表示及/或字元。權重及表示此類權重之對應值表示以任何方式儲存之資料。此類資料亦可沿著諸如匯流排之資料路徑自第一資料結構傳播至第二或任何數目個後續資料結構。經最佳化圖ID5_A106之聚集體經合併為聯合圖ID5_A108並封裝於工作負載ID5_A102內以產生經封裝工作負載ID5_A110。
經封裝工作負載ID5_A110之至少一個益處為本文中所揭露之實例包括及/或以其他方式將額外語義資訊嵌入至工作負載中,使得可在運行時間ID5_A112期間鑒於動態狀況作出運作中決策。本文中所揭露之實例擷取、接收及/或以其他方式獲得SLA資訊/參數ID5_A114及當前利用率資訊ID5_A116。如本文中所使用,SLA參數表示待由工作負載執行滿足之約束條件,諸如準確度量度、速度量度、功率消耗量度、成本(例如,財務成本、處理器負擔成本等)量度等。如本文中所使用,利用率參數表示正執行工作負載之平台及/或其底層運算資源的即時操作狀況及/或未來可考慮用於該工作負載之候選平台的操作狀況。
動態狀況包括但不限於底層硬體(及/或底層所分配VM)之變化狀況、硬體特性之變化狀況(例如,多個租戶使用相較於單一租戶使用,底層資源之利用成本),及/或服務等級協議(SLA)之變化狀況。在一些實例中,強制具有待由運算資源執行及/或以其他方式處理之工作負載的用戶端將工作負載移動至一或多個替代或額外資源。例如,當前運算資源(例如,實例資源ID5_A104中之一或多者)可變得不可用,當前運算資源財務成本可超出由用戶端建立之一或多個SLA臨限值,及/或當前運算資源可能會收到來自一或多個其他租戶之大量請求。然而,回應於此類動態可能性,本文中所揭露之實例使得能夠進行如下迅速調整:鑒於可用運算資源,識別哪些運算資源應處置工作負載,哪一(哪些)圖應與工作負載一起使用,及/或調用SLA重新協商工作。
現有最佳化技術考慮對應於預定工作負載之預定平台及其圖。然而,本文中所揭露之實例承認不同工作負載圖可實現具有類似效能(例如,速度)之工作負載目標。例如,針對ResNet50之最佳化包括基於將執行工作負載之底層運算裝置的不同類型之圖組態。實例圖組態可包括不同層結構配置(例如,在使用卷積神經網路(CNN)之情況下),諸如連接至第二層(例如,5×5 Conv層)之第一層(例如,7×7 Conv層),該第二層連接至第三層…等。特定目標運算裝置之圖組態可被稱為路徑。然而,替代目標運算裝置可揭露針對同一工作負載(例如,連接的二個7×7 Conv層)不同的經最佳化圖組態(例如,第二路徑)。實例第一及第二路徑可實現工作負載目標且甚至可具有大體上相同的效能(例如,效率、速度、功率消耗)。在一些實例中,第一及第二路徑可實現在一些方面具有大體上類似效能(例如,效率、速度、功率消耗)且在其他方面具有大體上不同效能(例如,成本(例如,財務、處理器負擔)、潛時)的工作負載目標。本文中所揭露之實例任擇地曝露一或多個調整鈕以促進選擇及/或調整可選選項。調整鈕包括但不限於特定目標硬體裝置偏好(例如,CPU、GPU、FPGA、加速器、特定CPU核心選擇、非核心頻率、記憶體頻寬、快取記憶體分割/保留、FPGA RTL分割、GPU執行單元分割/保留等),及特定最佳化參數偏好(例如,經改良潛時、經改良能耗、經改良準確度等)。可由例如使用者及/或代理選擇調整鈕。在一些實例中,經由介面(例如,使用者介面、圖形使用者介面(GUI))選擇、添加、移除等調整鈕。在一些實例中,介面顯現、告知及/或以其他方式顯示當前調整鈕及其對應值,其中可擴增(例如,由使用者選擇)替代調整鈕及/或對應值。代理調整鈕調整可以獨立於使用者之自動方式發生以努力識別一或多個特定經最佳化調整鈕設定。
然而,在動態利用率參數之情況下,變化之狀況可致使此等路徑中之一者劣化及/或以其他方式未能滿足效能期望。在其他實例中,變化之狀況可能不會對工作負載效能之效果及/或效率產生影響,但可能違反SLA參數(例如,工作負載成本太大而不能在目標運算裝置上執行,工作負載耗用過多功率等)。圖ID5_B說明用於感興趣的圖ID5_B200之實例圖語義嵌入。本文中所揭露之實例適應於異質環境中之此類動態狀況。在圖ID5_B之所說明實例中,運算裝置(例如,CPU、GPU、XPU、FPGA等)上之每一節點及每一子圖對應於特定成本(例如,潛時)。收集及分析與節點及子圖相關之資訊(亦即,運算類型,例如,向量、脈動等,輸入/輸出資料大小等)。不同嵌入擷取圖中的某些路徑達到網路之準確度的對應機率。基於可用資訊,作出動態決策以在平台中之不同可用運算裝置上排程子圖之部分。本文中所揭露之經最佳化圖ID5_B200不僅鑒於預定運算裝置考慮一般參數,且還併入可鑒於動態SLA資訊、動態運算資源狀況及關鍵效能指示符(KPI)資訊觸發如下動態決策之語義資訊:(a)用以最佳地處置工作負載之候選目標運算裝置及(b)用以最佳地促進工作負載操作之候選圖。例如,回應於自雲端(例如,Google®雲端平台、Amazon Web Services®雲端平台)搜尋工作負載執行(例如,AI演算法、ResNet50等)之需要(例如,可能意外需要),附接點可包括不同於先前場合可使用之運算裝置的一或多個運算裝置。工作負載執行之第一或先前場合可能係鑒於第一SLA參數/準則,其中使用此類運算硬體之財務成本相對較低。在改變SLA準則之情況下及/或在改變對當前運算硬體之要求之情況下,本文中所揭露之實例調適所應用模型(例如,經最佳化圖)。第一雲端服務提供者(例如,Google®)可能提高了使用特權之價格,但第二雲端服務提供者(例如,AWS®)可能維持或降低了其成本。本文中所揭露之實例可鑒於此等變化狀況分割工作負載。
圖ID5_C說明用以在異質環境中最佳化工作負載之實例最佳化電路系統ID5_C300。在圖ID5_C之所說明實例中,最佳化電路系統ID5_C300包括實例基準管理電路系統ID5_C302、實例SLA管理電路系統ID5_C304、實例超參數調諧電路系統ID5_C306、實例重組態管理電路系統ID5_C308、實例代理管理電路系統ID5_C310,及實例工作負載活動偵測電路系統ID5_C312。
在一些實例中,最佳化電路系統ID5_C300包括用於管理基準之構件、用於管理SLA之構件、用於調諧超參數之構件、用於管理重組態之構件、用於管理代理之構件及用於偵測工作負載活動之構件。例如,用於管理基準之構件可由基準管理電路系統ID5_C302實施,用於管理SLA之構件可由SLA管理電路系統ID5_C304實施,用於調諧超參數之構件可由超參數調諧電路系統ID5_306實施,用於管理重組態之構件可由重組態管理電路系統ID5_308實施,用於管理代理之構件可由代理管理電路系統ID5_C310實施,且用於偵測工作負載活動之構件可由工作負載活動偵測電路系統ID5_C312實施。在一些實例中,基準管理電路系統ID5_C302、SLA管理電路系統ID5_C304、超參數調諧電路系統ID5_306、重組態管理電路系統ID5_308、代理管理電路系統ID5_C310及/或工作負載活動偵測電路系統ID5_C312可由本文中所揭露且由處理器電路系統執行之機器可執行指令實施,該處理器電路系統可由圖D2之實例處理器電路系統D212及/或實例現場可程式化閘陣列(FPGA)電路系統實施。在其他實例中,基準管理電路系統ID5_C302、SLA管理電路系統ID5_C304、超參數調諧電路系統ID5_306、重組態管理電路系統ID5_308、代理管理電路系統ID5_C310及/或工作負載活動偵測電路系統ID5_C312由其他硬體邏輯電路系統、硬體實施之狀態機及/或硬體、軟體及/或韌體之任何其他組合實施。例如,基準管理電路系統ID5_C302、SLA管理電路系統ID5_C304、超參數調諧電路系統ID5_306、重組態管理電路系統ID5_308、代理管理電路系統ID5_C310及/或工作負載活動偵測電路系統ID5_C312可由經構造以在不執行軟體或韌體之情況下執行對應操作的至少一或多個硬體電路系統(例如,處理器電路系統、離散及/或整合式類比及/或數位電路系統、FPGA、特殊應用積體電路(ASIC)、比較器、運算放大器(op-amp)、邏輯電路等)實施,但其他結構同樣係適當的。
在操作中,實例重組態管理電路系統ID5_C308判定是否已偵測到尚未進行最佳化工作之工作負載。若否,則實例重組態管理電路系統ID5_C308繼續等待此類情況。然而,回應於實例重組態管理電路系統ID5_C308偵測到待分析之工作負載,實例代理管理電路系統ID5_C310調用待與工作負載評估(例如,訓練)相關聯及/或以其他方式指派有工作負載評估的工作負載代理。在一些實例中,經指派工作負載代理為用以鑒於成本函數執行探索之加強學習代理。實例重組態管理電路系統ID5_C308識別候選硬體資源,諸如經由邊緣網路通訊地連接的彼等資源,且將此類候選資源儲存於儲存器(例如,資料庫、記憶體)中以供稍後參考及考慮。
結合由實例重組態管理電路系統ID5_C308識別之可用硬體資源(區塊ID5_D106)及/或儲存於儲存器中之此類資源,實例代理管理電路系統ID5_C310計算及/或以其他方式判定最佳化。如上文所揭露,最佳化可表示為模型、圖,諸如實例感興趣的圖ID5_B200。特定而言,實例代理管理電路系統ID5_C310自資源清單選擇候選資源,且實例SLA管理電路系統ID5_C304擷取與工作負載相關聯之當前SLA資訊。實例超參數調諧電路系統ID5_C306計算選定資源之經最佳化圖。在一些實例中,超參數調諧電路系統ID5_C306應用加強學習模型以供經指派代理進行處理,其中鑒於對應於SLA資訊之一或多個參數評估成本函數。針對所有可用候選運算資源計算經最佳化圖,且實例基準管理電路系統ID5_C302封裝及/或以其他方式將最佳化量度嵌入為聯合圖。此外,實例基準管理電路系統ID5_C302將聯合圖附接/嵌入至工作負載,使得可在工作負載之推斷/運行時間階段期間即時地作出動態決策。
在運行時間階段期間,實例工作負載活動偵測電路系統ID5_C312監測平台是否已調用經標記工作負載(例如,包含聯合圖之工作負載)。若如此,則實例SLA管理電路系統ID5_C304擷取當前SLA資訊。雖然上文將SLA資訊揭露為先前已擷取,但本文中所揭露之實例承認且解決了SLA資訊可取決於例如用戶端需要、預算等而隨時間改變的實情。實例重組態管理電路系統ID5_C308擷取與上文所識別工作負載調用相關聯的運算資源之當前利用率資訊。在一些實例中,藉助於Intel®資源引導技術(RDT)獲得利用率資訊。資源資訊可包括但不限於資源可用性、當前資源利用率(例如,鑒於多個租戶利用率)及當前資源成本(例如,每循環美元成本)。
實例SLA管理電路系統ID5_C304判定當前所識別運算資源是否將滿足當前SLA參數,且若如此,則不需要進一步模型調整。然而,在偏離SLA參數之情況下,實例重組態管理電路系統ID5_C308選擇展現達到臨限裕度之所預測SLA遵從性的替代路徑(例如,替代圖)。此類選擇具有降低之運算要求,部分是因為本文中所揭露之實例包括識別及/或以其他方式揭露已經計算以實現所要結果之替代路徑的語義資訊。因此,在相比於傳統技術時,替代路徑選擇以相對較快之方式發生,且運算負擔較少。考慮到一或多個狀況已改變,實例代理管理電路系統ID5_C310指派另一代理以重新評估選定替代路徑之效能。實例基準管理電路系統ID5_C302用對應於新選定路徑及當前狀況之新資訊更新工作負載。經更新工作負載資訊包括形成聯合圖之部分的經更新語義資訊。
在一些實例中,鑒於當前時間可用之候選運算資源,無法滿足SLA效能目標。在此類情形下,實例基準管理電路系統ID5_C302嘗試重新協商競爭租戶之間的SLA參數。基準管理電路系統ID5_C302向特定租戶提供小額支付,作為未以臨限程度滿足SLA參數要求之補償(例如,在偵測到不足的SLA要求時)。在一些實例中,基準管理電路系統ID5_C302提供此類小額支付且隨後將受影響工作負載移動至替代運算資源以完成工作負載目標,有時效能會降低(例如,較慢)。在一些實例中,基準管理電路系統ID5_C302將小額支付分配至同意將可用資源的一部分讓給第二租戶之第一租戶。因此,第一租戶並未耗用資源之彼部分,使得第二租戶可利用此類資源來實現運算任務。提供至及/或以其他方式分配至第一租戶之小額支付包括在後續時間可接取可用資源之一或多個部分。在一些實例中,至第一租戶之小額支付表示大於最初提供至第一租戶之彼等資源的工作負載資源之一部分。在一些實例中,至第一租戶之小額支付反映對應於一或多個邊緣網路裝置之運算循環數量。在一些實例中,第二租戶接收及/或以其他方式獲得具有經減少潛時的運算資源之使用,且第一租戶接收及/或以其他方式獲得具有相對較長潛時的運算資源之使用。
雖然圖ID5_C中說明實施圖ID5_C之最佳化電路系統ID5_C300的實例方式,但圖ID5_C中所說明之元件、程序及/或裝置中之一或多者可以任何其他方式組合、劃分、重新配置、省略、消除及/或實施。此外,實例基準管理電路系統ID5_C302、實例SLA管理電路系統ID5_C304、實例超參數調諧電路系統ID5_C306、實例重組態管理電路系統ID5_C308、實例代理管理電路系統ID5_C310、實例工作負載活動偵測電路系統ID5_C312,及/或更大體而言,圖ID5_C之實例最佳化電路系統ID5_C300可由硬體、軟體、韌體及/或硬體、軟體及/或韌體之任一組合實施。實例硬體實施包括圖D1A之實例運算電路系統D102 (例如,實例處理器D104)上,或圖D1B之實例運算節點D150的實例處理器D152上之實施。因此,例如,實例基準管理電路系統ID5_C302、實例SLA管理電路系統ID5_C304、實例超參數調諧電路系統ID5_C306、實例重組態管理電路系統ID5_C308、實例代理管理電路系統ID5_C310、實例工作負載活動偵測電路系統ID5_C312中之任一者,及/或更大體而言,圖ID5_C之實例最佳化電路系統ID5_C300可由一或多個類比或數位電路、邏輯電路、可程式化處理器、可程式化控制器、圖形處理單元(GPU)、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)及/或現場可程式化邏輯裝置(FPLD)實施。當閱讀本專利之設備或系統請求項中之任一者以涵蓋僅軟體及/或韌體實施時,實例基準管理電路系統ID5_C302、實例SLA管理電路系統ID5_C304、實例超參數調諧電路系統ID5_C306、實例重組態管理電路系統ID5_C308、實例代理管理電路系統ID5_C310、實例工作負載活動偵測電路系統ID5_C312中之至少一者,及/或更大體而言,圖ID5_C之實例最佳化電路系統ID5_C300特此明確地界定為包括包含軟體及/或韌體的非暫時性電腦可讀儲存裝置或儲存磁碟,諸如記憶體、數位化通用光碟(DVD)、緊密光碟(CD)、Blu-ray光碟等。實例儲存裝置及/或儲存磁碟可體現為經組配用於資料之短期或長期儲存的任何類型之實體裝置中之一或多者,諸如記憶體裝置、記憶體、電路系統、記憶卡、快閃記憶體、硬碟機、固態磁碟機(SSD)及/或其他資料儲存裝置/磁碟。再者,圖ID5_C之實例最佳化電路系統ID5_C300可包括除了圖ID5_C中所說明之彼等之外或代替彼等的一或多個元件、程序及/或裝置,及/或可包括所說明元件、程序及裝置中之任一者或所有中的多於一者。如本文中所使用,片語「進行通訊」,包括其變型,涵蓋直接通訊及/或經由一或多個中間組件之間接通訊,且不需要直接實體(例如,有線)通訊及/或持續通訊,而實際上另外包括呈週期性間隔、經排程間隔、非週期性間隔及/或單次事件之選擇性通訊。
圖ID5_D至圖ID5_F中展示表示用於實施圖ID5_C之最佳化電路系統ID5_C300的實例硬體邏輯、機器可讀指令、硬體實施之狀態機及/或其任何組合的流程圖。機器可讀指令可為用於由電腦處理器及/或處理器電路系統執行之一或多個可執行程式或可執行程式的部分,該電腦處理器及/或處理器電路系統諸如上文結合圖D1B論述之實例處理器平台D150中所示的處理器D152。該程式可體現於儲存於諸如CD-ROM、軟碟、硬碟機、DVD、Blu-ray光碟或與處理器D152相關聯的記憶體之非暫時性電腦可讀儲存媒體上的軟體中,但整個程式及/或其部分可替代地由除了處理器D152以外之裝置執行及/或體現於韌體或專用硬體中。此外,儘管參考圖ID5_D至圖ID5_F中所說明之流程圖描述實例程式,但可替代地使用實施實例最佳化電路系統ID5_C300之許多其他方法。例如,可改變區塊之執行次序,及/或可改變、消除或組合所描述區塊中之一些。另外或替代地,區塊中之任一者或全部可由經構造以在不執行軟體或韌體之情況下執行對應操作的一或多個硬體電路(例如,離散及/或整合式類比及/或數位電路系統、FPGA、ASIC、比較器、運算放大器(op-amp)、邏輯電路等)實施。處理器電路系統可分佈於不同網路位置中及/或在一或多個裝置(例如,單一機器中之多核心處理器、跨越伺服器機架分佈之多個處理器等)本端。
貫穿本揭露內容所描述之機器可讀指令可以壓縮格式、經加密格式、分段格式、經編譯格式、可執行格式、經封裝格式等中之一或多者來儲存。如本文中所描述之機器可讀指令可儲存為資料或資料結構(例如,指令之部分、程式碼、程式碼之表示等),其可用以產生、製造及/或產生機器可執行指令。例如,機器可讀指令可經分段且儲存於位於網路或網路集合之相同或不同位置處(例如,雲端中、邊緣裝置中等)的一或多個儲存裝置及/或運算裝置(例如,伺服器)上。機器可讀指令可能需要安裝、修改、調適、更新、組合、補充、組配、解密、解壓縮、解封裝、分佈、再指派、編譯等中之一或多者,以便使該等指令可直接由運算裝置及/或其他機器讀取、解譯及/或執行。例如,機器可讀指令可儲存於多個部分中,該等部分經個別地壓縮、加密且儲存於單獨運算裝置上,其中該等部分在經解密、經解壓縮及經組合時形成實施可一起形成諸如本文中所描述的程式之程式的一或多個功能的可執行指令集。
在另一實例中,貫穿本揭露內容揭露之機器可讀指令可儲存於以下狀態中:其中機器可讀指令可由處理器電路系統讀取,但需要添加程式庫(例如,動態鏈接程式庫(DLL))、軟體開發套件(SDK)、應用程式設計介面(API)等,以便執行特定運算裝置或其他裝置上之指令。在另一實例中,機器可讀指令可需要在可整體或部分地執行機器可讀指令及/或對應程式之前經組配(例如,所儲存設定、資料輸入、所記錄網路位址等)。因此,如本文中所使用,機器可讀媒體可包括機器可讀指令及/或程式,而不管機器可讀指令及/或程式在儲存時或以其他方式在靜止時或在輸送時的特定格式或狀態。
貫穿本文件所描述的機器可讀指令可由任何過去、目前或未來指令語言、指令碼處理語言、程式設計語言等表示。例如,機器可讀指令可使用以下語言中之任一者來表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本標記語言(HTML),結構化查詢語言(SQL),Swift等。
如上文所提及,圖ID5_D至圖ID5_F之實例程序可使用儲存於非暫時性電腦及/或機器可讀媒體上之可執行指令(例如,電腦及/或機器可讀指令)來實施,該非暫時性電腦及/或機器可讀媒體諸如硬碟機、快閃記憶體、唯讀記憶體、緊密光碟、數位化通用光碟、快取記憶體、隨機存取記憶體,及/或歷時任何持續時間儲存資訊(例如,歷時經延長時間週期、永久性地、歷時短暫時刻、用於臨時緩衝,及/或用於資訊之快取)的任何其他儲存裝置或儲存磁碟。如本文中所使用,術語非暫時性電腦可讀媒體明確地界定為包括任何類型之電腦可讀儲存裝置及/或儲存磁碟且排除傳播信號及傳輸媒體。
「包括」及「包含」(以及其所有形式及時態)在本文中用作開放術語。因此,每當請求項採用任何形式的「包括(include)」或「包含(comprise)」(例如,包含(comprises、comprising)、包括(includes、including)、具有等)作為前言或將其用於任何種類之請求項敍述內時,應理解,在不超出對應請求項或敍述之範疇之情況下,可存在額外元素、術語等。如本文中所使用,當片語「至少」用作請求項之例如前言中之過渡術語時,其為開放式的,與術語「包含」及「包括」為開放式之方式相同。例如,當以諸如A、B及/或C之形式使用術語「及/或」時,該術語係指A、B、C之任一組合或子集,諸如(1)僅A,(2)僅B,(3)僅C,(4) A及B,(5) A及C,(6) B及C,以及(7) A及B及C。如本文中所使用,在描述結構、組件、項目、物件及/或事物之上下文中,片語「A及B中之至少一者」旨在指包括(1)至少一個A,(2)至少一個B,及(3)至少一個A及至少一個B中之任一者的實施。類似地,如本文中所使用,在描述結構、組件、項目、物件及/或事物之上下文中,片語「A或B中之至少一者」旨在指包括(1)至少一個A,(2)至少一個B,及(3)至少一個A及至少一個B中之任一者的實施。如本文中所使用,在描述程序、指令、動作、活動及/或步驟之執行之上下文中,片語「A及B中之至少一者」旨在指包括(1)至少一個A,(2)至少一個B,及(3)至少一個A及至少一個B中之任一者的實施。類似地,如本文中所使用,在描述程序、指令、動作、活動及/或步驟之執行之上下文中,片語「A或B中之至少一者」旨在指包括(1)至少一個A,(2)至少一個B,及(3)至少一個A及至少一個B中之任一者的實施。
如本文中所使用,單數參考(例如,「一(a/an)」、「第一」、「第二」等)不排除複數。如本文中所使用,術語「一」實體係指彼實體中之一或多者。術語「一」、「一或多個」及「至少一個」在本文中可互換地使用。此外,儘管個別地列舉,但可由例如單一單元或處理器實施複數個構件、元件或方法動作。另外,儘管個別特徵可包括在不同實例或請求項中,但可能組合此等個別特徵,且包括於不同實例或請求項中不意味著特徵之組合係不可行及/或有利的。
圖ID5_D之程式ID5_D100包括區塊ID5_D102,其中實例重組態管理電路系統ID5_C308判定是否已偵測到尚未進行最佳化工作之工作負載。若否,則實例重組態管理電路系統ID5_C308繼續等待此類情況。然而,回應於實例重組態管理電路系統ID5_C308偵測到待分析之工作負載(區塊ID5_D102),實例代理管理電路系統ID5_C310調用待與工作負載評估(例如,訓練)相關聯及/或以其他方式指派有工作負載評估的工作負載代理(區塊ID5_D104)。實例重組態管理電路系統ID5_C308識別候選硬體資源(區塊ID5_D106),諸如經由邊緣網路通訊地連接的彼等資源,且將此類候選資源儲存於儲存器(例如,資料庫、記憶體)中(ID5_D108)以供稍後參考及考慮。
結合由實例重組態管理電路系統ID5_C308識別之可用硬體資源(區塊ID5_D106)及/或儲存於儲存器中之此類資源,實例代理管理電路系統ID5_C310計算及/或以其他方式判定最佳化(區塊ID5_D110)。實例圖ID5_E揭露與區塊ID5_D110之計算最佳化相關的進一步細節。在圖ID5_E之所說明實例中,實例代理管理電路系統ID5_C310自資源清單選擇候選資源(區塊ID5_E202),且實例SLA管理電路系統ID5_C304擷取與工作負載相關聯之當前SLA資訊(區塊ID5_E204)。實例超參數調諧電路系統ID5_C306計算選定資源之經最佳化圖(區塊ID5_E206)。實例代理管理電路系統ID5_C310判定是否存在考慮用於最佳化計算之另一候選資源(區塊ID5_E208),且若如此,控制返回至區塊ID5_E202)。否則,控制返回至圖ID5_D之所說明實例。
返回至圖ID5_D,實例基準管理電路系統ID5_C302將最佳化量度封裝為聯合圖(區塊ID5_D112),且實例基準管理電路系統ID5_C302將聯合圖附接至工作負載(區塊ID5_D114),使得可在工作負載之推斷/運行時間階段期間即時地作出動態決策。
圖ID5_F說明用以在運行時間狀況期間最佳化工作負載之實例程式ID5_F300。在圖ID5_F之所說明實例中,實例工作負載活動偵測電路系統ID5_C312監測平台是否已調用經標記工作負載(例如,包含聯合圖之工作負載) (區塊ID5_F302)。若如此,則實例SLA管理電路系統ID5_C304擷取當前SLA資訊(區塊ID5_F304)。實例重組態管理電路系統ID5_C308擷取與上文所識別工作負載調用相關聯的運算資源之當前利用率資訊(區塊IF5_F306)。實例SLA管理電路系統ID5_C304判定當前所識別運算資源是否將滿足當前SLA參數(區塊ID5_F308),且若如此,則不需要進一步模型調整且控制返回至區塊ID5_F302。然而,在偏離SLA參數之情況下,實例重組態管理電路系統ID5_C308選擇展現達到臨限裕度之所預測SLA遵從性的替代路徑(例如,替代圖) (區塊ID5_F310)。考慮到一或多個狀況已改變,實例代理管理電路系統ID5_C310指派另一代理以重新評估選定替代路徑之效能(區塊ID5_F312)。實例基準管理電路系統ID5_C302用對應於新選定路徑及當前狀況之新資訊更新工作負載(區塊ID5_F314)。
本文中揭露用以最佳化邊緣網路中之資源的實例方法、設備、系統及製品。其他實例及其組合包括以下:實例67包括一種設備,其包含:中央處理單元、圖形處理單元或數位信號處理器中之至少一者,中央處理單元、圖形處理單元或數位信號處理器中之該至少一者具有用以控制處理器電路系統內之資料移動的控制電路系統、用以執行對應於指令之一或多個第一操作的算術及邏輯電路系統及用以儲存一或多個第一操作之結果、設備中之指令的一或多個暫存器;現場可程式化閘陣列(FPGA),該FPGA包括邏輯閘電路系統、複數個可組配互連及儲存電路系統,邏輯閘電路系統及互連用以執行一或多個第二操作,儲存電路系統用以儲存一或多個第二操作之結果;或特殊應用積體電路系統,其包括用以執行一或多個第三操作之邏輯閘電路系統,處理器電路系統用以進行以下中之至少一者:執行第一操作、第二操作或第三操作中之至少一者以:調用探索代理以識別平台資源裝置;選擇所識別平台資源裝置中之第一者;針對對應於所識別平台資源裝置中之第一者的工作負載,產生第一最佳化量度,第一最佳化量度對應於第一路徑;將第一語義資訊嵌入至工作負載,第一語義資訊包括對應於所識別平台資源裝置中之第一者的經最佳化圖資訊及平台結構資訊;選擇所識別平台資源裝置中之第二者;針對對應於所識別平台資源裝置中之第二者的工作負載,產生第二最佳化量度,第二最佳化量度對應於第二路徑;將第二語義資訊嵌入至工作負載,第二語義資訊包括對應於所識別平台資源裝置中之第二者的經最佳化圖資訊及平台結構資訊;及在運行時間期間基於對應於第一及第二所識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇第一路徑或第二路徑。
實例68包括如實例67中所界定之設備,其中處理器用以:判定對應於平台資源裝置中之第一及第二者的利用率偏差,比較利用率偏差與SLA資訊,且將工作負載遷移至第一路徑或第二路徑中之一者以滿足SLA資訊之至少一個臨限值。
實例69包括如實例67中所界定之設備,其中SLA資訊包括潛時量度、功率消耗量度、資源成本量度或準確度量度中之至少一者。
實例70包括如實例67中所界定之設備,其中處理器電路系統用以在產生第一最佳化量度及第二最佳化量度時判定參與所識別平台資源裝置的租戶數量。
實例71包括如實例70中所界定之設備,其中處理器電路系統用以將對應於租戶數量之資訊與第一及第二語義資訊一起嵌入。
實例72包括如實例67中所界定之設備,其中處理器電路系統用以回應於不足的SLA要求而向租戶提供小額支付。
實例73包括至少一種非暫時性電腦可讀儲存媒體,其包含當經執行時致使至少一個處理器至少進行以下操作的指令:調用探索代理以識別平台資源裝置;選擇所識別平台資源裝置中之第一者;針對對應於所識別平台資源裝置中之第一者的工作負載,產生第一最佳化量度,第一最佳化量度對應於第一路徑;將第一語義資訊嵌入至工作負載,第一語義資訊包括對應於所識別平台資源裝置中之第一者的經最佳化圖資訊及平台結構資訊;選擇所識別平台資源裝置中之第二者;針對對應於所識別平台資源裝置中之第二者的工作負載,產生第二最佳化量度,第二最佳化量度對應於第二路徑;將第二語義資訊嵌入至工作負載,第二語義資訊包括對應於所識別平台資源裝置中之第二者的經最佳化圖資訊及平台結構資訊;及在運行時間期間基於對應於第一及第二所識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇第一路徑或第二路徑。
實例74包括如實例73中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器:判定對應於平台資源裝置中之第一及第二者的利用率偏差,比較利用率偏差與SLA資訊,且將工作負載遷移至第一路徑或第二路徑中之一者以滿足SLA資訊之至少一個臨限值。
實例75包括如實例73中所界定之至少一種電腦可讀儲存媒體,其中SLA資訊包括潛時量度、功率消耗量度、資源成本量度或準確度量度中之至少一者。
實例76包括如實例73中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器在產生第一最佳化量度及第二最佳化量度時判定參與所識別平台資源裝置的租戶數量。
實例77包括如實例76中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器將對應於租戶數量之資訊與第一及第二語義資訊一起嵌入。
實例78包括如實例7中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器回應於不足的SLA準則而向租戶提供小額支付。
實例79包括一種用以最佳化工作負載之方法,該方法包含:調用探索代理以識別平台資源裝置;選擇所識別平台資源裝置中之第一者;針對對應於所識別平台資源裝置中之第一者的工作負載,產生第一最佳化量度,第一最佳化量度對應於第一路徑;將第一語義資訊嵌入至工作負載,第一語義資訊包括對應於所識別平台資源裝置中之第一者的經最佳化圖資訊及平台結構資訊;選擇所識別平台資源裝置中之第二者;針對對應於所識別平台資源裝置中之第二者的工作負載,產生第二最佳化量度,第二最佳化量度對應於第二路徑;將第二語義資訊嵌入至工作負載,第二語義資訊包括對應於所識別平台資源裝置中之第二者的經最佳化圖資訊及平台結構資訊;及在運行時間期間基於對應於第一及第二所識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇第一路徑或第二路徑。
實例80包括如實例79中所界定之方法,其進一步包括:判定對應於平台資源裝置中之第一及第二者的利用率偏差,比較利用率偏差與SLA資訊,且將工作負載遷移至第一路徑或第二路徑中之一者以滿足SLA資訊之至少一個臨限值。
實例81包括如實例79中所界定之方法,其中SLA資訊包括潛時量度、功率消耗量度、資源成本量度或準確度量度中之至少一者。
實例82包括如實例79中所界定之方法,其中產生第一最佳化量度及第二最佳化量度進一步包括判定參與所識別平台資源裝置之租戶數量。
實例83包括如實例82中所界定之方法,其進一步包括將對應於租戶數量之資訊與第一及第二語義資訊一起嵌入。
實例84包括如實例79中所界定之方法,其進一步包括回應於偵測到不足的SLA參數而向租戶提供小額支付。
實例85包括一種設備,其包含:用以進行以下操作之代理管理電路系統:調用探索代理以識別平台資源裝置;選擇所識別平台資源裝置中之第一者;針對對應於所識別平台資源裝置中之第一者的工作負載,產生第一最佳化量度,第一最佳化量度對應於第一路徑;以及選擇所識別平台資源裝置中之第二者;及針對對應於所識別平台資源裝置中之第二者的工作負載,產生第二最佳化量度,第二最佳化量度對應於第二路徑;用以將第二語義資訊嵌入至工作負載之基準管理電路系統,第二語義資訊包括對應於所識別平台資源裝置中之第二者的經最佳化圖資訊及平台結構資訊;以及重組態管理電路系統,其用以在運行時間期間基於對應於第一及第二所識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇第一路徑或第二路徑。
實例86包括如實例85中所界定之設備,其中重組態管理電路系統用以:判定對應於平台資源裝置中之第一及第二者的利用率偏差,比較利用率偏差與SLA資訊,且將工作負載遷移至第一路徑或第二路徑中之一者以滿足SLA資訊之至少一個臨限值。
實例87包括如實例85中所界定之設備,其中SLA資訊包括潛時量度、功率消耗量度、資源成本量度或準確度量度中之至少一者。
實例88包括如實例85中所界定之設備,其中產生第一最佳化量度及第二最佳化量度進一步包括判定參與所識別平台資源裝置之租戶數量。
實例89包括如實例88中所界定之設備,其中基準管理電路系統用以將對應於租戶數量之資訊與第一及第二語義資訊一起嵌入。
實例90包括一種系統,其包含:用於管理代理之構件,該構件用以調用探索代理以識別平台資源裝置;選擇所識別平台資源裝置中之第一者;針對對應於所識別平台資源裝置中之第一者的工作負載,產生第一最佳化量度,第一最佳化量度對應於第一路徑;選擇所識別平台資源裝置中之第二者;及針對對應於所識別平台資源裝置中之第二者的工作負載,產生第二最佳化量度,第二最佳化量度對應於第二路徑;用於管理基準之構件,該構件用以將第二語義資訊嵌入至工作負載,第二語義資訊包括對應於所識別平台資源裝置中之第二者的經最佳化圖資訊及平台結構資訊;以及用於管理重組態之構件,該構件用以在運行時間期間基於對應於第一及第二所識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇第一路徑或第二路徑。
實例91包括如實例90中所界定之系統,其中用於管理重組態之構件用以:判定對應於平台資源裝置中之第一及第二者的利用率偏差,比較利用率偏差與SLA資訊,且將工作負載遷移至第一路徑或第二路徑中之一者以滿足SLA資訊之至少一個臨限值。
實例92包括如實例90中所界定之系統,其中SLA資訊包括潛時量度、功率消耗量度、資源成本量度或準確度量度中之至少一者。
實例93包括如實例90中所界定之系統,其中產生第一最佳化量度及第二最佳化量度進一步包括判定參與所識別平台資源裝置之租戶數量。
實例94包括如實例93中所界定之系統,其中用於管理基準之構件用以將對應於租戶數量之資訊與第一及第二語義資訊一起嵌入。
實例ID5(A)為如實例67至72中任一者之設備,其進一步包括:回應於偵測到目標資源不能滿足SLA,選擇對應於下一所滿足量度之替代路徑。
實例ID5(B)為如實例ID5(A)之設備,其中下一所滿足量度為下一最低潛時或下一最大準確度中之至少一者。
實例ID5(C)為如實例73至78中任一者之電腦可讀儲存媒體,其進一步包括回應於偵測到目標資源不能滿足SLA,選擇對應於下一所滿足量度之替代路徑。
實例ID5(D)為如實例ID5(C)之電腦可讀儲存媒體,其中下一所滿足量度為下一最低潛時或下一最大準確度中之至少一者。 動態模型調適(ID3)
在本文中所揭露之實例中,運算環境包括執行諸如但不限於人工智慧(AI)模型之一或多個工作負載的一或多個處理器核心。實例運算環境包括經構造以在處理器核心上運行的多個租戶。在執行期間,AI模型(例如,神經網路、決策樹、樸素貝氏分類等)使用運算裝置的資源,諸如快取記憶體及記憶體。然而,此等資源係受限的,因為快取記憶體(例如,末級快取記憶體(LLC)、三級(L3)、四級(L4)等)限於處理器中之快取記憶體空間量(例如,千位元組、百萬位元組等),且記憶體(例如,千位元組、百萬位元組、吉位元組等)限於可用以存取記憶體的頻寬量(例如,以百萬位元組每秒為單位之資料轉移速率) (例如,由於記憶體之讀取/寫入存取速度、由於處理器與記憶體之間的記憶體匯流排之速度等)。可用於AI模型之快取記憶體空間及記憶體頻寬的量直接影響AI模型之服務品質(QoS)。當運算裝置或運算節點在多租戶運算環境中針對多個租戶運行多個AI模型時,AI模型共享運算裝置或運算節點之可用快取記憶體空間及記憶體頻寬。當運算裝置或運算節點運行多個AI工作負載及非AI工作負載時,AI模型與非AI工作負載及其他AI模型共享可用快取記憶體空間及記憶體頻寬。
然而,AI模型之間在如何共享此類資源方面缺少協調,此使得難以或不可能跨越多個AI模型維持合適的QoS位準。本文中所揭露之實例使用基於模型之方法在運算環境中動態地調適跨越多個AI模型之資源可用性以將QoS維持在合適位準下(例如,根據服務等級協議(SLA)),以在多租戶運算系統中改良跨越多個AI模型之執行效能。
本文中所揭露之實例產生資源利用率模型,其包括產生具有不同資源利用率的任何數目個候選模型(例如,運行時間模型),以判定如何使用基於獎勵之系統將資源分配至不同工作負載(例如,AI模型)。大體而言,給定工作負載通常涉及調用眾多模型以實現運算目標。當然,取決於可用資源,此等模型之特定組合(例如,其皆可促成運算目標)較佳或較差地執行。在其他實例中,基於工作負載要求利用底層運算資源(例如,邏輯地分組為數個節點),其中不同租戶對可用節點作出特定要求。適當選擇此等一或多個候選模型在許多方面皆適用於改良工作負載執行之效能。另外,此可用於大體上減少或消除雲端環境中之嘈雜相鄰者問題。嘈雜相鄰者為雲端運算系統中獨佔大量資源之租戶,其有時會損害其他租戶。
圖ID3_1為具有實例租戶ID3_102、實例協調器電路ID3_104、第一節點ID3_114及第二節點ID3_122之實例環境ID3_100。實例第一節點ID3_114包括複數個工作負載。如本文中所使用,工作負載可為執行個體、數個應用程式、數個人工智慧模型等。實例第一節點ID3_114包括第一工作負載ID3_106、第二工作負載ID3_110及第三工作負載ID3_112 (例如,第n工作負載)。實例第二節點ID3_122包括第四工作負載ID3_116、第五工作負載ID3_118及第六工作負載ID3_120 (例如,第n工作負載)。
實例協調器電路ID3_104用以基於資源利用率資料將工作負載置放於邊緣網路之不同節點之間。例如,資源利用率資料可為快取記憶體大小及/或記憶體頻寬。實例工作負載中的一些(例如,第二工作負載ID3_110)係可容許遷移的,其中實例協調器電路ID3_104可將工作負載自第一節點遷移至第二節點。在一些實例中,基於節點上操作之其他工作負載而更改人工智慧模型之開發及/或執行。為了說明,在實例節點總共具有十(「10」)吉位元組之快取記憶體,且實例第一工作負載需要7吉位元組時,實例第二工作負載可藉由五(「5」)吉位元組之快取記憶體以第一準確度位準(例如,95%)執行,且第二工作負載可藉由三(「3」)吉位元組之快取記憶體以第二準確度位準(例如,90%)執行。為了實現此等最佳化,實例協調器(如下文進一步詳細論述)與第二工作負載協商以減少第二工作負載之快取記憶體要求,從而在總共具有10吉位元組之可用快取記憶體的節點上包括第一工作負載(其需要7吉位元組)及第二工作負載(其需要3至5吉位元組之間)。
在一些實例中,協調器電路ID3_104以任何類型之激勵(例如,貨幣信用、允許資源利用的基於時間之信用等)與實例節點(例如,第一節點ID3_114、第二節點ID3_122)或實例工作負載(例如,第一工作負載ID3_106、第二工作負載ID3_110、第五工作負載ID3_118等)協商。
在ID3_100之實例中,傳入租戶ID3_102具有要執行之新工作負載。新工作負載具有實例協調器電路ID3_104用以判定哪個節點執行該新工作負載的特定服務品質(QoS)要求。
圖ID3_3為實例協調器電路ID3_104之方塊圖。實例協調器電路ID3_104包括實例資料介面電路ID3_308、實例請求驗證器電路ID3_310、實例資源管理器電路ID3_312、實例節點可用性判定器電路ID3_316、實例候選模型產生器電路ID3_314、實例工作負載遷移器電路ID3_318及實例服務品質(QoS)監測器電路ID3_320。實例協調器電路ID3_104與實例租戶ID3_302、邊緣網路之實例第一節點ID3_304及邊緣網路之實例第二節點ID3_306通訊。
實例資料介面電路ID3_308自租戶ID3_302接收對新工作負載之請求。來自租戶ID3_302之新工作負載包括特定服務品質要求,諸如服務品質可取決於頻率、快取記憶體、記憶體頻寬、功率、深度學習(DL)精度(例如,INT8、BF16)、DL模型特性及/或遷移容許度。
實例請求驗證器電路ID3_310用以判定來自租戶ID3_302之請求是否為合法請求。請求驗證器電路ID3_310可基於具有撤銷清單之所佈建策略(例如,由協調器或資料中心機隊管理者)判定請求是否合法。
實例資源管理器電路ID3_312用以監測邊緣網路之節點(例如,第一節點ID3_304、第二節點ID3_306)。實例資源管理器電路ID3_312可判定節點之快取記憶體大小及記憶體頻寬可用性,且判定節點上當前運行之工作負載。
實例節點可用性判定器電路ID3_316與實例節點協商以判定新工作負載之可用性。協商可包括貨幣信用或時間信用。
實例候選模型產生器電路ID3_314之功能性可實施於實例節點中或可實施於實例協調器中。實例候選模型產生器電路ID3_314用以針對第一人工智慧模型產生具有不同資源利用率之複數個候選模型(例如,第一候選模型可使用少量快取記憶體而第二候選模型可使用大量快取記憶體)。實例資源管理器可使用資源利用率模型,該資源利用率模型追蹤由候選模型產生器電路ID3_314產生的具有不同快取記憶體大小要求之不同候選模型的各種推斷準確度。
實例工作負載遷移器電路ID3_318用以判定將工作負載自實例第一節點ID3_304遷移(例如,重新定位、移動)至實例第二節點ID3_306。
實例QoS監測器電路ID3_320用以隨時間推移判定工作負載之服務品質,並回應於服務品質之顯著下降,藉由實例資源管理器電路ID3_312觸發遷移。
圖ID3_4為執行多個AI模型ID3_404a至ID3_404c之實例多核心運算節點ID3_400 (例如,電腦、主機伺服器、閘道器等)的方塊圖。實例多核心運算節點ID3_400包括執行AI模型ID3_404a至ID3_404c之多個核心ID3_408a至ID3_408d。在一些實例中,AI模型ID3_404a至ID3_404c在多核心運算節點ID3_400上之沙箱環境內執行。沙箱環境為在嘗試減輕系統故障及/或軟體漏洞以免擴散時分離運行程式之安全機制。在沙箱環境中執行AI模型ID3_404a至ID3_404c允許多核心運算節點ID3_400更好地控制AI模型ID3_404a至ID3_404c可接取之資源。資源可包括快取記憶體空間及/或記憶體頻寬。儘管展示三個AI模型ID3_404a至ID3_404c及四個處理核心ID3_408a至ID3_408d,但本文中所揭露之實例可使用任何其他數目個AI模型及/或任何其他數目個核心來實施。在本文中所揭露之實例中,AI模型ID3_404a至ID3_404c可為任何AI模型或程式(例如,神經網路、決策樹、樸素貝氏分類等)。實例多核心運算節點ID3_400判定核心ID3_408a至ID3_408d中之哪些執行AI模型ID3_404a至ID3_404c中之多者。實例多核心運算節點ID3_400包括可分配至多個核心ID3_408a至ID3_408d以執行AI模型ID3_404a至ID3_404c中之多者的快取記憶體ID3_412及記憶體ID3_416。實例快取記憶體ID3_412可為末級快取記憶體(LLC)或供多個核心ID3_408a至ID3_408d使用之任何其他快取記憶體。實例記憶體ID3_412可為動態隨機存取記憶體(DRAM)、同步DRAM (SDRAM)、靜態隨機存取記憶體(SRAM),及/或適用作由所有核心ID3_408a至ID3_408d共享之系統記憶體的任何其他類型之記憶體。在一些實例中,分配至AI模型ID3_404a至ID3_404c中之多者的快取記憶體ID3_412上之空間及記憶體ID3_416之頻寬可能不足以使彼AI模型ID3_404a至ID3_404c以可接受效能執行,或在過量彼等資源經分配至AI模型ID3_404a至ID3_404c中之多者時可能未得到充分利用。為了改良與快取記憶體空間及記憶體頻寬相關之效能,本文中所揭露之實例提供實例控制器ID3_420以監測快取記憶體ID3_412及記憶體ID3_416之資源利用率,並判定是否跨越AI模型ID3_404a至ID3_404c修改快取記憶體大小及/或記憶體頻寬之分配。
實例控制器ID3_420可為人工智慧或機器學習系統。在本文中所揭露之實例中,控制器ID3_420利用神經網路架構產生追蹤AI模型之資源利用率的用於AI模型ID3_404a至ID3_404c之資源利用率模型。例如,控制器可產生對應於AI模型的具有不同資源利用率之候選模型。例如,追蹤AI模型ID3_404a之資源利用率的資源利用率模型可包括圖ID3_5之第一候選AI模型ID3_512a、圖ID3_5之第二候選AI模型ID3_512b,及圖ID3_5之第三候選AI模型ID3_512c。相對於未使用加強學習技術之情況,實例控制器ID3_420可使用加強學習技術以較佳地最佳化資源利用率模型。實例控制器ID3_420亦可利用差分方法。在差分方法中,控制器ID3_420可包含超級圖及/或超級網路以在神經網路架構中產生路徑。
實例控制器ID3_420包括實例監測器電路ID3_424及實例分析器電路ID3_428。實例監測器電路ID3_424收集關於快取記憶體ID3_412及記憶體ID3_416之資源利用率資料。由實例監測器電路ID3_424收集之資源利用率資料包括但不限於快取記憶體ID3_412之空間利用率、記憶體ID3_416之空間利用率及記憶體ID3_416之頻寬利用率。在本文中所揭露之實例中,記憶體ID3_416之頻寬指示可多快地在記憶體ID3_416中接取資料。實例監測器電路ID3_424提供所收集資源利用率資料以供分析器電路ID3_428接取。實例監測器電路ID3_424週期性或非週期性地收集關於快取記憶體ID3_412及記憶體ID3_416之統計資料以執行對空間及頻寬利用率以及分配之進行中分析。在一些實例中,控制器ID3_420基於先前所產生候選模型之效能修改特定候選模型之產生及/或總體資源利用率模型之產生。在此等實例中,候選模型之效能係基於與候選模型之預期潛時及/或準確度相比時的候選模型之實際資料接取潛時(例如,與記憶體頻寬有關)及/或快取記憶體推斷準確度(例如,與快取記憶體大小有關)。
實例分析器電路ID3_428接取所收集資源利用率資料,以產生表示快取記憶體ID3_412跨越多個AI模型ID3_404a至ID3_404c之不同空間利用率及記憶體116跨越多個AI模型ID3_404a至ID3_404c之不同頻寬利用率的候選模型。因此,資源產生模型追蹤候選模型,界定(例如,設定、追蹤、具現化) AI模型ID3_404a至ID3_404c之快取記憶體空間利用率參數值及記憶體頻寬利用率參數值。快取記憶體空間利用率參數界定AI模型ID3_404a至ID3_404c中之多者可利用快取記憶體ID3_412中之多少空間,其判定了可根據快取記憶體空間利用率參數產生之複數個候選模型。記憶體頻寬利用率參數值界定AI模型ID3_404a至ID3_404c中之多者可利用記憶體ID3_416之多少頻寬,其判定了可根據記憶體頻寬產生之複數個候選模型。例如,若快取記憶體空間利用率參數為最小值二(「2」),則並不產生使用一(「1」)之快取記憶體空間值的候選模型。實例分析器電路ID3_428可產生用於AI模型ID3_404a至ID3_404c之多個候選模型,以分析快取記憶體空間利用率值及記憶體頻寬利用率值的不同組合來實現AI模型ID3_404a至ID3_404c之目標QoS位準。實例分析器電路ID3_428選擇多個候選模型中之一或多者以在快取記憶體ID3_412及記憶體ID3_416上加以調用。
在一些實例中,分析器電路ID3_428基於預期資源利用率與實際資源利用率之比較來選擇候選模型。例如,在執行AI模型ID3_404a至ID3_404c時應用先前選定候選模型之資源分配之後,實例監測器電路ID3_424收集對應於運行之AI模型ID3_404a至ID3_404c的後續實際資源利用率資料。另外,實例分析器電路ID3_428產生後續候選模型及對應預期資源利用率資料,以繼續分析QoS位準並跨越AI模型ID3_404a至ID3_404c修改快取記憶體空間及記憶體頻寬分配來維持合適的QoS位準。在此類後續分析期間,分析器電路ID3_428將預期資源利用率資料與實際資源利用率資料進行比較。以此方式,分析器電路ID3_428可選擇將更緊密地滿足AI模型ID3_404a至ID3_404c之快取記憶體空間及記憶體頻寬需要的後續候選模型來替換當前運行之AI模型。
圖ID3_5為所產生候選模型(例如,運行時間模型)之實例效能圖ID3_500。候選模型在快取記憶體大小及/或記憶體頻寬利用率方面不同。儘管基於快取記憶體空間及記憶體頻寬資源描述本文中所揭露之實例,但本文中所揭露之實例可藉由包括硬體層級資源、作業系統層級資源、網路資源等之其他類型的資源來實施。另外,用於分析之資源的類型可為固定的(例如,不可變的)或可為使用者可選擇及/或系統可選擇的(例如,藉由人工智慧選擇,藉由程式選擇,基於組態檔案選擇等)。
在其他實例中,可另外或替代地產生候選模型以分析用於執行工作負載之不同裝置類型之間的效能權衡。例如,可產生額外效能圖及/或軸線資料以展示可選擇以執行工作負載的不同裝置類型之比較圖。在此類實例中,分析器電路ID3_428可針對使用中央處理單元(CPU)執行之工作負載相較於使用圖形處理單元(GPU)執行之工作負載產生候選模型及預期資源利用率資料。以此方式,實例分析器電路ID3_428可促進選擇候選模型以分配資源及/或選擇不同類型之資源來執行工作負載。可針對其產生候選模型的不同資源類型之實例包括但不限於GPU、CPU及/或跨架構處理單元(XPU)等。
轉向圖ID3_5,實例效能圖ID3_500之Y軸ID3_504表示候選模型ID3_512a至ID3_512c、ID3_516a至ID3_516c之推斷準確度或記憶體潛時,且x軸ID3_508表示快取記憶體大小或頻寬使用。候選模型ID3_512a至ID3_512c、ID3_516a至ID3_516c用於在多核心運算節點ID3_400上執行之二個AI模型ID3_504a至ID3_504c。在此實例中,針對AI模型ID3_404a產生候選模型ID3_512a至ID3_512c (其展示不同資源利用率),且針對AI模型ID3_404b產生候選模型ID3_516a至ID3_516c (其展示不同資源利用率)。實例效能圖ID3_500展示相較於快取記憶體大小之快取記憶體推斷準確度效能與相較於記憶體頻寬之記憶體潛時效能的組合表示。在一些實例中,可沿著y軸ID3_504正規化效能值且可沿著x軸ID3_508正規化快取記憶體及頻寬利用率值,使得可在單一圖或效能圖中同時展示快取記憶體大小與記憶體頻寬之不同組合的效能影響。替代地,可產生二個單獨效能圖。在此類實例中,一個效能圖可展示相較於快取記憶體大小之快取記憶體推斷準確度效能,且另一效能圖可展示相較於記憶體頻寬之記憶體潛時效能。
在本文中所揭露之實例中,快取記憶體推斷準確度效能表示快取記憶體中之資訊由後續指令使用或接取(例如,快取命中)之頻率。例如,較大快取記憶體大小適應於對較多資訊進行快取。因此,處理核心可基於此類資訊隨後將被接取之推斷而將較多資訊自記憶體載入至快取記憶體中。快取記憶體大小愈大,快取記憶體中推斷性地載入之資訊將愈可能引起快取命中。在本文中所揭露之實例中,記憶體潛時效能表示自記憶體擷取資訊所花費的時間量。隨著記憶體頻寬增大,記憶體潛時效能得到改良(例如,潛時降低)。
實例分析器電路ID3_428產生候選模型ID3_512a至ID3_512c、ID3_516a至ID3_516c之快取記憶體大小及記憶體頻寬的預期資源利用率資料。在一些實例中,分析器電路ID3_428基於預期資源利用率資料選擇候選模型ID3_512a。在此類實例中,可基於其預期資源利用率資料滿足AI模型ID3_404a之所要效能而選擇選定候選模型ID3_512a。
在一些實例中,分析器電路ID3_428可選擇候選模型ID3_512a用於AI模型ID3_404a,因為候選模型ID3_512a滿足AI模型ID3_404a之所要推斷準確度效能。在其他實例中,分析器電路ID3_428可選擇候選模型ID3_512a用於AI模型ID3_404a,因為候選模型ID3_512a滿足AI模型ID3_404a之所要記憶體潛時。
在一些實例中,分析器電路ID3_428可運行二個AI模型,且選擇候選模型ID3_512a及候選模型ID3_516c。模型ID3_512a及ID3_516c之選擇獎勵了更有效地利用快取記憶體大小或記憶體頻寬之AI模型。
此實例係在分析快取記憶體空間方面撰寫,但可類似地追蹤記憶體頻寬。在圖ID3_5之實例中,分析器電路ID3_428產生用於第一人工智慧模型ID3_404a之三個候選模型:低快取記憶體變體模型ID3_516c (例如,第一候選模型ID3_516c)、中等快取記憶體變體模型ID3_516b (例如,第二候選模型ID3_516b)及高快取記憶體變體模型ID3_516a (例如,第三候選模型ID3_516a)。在圖ID3_5之實例中,分析器電路ID3_528產生第二人工智慧模型ID3_ ID3_404b之三個候選模型:低快取記憶體變體模型ID3_516c (例如,第一候選模型ID3_516c)、中等快取記憶體變體模型ID3_516b (例如,第二候選模型ID3_516ba,及高快取記憶體變體模型ID3_516a (例如,第三候選模型ID3_516a)。在圖ID3_5之實例中,由於自對應於AI模型ID3_404b之候選模型ID3_516a至ID3_516c的較低快取記憶體變體至較高快取記憶體變體之增大,分析器電路ID3_428判定推斷準確度或記憶體潛時不存在顯著(例如,急劇、根據臨限值)改良(例如,增大)。在圖ID3_5之實例中,由於自對應於AI模型ID3_404a之候選模型ID3_512a至ID3_512c的較低快取記憶體變體至較高快取記憶體變體的增大,分析器電路ID3_428判定推斷準確度或記憶體潛時存在顯著改良(例如,增大)。人工智慧模型ID3_404b之改良的斜率(例如,在快取記憶體大小或記憶體頻寬上之準確度)低於人工智慧模型ID3_404a之改良的斜率。基於有限快取記憶體空間,分析器ID3_428可判定並不獎勵人工智慧模型ID3_404b且並不選擇候選模型ID3_516a進行運行,此係因為實例AI模型ID3_404a能夠比實例AI模型ID3_404b更有效地利用額外快取記憶體。在一些實例中,資源產生模型可被視為函數,其中對於特定模型,軸線ID3_508上之快取記憶體大小的輸入具有推斷準確度或記憶體潛時之對應輸出。資源產生模型可描述給定人工智慧模型可如何對不同快取記憶體大小作出回應。
在圖ID3_5之實例中,實例分析器電路ID3_428可選擇對於記憶體頻寬及推斷準確度或記憶體潛時具有較佳資源利用率的候選模型。如上文所描述,此類選擇可係基於第一候選模型群組(ID3_404a)之斜率與第二候選模型群組(ID3_404b)之斜率的比較。
在其他實例中,分析器電路ID3_428可一次產生用於AI模型ID3_404a至ID3_404c中的多於一者的候選模型。在此等實例中,分析器電路ID3_428可基於最佳化規則選擇用於AI模型ID3_404a至ID3_404c之候選模型。例如,針對AI模型ID3_404b產生候選模型ID3_516a至ID3_516c,且針對AI模型ID3_404a產生候選模型ID3_512a至ID3_512c。在此實例中,候選模型ID3_516a具有最高頻寬使用ID3_508,且候選模型ID3_516c具有最低頻寬使用ID3_508。
在一些實例中,實例分析器電路ID3_428在並不與另外候選模型ID3_512a至ID3_512c進行比較的情況下選擇要調用的候選模型ID3_516a至ID3_516c。在此類實例中,分析器電路ID3_428可基於具有最高頻寬使用ID3_508而選擇候選模型ID3_516a。在此類實例中,分析器電路ID3_428可基於多租戶運算環境中之租戶數目來選擇候選模型。在一些實例中,租戶可為其他人工智慧模型或可為非AI工作負載。在其他實例中,分析器電路ID3_428基於QoS需要及/或效能圖ID3_500來選擇候選模型。例如,分析器電路ID3_428可比較多個候選模型集合ID3_512a至ID3_512c、ID3_516a至ID3_516c,並選擇候選模型ID3_512a至ID3_512c、ID3_516a至ID3_516c以最佳化快取記憶體推斷準確度及/或記憶體潛時。在此類實例中,分析器電路ID3_428可選擇候選模型ID3_512a用於AI模型ID3_404a,且選擇候選模型ID3_516c用於AI模型ID3_404b。在此實例中,分析器電路ID3_428選擇選定候選模型ID3_512a、ID3_516c,此係因為候選模型ID3_516a與候選模型ID3_516c之間的潛時差異沒有候選模型ID3_512a與候選模型ID3_512c之間的潛時差異大。
若實例分析器電路ID3_428先前已產生且選擇了用於AI模型ID3_404a至ID3_404c的候選模型,則分析器電路ID3_428可比較其他候選模型之最近收集資源利用率資料與預期資源利用率資料。分析器電路ID3_428可基於該比較選擇新的候選模型。
圖ID3_6為用於圖ID3_4之多核心運算節點的實例系統流程之方塊圖。在區塊ID3_604處,實例監測器ID3_424 (圖1)基於運行之AI模型ID3_404a至ID3_404c收集資源利用率資料。例如,所收集資源利用率資料可包括但不限於快取記憶體ID3_412之空間利用率、記憶體ID3_416之空間利用率及/或記憶體ID3_416之頻寬利用率。在本文中所揭露之實例中,記憶體ID3_416之頻寬指示可多快地在記憶體ID3_416中接取資料。實例監測器ID3_424可經由多核心ID3_408a至ID3_408d,及/或直接經由快取記憶體ID3_412及/或記憶體ID3_416自AI模型ID3_404a至ID3_404c收集資源利用率資料。
在區塊ID3_608處,實例分析器電路ID3_428 (圖1)基於所收集資源利用率資料產生候選模型。在此實例中,所產生候選模型可界定AI模型ID3_404a至ID3_404c對快取記憶體ID3_412之空間利用率參數。例如,空間利用率參數可界定AI模型ID3_404a至ID3_404c可利用快取記憶體ID3_412中之多少空間。亦在此實例中,所產生資源利用率模型可界定AI模型ID3_404a至ID3_404c對記憶體ID3_416之利用率參數。實例分析器電路ID3_428可界定針對記憶體ID3_416之頻寬的頻寬利用率參數。頻寬利用率參數可界定AI模型ID3_404a至ID3_404c可利用記憶體ID3_416之多少頻寬。實例分析器電路ID3_428可產生用於AI模型ID3_404a至ID3_404c的多個候選模型ID3_512a至ID3_512c。
實例分析器電路ID3_428選擇要調用的所產生候選模型ID3_512a至ID3_512c (圖ID3_5)。例如,分析器電路ID3_428選擇候選模型ID3_512a至ID3_512c中之一者供用於與AI模型ID3_404a一起使用。實例分析器電路ID3_428基於所收集資源利用率資料選擇候選模型ID3_512a至ID3_512c中之一者(多者)。例如,若所收集資源利用率資料並不滿足所要快取記憶體推斷準確度效能,則實例分析器電路ID3_428可基於其具有預期改良快取記憶體推斷準確度效能之不同快取記憶體空間利用率而選擇候選模型ID3_512a。對於另一實例,若候選模型ID3_512a滿足所要記憶體潛時效能,則分析器電路ID3_428可基於其具有與所收集資源利用率資料不同的記憶體頻寬利用率,使得該不同記憶體頻寬利用率預期改良記憶體潛時效能而選擇候選模型ID3_512a。
在其他實例中,分析器電路ID3_428可一次產生用於AI模型ID3_404a至ID3_404c中的多於一者的候選模型。在此等實例中,分析器電路ID3_428可基於最佳化規則選擇用於AI模型ID3_404a至ID3_404c之候選模型。例如,針對AI模型ID3_404b產生候選模型ID3_516a至ID3_516c,且針對AI模型ID3_404a產生資源利用率模型ID3_512a至ID3_512c。在此實例中,候選模型ID3_516a具有最高頻寬使用ID3_508,且候選模型ID3_516c具有最低頻寬使用ID3_508。
在一些實例中,實例分析器電路ID3_428在並不與另外候選模型ID3_512a至ID3_512c進行比較的情況下選擇要調用的候選模型ID3_516a至ID3_516c。在此類實例中,分析器電路ID3_428可基於具有最高頻寬使用ID3_508而選擇資源利用率模型ID3_516a。在此類實例中,分析器電路ID3_428可基於多租戶運算環境中之租戶數目而選擇候選模型。在其他實例中,分析器電路ID3_428基於QoS需要及/或效能圖(例如,圖ID3_5之效能圖ID3_500)而選擇候選模型。例如,分析器電路ID3_428可比較多個候選模型集合ID3_512a至ID3_512c、ID3_516a至ID3_516c,並選擇候選模型ID3_512a至ID3_512c、ID3_516a至ID3_516c以最佳化記憶體潛時。在此類實例中,分析器電路ID3_428可選擇候選模型ID3_512a用於AI模型ID3_404a,且選擇候選模型ID3_516c用於AI模型ID3_404b。在此實例中,因為最有效地使用了有限資源,所以分析器電路ID3_428選擇選定候選模型ID3_512a、ID3_516c。
在一些實例中,監測器電路ID3_424產生所收集資源利用率簽章以表示資源利用率資料之集合。監測器電路ID3_424可針對AI模型群組ID3_404a至ID3_404c產生所收集資源利用率簽章。例如,監測器電路ID3_424可針對包含AI模型ID3_404a及AI模型ID3_404b之AI模型群組產生所收集資源利用率簽章,且針對包含AI模型ID3_404b及AI模型ID3_404c之AI模型群組產生不同所收集資源利用率簽章。所收集資源利用率簽章包含關於選定用於AI模型群組之先前候選模型ID3_512a至ID3_512c、ID3_516a至ID3_516c、先前選定候選模型之預期資源利用率資料,及AI模型群組之新所收集資源利用率資料的資訊。分析器電路ID3_428可接取所收集資源利用率簽章以比較新產生的候選模型ID3_512a至ID3_512c、ID3_516a至ID3_516c與過去資源利用率資料,從而針對群組中之AI模型較佳地選擇資源利用率模型,在相比於並不利用所收集資源利用率簽章之實例時,該資源利用率模型最佳地最佳化圖ID3_4之運算節點ID3_400的效能。
在區塊ID3_612處,實例分析器電路ID3_428將選定候選模型提供至實例監測器電路ID3_424。在區塊ID3_616處,實例監測器電路ID3_424根據選定候選模型設定快取記憶體大小及/或記憶體頻寬資源。實例監測器電路ID3_424可基於選定候選模型指示快取記憶體ID3_412及/或記憶體ID3_416分別將一定量的空間及/或頻寬提交至一或多個AI模型(例如,圖ID3_4之AI模型ID3_404a至ID3_404c)。實例監測器電路ID3_424可經由多核心ID3_408a至ID3_408d或直接經由快取記憶體ID3_412及/或記憶體ID3_416指示快取記憶體ID3_412及/或記憶體ID3_416。
圖ID3_6之系統流程可為單向或閉合迴路ID3_620。例如,若系統流程為單向程序,則控制器電路ID3_420收集AI模型ID3_404a至ID3_404c之資源利用率資料,且單一時間針對每一AI模型ID3_404a至ID3_404c判定要調用的候選模型。在單向程序中,控制器電路ID3_420收集資源利用率資料且基於很可能實現所要效能之預期資源利用率資料來產生候選模型。在單向程序實例中,控制器電路ID3_420並不收集先前所應用候選模型之實際資源利用率資料以用於在選擇後續資源利用率模型時進行比較。在其他實例中,若圖ID3_6之系統流程為閉合迴路程序,則控制器電路ID3_420收集實際資源利用率資料且以循環方式產生用於AI模型ID3_404a至ID3_404c之後續候選模型。在此等實例中,控制器電路ID3_420可分析與先前所應用候選模型相關聯的實際資源利用率資料及效能資料,以分析及選擇後續候選模型,從而較接近所要效能。不同於單向程序,閉合迴路程序可繼續基於所收集資源利用率資料及預期資源利用率資料而產生、分析及選擇後續候選模型。
在一些實例中,協調器電路ID3_104包括用於協調電路之構件。例如,用於協調電路之構件可由協調器電路系統ID3_104實施。在一些實例中,協調器電路系統ID3_104可由機器可執行指令實施,諸如由處理器電路系統執行的對應於圖ID3_7、圖ID3_8及/或圖ID3_9之至少區塊實施的指令,該處理器電路系統可由圖D2之實例處理器電路系統D212、圖D3之實例處理器電路系統D300及/或圖D4之實例現場可程式化閘陣列(FPGA)電路系統D400實施。在其他實例中,協調器電路系統ID3_104由其他硬體邏輯電路系統、硬體實施之狀態機,及/或硬體、軟體及/或韌體之任何其他組合實施。例如,協調器電路系統ID3_104可由經構造以在不執行軟體或韌體之情況下執行對應操作的至少一或多個硬體電路(例如,處理器電路系統、離散及/或整合式類比及/或數位電路系統、FPGA、特殊應用積體電路(ASIC)、比較器、運算放大器(op-amp)、邏輯電路等)實施,但其他結構同樣係適當的。
在一些實例中,用於協調之構件ID3_104包括用於資料介接之構件、用於節點可用性判定之構件、用於請求驗證之構件、用於模型產生之構件、用於資源管理之構件、用於工作負載遷移之構件及用於QoS監測之構件,該等構件可分別由實例資料介面電路ID3_308、實例節點可用性判定器電路ID3_316、實例請求驗證器電路ID3_310、實例候選模型產生器電路ID3_314、實例資源管理器電路ID3_312、實例工作負載遷移器電路ID3_318及實例QoS監測器電路ID3_320實施。
雖然實施圖ID3_1及圖ID3_3之實例協調器電路ID3_104以及實施圖ID3_4之實例控制器電路ID3_420的實例方式說明於圖ID3_1、圖ID3_3及圖ID3_3中,但圖ID3_1、圖ID3_3及/或圖ID3_4中所說明之元件、程序及/或裝置中之一或多者可以任何其他方式組合、劃分、重新配置、省略、消除及/或實施。此外,實例資料介面電路ID3_308、實例節點可用性判定器電路ID3_316、實例請求驗證器電路ID3_310、實例候選模型產生器電路ID3_314、實例資源管理器電路ID3_312、實例工作負載遷移器電路ID3_318、實例QoS監測器電路ID3_320、實例控制器電路ID3_420,及/或更大體而言,圖ID3_1、圖ID3_3及/或圖ID3_4之協調器電路ID3_104可由硬體、軟體、韌體,及/或硬體、軟體及/或韌體之任一組合實施。因此,例如,實例資料介面電路ID3_308、實例節點可用性判定器電路ID3_316、實例請求驗證器電路ID3_310、實例候選模型產生器電路ID3_314、實例資源管理器電路ID3_312、實例工作負載遷移器電路ID3_318、實例QoS監測器電路ID3_320、實例控制器電路ID3_420中之任一者,及/或更大體而言,圖ID3_1、圖ID3_3及/或圖ID3_4之協調器電路ID3_104可由處理器電路系統、類比電路、數位電路、邏輯電路、可程式化處理器、可程式化微控制器、圖形處理單元(GPU)、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)及/或諸如現場可程式化閘陣列(FPGA)之現場可程式化邏輯裝置(FPLD)實施。當閱讀本專利之設備或系統請求項中之任一者以涵蓋僅軟體及/或韌體實施時,實例資料介面電路ID3_308、實例節點可用性判定器電路ID3_316、實例請求驗證器電路ID3_310、實例候選模型產生器電路ID3_314、實例資源管理器電路ID3_312、實例工作負載遷移器電路ID3_318、實例QoS監測器電路ID3_320、實例控制器電路ID3_420中之至少一者,及/或更大體而言,圖ID3_1、圖ID3_3及/或圖ID3_4之協調器電路ID3_104特此明確地界定為包括包含軟體及/或韌體的非暫時性電腦可讀儲存裝置或儲存磁碟,諸如記憶體、數位化通用光碟(DVD)、緊密光碟(CD)、Blu-ray光碟等。再者,圖ID3_1、圖ID3_3及圖ID3_4之實例協調器電路ID3_104可包括除了圖ID3_1、圖ID3_3及圖ID3_4中所說明之彼等之外或代替彼等的一或多個元件、程序及/或裝置,及/或可包括所說明元件、程序及裝置中之任一者或所有中的多於一者。
表示用於實施圖ID3_1、圖ID3_3及圖ID3_4之協調器電路ID3_104及/或控制器電路ID3_420的實例硬體邏輯電路系統、機器可讀指令、硬體實施之狀態機及/或其任何組合的流程圖展示於圖ID3_7、圖ID3_8及圖ID3_9中。機器可讀指令可為用於由處理器電路系統執行之一或多個可執行程式或可執行程式之部分,該處理器電路系統諸如下文結合圖D2論述之實例處理器平台D200中所示之處理器電路系統D212及/或下文結合圖D3及/或圖D4論述之實例處理器電路系統。程式可體現於儲存於諸如CD、軟碟、硬碟機(HDD)、DVD、Blu-ray光碟,與位於一或多個硬體裝置中之處理器電路系統相關聯的依電性記憶體(例如,任何類型之隨機存取記憶體(RAM)等)或非依電性記憶體(例如,FLASH記憶體、HDD等)之一或多個非暫時性電腦可讀儲存媒體上的軟體中,但整個程式及/或其部分可替代地由除了處理器電路系統以外之一或多個硬體裝置執行及/或體現於韌體或專用硬體中。機器可讀指令可跨越多個硬體裝置分佈及/或由二個或更多個硬體裝置(例如,伺服器及用戶端硬體裝置)執行。例如,用戶端硬體裝置可由端點用戶端硬體裝置(例如,與使用者相關聯之硬體裝置)或中間用戶端硬體裝置(例如,可促進伺服器與端點用戶端硬體裝置之間的通訊之無線電接取網路(RAN)閘道器)實施。類似地,非暫時性電腦可讀儲存媒體可包括位於一或多個硬體裝置中之一或多個媒體。此外,儘管參考圖ID3_7、圖ID3_8及圖ID3_9中所說明之流程圖描述實例程式,但可替代地使用實施實例協調器電路ID3_104及/或實例控制器電路ID3_420的許多其他方法。例如,可改變區塊之執行次序,及/或可改變、消除或組合所描述區塊中之一些。另外或替代地,區塊中之任一者或全部可由經構造以在不執行軟體或韌體之情況下執行對應操作的一或多個硬體電路(例如,處理器電路系統、離散及/或整合式類比及/或數位電路系統、FPGA、ASIC、比較器、運算放大器(op-amp)、邏輯電路等)實施。處理器電路系統可分佈於不同網路位置中,及/或在單一機器中之一或多個硬體裝置(例如,單核心處理器(例如,單核心中央處理器單元(CPU))、多核心處理器(例如,多核心CPU)等)、跨越伺服器機架之多個伺服器分佈的多個處理器、跨越一或多個伺服器機架分佈之多個處理器、CPU及/或位於同一封裝中(例如,同一積體電路(IC)封裝中或在二個或更多個單獨殼體中等)之FPGA本端。
本文中所描述之機器可讀指令可以壓縮格式、經加密格式、分段格式、經編譯格式、可執行格式、經封裝格式等中之一或多者來儲存。如本文中所描述之機器可讀指令可儲存為資料或資料結構(例如,指令之部分、程式碼、程式碼之表示等),其可用以產生、製造及/或產生機器可執行指令。例如,機器可讀指令可經分段且儲存於位於網路或網路集合之相同或不同位置處(例如,雲端中、邊緣裝置中等)的一或多個儲存裝置及/或運算裝置(例如,伺服器)上。機器可讀指令可能需要安裝、修改、調適、更新、組合、補充、組配、解密、解壓縮、解封裝、分佈、再指派、編譯等中之一或多者,以便使該等指令可直接由運算裝置及/或其他機器讀取、解譯及/或執行。例如,機器可讀指令可儲存於多個部分中,該等部分經個別地壓縮、加密及/或儲存於單獨運算裝置上,其中該等部分在經解密、經解壓縮及/或經組合時形成實施可一起形成諸如本文中所描述的程式之程式的一或多個操作的機器可執行指令集。
在另一實例中,機器可讀指令可儲存於以下狀態中:其中機器可讀指令可由處理器電路系統讀取,但需要添加程式庫(例如,動態鏈接程式庫(DLL))、軟體開發套件(SDK)、應用程式設計介面(API)等,以便執行特定運算裝置或其他裝置上之機器可讀指令。在另一實例中,機器可讀指令可需要在可整體或部分地執行機器可讀指令及/或對應程式之前經組配(例如,所儲存設定、資料輸入、所記錄網路位址等)。因此,如本文中所使用,機器可讀媒體可包括機器可讀指令及/或程式,而不管機器可讀指令及/或程式在儲存時或以其他方式在靜止時或在輸送時的特定格式或狀態。
本文中所描述的機器可讀指令可由任何過去、目前或未來指令語言、指令碼處理語言、程式設計語言等表示。例如,機器可讀指令可使用以下語言中之任一者來表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本標記語言(HTML),結構化查詢語言(SQL),Swift等。
如上文所提及,圖ID3_7、圖ID3_8及/或圖ID3_9之實例操作可使用儲存於一或多個非暫時性電腦及/或機器可讀媒體上之可執行指令(例如,電腦及/或機器可讀指令)來實施,該非暫時性電腦及/或機器可讀媒體諸如光學儲存裝置、磁性儲存裝置、HDD、快閃記憶體、唯讀記憶體(ROM)、CD、DVD、快取記憶體、任何類型之RAM,暫存器,及/或歷時任何持續時間儲存資訊(例如,歷時經延長時間週期、永久性地、歷時短暫時刻、用於臨時緩衝,及/或用於資訊之快取)的任何其他儲存裝置或儲存磁碟。如本文中所使用,術語非暫時性電腦可讀媒體及非暫時性電腦可讀儲存媒體明確地界定為包括任何類型之電腦可讀儲存裝置及/或儲存磁碟且排除傳播信號及傳輸媒體。
「包括」及「包含」(以及其所有形式及時態)在本文中用作開放術語。因此,每當請求項採用任何形式的「包括(include)」或「包含(comprise)」(例如,包含(comprises、comprising)、包括(includes、including)、具有等)作為前言或將其用於任何種類之請求項敍述內時,應理解,在不超出對應請求項或敍述之範疇之情況下,可存在額外元素、術語等。如本文中所使用,當片語「至少」用作請求項之例如前言中之過渡術語時,其為開放式的,與術語「包含」及「包括」為開放式之方式相同。例如,當以諸如A、B及/或C之形式使用術語「及/或」時,該術語係指A、B、C之任一組合或子集,諸如(1)僅A,(2)僅B,(3)僅C,(4) A及B,(5) A及C,(6) B及C,或(7) A及B及C。如本文中所使用,在描述結構、組件、項目、物件及/或事物之上下文中,片語「A及B中之至少一者」旨在指包括(1)至少一個A,(2)至少一個B,或(3)至少一個A及至少一個B中之任一者的實施。類似地,如本文中所使用,在描述結構、組件、項目、物件及/或事物之上下文中,片語「A或B中之至少一者」旨在指包括(1)至少一個A,(2)至少一個B,或(3)至少一個A及至少一個B中之任一者的實施。如本文中所使用,在描述程序、指令、動作、活動及/或步驟之執行之上下文中,片語「A及B中之至少一者」旨在指包括(1)至少一個A,(2)至少一個B,或(3)至少一個A及至少一個B中之任一者的實施。類似地,如本文中所使用,在描述程序、指令、動作、活動及/或步驟之執行之上下文中,片語「A或B中之至少一者」旨在指包括(1)至少一個A,(2)至少一個B,或(3)至少一個A及至少一個B中之任一者的實施。
如本文中所使用,單數參考(例如,「一(a/an)」、「第一」、「第二」等)不排除複數。如本文中所使用,術語「一」物件係指彼物件中之一或多者。術語「一」、「一或多個」及「至少一個」在本文中可互換地使用。此外,儘管個別地列舉,但可由例如相同實體或物件實施複數個構件、元件或方法動作。另外,儘管個別特徵可包括在不同實例或請求項中,但可能組合此等個別特徵,且包括於不同實例或請求項中不意味著特徵之組合係不可行及/或有利的。
圖ID3_7為表示可由處理器電路系統執行及/或具現化以判定人工智慧模型是否待自第一節點移動至第二節點的實例機器可讀指令及/或實例操作ID3_700的流程圖。圖ID3_700之機器可讀指令及/或操作ID3_700在區塊ID3_702處開始,在該區塊處,實例協調器電路ID3_104之實例資料介面電路ID3_308自租戶ID3_304接收具有使用者所界定服務品質之工作負載(例如,執行個體、應用程式、人工智慧模型)。例如,服務品質可取決於頻率、快取記憶體、記憶體頻寬、功率、DL精度(例如,INT8、BF16)、DL模型特性及遷移容許度。
在區塊ID3_706處,實例請求驗證器電路ID3_310判定請求是否有效。例如,實例請求驗證器電路ID3_310可判定請求(例如,來自租戶之工作負載)有效(例如,「是」)。控制前進至區塊ID3_708。替代地,實例驗證器電路ID3_310可判定請求無效(例如,「否」)。控制返回至區塊ID3_704。實例驗證器電路ID3_310可判定請求有效,如上文所描述。
在區塊ID3_708處,實例資源管理器電路ID3_312收集可用模型清單及具有所請求服務品質資源之系統。例如,實例資源管理器電路ID3_312監測節點裝置(例如,第一節點ID3_304、第二節點ID3_306),且判定當前在節點裝置上運行之工作負載(例如,應用程式、人工智慧模型)。
在區塊ID3_710處,實例資源管理器電路ID3_312基於使用者所請求服務品質判定是否需要模型變化。例如,資源管理器電路ID3_312可比較可用人工智慧模型之服務品質特性與使用者所請求服務品質。若實例資源管理器電路ID3_312判定無需模型變化(例如,「否」),則控制前進至區塊ID3_714。若實例資源管理器電路ID3_312判定需要模型變化(例如,「是」),則控制前進至區塊ID3_712。
在區塊ID3_712處,實例候選模型產生器電路ID3_314執行模型清單之排列。例如,實例候選模型產生器電路ID3_314可產生用於第一人工智慧模型的複數個候選模型。若實例最小快取記憶體大小為十(「10」)百萬位元組,則實例候選模型產生器電路ID3_314可產生具有十(「10」)之快取記憶體大小的第一候選模型及具有十五(「15」)之快取記憶體大小的第二候選模型,以判定快取記憶體大小增大是否顯著地增大效能。控制前進至區塊ID3_714。
在區塊ID3_714處,實例節點可用性判定器電路ID3_316檢查節點裝置之可用性,以找出願意及/或能夠協商之空閒及/或在其他方面部分可用的機器。例如,實例節點可用性判定器電路ID3_316可監測第一節點ID3_304及第二節點ID3_306,並判定第一節點ID3_304具有接受新工作負載之所需快取記憶體空間。若實例節點可用性判定器電路ID3_316無法找出可用節點(例如,「否」),則控制前進至區塊ID3_716。替代地,若實例節點可用性判定器電路ID3_316找出可用節點(例如,「是」),則控制前進至區塊ID3_718。
在區塊ID3_716處,實例協調器電路ID3_104執行基於策略之動作(例如,用以監測動作之底板管理控制器(BMC)、ME)。在區塊ID3_716之後,實例指令ID3_700結束。
在區塊ID3_718處,實例節點可用性判定器電路ID3_316與可用節點協商。例如,實例節點可用性判定器電路ID3_316可判定CLoS及SRMID之映射。在一些實例中,可協商貨幣或時間。在再其他實例中,可降低虛擬執行個體之價格及/或可為未來租賃提供小額支付。在一些實例中,節點可用性判定器電路ID3_316促進對資源進行競價,且可藉由一或多個主動策略指導此類競價(例如,積極競價以實現最佳潛時改良)。在一些實例中,可經由例如轉移學習來前饋習得之設定。
在區塊ID3_720處,實例協調器電路ID3_104 (例如,RDT)與現有工作負載(例如,應用程式、執行個體、人工智慧模型)協商。若實例協調器電路ID3_104成功地與正執行於節點(例如,第一節點ID3_304、第二節點ID3_306)上之實例現有工作負載協商(例如,「是」),則控制前進至區塊ID3_722。替代地,若實例協調器電路ID3_104未成功地與正執行於節點上之實例現有工作負載協商(例如,「否」),則控制返回至區塊ID3_714。
在區塊ID3_722處,實例工作負載遷移器電路ID3_318判定將工作負載(例如,執行個體、應用程式、人工智慧模型)自第一節點遷移至第二節點。例如,實例工作負載遷移器電路ID3_318可判定遷移工作負載(例如,「是」),控制返回至區塊ID3_714。例如,與節點可用性判定器電路ID3_316協商之節點可具有用於第一(例如,新)工作負載之快取記憶體大小。替代地,實例工作負載遷移器電路ID3_318可判定並不遷移工作負載(例如,「否」),控制前進至區塊ID3_724。在一些實例中,節點可能並不具有快取記憶體大小,使得第二(例如,不同)工作負載可被遷移至第二節點。
在區塊ID3_724處,實例協調器電路ID3_104可更新現有工作負載(例如,執行個體、應用程式、人工智慧模型)之CLoS。
在區塊ID3_726處,實例協調器電路ID3_104具現化由租戶ID3_302所請求的工作負載(例如,啟動所請求執行個體)。指令ID3_700結束。
圖ID3_8為表示可由處理器電路系統執行及/或具現化以判定要選擇之候選模型的實例機器可讀指令及/或實例操作ID3_800的流程圖。指令ID3_800在區塊ID3_804處開始,在該區塊處,實例監測器電路ID3_424 (圖ID3_4)收集資源利用率資料。例如,所收集資源利用率資料可包括但不限於快取記憶體ID3_412之空間利用率、記憶體ID3_416之空間利用率及/或記憶體ID3_416之頻寬利用率。在本文中所揭露之實例中,記憶體ID3_416之頻寬指示可多快地在記憶體ID3_416中接取資料。
在區塊ID3_808處,實例分析器電路ID3_428 (圖ID3_1)基於所收集資源利用率資料產生資源利用率模型。在此實例中,所產生資源利用率模型可界定AI模型ID3_404a至ID3_404c對快取記憶體ID3_412之空間利用率參數。例如,空間利用率參數可界定AI模型ID3_404a至ID3_404c可利用快取記憶體ID3_412中之多少空間。亦在此實例中,所產生候選模型可界定AI模型ID3_404a至ID3_404c對記憶體ID3_416之資源利用率參數。分析器ID3_428可界定針對記憶體ID3_416之頻寬的頻寬利用率參數。頻寬利用率參數可界定AI模型ID3_404a至ID3_404c可利用記憶體ID3_416之多少頻寬。分析器電路ID3_428可產生用於AI模型ID3_404a至ID3_404c的多個候選模型候選者ID3_512a至ID3_512c。
在區塊ID3_812處,實例分析器電路ID3_428選擇所產生候選模型ID3_512a至ID3_512c中之至少一者。例如,分析器電路ID3_428選擇候選模型ID3_512a至ID3_512c中之一者供用於與AI模型ID3_404a一起使用。實例分析器電路ID3_428基於所收集資源利用率資料選擇候選模型ID3_512a至ID3_512c中之一者(多者)。例如,若候選模型ID3_512a在不同於所收集空間利用率資料之預期空間利用率情況下展示較佳推斷準確度效能,則分析器電路ID3_428可選擇候選模型ID3_512a。在另一實例中,若候選模型ID3_512a在不同於所收集頻寬利用率資料之預期頻寬利用率情況下展示較佳記憶體潛時效能,則分析器電路ID3_428可選擇候選模型ID3_512a。
在其他實例中,分析器電路ID3_428可一次產生用於AI模型ID3_404a至ID3_404c中的多於一者的候選模型。在此等實例中,分析器電路ID3_428可基於最佳化規則選擇用於AI模型ID3_404a至ID3_404c之候選模型。例如,針對AI模型ID3_404b產生候選模型ID3_516a至ID3_516c,且針對AI模型ID3_404a產生候選模型ID3_512a至ID3_512c。在此實例中,候選模型ID3_516a具有最高頻寬使用ID3_508,且候選模型ID3_516c具有最低頻寬使用ID3_508。
在一些實例中,實例分析器電路ID3_428在並不與另外候選模型ID3_512a至ID3_512c進行比較的情況下選擇候選模型ID3_516a至ID3_516c。在此類實例中,分析器電路ID3_428可基於具有最高頻寬使用ID3_508而選擇候選模型ID3_516a。在此類實例中,分析器電路ID3_428可基於多租戶運算環境中之租戶數目而選擇候選模型。在其他實例中,分析器電路ID3_428基於QoS需要及/或效能圖來選擇候選模型。例如,分析器電路ID3_428可比較多個候選模型集合ID3_512a至ID3_512c、ID3_516a至ID3_516c,並選擇候選模型ID3_512a至ID3_512c、ID3_516a至ID3_516c以最佳化潛時。在此類實例中,分析器電路ID3_428可選擇候選模型ID3_512a用於AI模型ID3_404a,且選擇候選模型ID3_516c用於AI模型ID3_404b。在此實例中,分析器電路ID3_428選擇選定候選模型ID3_512a、ID3_516c,此係因為候選模型ID3_516a與候選模型ID3_516c之間的潛時差異沒有候選模型ID3_512a與候選模型ID3_512c之間的潛時差異大。
分析器電路ID3_428產生選定資源利用率模型之預期資源利用率資料。若分析器電路ID3_428針對AI模型ID3_404a產生額外資源利用率模型,則所產生資源利用率模型可係基於選定模型之預期資源利用率資料。
在區塊ID3_816處,實例監測器電路ID3_424基於選定資源利用率模型而分配資源。實例監測器電路ID3_424可基於選定資源利用率模型指示快取記憶體ID3_412及/或記憶體ID3_416分別將一定量的空間及/或頻寬提交至AI模型(例如,圖1之AI模型ID3_404a至ID3_404c)。例如,監測器電路ID3_424可以硬體設定調整鈕以基於選定資源利用率模型分配資源。例如,選定資源利用率模型可描述回應於所利用資源量而展示效能的複數個候選模型。
在區塊ID3_818處,實例運算節點ID3_400執行AI模型ID3_404a至ID3_404c。例如,AI模型ID3_404a至ID3_404c基於至少一個選定資源利用率模型來使用資源加以執行。
在區塊ID3_820處,實例監測器電路ID3_424自快取記憶體ID3_412及記憶體ID3_416收集實際資源利用率資料及/或AI模型ID3_404a至ID3_404c之實際效能。所收集實際資源利用率資料可包括但不限於快取記憶體ID3_412之空間利用率、記憶體ID3_416之空間利用率及/或記憶體ID3_416之頻寬利用率。實際效能可包括快取記憶體推斷準確度及/或記憶體潛時。
在區塊ID3_824處,實例分析器電路ID3_428比較所收集實際資源利用率資料及/或實際效能與一或多個後續資源利用率模型之預期資源利用率資料及/或預期效能。圖ID3_5之實例效能圖ID3_500指示實例候選模型ID3_512a至ID3_512c、ID3_516a至ID3_516c的預期資源利用率資料及預期效能。例如,分析器電路ID3_428可選擇候選模型ID3_512a。在此實例中,分析器電路ID3_428保存候選模型ID3_512a之預期資源利用率資料。所收集實際資源利用率資料及/或效能可與預期資源利用率資料及/或效能進行比較。可基於展示經改良效能之比較而選擇後續候選模型。
在區塊ID3_828處,實例分析器電路ID3_428判定是否繼續修改快取記憶體ID3_412及/或記憶體ID3_416之資源利用率。在單向程序中,分析器電路ID3_428判定並不繼續修改快取記憶體ID3_412及/或記憶體ID3_416之資源利用率。然而,在閉合迴路程序中,分析器電路ID3_428可判定繼續修改資源利用率或並不繼續修改資源利用率(例如,基於AI模型ID3_404a至ID3_404c的所量測效能)。若實例分析器電路ID3_428判定繼續產生資源利用率模型,則程序返回至區塊ID3_804。若實例分析器電路ID3_428判定並不繼續產生資源利用率模型,則圖ID3_8之指令ID3_800結束。
圖ID3_9為可由處理器執行以執行用以協調邊緣網路中之工作負載遷移的指令之實例操作ID3_900的概述。
如上文所論述,圖D3為圖D2之處理器電路系統D212的實例實施之方塊圖。在此實例中,圖D2之處理器電路系統D212由微處理器D300實施。例如,微處理器D300可實施諸如CPU、DSP、GPU、XPU等之多核心硬體電路系統。儘管其可包括任何數目個實例核心D302 (例如,1個核心),但此實例之微處理器D300為包括N個核心之多核心半導體裝置。微處理器D300之核心D302可獨立地操作或可協作以執行機器可讀指令。例如,對應於韌體程式、嵌入式軟體程式或軟體程式的機器碼可由核心D302中之一者執行或可由核心D302中之多者在相同或不同時間執行。在一些實例中,對應於韌體程式、嵌入式軟體程式或軟體程式之機器碼經分割成執行緒且由核心D302中的二者或更多者並行地執行。軟體程式可對應於由圖ID3_7、圖ID3_8及/或圖ID3_9之流程圖表示的機器可讀指令及/或操作之一部分或全部。
自前述內容,將瞭解,已揭露改良共享資源之運算裝置的效率之實例系統、方法、設備及製品。特定而言,本文中所揭露之實例消除了操作者判斷將哪些模型應用於工作負載之資源分配,且使得能夠對競爭相同/類似資源之工作負載進行協商。所揭露系統、方法、設備及製品因此係針對諸如電腦或其他電子裝置及/或機械裝置之機器的操作中的一或多個改良。
本文中揭露用以最佳化邊緣網路中之資源的實例方法、設備、系統及製品。其他實例及其組合包括以下:實例1包括一種設備,其包含:中央處理單元、圖形處理單元或數位信號處理器中之至少一者,中央處理單元、圖形處理單元或數位信號處理器中之該至少一者具有用以控制處理器電路系統內之資料移動的控制電路系統、用以執行對應於指令之一或多個第一操作的算術及邏輯電路系統及用以儲存一或多個第一操作之結果、設備中之指令的一或多個暫存器;現場可程式化閘陣列(FPGA),該FPGA包括邏輯閘電路系統、複數個可組配互連及儲存電路系統,邏輯閘電路系統及互連用以執行一或多個第二操作,儲存電路系統用以儲存一或多個第二操作之結果;或特殊應用積體電路系統,其包括用以執行一或多個第三操作之邏輯閘電路系統,處理器電路系統用以進行以下中之至少一者:執行第一操作、第二操作或第三操作中之至少一者以:產生第一候選模型;產生第二候選模型,第一候選模型待分配第一資源且第二候選模型待分配第二資源;收集對應於執行第一資源之工作負載的第一資源利用率資料;收集對應於執行第二資源之工作負載的第二資源利用率資料;計算對應於工作負載效能及第一資源之第一斜率;計算對應於工作負載效能及第二資源之第二斜率;及基於第一與第二斜率之比較選擇第一候選模型或第二候選模型中之一者。
實例2包括如實例1中所界定之設備,其中處理器電路系統用以基於臨限斜率值選擇第一候選模型或第二候選模型。
實例3包括如實例1中所界定之設備,其中處理器電路系統用以將第一數量之快取記憶體分配至工作負載。
實例4包括如實例3中所界定之設備,其中第一數量之快取記憶體對應於運算平台之第一節點。
實例5包括如實例1中所界定之設備,其中處理器電路系統用以將第一資源利用率資料獲取為工作負載準確度或工作負載潛時中之至少一者。
實例6包括如實例1中所界定之設備,其中工作負載包括來自多租戶運算環境之不同租戶的複數個人工智慧模型。
實例7包括如實例1中所界定之設備,其中處理器電路系統用以判定第一候選模型及第二候選模型是否容許遷移。
實例8包括如實例7中所界定之設備,其中處理器電路系統用以跳過不容許遷移之模型的積分。
實例9包括至少一種非暫時性電腦可讀儲存媒體,其包含當經執行時致使至少一個處理器至少進行以下操作的指令:在第一階段中監測硬體平台以識別用以訓練人工智慧模型之特徵;提取關於與第一階段期間發生之特徵相關的標記相關聯之硬體平台的資訊,及將資訊儲存於資料庫中以在第二階段中實現人工智慧模型之硬體感知訓練。
實例10包括如實例9中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器基於臨限斜率值選擇第一候選模型或第二候選模型。
實例11包括如實例9中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器將第一數量之快取記憶體分配至工作負載。
實例12包括如實例11中所界定之至少一種電腦可讀儲存媒體,其中第一數量之快取記憶體對應於運算平台之第一節點。
實例13包括如實例9中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器將第一資源利用率資料獲取為工作負載準確度或工作負載潛時中之至少一者。
實例14包括如實例9中所界定之至少一種電腦可讀儲存媒體,其中工作負載包括來自多租戶運算環境之不同租戶的複數個人工智慧模型。
實例15包括如實例9中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器判定第一候選模型及第二候選模型是否容許遷移。
實例16包括如實例15中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器跳過不容許遷移之模型的積分。
實例17包括一種方法,其包含:產生第一候選模型;產生第二候選模型,第一候選模型待分配第一資源且第二候選模型待分配第二資源;收集對應於執行第一資源之工作負載的第一資源利用率資料;收集對應於執行第二資源之工作負載的第二資源利用率資料;計算對應於工作負載效能及第一資源之第一斜率;計算對應於工作負載效能及第二資源之第二斜率;及基於第一與第二斜率之比較選擇第一候選模型或第二候選模型中之一者。
實例18包括如實例17中所界定之方法,其進一步包括基於臨限斜率值選擇第一候選模型或第二候選模型。
實例19包括如實例17中所界定之方法,其進一步包括將第一數量之快取記憶體分配至工作負載。
實例20包括如實例19中所界定之方法,其中第一數量之快取記憶體對應於運算平台之第一節點。
實例21包括如實例17中所界定之方法,其進一步包括將第一資源利用率資料獲取為工作負載準確度或工作負載潛時中之至少一者。
實例22包括如實例17中所界定之方法,其中工作負載包括來自多租戶運算環境之不同租戶的複數個人工智慧模型。
實例23包括如實例17中所界定之方法,其進一步包括判定第一候選模型及第二候選模型是否容許遷移。
實例24包括如實例23中所界定之方法,其進一步包括跳過不容許遷移之模型的積分。
實例25包括一種系統,其包含:用於分析之構件,該構件用以產生第一候選模型及產生第二候選模型,第一候選模型分配第一資源分配且第二候選模型分配第二資源分配;用於監測之構件,該構件用以收集對應於執行第一資源分配之工作負載的第一資源利用率資料,收集對應於執行第二資源分配之工作負載的第二資源利用率資料,用於分析之構件用以計算對應於工作負載效能及第一資源分配之第一斜率,計算對應於工作負載效能及第二資源分配之第二斜率,及基於第一與第二斜率之比較選擇第一候選模型或第二候選模型中之一者。
實例26包括如實例25中所界定之系統,其中用於分析之構件用以基於臨限斜率值選擇第一候選模型或第二候選模型。
實例27包括如實例25中所界定之系統,其中第一候選模型將第一數量之快取記憶體分配至工作負載。
實例28包括如實例27中所界定之系統,其中第一數量之快取記憶體對應於運算平台之第一節點。
實例29包括如實例25中所界定之系統,其中第一資源利用率資料包括工作負載準確度或工作負載潛時中之至少一者。
實例30包括如實例25中所界定之系統,其進一步包括用於協調之構件,該構件用以判定第一候選模型及第二候選模型是否容許遷移。
實例31包括一種調適工作負載模型選擇之設備,其包含:分析器電路,該分析器電路用以產生第一候選模型及產生第二候選模型,第一候選模型分配第一資源分配且第二候選模型分配第二資源分配;監測器電路,該監測器電路用以收集對應於執行第一資源分配之工作負載的第一資源利用率資料,收集對應於執行第二資源分配之工作負載的第二資源利用率資料,該分析器電路用以計算對應於工作負載效能及第一資源分配之第一斜率,計算對應於工作負載效能及第二資源分配之第二斜率,及基於第一與第二斜率之比較選擇第一候選模型或第二候選模型中之一者。
實例32包括如實例31中所界定之設備,其中分析器電路用以基於臨限斜率值選擇第一候選模型或第二候選模型。
實例33包括如實例31中所界定之設備,其中第一候選模型將第一數量之快取記憶體分配至工作負載。
實例34包括如實例33中所界定之設備,其中第一數量之快取記憶體對應於運算平台之第一節點。
實例35包括如實例31中所界定之設備,其中第一資源利用率資料包括工作負載準確度或工作負載潛時中之至少一者。
實例36包括如實例31之設備,其中工作負載為多租戶運算環境之不同租戶的複數個AI模型。
實例37包括如實例31中所界定之設備,其進一步包括協調器電路,該協調器電路用以判定第一候選模型及第二候選模型是否容許遷移。
實例ID3(A)為如實例1至8中任一者之設備,其進一步包括藉由末級快取記憶體、三級快取記憶體或四級快取記憶體中之至少一者執行神經網路、決策樹或樸素貝氏分類中之至少一者的複數個租戶。
實例ID3(B)為如實例1至8中任一者之設備,其進一步包括在第一時間藉由第一租戶基於相對效能量度選擇候選模型之組合,及在第二時間藉由第二租戶基於相對效能量度選擇候選模型之組合中的替代者。
實例ID3(C)為如實例9至16中任一者之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器至少在第一時間藉由第一租戶基於相對效能量度選擇候選模型之組合,及在第二時間藉由第二租戶基於相對效能量度選擇候選模型之組合中的替代者。
實例ID3(D)為如實例17至24中任一者之方法,其進一步包括在第一時間藉由第一租戶基於相對效能量度選擇候選模型之組合,及在第二時間藉由第二租戶基於相對效能量度選擇候選模型之組合中的替代者。
儘管本文中已揭露某些實例系統、方法、設備及製品,但本專利之涵蓋範圍的範疇並不限於此。相反地,本專利涵蓋落在本專利之申請專利範圍的範疇內之所有系統、方法、設備及製品。 特徵化自動化(ID4)
機器學習(ML)及/或其他人工智慧(AI)模型形成(例如,訓練、測試及部署)涉及充分利用資訊之資料集。常常,資料集中之資料的品質及量判定所得模型之品質。選擇資料集中之哪些資料對於模型之訓練、測試及/或驗證至關重要,此被稱為特徵化。特徵儲存器或資料庫為可應用於某一類型之資料的特徵化庫。儲存於資料庫中之特徵化資料接著可用於訓練、測試等機器學習網路構造。
手動選擇特徵係困難的(若非不可能的話)。相關性、驗證及/或其他分析無法由人類手動地進行。因此,模型品質受損,此產生不正確的模型結果且會在依賴於模型輸出起作用之系統及程序中引入故障。自動特徵化可補救此等問題且改良ML/AI模型及相關聯系統、程序等之操作及準確度。
自動機器學習(被稱作自動ML或AutoML)自動化形成ML及/或其他AI模型。在AutoML中,並行產生複數個管線以測試複數個演算法及參數。服務迭代通過與特徵選擇配對的ML演算法,其中每一迭代產生具有訓練計分之模型。
自動特徵化可藉由自動地識別、擷取及充分利用相關高品質特徵資料進行模型訓練、測試、驗證等來幫助驅動AutoML。例如,特徵化自動化可輔助ML演算法較佳地學習,從而形成經改良ML模型以供部署及利用。特徵化可包括特徵正規化、遺漏資料識別及內插、格式轉換及/或縮放等。特徵化可將原始資料變換成待由訓練演算法耗用之特徵集等。在某些實例中,特徵化係基於對模型將在其上操作之底層平台(例如,硬體、軟體、韌體等)的分析。
自動特徵化在邊緣運算環境、物聯網(IoT)環境(其可為邊緣運算環境或其他網路基礎架構等)、雲端運算環境等中提供重要益處。在此類環境中,資源能力可極大地變化,且提供可用資源之快速自動特徵化的能力使得能夠在邊緣/IoT裝置上自動化AI演算法/模型最佳化等。例如,諸如使用者裝置、雲端伺服器機架等之IoT裝置可包括用於自動特徵化的系統。例如,此類系統可作為提供軟體及AI框架之平台的部分提供於矽中。
迄今,在運算平台上大規模部署AI演算法之努力係手動的,涉及大量人力。此類人力亦使得跨越多個客戶、多個模型及多個產品之大規模最佳化變得不可能。如本文中所描述,自動特徵化解決了此等挑戰且基於用於給定工作負載之底層平台特性的自動特徵化實現了硬體感知神經架構探索。因此,可發現新AI特徵,且機器產生之AI演算法可經最佳化用於特定硬體及/或軟體平台。某些實例提供可跨越較大資料集、多樣資料集及許多用例縮放的自動特徵化。某些實例使得能夠設計AI演算法及硬體以用於快速發現新AI特徵及設計AI矽。
某些實例提供硬體感知AutoML,其在訓練ML及/或其他學習網路模型時充分利用一或多個底層硬體平台或架構。為了實現AutoML,進行特徵化搜尋以識別可轉換成用於訓練、測試等AutoML模型之特徵的硬體(及軟體及/或韌體)特性。與硬體感知AutoML相關聯之挑戰為將底層硬體能力曝露於特徵化搜尋。在某些實例中,硬體特性經識別且經輸入至自動特徵化搜尋中。形成為用於訓練及/或測試ML網路模型之資料集可接著較集中於待部署模型之平台上。
在某些實例中,進行特徵化搜尋以分析與硬體平台相關聯(例如,正使用硬體平台執行)之工作負載。例如,可在搜尋空間中量測諸如潛時、能量、記憶體頻寬、其他資源利用率等操作以幫助識別硬體平台之特徵。並非手動量測操作,此係極耗費資源及耗時的(若非不可能的話),可在用於給定工作負載之區塊(亦稱為程式碼區塊)及胞元方面界定硬體平台之搜尋空間。可結合指定程式碼區塊曝露底層硬體之部分。來自底層硬體平台之微碼鉤及遙測資訊可用以在特徵化搜尋中自動地收集與程式碼區塊相關聯的資料。
在某些實例中,「哩標記(mile marker)」或其他指示符與程式碼區塊之開始及/或結束、其他微碼基準等相關聯。例如,在哩標記處擷取之值(例如,參數值、暫存器值、程式碼執行狀態值等)可保存於資料庫及/或其他資料儲存器中,以形成使用所識別特徵之自動硬體感知神經架構搜尋及網路訓練的基礎。例如,在其中AI演算法之搜尋及探索開始最佳化及/或以其他方式經定製用於底層平台之預熱階段期間,可指定哩標記以允許底層硬體收集諸如相關聯程式碼區塊所需之循環數目、所涉及資料移動量等之統計資料。例如,在已在預熱階段中收集並保存統計資料(例如,在資料庫中)之後,可使用統計資料產生(例如,訓練、測試、驗證等)經最佳化及/或以其他方式經定製用於將執行網路的底層硬體平台的ML或其他AI網路。因此,可改良網路模型準確度及有效性,同時減少來自手動搜尋或訓練程序之前端額外負擔。
在某些實例中,與程式碼或運算區塊相關聯之哩標記觸發相對於程式碼區塊下面之硬體執行的微碼,以擷取關於底層硬體之遙測及程式碼執行統計資料。統計資料可經「凍結」及保存(例如,在資料庫、其他資料儲存器等中)。統計資料可用於神經網路架構搜尋等。在某些實例中,在正擷取資訊時,統計資料/資訊可儲存於包括來自多個硬體平台之統計資料的「全域」資料庫中。全域資料庫中之資訊可實現跨平台模型最佳化、用於未來硬體之探索等。
哩標記提供探索及評估具有或不具有用於執行之一或多個工作負載之底層硬體平台的靈活動態能力。在某些實例中,可根據一或多個準則(例如,可組配策略、一或多個參數等)自動地置放哩標記,且可自動地加以識別、擷取及保存以供例如在神經架構探索中進一步使用。例如,並非執行完整工作負載,作為用於根據底層硬體平台上之工作負載執行估計資料移動、潛時及/或其他特性的代理,自動特徵化搜尋程序可運行哩標記並自彼等哩標記收集資訊以比較不同組態及/或不同架構。若哩標記為已知的,則標記可與諸如記憶體存取等之已知微操作基準之位置相關聯,而不僅與硬體相關聯。因此,例如,可在不執行哩標記的情況下充分利用基準。在其他實例中,可在實際上不運行底層硬體之情況下模擬(例如,與卷積相關聯等)哩標記以獲得哩標記之值。因此,在訓練及探索階段期間,可以多種方式使用哩標記以自運行、模擬等哩標記獲得硬體事件。取決於如何充分利用哩標記,探索可較快運行,具有較高保真度等。
在某些實例中,哩標記可提供特定微基準探索。標記可經添加以理解某一硬體特性。在某些實例中,可建構微操作層級之階層,且可檢查哩標記以判定哩標記如何影響階層。因此,哩標記可用於理解在微架構管線下面發生之情況。
在某些實例中,哩標記可不僅用於底層平台之特徵或特性分析。例如,哩標記可用以評估微碼修補程式以供跨越一或多個硬體平台部署。來自哩標記之遙測可藉由充分利用平台遙測統計資料而幫助調諧及最佳化微碼部署。例如,擴展可幫助找出用於微碼修補程式之最佳搜尋空間(例如,可根據平台定製而非一刀切的方法)。
替代地或另外,可跨越平台元件及協定充分利用哩標記。例如,可自微碼修補程式效率監測及調諧擴展哩標記以對應於運行韌體之平台中之其他邏輯區塊。對應於此類邏輯區塊之開始及/或結束的哩標記可用以調諧不同平台元件、協定等。
所擷取資訊及相關聯分析可保存於雲端可接取資料儲存器中,可用於本端應用程式等,以影響本端及遠端平台行為之變化。例如,資訊可曝露於在硬體平台上本端運行的應用程式,以經由位置應用程式影響平台行為及/或應用程式行為之變化及/或以其他方式修改平台行為及/或應用程式行為。在某些實例中,個別邏輯區塊、邏輯區塊群組、整個平台等之特性化及調諧可跨越來自超雲端部署中之一或多個資料中心的伺服器之機隊或叢集經眾包,以實現大規模工作負載部署及機隊管理。
圖ID4_A為實例AutoML設備ID4_A00的方塊圖,其包括實例特徵化搜尋系統ID4_A10、實例硬體平台ID4_A20及實例模型開發器電路系統ID4_A30。實例特徵化搜尋系統ID4_A10分析包括硬體、軟體及韌體之實例硬體平台ID4_A20以判定與實例平台ID4_A20相關聯之特徵。實例特徵化搜尋系統ID4_A10將實例平台ID4_A20之硬體及軟體劃分及/或以其他方式組織成區塊。由檢查實例平台ID4_A20之組態及活動的實例特徵化搜尋系統ID4_A10擷取哩標記或事件指示符(例如,程式碼開始、程式碼結束、微碼基準等)。實例特徵化搜尋系統ID4_A10保存所擷取哩標記值及其他相關聯資料、分析等,以形成與實例平台ID4_A20相關聯的特徵。例如,特徵可組織成一或多個資料集以驅動AI模型之開發(例如,用於ML網路及/或其他AI模型之訓練、測試等)。例如,特徵可充當使用經保存、聚集、正規化及/或以其他方式處理為一或多個資料集的所識別特徵之自動硬體感知神經架構搜尋及網路訓練的基礎。例如,在圖ID4_A之實例中,特徵及其他所提取及/或所評估資訊可由實例模型開發器電路系統ID4_A30使用以產生、訓練、測試及部署AI模型。例如,所識別特徵及相關聯遙測資料可用以形成一或多個資料集,以用於AI模型構造之訓練、測試及/或其他驗證(例如,AI模型開發)。
圖ID4_B說明圖ID4_A之實例特徵化搜尋系統ID4_A10的實例實施。實例特徵化搜尋系統ID4_A10包括實例區塊分析器電路系統ID4_B10、實例架構搜尋器電路系統ID4_B20、實例網路訓練器電路系統ID4_B30、實例標記擷取器電路系統ID4_B40及實例資料庫ID4_A50。實例區塊分析器電路系統ID4_B10例如在程式碼或運算區塊或胞元方面界定與實例硬體平台電路系統ID4_A20相關聯之工作負載的實例特徵搜尋空間。區塊之開始及/或結束可與標記(例如,「哩標記」)或其他指示符相關聯,其他指示符與實例平台電路系統ID4_A20之底層處理硬體執行相關聯程式碼區塊之開始或結束處的動作或狀態(例如,硬體、平台或程式碼狀態等)相關聯。實例區塊分析器電路系統ID4_B10與實例架構搜尋器電路系統ID4_B20通訊,以在關於實例硬體平台ID4_A20之架構搜尋的預熱階段期間提供程式碼區塊及相關聯標記。
在架構探索及訓練之初始預熱階段期間,實例架構搜尋器電路系統ID4_B20與實例標記擷取器ID4_B40及實例網路訓練器電路系統ID4_B30一起起作用,以在執行程式碼區塊時擷取與標記相關聯的值,同時由實例網路訓練器電路系統ID4_B30訓練網路(例如,ML網路模型、神經網路模型、其他AI模型等)。例如,架構搜尋器電路系統ID4_B20監測軟體程式碼、微碼等在硬體平台ID4_A20上之執行,及/或促進軟體程式碼、微碼等關於實例平台ID4_A20之模擬。在架構搜尋器ID4_B20監測真實及/或模擬執行以相對於網路評估平台ID4_A20時,實例標記擷取器ID4_B40擷取與相關聯程式碼區塊及/或微碼/微操作基準等之開始及/或結束處的硬體及/或軟體狀態相關聯的標記及/或其他指示符。所擷取值可保存於實例資料庫ID4_B50中以使用實例架構搜尋器電路系統ID4_B20及實例網路訓練器電路系統ID4_B30驅動神經架構探索之下一階段。例如,所擷取值可包括微區塊/操作之雜湊鍵(或嵌入)連同用作資料庫ID4_B50中之條目的索引之輸入/輸出維度,以儲存諸如潛時、記憶體佔據面積、功率等之參數。例如,使用在標記處提取之資訊揭露底層硬體之特性,且允許實例架構搜尋器電路系統ID4_B20在其架構搜尋及使用實例網路訓練器電路系統AD4_B30訓練ML及/或其他AI網路時能感知硬體。
因此,在預熱階段期間之操作中,實例架構搜尋器電路系統AD4_B20結合實例網路訓練器電路系統ID4_B30開始最佳化或以其他方式改良用於底層平台之AI演算法。實例標記擷取器電路系統ID4_B40量測及/或以其他方式擷取與軟體程式碼執行相關聯之硬體統計資料(例如,結合微碼評估及擷取等),諸如與程式碼區塊執行相關聯之循環數目、與程式碼區塊執行相關聯之資料移動量等。在某些實例中,可模擬與哩標記相關聯之程式碼(例如,微碼、程式碼等),而非實際上在底層平台ID4_A20上加以執行。例如,所收集統計資料由實例標記擷取器ID4_B40保存於實例資料庫ID4_B50中以單獨或結合來自相同及/或其他硬體平台之資料在探索階段中使用,從而藉由經由實例架構搜尋器ID4_B20及實例網路訓練器電路系統ID4_B30自資料庫ID4_B50併入硬體特徵而相對於將執行網路之底層硬體平台ID4_A20識別及訓練AutoML及/或其他AI網路來開發ML及/或其他硬體感知AI架構。例如,資料庫ID4_B50中之標記資料可用以形成或驅動經定製至平台ID4_A20之特徵引擎,以模型化特徵以供相對於平台ID4_A20進行分析。
圖ID4_C為實例硬體平台ID4_A20之實施,圖ID4_A至圖ID4_B之實例特徵化搜尋系統ID4_A10在該硬體平台上操作及/或可實施於該硬體平台上。實例硬體平台ID4_A20包括相對於圖ID4_B之實例硬體運算平台ID4_A20之軟體層ID4_C20中的聯合可擴展韌體介面(UEFI)/基本輸入/輸出系統(BIOS) ID4_C16執行的一或多個應用程式ID4_C10、虛擬機(VM) ID4_C12、作業系統(OS)/虛擬記憶體管理器(VMM) ID4_C14。如圖ID4_C之實例中所示,實例UEFI/BIOS ID4_C16包括微碼更新管理器ID4_C18。實例微碼更新管理器ID4_C18與實例指令集架構(ISA)管理器電路系統ID4_C30一起起作用,以組配特定ISA行為、評估ISA組態及基於相關聯策略採取動作。
如圖ID4_C之實例中所示,硬體層ID4_C40包括系統單晶片(SoC)及/或其他處理器/處理硬體。實例SoC/硬體ID4_C50包括微碼ID4_C52及安全微碼ID4_C54以促進實例硬體電路系統ID4_C50之硬體操作。實例微碼ID4_C52及安全微碼ID4_C54在圖ID4_C之硬體ID4_C50與實例處理平台ID4_A20之ISA之間內插組織層。
實例ISA管理器ID4_C30可用於實施圖ID4_B之實例標記擷取器電路系統ID4_B40的全部或部分。雖然圖ID4_C之實例展示實例ISA管理器電路系統ID4_C30被實施為實例平台ID4_A20的部分,但ISA管理器電路系統ID4_C30的全部或部分(例如,在標記擷取器電路系統ID4_B40最後等)可被實施為特徵化搜尋系統ID4_A10的部分等。如圖ID4_C之實例中所示,實例ISA管理器電路系統ID4_C40使用實例遙測管理器ID4_C32、實例微操作(UOP)剩餘映射器ID4_C34、實例ISA評估器ID4_C36及實例ISA解碼器ID4_C38實施實例標記擷取器電路系統ID4_B40。實例ISA管理器ID4_C40經由網路ID4_C60與基於雲端之伺服器ID4_C70及/或其他運算裝置通訊。因此,實例標記擷取器電路系統ID4_B40可經由實例網路ID4_C60將所擷取標記資料提供至實例伺服器ID4_C70。例如,外部裝置可經由實例伺服器ID4_C70接取標記資料。
如圖ID4_C之實例中所示,實例遙測管理器ID4_C32可經由與軟體(SW)層ID4_C20中監測硬體(HW)層ID4_C40中之微碼ID4_C52、ID4_C54的實例微碼更新管理器ID4_C18互動而擷取一或多個關鍵效能指示符。實例UOP剩餘映射器ID4_C34產生新ISA及/或哩標記以用於由微碼ID4_C52、ID4_C54執行。實例ISA評估器ID4_C36調度ISA及/或相關聯哩標記且評估與哩標記處之硬體及/或軟體的狀態相關聯之資訊。實例ISA解碼器ID4_C38處理ISA及/或哩標記資訊以用於包括於實例資料庫ID4_B50中。
因此,某些實例提供用於實例硬體基底ID4_C40及相關聯軟體ID4_C20之自動效能監測。例如,可針對多個平台擷取實例哩標記及相關聯資料以產生離線及/或線上資料庫ID4_B50來實現跨平台模型最佳化。實例微碼調度器ID4_C52及/或ID4_C54可執行及/或擷取關於一或多個哩標記之資訊,且將資訊輸送至實例微碼管理器ID4_C18以提供至實例ISA管理器電路系統ID4_C30。可使用實例平台ID4_A20上運行之微基準的組成、基於哩標記之效能模型化或模擬等自一或多個標記/模體估計潛時、能量、頻寬等。
儲存於實例資料庫ID4_B50中及/或即時使用的與所擷取/模擬哩標記相關聯之資料經曝露於一個或ML/DL框架以最佳化所得網路,諸如由實例網路訓練器電路系統ID4_B30訓練之AutoML網路等。在某些實例中,線上收集之哩標記資料可與離線收集之資料合併或融合(例如,時間序列資料之資料融合等)。因此,模型可繼續反映實際工作負載,即使在已部署平台之後亦如此。
在某些實例中,資料庫ID4_B50中之資料儲存來自跨越複數個硬體及/或軟體版本/代所擷取之哩標記的資料、同一版本/代之組態/外觀尺寸等。例如,可經由資料庫ID4_B50儲存、充分利用及共享自二十個核心部分、五十六個核心部分、一百五十瓦特熱設計功率(TDP)工具等收集之哩標記資料。在某些實例中,雲端伺服器ID4_C70可充分利用來自資料庫ID4_B50 (例如,實施為雲端可接取資料庫)之遙測及哩標記資料以識別一或多個瓶頸,諸如運算瓶頸、記憶體瓶頸、互連瓶頸、通訊瓶頸等。例如,自一個部署習得之經驗可經前饋,使得未來神經網路搜尋可自先前資料收集及分析學習。可跨越附接點、加速器等擴增哩標記。例如,可跨越加速器附接點提供哩標記。
例如,使用運算高速鏈路(CXL)™互連技術,可將哩標記資料收集及分析縮放至其他附接點。可分析及判定加速器附接點及通訊協定。可檢查異質架構之元件以基於加速器附接點、通訊協定、中央處理單元(CPU)使用、通用處理單元(GPU)使用等之變化評估哩標記變化。遙測可自資料庫ID4_B50曝露至雲端伺服器ID4_C70及/或實例平台ID4_A20上運行之一或多個應用程式ID4_C10等。因此,例如,本端應用程式ID4_C10及遠端系統二者皆可受益於哩標記擷取、遙測分析等,以使得能夠基於平台ID4_A20行為而改變。
在某些實例中,可評估微碼修補程式以用於部署。來自哩標記之遙測可用於藉由充分利用經由資料庫ID4_B50所觀測並與AutoML框架共享的平台遙測統計資料而幫助調諧及改良微碼部署。AutoML框架擴展可幫助找出微碼修補程式之有益搜尋空間。例如,可根據平台ID4_A20定製微碼搜尋空間而非一刀切的方法。
實例微碼更新管理器ID4_C18亦可用以驗證新微碼修補程式及/或下載至平台ID4_A20,以及執行哩標記識別及擷取。例如,使用經曝露用於哩標記分析之遙測及效能鉤評估新微碼修補程式。
在某些實例中,跨越平台元件及協定擴展哩標記。例如,可自處理器微碼修補程式效率監測及調諧擴展哩標記以評估平台ID4_A29中運行其自身韌體的其他區塊。例如,資訊可曝露於在本端運行之應用程式以及雲端ID4_C70,以經由本端應用程式ID4_C10影響平台ID4_A20行為及/或應用程式ID4_C10行為之變化(例如,修改)。在某些實例中,個別組件以及整個平台ID4_A20之特性化及調諧可跨越來自超雲端部署中之一或多個資料中心的伺服器之機隊或叢集經眾包,以實現大規模工作負載部署及機隊管理。
圖ID4_D說明其中跨越眾包平台追蹤眾包分析之實例實施。如上文所論述,資訊可曝露於在本端以及「雲端」中運行之應用程式,以經由本端應用程式來影響平台行為之變化。在某些實例中,個別以及平台層級設定、行為等之特性化及調諧可跨越來自超雲端部署中之一個或許多資料中心的伺服器之機隊或叢集經眾包,以實現大規模工作負載部署及機隊管理。
圖ID4_D說明實例眾包部署ID4_D00,其中複數個硬體平台ID4_A20、ID4_D10、ID4)D15經由網路ID4_C60將分析(例如,內容、裝置資料、連接性資訊、處理器資訊(例如,CPI、XPU等)提供至經組配為眾包雲端伺服器ID4_C70之雲端伺服器ID4_C70。例如,眾包雲端伺服器ID4_C70在眾包雲端伺服器ID4_C70上之安全儲存器中提供對哩標記(例如,TEE)或哩標記集合之分析,諸如修補程式評估/特性化、哩標記遙測分析、內容分析、安全計時器、裝置屬性、策略管理等。因此,可自多個平台ID4_A20、ID4_D10、ID4_D20收集及聚集對應於哩標記之資料,且經由雲端伺服器ID4_C70分析資料以供儲存及進一步使用。
雖然實施圖ID4_A之實例特徵化搜尋系統ID4_A10的部分之實例方式說明於圖ID4_B至圖ID4_D中,但圖ID4_B至圖ID4_D中所說明之元件、程序及/或裝置中之一或多者可以任何其他方式組合、劃分、重新配置、省略、消除及/或實施。此外,實例區塊分析器電路系統ID4_B10、實例架構搜尋器電路系統ID4_B20、實例網路訓練器電路系統ID4_B30、實例標記擷取器電路系統ID4_B40、實例資料庫ID4_A50、實例軟體層ID4_C20、實例硬體層ID4_C40、實例處理硬體ID4_C50、實例ISA管理器電路系統ID4_C40、實例網路ID4_C60、實例伺服器ID4_C70,及/或更大體而言,圖ID4_A至圖ID4_D之實例特徵化搜尋系統ID4_A10可由硬體、軟體、韌體,及/或硬體、軟體及/或韌體之任一組合實施。因此,例如,實例區塊分析器電路系統ID4_B10、實例架構搜尋器電路系統ID4_B20、實例網路訓練器電路系統ID4_B30、實例標記擷取器電路系統ID4_B40、實例資料庫ID4_B50、實例ISA管理器電路系統ID4_C30、實例硬體層ID4_C30、實例處理硬體ID4_C50、實例ISA管理器電路系統ID4_C40、實例網路ID4_C60、實例伺服器ID4_C70中之任一者,及/或更大體而言,圖ID4_A至圖ID4_D之實例特徵化搜尋系統ID4_A10可由一或多個類比或數位電路、邏輯電路、可程式化處理器、可程式化控制器、圖形處理單元(GPU)、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)及/或現場可程式化邏輯裝置(FPLD)實施。當閱讀本專利之設備或系統請求項中之任一者以涵蓋僅軟體及/或韌體實施時,實例區塊分析器電路系統ID4_B10、實例架構搜尋器電路系統ID4_B20、實例網路訓練器電路系統ID4_B30、實例標記擷取器電路系統ID4_B40、實例資料庫ID4_B50、實例軟體層ID4_C20、實例硬體層ID4_C30、實例處理硬體ID4_C50、實例ISA管理器電路系統ID4_C40、實例網路ID4_C60及實例伺服器ID4_C70中之至少一者特此明確地界定為包括包含軟體及/或韌體的非暫時性電腦可讀儲存裝置或儲存磁碟,諸如記憶體、數位化通用光碟(DVD)、緊密光碟(CD)、Blu-ray光碟等。再者,實例區塊分析器ID4_B10、實例架構搜尋器ID4_B20、實例網路訓練器ID4_B30、實例標記擷取器ID4_B40、實例資料庫ID4_A50、實例軟體層ID4_C20、實例硬體層ID4_C30、實例處理硬體ID4_C50、實例ISA管理器電路系統ID4_C40、實例網路ID4_C60、實例伺服器ID4_C70,及/或更大體而言,圖ID4_A至圖ID4_C之實例特徵化搜尋系統ID4_A10可包括除了圖ID4_B至圖ID4_D中所說明之彼等之外或代替彼等的一或多個元件、程序及/或裝置,及/或可包括所說明元件、程序及裝置中之任一者或所有中的多於一者。
上文所描述之元件、程序及/或裝置中之一或多者可使用包括以下中之至少一者的處理器電路系統實施:a)中央處理單元、圖形處理單元或數位信號處理器;b)現場可程式化閘陣列(FPGA);或特殊應用積體電路系統(ASIC)。在此類實施中,中央處理單元、圖形處理單元或數位信號處理器中之至少一者具有用以控制處理器電路系統內之資料移動的控制電路系統,用以執行對應於指令之一或多個第一操作的算術及邏輯電路系統,及用以儲存一或多個第一操作之結果、設備中之指令的一或多個暫存器。在此類實施中,FPGA包括邏輯閘電路系統、複數個可組配互連及儲存電路系統,邏輯閘電路系統及互連用以執行一或多個第二操作,儲存電路系統用以儲存一或多個第二操作之結果。在此類實施中,ASIC包括用以執行一或多個第三操作之邏輯閘電路系統。處理器電路系統用以進行以下中之至少一者:執行第一操作、第二操作或第三操作中之至少一者以執行程序、功能及/或實施上文所描述之元件或裝置。
在某些實例中,上文所描述之元件、程序及/或裝置中之一或多者可使用設備實施,該設備包括至少一個記憶體;設備中之指令;及處理器電路系統,其包括用以控制處理器電路系統內之資料移動的控制電路系統,用以對資料執行一或多個運算之算術及邏輯電路系統,及用以儲存運算中之一或多者的結果之一或多個暫存器,處理器電路系統用以執行指令以實施上文所描述之元件、程序及/或裝置中之一或多者。
表示用於實施圖ID4_A之實例特徵化搜尋系統ID4_A10的全部或部分之實例硬體邏輯、機器可讀指令、硬體實施之狀態機及/或其任何組合的流程圖展示於圖ID4_E至圖ID4_G中。機器可讀指令可為用於由電腦處理器及/或處理器電路系統執行之一或多個可執行程式或可執行程式之部分。程式可體現於儲存於諸如CD-ROM、軟碟、硬碟機、DVD、Blu-ray光碟或與處理器相關聯的記憶體之非暫時性電腦可讀儲存媒體上的軟體中,但整個程式及/或其部分可替代地由除了處理器以外之裝置執行及/或體現於韌體或專用硬體中。此外,儘管參考圖ID4_E至圖ID4_G中所說明之流程圖描述實例程式,但可替代地使用實施實例特徵化搜尋系統ID4_A10之實例部分的許多其他方法。例如,可改變區塊之執行次序,及/或可改變、消除或組合所描述區塊中之一些。另外或替代地,區塊中之任一者或全部可由經構造以在不執行軟體或韌體之情況下執行對應操作的一或多個硬體電路(例如,離散及/或整合式類比及/或數位電路系統、FPGA、ASIC、比較器、運算放大器(op-amp)、邏輯電路等)實施。處理器電路系統可分佈於不同網路位置中及/或在一或多個裝置(例如,單一機器中之多核心處理器、跨越伺服器機架分佈之多個處理器等)本端。
如上文所提及,可使用儲存於非暫時性電腦及/或機器可讀媒體上之可執行指令(例如,電腦及/或機器可讀指令)實施圖ID4_E至圖ID4_G之實例程序,該非暫時性電腦及/或機器可讀媒體諸如硬碟機、快閃記憶體、唯讀記憶體、緊密光碟、數位化通用光碟、快取記憶體、隨機存取記憶體,及/或歷時任何持續時間儲存資訊(例如,歷時經延長時間週期、永久性地、歷時短暫時刻、用於臨時緩衝,及/或用於資訊之快取)的任何其他儲存裝置或儲存磁碟。如本文中所使用,術語非暫時性電腦可讀媒體明確地界定為包括任何類型之電腦可讀儲存裝置及/或儲存磁碟且排除傳播信號及傳輸媒體。
在某些實例中,標記擷取構件可由實例標記擷取器電路系統ID4_B40實施,以提取關於與第一階段(例如,預熱階段)期間發生之標記相關聯之硬體平台ID4_C50的資訊。實例標記擷取構件用以將資訊儲存於資料庫中,諸如實例資料庫ID4_A50。在某些實例中,架構搜尋構件可由實例架構搜尋器電路系統ID4_B20實施,以在第一階段中監測硬體平台以識別用以訓練人工智慧模型的與標記相關聯之特徵,及在第二階段(例如,探索階段)中使用來自資料庫之資訊執行人工智慧模型之硬體感知訓練。
圖ID4_E為表示可經執行以實施圖ID4_A之實例AutoML設備ID4_A00的全部或部分之機器可讀指令的流程圖。在圖ID4_E之實例程序ID4_E00中,實例特徵化搜尋系統ID4_A10分析實例硬體平台ID4_A20以判定與實例平台ID4_A20相關聯之特徵。(區塊ID4_E10)。例如,實例特徵化搜尋系統ID4_A10將實例平台ID4_A20之硬體及軟體劃分及/或以其他方式組織成區塊。由檢查實例平台ID4_A20之組態及活動的實例特徵化搜尋系統ID4_A10擷取哩標記或事件指示符(例如,程式碼開始、程式碼結束、微碼基準等)。實例特徵化搜尋系統ID4_A10保存所擷取哩標記值及其他相關聯資料、分析等,以形成與實例平台ID4_A20相關聯的特徵。例如,特徵可經組織成用於ML網路及/或其他AI模型之訓練、測試等的一或多個資料集。亦可由架構(例如,CPU、GPU、FPGA、視覺處理單元(VPU)、XPU等)及/或藉由平台能力(例如,具有不同能力之不同代處理器等)等組織特徵。經由實例資料庫ID4_B50提供特徵以供使用(區塊ID4_E20),且例如,特徵可充當使用經保存、聚集、正規化及/或以其他方式處理為一或多個資料集之所識別特徵的自動硬體感知神經架構搜尋及網路訓練的基礎。
實例模型開發器電路系統ID4_A30使用特徵及其他所提取及/或評估資訊來產生、訓練、測試及/或以其他方式驗證一或多個AI模型。(區塊ID4_E30)。例如,所識別特徵及相關聯遙測資料可用以形成一或多個資料集以用於AI模型構造之訓練、測試及/或其他驗證。例如,基於特徵及相關聯資料針對底層架構及組態定製AI模型構造。在某些實例中,除了運算最佳化及精度選擇(例如,FP32、INT8、INT4、其他操作等)之外,AI模型構造還經定製用於資料處理。AI模型構造接著可部署於實例平台ID4_A20上。(區塊ID4_E40)。
圖ID4_F為表示可經執行以實施圖ID4_A至圖ID4_D之實例特徵化搜尋系統的全部或部分,從而分析實例平台ID4_A20以判定與實例平台ID4_A20相關聯之特徵的機器可讀指令之流程圖。(圖ID4_E之實例的區塊ID4_E10)。在圖ID4_F之實例程序ID4_F00中,實例區塊分析器ID4_B10在區塊或胞元方面界定特徵化搜尋空間。(區塊ID4_F10)。例如,區塊/胞元可與標記或「鉤」(例如,在程式碼區塊開始處、程式碼區塊結束處、程式碼區塊內之執行點處等執行的定製程式碼或函數,以將參數值、狀態值、其他資料提供至標記擷取器ID4_B40)相關聯以使得能夠相對於區塊或胞元提取遙測資訊。實例區塊分析器ID4_B10將區塊或胞元用作程式碼區塊以進行監測。(區塊ID4_F20)。在預熱階段期間,實例架構搜尋器電路系統ID4_B20相對於程式碼區塊搜尋特徵。(區塊ID4_F30)。例如,架構搜尋器電路系統ID4_B20監測程式碼以識別可用以形成用於訓練、測試及/或驗證AI網路模型之資料集的特徵。在實例網路訓練器電路系統ID4_B30在預熱階段中訓練AI網路模型之準確度時檢查程式碼區塊。(區塊ID4_F40)。實例標記擷取器電路系統ID4_B40擷取哩標記及/或其他指示符值。(區塊ID4_F50)。例如,遙測及/或與運算區塊之開始、運算區塊之結束、運算區塊之執行點等相關聯的其他資料可由實例標記擷取器電路系統ID4_B40收集以判定胞元數目、程式碼移動、參數值等。在某些實例中,標記擷取器電路系統ID4_B40與微碼ID4_C52、ID4_C54互動以擷取用於實例平台ID4_A20之資料值、使用統計資料等。在處理值以格式化值、分析值、正規化值等之後,將值/統計資料保存於實例資料庫ID4_B50中。(區塊ID4_F60)。例如,歷時預熱階段之 n個時期收集並更新程式碼區塊之統計資料並將其保存於實例資料庫ID4_B50中。(區塊ID4_F70)。在某些實例中,可模擬程式碼區塊,而非實際上執行程式碼區塊,以收集標記資料以供處理、儲存及使用。
操作接著移位至神經架構探索階段,其中實例架構搜尋器電路系統ID4_B20基於由實例標記擷取器電路系統ID4_B40保存於實例資料庫ID4_B50中之硬體資訊進行硬體感知特徵化搜尋。(區塊ID4_F80)。在某些實例中,資料庫ID4_B50包括來自複數個硬體擷取之標記資訊等。實例網路訓練器電路系統ID4_B30接著可基於架構搜尋器電路系統ID4_B20之硬體感知特徵化搜尋(例如,儲存於資料庫ID4_B50中之結果)訓練網路模型(例如,AutoML網路模型、另一ML網路模型、DL網路模型等),以提供用於測試及部署之經訓練網路模型。(區塊ID4_F90)。
圖ID4_G為表示可經執行以實施圖ID4_A至圖ID4_C之實例特徵化搜尋系統的全部或部分之機器可讀指令的流程圖。特定而言,圖ID4_G之實例程序ID4_G00為使用實例標記擷取器電路系統ID4_B40及其相關聯ISA管理器電路系統ID4_C30擷取標記值(區塊ID4_F50)之實例實施。如圖ID4_G之實例中所示,實例主機VMM ID4_C10執行至與實例處理平台ID4_A20之ISA相關聯的模型特定暫存器(MSR)的寫入(ID4_G10)。實例微碼更新管理器ID4_C18與實例ISA解碼器ID4_C38通訊以驗證(ID4_G20)由VMM ID4_C10將ISA資訊寫入至MSR之真實性。實例微碼更新管理器ID4_C18亦與實例ISA解碼器ID4_c38通訊以解碼(ID4_G30)與寫入相關聯之ISA資訊。實例ISA解碼器ID4_C38藉由實例ISA評估器ID4_C36驗證(ID4_G40)涉及訊息傳遞介面(MPI)之位元的當前會話之ISA組態。實例ISA評估器ID4_C36亦組配(ID4_G50) ISA之MPI位元,以允許執行哩標記、仿真或基於針對會話之佈建策略產生異常。因此,例如,哩標記可執行或經仿真/模擬以允許擷取與哩標記相關之資料,或若此類執行/仿真違反針對平台ID4_A20或其當前會話之佈建策略,則產生異常。ISA評估器ID4_C36將ISA組態應用(ID4_G60)於ISA解碼器ID4_C38以用於當前會話,且ISA解碼器ID4_C38觸發退出(ID4_G70)由實例ISA管理器ID4_C30進行組配。實例微碼更新管理器ID4_C18接著使控制返回(ID4_G80)至主機VMM ID4_C14。
因此,某些實例使得所得神經網路(及/或其他AI網路)之神經架構搜尋及訓練能感知硬體,並自動地擷取及識別硬體(及軟體)之特徵以根據底層硬體(及/或軟體)最佳化所得網路模型。架構搜尋可在考慮所量測程式碼區塊中之潛時、效率及/或其他組態要求/統計資料的情況下檢查特定架構組態,以使得AutoML能夠訓練滿足此等約束條件之網路。
在某些實例中,取決於所要粒度級,區塊表示神經網路(例如,ML網路等)之層及/或層內之操作。區塊及相關聯標記可與所選擇架構搜尋策略無關。自資料庫充分利用所擷取資訊以進行對可運行所得神經網路之底層平台的架構搜尋硬體感知。例如,用於一或多個粒度級之一或多個硬體組態的資訊可儲存於實例資料庫中,以供應用、輸出、共享及/或以其他方式用於網路架構識別及網路訓練。在某些實例中,所得資料庫可經封裝及部署用於多種AI網路模型訓練情境。
在底層硬體、微碼及/或管線執行中追蹤哩標記及/或其他指示符以理解管線及相關聯硬體遙測並將相關聯資訊儲存於資料庫中。在某些實例中,作業碼(opcode)及/或其他機器指令可經曝露以允許第三方收集遙測資訊並開發網路模型而無需來自平台提供者之輸入。例如,本文中所描述之實例系統及方法可使得應用程式設計介面(API)能夠允許第三方界定搜尋空間、接取資料庫中之值、擷取標記資訊以添加至資料庫等。
自前述內容,應瞭解,已揭露提供硬體平台及相關聯軟體之自動特徵化以實現AI模型之硬體感知搜尋及開發的實例系統、方法、設備及製品。所揭露系統、方法、設備及製品藉由經由識別及擷取與待部署AI模型之特定平台、組態等相關之特徵來實現硬體感知模型開發而改良訓練、測試及部署AI模型之效率及有效性。因此,所揭露系統、方法、設備及製品係針對用以監測、擷取、處理並儲存此類特徵並將其部署於資料庫中以供硬體感知AI模型開發的處理器電路系統之設計及製造的一或多個改良。
使用所揭露系統、方法、設備及製品,哩標記可基於一或多個策略經組配,且由諸如雲端伺服器、邊緣伺服器、管理者等之實體遠端地管理。基於遙測及來自哩標記之洞察,可基於如使用遙測資料、哩標記洞察等所評估的過去學習、不正確預測等改良神經架構搜尋策略。
以下段落提供本文中所揭露之實施的各種實例。
實例38為一種設備,其包括:中央處理單元、圖形處理單元或數位信號處理器中之至少一者,中央處理單元、圖形處理單元或數位信號處理器中之該至少一者具有用以控制處理器電路系統內之資料移動的控制電路系統、用以執行對應於指令之一或多個第一操作的算術及邏輯電路系統及用以儲存一或多個第一操作之結果、設備中之指令的一或多個暫存器;現場可程式化閘陣列(FPGA),該FPGA包括邏輯閘電路系統、複數個可組配互連及儲存電路系統,邏輯閘電路系統及互連用以執行一或多個第二操作,儲存電路系統用以儲存一或多個第二操作之結果;或特殊應用積體電路系統,其包括用以執行一或多個第三操作之邏輯閘電路系統;處理器電路系統用以進行以下中之至少一者:執行第一操作、第二操作或第三操作中之至少一者以:在第一階段中監測硬體平台以識別用以訓練人工智慧模型之特徵;提取關於與第一階段期間發生之特徵相關的標記相關聯之硬體平台的資訊,及將資訊儲存於資料庫中以在第二階段中實現人工智慧模型之硬體感知訓練。
實例39為如實例38之設備,其中處理器電路系統用以進行以下中之至少一者:執行第一運算、第二運算或第三運算中之至少一者以將特徵搜尋空間組織成包括與標記相關聯之第一程式碼區塊的程式碼區塊。
實例40為如實例38之設備,其中處理器電路系統用以進行以下中之至少一者:執行第一運算、第二運算或第三運算中之至少一者以藉由來自資料庫之資訊執行人工智慧模型之硬體感知訓練。
實例41為如實例38之設備,其進一步包括用以儲存資料庫之記憶體,資料庫可由一或多個裝置接取以驅動人工智慧模型之開發。
實例42為如實例41之設備,其中資料庫為雲端可接取資料庫。
實例43為如實例41之設備,其中可接取資料庫中之資訊以修改硬體平台上運行之應用程式的行為。
實例44為如實例41之設備,其中資料庫用以包括自複數個平台或硬體平台之複數個組態中之至少一者收集的資訊。
實例45為如實例41之設備,其中模擬標記而非執行標記。
實例46包括至少一種非暫時性電腦可讀儲存媒體,其包括當經執行時致使至少一個處理器至少進行以下操作的指令:在第一階段中監測硬體平台以識別用以訓練人工智慧模型之特徵;提取關於與第一階段期間發生之特徵相關的標記相關聯之硬體平台的資訊,及將資訊儲存於資料庫中以在第二階段中實現人工智慧模型之硬體感知訓練。
實例47為如實例46之至少一種電腦可讀儲存媒體,其中至少一個處理器用以將特徵搜尋空間組織成包括與標記相關聯之第一程式碼區塊的程式碼區塊。
實例48為如實例46之至少一種電腦可讀儲存媒體,其中至少一個處理器用以使用資料庫中之資訊訓練人工智慧模型。
實例49為如實例46之至少一種電腦可讀儲存媒體,其中至少一個處理器用以使用資料庫中之資訊修改硬體平台上運行之應用程式的行為。
實例50為如實例46之至少一種電腦可讀儲存媒體,其中至少一個處理器用以模擬標記之執行以提取資訊。
實例51包括一種方法,其包括:在第一階段中監測硬體平台以識別用以訓練人工智慧模型之特徵;提取關於與第一階段期間發生之特徵相關的標記相關聯之硬體平台的資訊,及將資訊儲存於資料庫中以在第二階段中實現人工智慧模型之硬體感知訓練。
實例52為如實例51之方法,其進一步包括將特徵搜尋空間組織成包括與標記相關聯之第一程式碼區塊的程式碼區塊。
實例53為如實例51之方法,其進一步包括使用資料庫中之資訊訓練人工智慧模型。
實例54為如實例51之方法,其進一步包括使用資料庫中之資訊修改硬體平台上運行之應用程式的行為。
實例55為如實例51之方法,其進一步包括模擬標記之執行以提取資訊。
實例56包括一種系統,其包括:標記擷取構件,該構件用以提取關於與第一階段期間發生之標記相關聯的硬體平台之資訊,標記擷取器用以將資訊儲存於資料庫中;及架構搜尋構件,該構件用以在第一階段中監測硬體平台以識別用以訓練人工智慧模型之特徵,及在第二階段中使用來自資料庫之資訊執行人工智慧模型之硬體感知訓練。
實例57為一種設備,其包括:至少一個記憶體;設備中之指令;及處理器電路系統,其包括用以控制處理器電路系統內之資料移動的控制電路系統,用以對資料執行一或多個運算之算術及邏輯電路系統及用以儲存運算中之一或多者的結果之一或多個暫存器,處理器電路系統用以執行指令以至少實施:標記擷取器以提取關於與第一階段期間發生之標記相關聯的硬體平台之資訊,標記擷取器用以將資訊儲存於資料庫中;及架構搜尋器以在第一階段中監測硬體平台以識別用以訓練人工智慧模型的與標記相關聯之特徵,及在第二階段中使用來自資料庫之資訊執行人工智慧模型之硬體感知訓練。
實例58為如實例57之設備,其中處理器用以實施區塊分析器以將特徵搜尋空間組織成包括與標記相關聯之第一程式碼區塊的程式碼區塊。
實例59為如實例57之設備,其中處理器用以實施網路訓練器以藉由架構搜尋器訓練人工智慧模型。
實例60為如實例57之設備,其進一步包括資料庫,該資料庫可由一或多個裝置接取以驅動人工智慧模型之開發。
實例61為如實例60之設備,其中資料庫為雲端可接取資料庫。
實例62為如實例57之設備,其中可接取資料庫中之資訊以修改硬體平台上運行之應用程式的行為。
實例63為如實例57之設備,其中資料庫用以包括自複數個平台或硬體平台之複數個組態中之至少一者收集的資訊。
實例64為如實例57之設備,其中模擬標記而非執行標記。
實例65為如實例57之設備,其中標記擷取器包括:用以擷取與標記相關之資訊的遙測管理器;用以產生標記之微操作剩餘映射器;用以調度標記並評估與標記相關聯之資訊中包括的硬體狀態或軟體狀態中之至少一者的指令集架構評估器;及用以處理資訊以用於將資訊儲存於資料庫中的指令集架構解碼器。
實例66為如實例57之設備,其中處理器經由網路與雲端伺服器通訊。
實例67為如實例38至45中任一者之設備,其中提取關於與第一階段期間發生之標記相關聯的硬體平台之資訊包括:擷取與標記相關之資訊;產生標記;調度標記並評估與標記相關聯之資訊中包括的硬體狀態或軟體狀態中之至少一者;及處理資訊以用於將資訊儲存於資料庫中。
實例68為如實例46至50中任一者之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器至少:提取關於與第一階段期間發生之標記相關聯的硬體平台之資訊,其包括:擷取與標記相關之資訊;產生標記;調度標記並評估與標記相關聯之資訊中包括的硬體狀態或軟體狀態中之至少一者;及處理資訊以用於將資訊儲存於資料庫中。
實例69為如實例51至55中任一者之方法,其中提取關於與第一階段期間發生之標記相關聯的硬體平台之資訊包括:擷取與標記相關之資訊;產生標記;調度標記並評估與標記相關聯之資訊中包括的硬體狀態或軟體狀態中之至少一者;及處理資訊以用於將資訊儲存於資料庫中。
儘管本文中已揭露某些實例系統、方法、設備及製品,但本專利之涵蓋範圍的範疇並不限於此。相反地,本專利涵蓋落在本專利之申請專利範圍的範疇內之所有系統、方法、設備及製品。儘管已在與半導體及/或微處理器相關之實例中展示本文中所揭露之實例,但大體而言,本文中所揭露之實例可應用於任何其他適當互連(例如,分層互連)應用或蝕刻程序。 可縮放模型壓縮(ID6)
高效人工智慧(AI)及深度學習(DL)加速器具有高輸送量混合精度及稀疏運算能力。模型壓縮為用以調適神經網路(NN)以實現此等特徵之優勢的技術。
亦稱為模型最佳化之模型壓縮之兩種實例類別/技術包括(1)量化及(2)修剪。兩方法皆為NN之主要「壓縮」技術。量化為將最初以第一精度(例如,浮點(FP32/16))運算之神經網路執行圖轉換為以第二精度(例如,Int8/4/2/1)在目標硬體(HW)中運算之程序。例如,在HW之規定單元處運算每一層之總和及乘積以提供逐層精度處方解(例如,第一精度、第二精度)。逐層精度處方解提供低精度之神經網路部署,且獲得低精度算術單元之較低功率消耗及較高輸送量。修剪為稀疏化(引入零)神經網路參數,從而實現運算及記憶體容量/頻寬節省之程序。例如,在每一層處修剪連接(例如,權重)及神經元(中間輸入/特徵)以提供逐層修剪速率。此等模型壓縮技術藉由降低用以儲存模型之記憶體要求而改良模型效率。例如,藉由修剪特定神經元,不需要儲存對應權重,因此實現模型之儲存節省。另外,在運行時間期間,不需要自儲存器提取此等特定權重及中間輸入以供執行。此外,量化至相對較低精度亦降低模型儲存之必要空間量。可使用一種技術及/或技術組合來實現模型壓縮。上文未提及之其他模型壓縮技術亦可用於本文中所揭露之實例中。
然而,在一些實例中,模型壓縮引起準確度降級。為了實現目標硬體上之經改良效能及準確度,需要以符合彼目標硬體之特定參數的方式進行細粒度(逐層)精度及/或稀疏性之選擇。細粒度/逐層/每層壓縮精度包括逐層量化及/或逐層修剪。逐層量化(例如,(1)量化)在每一層處變化操作位元寬度(例如,精度)。逐層修剪(例如,(2)修剪)在每一層處變化稀疏度(例如,零之數目)。可基於網路拓樸、可用硬體及/或效能目標/期望變化細粒度(逐層)精度及/或稀疏性之適當選擇。本文中所揭露之實例部分地藉由自動化對細粒度設計之搜尋且最佳化目標HW上之效能及準確度來改良模型準確度。
壓縮模型之現有技術對於大規模模型調適係不可縮放且效率低下的。當前技術(例如,最佳化器/學習代理)係針對模型(例如,神經網路)之每一執行個體、其目標平台及模型之對應效能目標從頭開始獨立地重複的。因此,對於具有待最佳化(例如,壓縮)之一或多個模型的每一新工作負載,最佳化資源(例如,探索代理)係自不存在自先前產生的代理習得之任何內容的基態產生。本文中揭露支援縮放之高效實例解決方案。本文中所揭露之實例產生支援多個XPU平台(例如,共同地描述為XPU之架構混合物,包括CPU、GPU、VPU、FPGA等)的縮放技術,其中目標部署可為XPU平台之任一組合(異質推斷)。本文中所揭露之實例包括支援不同神經網路拓樸、來自不同客戶(例如,租戶)之資料集及不同目標效能-準確度權衡的可調式系統,以支援縮放並藉由經改良效率產生模型(例如,神經網路)。
本文中所揭露之實例應用可轉移且可再用代理,而不需要最佳化器/代理從頭開始學習。本文中所揭露之實例的代理為學習策略/動作與任務類型、拓樸及/或目標HW之間的關係之內部表示的可執行程序。本文中所揭露之實例的代理規定目標硬體之修剪速率及量化速率。本文中所揭露之實例促進新HW目標集合、新網路架構及相比現有技術相對較快收斂之對應效能目標的自動化方式。
圖ID6_1A為可經執行以實施用於模型壓縮之搜尋流程的結構及機器可讀指令之實例框架。圖ID6_1A展示應用可轉移且可再用代理,而不需要最佳化器/代理從頭開始學習的框架。在操作中,實例輸入接收器電路系統ID6_102為接收、擷取及/或以其他方式獲得輸入(例如,來自使用者、手動輸入、來自儲存器之輸入等)之實例結構。實例輸入接收器電路系統ID6_102包括實例自動化HW目標接收器電路系統ID6_104、實例訓練資料集接收器電路系統ID6_106及實例經訓練網路界定接收器電路系統ID6_108。
輸入包括但不限於來自實例自動化HW目標接收器電路系統ID6_104之彼等輸入。實例自動化HW目標接收器電路系統ID6_104為接收、擷取及/或以其他方式獲得輸入目標HW(例如,VPU (int8/4/2/1)、FPGA、CPU+GPU)之類型及所需效能目標的實例結構。在一些實例中,自使用者輸入、包含平台組態資料之儲存裝置(例如,資料庫)及/或自經由一或多個網路通訊地連接之硬體搜尋資訊的資產擷取目標HW資訊。
輸入亦包括但不限於來自實例訓練資料集接收器電路系統ID6_106的彼等輸入,該電路系統為接收、擷取及/或以其他方式獲得訓練資料集(例如,自使用者、自一或多個訓練資料集儲存裝置等)之實例結構。訓練資料集可為用以實現ID6_108之經訓練網路的原始訓練資料集之全部或子集。訓練資料集用於恢復由壓縮策略(例如,量化、修剪)所引起之準確度降級。
輸入亦包括但不限於來自實例經訓練網路界定接收器電路系統ID6_108之彼等輸入。經訓練網路界定接收器電路系統ID6_108為自使用者接收、擷取及/或以其他方式獲得經訓練網路之實例結構。需要經訓練網路,此係因為其為最佳化之目標,在最佳化中網路經量化或經修剪。當經最佳化(例如,使用量化或修剪)時,經訓練網路可對不同資料集(例如,不同影像、不同使用者輸入)執行新任務(例如,物件偵測、推薦系統)。經訓練網路提供任務效能(例如,準確度、潛時)之基線,從而充當用於觀測由於壓縮引起之任何降級的參考。代替重複網路訓練且以隨機化初始化權重開始,可保存來自經預訓練網路之先前權重並將其應用為新任務的初始權重值。使用經預訓練網路的一些優勢包括節省時間、功率及資源,此係因為經預訓練網路給予新任務較快起點。
亦稱為學習器或最佳化器之實例代理ID6_110經產生或以其他方式調用,以學習及最佳化可縮放模型壓縮以用於鑒於特定平台特性改良效能。在圖ID6_1A之所說明實例中,實例代理ID6_110為實施及/或以其他方式表示於一或多個神經網路中的最佳化演算法及/或硬體。其可為但不限於深度加強學習、貝氏最佳化及/或演進式演算法。在本文中所揭露之實例中,實例代理係針對深度加強學習演算法。本文中所揭露之實例可位於實例邊緣雲端之任何位置處及/或以其他方式在該任何位置處執行最佳化任務,實例邊緣雲端諸如圖A1、圖A2及圖A3之實例邊緣雲端A110。另外,本文中所揭露之實例可位於多個網路層(例如,端點層A200、邊緣裝置層A210、網路接取層A220、核心網路層A230及/或雲端資料層A240)中之任一或多者處及/或以其他方式在多個網路層中之任一或多者處執行最佳化任務。另外,實例代理ID6_110可在每一迭代中預測每層壓縮策略。每層壓縮策略為獲得較高效能同時保留神經網路之準確度的方式。神經網路之壓縮減少神經網路執行期間的資料轉移及運算量。每層壓縮策略提供不同壓縮敏感度。最佳逐層組態最小化可由於壓縮而發生的準確度降級。此外,實例代理ID6_110自環境及硬體效能回饋學習。其可學習的一種方式為辨識資料之間的關係。在任何數目之搜尋迭代後,實例代理ID6_110最終會學習到最小化網路準確度影響且最大化硬體效能的最佳權衡策略。實例代理ID6_110亦包含實例經驗重放緩衝器電路系統ID6_112。
實例經驗重放緩衝器電路系統ID6_112為包含來自先前迭代之資料的實例結構。實例經驗重放緩衝器電路系統ID6_112包含經保存以藉由加速及改良訓練來證實實例代理ID6_110之訓練的歷史策略、獎勵、來自壓縮環境之回饋,及/或經評估硬體。大體而言,經驗重放緩衝器電路系統ID6_112包含回饋,且提供資料集或經驗以供代理ID6_110使用以訓練(例如,學習每一神經網路層之最佳壓縮策略)任何輸入神經網路。
實例逐層混合精度稀疏性策略預測器電路系統ID6_113為自代理ID6_110取得預測,且檢查差量變化(例如,監測遞減或增大回報)以決定在效能不再改良時何時停止迭代的實例結構。實例代理ID6_110部分地負責預測/推斷由實例壓縮環境執行器電路系統ID6_116耗用的逐層混合精度組態。逐層混合精度組態為用於找出經訓練神經網路之每一層的最佳組態的技術,因此推斷經加速,且維持了準確度。神經網路之訓練以全精度進行,且因此需要經由經訓練網路界定接收器電路系統ID6_108輸入經訓練神經網路。訓練涉及訓練代理。在每一迭代期間,逐層混合精度稀疏性策略預測器電路系統ID6_113探索潛在解,且在迭代結束時,逐層混合精度稀疏性策略預測器電路系統ID6_113收斂至最佳解。代理為在訓練期間再用的預測器/推斷器。經訓練代理之輸出為逐層或混合精度及/或稀疏性策略。
實例壓縮環境執行器電路系統ID6_116為執行壓縮且評估諸如準確度及失真之後壓縮量度的實例結構。實例壓縮環境執行器電路系統ID6_116自逐層混合精度稀疏性策略預測器電路系統ID6_113及自代理ID6_110接收神經網路細粒度壓縮框架(例如,實現為策略及/或特定組態)。另外,壓縮環境執行器電路系統ID6_116產生硬體特定執行圖以用於硬體效能評估。硬體特定執行圖提供關於潛時、輸送量及/或功率之回饋。此外,實例壓縮環境執行器電路系統ID6_116將關於壓縮後準確度及網路動態觀測之回饋提供至代理ID6_110。實例壓縮環境執行器電路系統ID6_116亦通訊地連接至實例HW可執行碼ID6_118 (例如,目標硬體或軟體模擬器)以執行壓縮及評估後壓縮量度。
實例準確度/網路狀態檢查器電路系統ID6_114為檢查準確度及神經網路之狀態的實例結構。準確度/網路狀態檢查器電路系統ID6_114將值(例如,由使用者輸入,臨限值及/或預定值)與準確度及神經網路之狀態進行比較,以判定其是否已達到預界定臨限值(例如,由使用者輸入及/或預定值判定)。準確度/網路狀態檢查器電路系統ID6_114充當代理ID6_110學習之樣本。比較之結果可判定是需要進行改變(例如,調整權重)還是使用/釋放所得值/模型。準確度/網路狀態檢查器電路系統ID6_114之輸出儲存於經驗重放緩衝器電路系統ID6_112中。
實例HW可執行碼ID6_118為自壓縮環境執行器電路系統ID6_116取得結果,且發送來自硬體特定執行圖之結果以用於硬體效能評估並將其發送至實例硬體效能評估器電路系統ID6_124的實例結構。
實例硬體效能評估器電路系統ID6_124為評估實例代理ID6_110之所預測策略之效能的實例結構。實例硬體效能評估器電路系統ID6_124可為模擬模型(例如,統計的)或其可為將硬體映射圖部署於真實目標硬體上之分析應用程式。實例硬體效能評估器電路系統ID6_124亦將效能回饋及硬體特定動態觀測發送至代理ID6_110。
實例硬體結果發送器電路系統ID6_120為自實例硬體效能評估器電路系統ID6_124接收評估且將諸如潛時、輸送量及功率之硬體量度發送至代理ID6_110的實例結構。
實例網路輸出器電路系統ID6_122為在目標硬體上輸出稀疏及/或混合精度網路可部署模型的實例結構。實例網路輸出器電路系統ID6_122輸出具有逐層組態之壓縮網路及特定針對於目標硬體之壓縮網路。來自實例網路輸出器電路系統ID6_122之所得實例最佳壓縮可用於目標硬體上運行之應用程式中。實例網路輸出器電路系統ID6_122發送致使壓縮環境執行器電路系統ID6_116以最小準確度影響實現壓縮目標之輸出。
圖ID6_1B說明實例壓縮技術。左側說明完整經訓練NN ID6_126,其具有節點之全連接網路。在圖ID6_1B之所說明實例中,節點表示為圓形且權重表示為各別圓形之間的線。完整經訓練NN ID6_126經歷細粒度/逐層/每層壓縮策略,其可包括逐層修剪ID6_128及/或逐層量化ID6_130。實例逐層修剪ID6_128包括在不同層處變化稀疏度(例如,零之數目)。實例逐層量化ID6_130包括在不同層處變化操作位元寬度(例如,精度)。
修剪ID6_128為壓縮技術,其允許模型以較大NN (例如,具有較多層之NN)開始並移除權重及/或節點以減小經訓練模型之大小,從而使其較易於分佈(例如,需要相對較小頻寬)且最小化準確度及效能損耗。修剪方法包括逐層修剪,其允許在每一層處修剪連接(例如,權重)及神經元(例如,中間輸入/特徵),以增大準確度及效能並降低大小及輸出結果的時間。修剪權重之實例可包括將個別參數設定成零及使網路稀疏。此將降低模型中之參數數目,同時使架構保持不變。修剪節點之實例可包括自網路移除整個節點。此將使NN架構自身較小,同時旨在保持初始較大網路之準確度。
量化ID6_130為將全精度轉換成較低精度之壓縮技術。量化產生雜訊,其中雜訊指由於給定精度之有限解析度而由捨入引起的失真。例如,若使用2個位元來表示範圍介於0與1之間的值,則最簡單的表示方式為使用00、01、10、11二進位來均勻地表示該範圍(例如,(0.25、0.5、0.75、1))。區間之間的任何給定值將捨入至最接近值。例如,0.89將捨入為1且表示為11,該值存在0.11之失真。如所描述,量化產生雜訊且使原始神經網路失真,並導致準確度降級。為了避開該問題,以非均勻方式量化神經網路層,此係因為一些層對失真較敏感。
修剪及量化二者皆為NN之主要「壓縮」技術。壓縮技術可引起HW無關及HW相依性模型壓縮。HW無關模型壓縮結果包括模型儲存大小及/或運行時間,記憶體佔據面積/頻寬。HW無關模型壓縮並不取決於定製HW,但一些壓縮技術提供需要一或多個特定架構執行具有高輸送量及/或低潛時之經修剪及/或經量化模型的HW相依性結果。HW相依性模型壓縮改良取決於HW之結構的特定HW運算。
圖ID6_1C為壓縮框架之另一實例。此僅為一或多個代理可如何進行預測之一個實例,然而,存在實現此任務及其他任務之許多其他方法。代理ID6_131一次針對一個、多個或所有層預測修剪/量化。可以符合圖ID6_1A之實例代理ID6_110的方式實施代理ID6_131。此實例壓縮技術展示遍歷目標模型ID6_138中之每一層{t 0……t n}的實例代理ID6_131。在每一層量化器ID6_140、ID6_142、ID6_144處量化目標模型ID6_138且鑒於層之狀態進行預測。除了來自實例經驗緩衝器ID6_134之樣本之外,實例代理控制器ID6_132 (例如,深度確定性策略梯度(DDPG)、一種類型的深度加強學習演算法)收集並儲存來自目標模型ID6_138之樣本。經驗緩衝器ID6_134儲存獨立地分佈之資料以打破行為之任何時間相關性,並在其許多先前狀態上分佈/平均資料以避免模型中之振盪或發散。代理控制器ID6_132自經驗重放緩衝器ID6_134取樣經驗並使用樣本來訓練NN。來自量化環境ID6_148之回饋包括準確度、模型大小、層失真,且來自硬體評估器ID6_150之回饋包括潛時、輸送量及/或功率,其皆被同化以提供混合精度ID6_147之「良好度」(例如,產生最佳解)量度。此等獎勵連同其他屬性經保存至經驗緩衝器。獎勵函數ID6_136向結果(例如,準確度、模型大小、層、潛時、輸送量、功率)提供獎勵或更多值,該等結果輸出具有較高準確度、準確模型大小、較低功率消耗、較高效能等之結果及/或達到由使用者設定及/或儲存器中預設之特定目標。代理ID6_131自目標模型ID6_138擷取及/或以其他方式獲得經量化資料ID6_147之樣本。代理ID6_131使用來自緩衝器的經量化資料ID6_147之樣本且使用樣本更改其網路(例如,更改、改變、改良)。在一些實例中,藉由不同量值應用更改,此取決於例如程序或模型已執行之迭代或時期數目。諸如在不存在可用資料時的早期迭代例項將涉及參數調整之相對較大量值變化。然而,隨著迭代增大,模型化工作之結果(例如,增益/損耗函數)可產生相對較接近地面真值之值或後續迭代期間之結果可相對較小。在此類情形中,更改可相對較小及/或以其他方式與計算值自一個迭代至下一迭代的變化量成比例。代理ID6_131接著遍歷通過量化器ID8_138以藉由執行其網路推斷精度。經量化資料ID6_147包括將來自較大集合(例如,連續資料集)的輸入值映射至常常具有有限數目個元素之較小集合中的輸出值。此可使用捨入及/或捨位或任何其他方法來實施。量化環境ID6_148之結果可經發送回至代理ID6_131,接著在彼處針對準確度、模型大小及層失真ID6_152評估結果。若待在特定硬體上實施結果,則量化環境ID6_148之結果亦可發送至硬體評估器ID6_150。來自目標模型ID6_138之所得資料可經實施用於硬體(例如,VPU (int8/4/2/1)、FPGA、CPU+GPU)。接著針對潛時、輸送量及功率ID6_154評估硬體並將評估發送回至代理ID6_131,在彼處可將評估應用於獎勵函數ID6_136。此實例壓縮技術可應用於用於不同任務諸如(例如,物件偵測、文字至語音合成、推薦系統)及不同硬體(例如,VPU (int8/4/2/1)、FPGA、CPU+GPU)的不同神經網路。
圖ID6_2為包括可經執行以針對具有不同要求之三個實例客戶實施用於模型壓縮方法之搜尋流程的結構及機器可讀指令之框架ID6_200的實例。圖ID6_2之實例結構對應於圖ID6_1A中所揭露之實例。然而,此類實例經調適用於每一客戶A ID6_302、客戶B ID6_304、客戶C ID6_306 (參見圖ID6_3,下文進一步詳細論述),其分別對應於代理A ID6_202、代理B ID6_208、代理C ID6_214。
實例代理A ID6_202為上文所揭露代理ID6_110之實例,其與客戶A ID6_302之要求相關聯及/或以其他方式服務於該等要求。代理A ID6_202之要求包括物件偵測工作負載、VPU (Int8/4/2/1)目標硬體及2倍潛時改良與±1%準確度目標。實例VPU (Int8/4/2/1,稀疏運算) ID6_204為用於客戶A ID6_302之實例硬體效能評估器電路系統ID6_124的實例結構。
實例代理B ID6_206為上文所揭露代理ID6_110之實例,其與客戶B ID6_304之要求相關聯及/或以其他方式服務於該等要求。實例代理B ID6_206之要求包括文字至語音合成工作負載、FPGA目標硬體及50%之原始模型大小、±3%準確度影響。實例FPGA (Int X) ID6_208為用於客戶B ID6_304之硬體效能評估器電路系統ID6_124的實例結構。
實例代理C ID6_210為上文所揭露代理ID6_110之實例,其與客戶C ID6_306之要求相關聯及/或以其他方式服務於該等要求。代理C ID6_210之要求包括推薦系統工作負載、CPU+GPU目標硬體及30%稀疏Int8嵌入、±1%準確度影響。實例CPU (FP32、BF16、INT X) ID6_212為用於客戶C ID6_306之硬體效能評估器電路系統ID6_124的實例結構。
實例GPU (FP16,稀疏運算) ID6_214為用於客戶C ID6_306之硬體效能評估器電路系統ID6_124的實例結構。大體而言,圖ID6_2之所說明實例說明需要代理初始化之傳統代理技術、涉及代理學習/訓練之處理,及在新客戶請求評估任務之情況下的完整代理重新初始化及學習。換言之,本文中所揭露之實例在移動至一或多個額外或替代工作負載或目標網路訓練任務時保留了代理訓練之益處,藉此節省運算資源且節省時間以找出最佳組態。
圖ID6_3為具有不同要求之三個客戶的實例。實例客戶A ID6_302為具有對應於代理A ID6_202之要求的客戶之實例,要求包括物件偵測工作負載、VPU (Int8/4/2/1)目標硬體及2倍潛時改良與±1%準確度目標。實例客戶B ID6_304為具有對應於代理B ID6_206之要求的客戶之實例,要求包括文字至語音合成工作負載,FPGA目標硬體及50%之原始模型大小、±3%準確度影響。實例客戶C ID6_306為具有對應於代理C ID6_210之要求的客戶的實例,要求包括推薦系統工作負載,CPU+GPU目標硬體及30%稀疏Int8嵌入、±1%準確度影響。
圖ID6_4為在使用本文中所揭露之可縮放模型壓縮技術之後的生產力改良之實例。圖ID6_4之所說明實例包括第一實例A ID6_402,以說明使用並不涉及用於最佳平台專業化之可縮放模型壓縮方法的常規神經網路方法訓練三個代理將花費的總時間。三個學習代理包括第一學習代理ID6_404、第二學習代理ID6_406及第三學習代理ID6_408,其皆表示需要訓練模型之三個不同實例客戶。實例三個學習代理(ID6_404、ID6_406及ID6_408)皆係個別地從頭開始產生的。換言之,實例A之熟練代理以預設特性(例如,設定、值、參數等)開始其執行任務。在此情況下,總搜尋時間ID6_410為每一學習代理之執行的總和之函數。換言之,由於學習代理訓練程序之串列本質及傳統技術並未實現先前訓練工作對後續代理組態之益處的實情,訓練一或多個模型可能花費相同時間量或更多時間。
圖ID6_4之所說明實例包括第二實例B ID6_412,以說明使用本文中所揭露之實例訓練七個模型(例如,每一模型具有至少一個對應代理)將花費的總時間。亦即,實例B ID6_412說明用於平台專業化的可縮放模型壓縮方法。實例七個可再用代理包括第一可再用代理ID6_416、可再用熟練代理ID6_418、第三可再用代理ID6_420、第四可再用代理ID6_422、第五可再用代理ID6_424、第六可再用代理ID6_426及第七可再用代理ID6_428。此等實例七個可再用代理對應於需要訓練模型之七個不同客戶。在實例第一可再用代理ID6_416之第一迭代中,總搜尋時間值ID6_430花費最長相對時間量來訓練模型。在實例第二可再用代理ID6_418之第二迭代中,總搜尋時間值ID6_430花費比實例第一可再用代理ID6_416花費的時間少的時間來訓練模型。對於以下可再用代理:實例第三可再用代理ID6_420、實例第四可再用代理ID6_422、實例第五可再用代理ID6_424、實例第六可再用代理ID6_426及實例第七可再用代理ID6_428,其將花費比實例第一學習代理ID6_416及實例第二學習代理ID6_418花費的時間少的時間來訓練模型。特定而言,前述改良係藉由以下實情實現及/或以其他方式引起:經調用及/或以其他方式指派有任務(例如,模型化任務)的每一後續代理並不自零組態基態開始。
比較第一實例A ID6_402與第二實例B ID6_412,實例B ID6_412存在明顯優勢,其中給定處理時間/交付週期內之經壓縮模型的遞送規模展示了為大規模客戶(或定製模型)及硬體平台找出最佳壓縮策略之時間改良。如上文所描述,代替在每一情況下從頭開始學習,本文中所揭露之實例使得學習代理能夠隨時間推移變得更高效且花費較少時間來訓練模型。找出用於新任務之最佳策略的時間較快且對於各種客戶及其多樣要求更具可縮放性。本文中所揭露之實例係經由支援所有類型之神經網路運算子及平台(邊緣)架構的一般化學習架構實施。本文中所揭露之實例係經由一或多個學習代理之轉移學習實施。在一些實例中,此係經由中心經驗資料庫進行知識累積而實施。
若存在在任何給定時間僅可運行一個項目之約束條件,則使用可縮放模型壓縮方法實現最佳平台專業化存在明顯優勢。因為項目係依序執行的,所以每一項目之運行時間較短,則效率及速度得到改良。換言之,每一項目將需要較少資源來完成。對於同一固定量之時間及運算資源,相比於習知技術可完成相對較大數目個項目(不管是串行還是並行實施)。
圖ID6_5為用於經改良平台專業化之實例可縮放模型壓縮技術的一般化代理架構ID6_500的實例。本文中所揭露之實例使得熟練代理對於任務(例如,滿足輸入目標及約束條件的壓縮任務(逐層修剪及/或量化))能夠實現可轉移性。學習代理具有關於神經網路運算子之壓縮決策如何影響準確度及效能的內部表示(例如,數學函數)。內部表示為將輸入變數映射至共同情境量度(例如,值集)之數學函數(例如,公式)。因此,本文中所揭露之實例再用代理以節省對不大可能動作空間(組態)之運算探索工作。本文中所揭露之實例任擇地曝露一或多個調整鈕以促進選擇及/或調整可選選項。調整鈕可包括可操作壓縮之決策或代理預測之輸出。關於量化,調整鈕可包括精度目標變化(例如,int8、int4、int1等)、量化類型變化(例如,每通道、每張量)、仿射或非均勻量化之變化。關於精度,調整鈕可包括重要性方法類型及/或粒度類型(例如,細粒度、向量級、核心級)。可由例如使用者及/或代理選擇調整鈕。代理調整鈕調整可以獨立於使用者之自動方式發生以努力識別一或多個特定經最佳化調整鈕設定。
例如,代理可學習到全連接(FC)層相比卷積層(例如,較多FC層)造成較多冗餘。然而,代理亦將學習到可壓縮性亦係由FC層之特定位置判定,此係因為網路之不同部分處的失真可不同地使準確度降級。當混合精度運算不可用時,代理學習為更積極地進行修剪,此係因為其為經由記憶體節省改良效能之唯一方式。作為實例,代理學習變數之複雜互相作用。在本文中之一些實例中,變數可包括影響網路之可壓縮性的因素,包括運算子類型(例如,FC、卷積層、嵌入等)。在本文中之一些實例中,變數可包括運算子之下一級屬性,包括運算子之位置、運算子之間的連接性、由目標網路使用之資料集大小及/或硬體屬性。本文中所揭露之實例保留先前知識以幫助代理在其再用於另一(例如,類似)網路架構及平台目標時決定可能解。
並不強制實施關於互動、策略或價值網路之特定或預定架構,因為本文中所揭露之實例實現了存在可高效地完成任務之許多不同拓樸。實際上,本文中所揭露之實例促進基於所觀測迭代選擇最佳拓樸,同時網路收斂至任務之最佳解。
在圖ID6_5之所說明實例中,實例模型輸入器ID6_502為接收輸入模型(例如,自使用者、自儲存器)的實例結構。實例目標HW輸入器ID6_504為接收目標HW資訊(例如,自使用者)的實例結構。實例可壓縮運算嵌入器ID6_506為採用代理架構中之嵌入層以將受壓縮模型映射至潛在空間表示(向量)的實例結構。例如,可壓縮運算嵌入器ID6_506將任意輸入網路運算子映射至共同維度(固定長度)之向量(值集),該向量相對於輸出空間(例如,抽象空間、潛在空間)在情境上繪製不同輸入之間的相關性。此函數並非已知的或無法在分析上導出,且該函數係使用機器學習程序(例如,深度學習)訓練的。
在一些實例中,每一可壓縮運算經轉譯為獨熱/多熱編碼。此等嵌入將在由代理執行的加強學習運算期間習得。因為所習得嵌入經獨熱/多熱編碼,所以其可經再用(例如,再用於新目標網路上)及擴展(例如,運算子內部表示之新添加)。實例獨熱編碼包括在如[0,1,0,0,0]之實例五維向量中表示物件(例如,「汽車」)之存在。實例多熱編碼亦包括第一標記編碼類別,因此具有表示類別之存在的僅單一數字(例如,1用於「汽車」),且接著將數值標記轉換成大小為[log 25] = 3之二進位向量(例如,「電腦」= [0,0,0],「汽車」= [0,0,1],「電話」= [0,1,0])。可在任何最佳化目標集合上再用及擴展獨熱/多熱編碼。
實例運算潛在表示器ID6_516為正規化可壓縮運算嵌入器ID6_506之實例結構。正規化可壓縮運算嵌入器ID6_506之至少一個優勢為不管輸入之大小如何,其皆產生相同大小之經正規化向量,使得向量可再用於其他迭代及其他客戶。
實例平台嵌入器ID6_508為嵌入代理架構中之層以將平台屬性映射至潛在空間表示(向量)的實例結構。每一可壓縮運算為可映射於混合精度/稀疏HW上之層且經轉譯為獨熱/多熱編碼。諸如CPU、VPU、GPU、FPGA、SKU等能力類型之類別HW屬性亦以類似方式經編碼。此等嵌入將在由代理進行的加強學習運算期間習得。因為其經獨熱/多熱編碼,所以可在任何目標硬體上再用及擴展所習得嵌入。
實例HW潛在表示器ID6_518為正規化平台嵌入器ID6_508之實例結構。正規化平台嵌入器ID6_508之優勢為不管輸入之大小如何,其皆產生相同大小之經正規化向量,使得向量可再用於其他迭代及其他客戶。
實例靜態屬性器ID6_510為具有實值數量之實例結構,該等實值數量可包括(例如,儲存)運算子超參數(例如,卷積核心大小、步幅、輸入特徵圖大小)及硬體屬性(例如,處理元件數目、快取記憶體大小)。靜態屬性器ID6_510為受壓縮模型之屬性及輸入目標硬體之特性的直接表示,該等屬性及特性在搜尋/加強學習流程之壽命期間係靜態的。靜態屬性器ID6_510為包括此等超參數(例如,屬性、特性)之記憶體(例如,儲存器)。
實例動態觀測器ID6_512為具有實值數量之實例結構,該等實值數量可為指示探索策略之狀態(例如,每運算子之壓縮失真、壓縮預算、相對準確度)的數量。動態特徵通常為來自壓縮環境及硬體評估器之回饋。
實例經正規化密集特徵表示器ID6_520為正規化靜態屬性器ID6_510及動態觀測器ID6_512的實例結構。正規化靜態屬性器ID6_510及動態觀測器ID6_512的優勢為不管資料之大小如何,其皆產生相同大小之經正規化向量,使得向量可再用於其他迭代及其他客戶。
實例壓縮環境/硬體評估器ID6_514為評估自壓縮環境執行器電路系統ID6_116發送之資訊的實例結構。
實例互動網路組合器ID6_522為訓練神經網路以擷取以下之間的非線性關係之實例結構:(a)實例運算潛在表示器ID6_516,(b)實例HW潛在表示器ID6_518及(c)實例經正規化密集特徵表示器ID6_520。
實例策略網路輸出器ID6_524為輸出用於策略網路之互動網路且調用行為評論演算法加強學習網路的實例結構。策略網路輸出器ID6_524學習對應於其必須預測之狀態的機率分佈。在一些實例中,策略網路輸出器ID6_524可經參考為正向傳遞或推斷。在一些實例中,策略網路輸出器ID6_524將使用熟練代理查看某一資料片段,且由於學習機率分佈,策略網路決定需要進行何種壓縮或修剪。在一些實例中,輸出對應於壓縮決策。如ID6_1C中所示,在目標網路ID6_138中之每一t = 0……t = n處,將執行策略網路輸出器ID6_524與圖ID6_5中之結構的組合且將獲得決策。在t = n處完成,從而產生完整壓縮策略ID6_147。為了實施此策略,使用量化執行器ID6_148。量化執行器ID6_148為圖ID6_1A中之壓縮環境執行器電路系統ID6_116的實例。實例量化執行器ID6_148取得壓縮策略且對目標網路執行壓縮(例如,減少權重),且因此使用策略網路輸出器ID6_524輸出策略網路ID6_524。
實例價值網路輸出器ID6_526為輸出用於價值網路之互動網路且展現行為評論演算法加強學習網路的實例結構。在一些實例中,價值網路為將當前狀態(例如,互動網路組合器ID6_522之輸出)及/或下一動作(策略網路輸出器ID6_524之輸出)映射至良好度量度之神經網路。
價值網路輸出器ID6_526在其處於給定狀態時預測熟練代理的值。在一些實例中,價值網路輸出器ID6_526預測熟練代理可採取之動作的值。可進行預測以決定策略之當前預測之狀態。可進行預測以決定處於某一狀態是否有利。由於此網路之輸入及輸出無維數變化,價值網路ID6_526可經再用,且因此受壓縮類似目標網路的值之相關性經載送並保留至新任務及/或項目。
圖ID6_6為本文中所揭露之轉移學習技術的實例,該技術再用對應於具有不同要求之客戶的資料以產生用於最佳平台專業化之可縮放模型壓縮方法。如本文中所使用,機器學習之轉移學習意謂針對一任務開發之模型經再用為第二或後續任務上之模型的起點。再用資料及/或網路之優勢包括允許再用,且此網路之輸入及輸出無維數變化。因此,對於後續任務及/或用戶端,不必再次加以學習。此外,受壓縮類似目標網路的值之相關性經載送及/或保留至新任務及/或新用戶端。
圖ID6_6為與圖ID6_2相同之圖式,然而,其經由再用ID6_610及再用ID6_612之使用表明,熟練代理可再用於具有不同工作負載、不同硬體目標及/或不同目標之未來客戶。大體而言,即使在具有廣泛不同任務之客戶的情況下,每一模型及熟練代理仍存在可再用之一些價值。因此,本文中所揭露之實例改良代理探索活動中之運算效率(例如,時間節省)。
實例再用ID6_610為展示代理B ID6_604如何能夠再用來自代理A ID6_602之至少一些資料的實例說明。再用之含義為(1)嵌入及網路(互動、策略、值)載入有先前任務中之經預訓練版本,及(2)其各別參數將在即將到來的特定任務之迭代循環期間經調整。此「調整」程序亦可稱為微調。
實例再用ID6_612為展示代理C ID6_606如何能夠再用來自代理B ID6_604之至少一些資料的實例說明,代理B已具有來自代理A ID6_602之資料。再用之含義為(1)嵌入及網路(互動、策略、值)載入有先前任務中之經預訓練版本,及(2)其各別參數將在即將到來的特定任務之迭代循環期間經調整。此調整程序亦可稱為微調。
代理A ID6_602為經由第一加強學習迭代循環取得且收斂至(對應於VPU之模型收斂至)客戶A ID6_302目標的實例結構。在後續迭代(例如,第2、第3、第4等)期間,所習得代理(例如,第一迭代之後的代理A ID6_602)在後續迭代期間經再用為諸如客戶B ID6_304及/或客戶C ID6_306之任何以下任務的起點。
圖ID6_7為用以經由中心資料庫累積知識的框架之實例。深度加強學習中之轉移學習可能會受到過度擬合代理限制。在策略搜尋之每一情況期間,受壓縮模型限於網路運算子集合。例如,推薦模型很可能使用全連接層及嵌入但很少使用卷積。硬體屬性及密集特徵亦局域化至預期平台。本端經驗重放緩衝器電路系統ID6_112中缺乏經驗多樣性(每網路運算子、每硬體、每目標)會使得代理記住最近獎勵動作而忘記先前學習。發生此情況係因為代理更新程序僅自不包含先前策略搜尋之記憶的本端重放緩衝器取樣。此類似於分類問題中普遍存在的不平衡類別問題,其中模型偏向具有較多樣本之類別。此問題妨礙可轉移性,其中經預訓練代理很可能作用於類似目標模型及類似硬體目標。
神經網路架構中之新運算子及新平台係不可避免的。經獨熱/多熱編碼(如圖ID6_5中所描述)嵌入設計允許擴展至新運算子及新平台。本質上,新運算子或新平台為在嵌入中添加維度及條目(例如,新/替代向量)。可相應地標註現有運算子之維度。整體潛在問題包括(1)過度擬合至最近任務及目標以及對壓縮動作之記憶,及(2)一般化至新網路運算子及硬體平台。經由如圖ID6_7所示之中心經驗資料庫ID6_712進行知識累積解決了此等潛在問題。
在圖ID6_7之所說明實例中,實例代理ID6_704為具有與代理ID6_119相同之功能的實例結構,該代理ID6_119採取動作以學習及最佳化模型壓縮方法以用於最佳平台專業化。在一些實例中,實例代理ID6_704在實施於圖ID6_5的一般化架構中時係可縮放的。實例逐層混合精度/稀疏性策略預測器ID6_702為具有與圖ID6_1A之逐層混合精度/稀疏性策略預測器電路系統ID6_113相同之功能的實例結構,該電路系統自代理ID6_110取得預測且檢查差量變化(例如,變化為增大還是降低)以作出決定(例如,在效能不再改良時何時停止迭代)。
實例壓縮環境執行器ID6_706為具有與圖ID6_1A之壓縮環境執行器電路系統ID6_116相同之功能的實例結構,該電路系統執行壓縮且評估諸如準確度及失真之後壓縮量度以判定是否應進行其他調整。輸出經由經驗重放緩衝器ID6_710或中心經驗資料庫ID^_712饋送回至代理ID6_704。ID6_1A之實例準確度/網路狀態檢查器ID6_708為具有與ID6_1A之準確度/網路狀態檢查器電路系統ID6_114相同之功能的實例結構,該電路系統檢查準確度及神經網路之狀態以判定是否應進行其他調整。ID6_1A之實例準確度/網路狀態檢查器ID6_708為至圖ID6_512之動態觀測器的輸入。實例經驗重放緩衝器ID6_710為具有與經驗重放緩衝器電路系統ID6_112相同之功能的實例結構,該電路系統包含來自先前迭代之資料。經驗重放緩衝器ID6_710包含經保存以證實代理ID6_704之訓練的歷史策略、獎勵、來自壓縮環境及硬體評估器之回饋。
實例中心經驗資料庫ID6_712為作為跨越大部分(若非全部)先前學習之歷史經驗的儲存庫的實例結構。知識累積之概念為藉由線上或離線方法訓練之代理隨時間推移在大量多導向、多目標經驗中逐漸地加以實踐。實例中心經驗資料庫ID6_712擷取所探索壓縮策略、其對應嵌入、密集特徵、觀測、獎勵計分、硬體效能等。此資料庫之關鍵目的為在代理ID6_704訓練期間提供經驗多樣性。將中心經驗資料庫ID6_712應用至壓縮策略經由先前論述之方法幫助防止代理ID6_704之過度擬合。此可經由以下實例機制/技術完成。
線上經驗擴增為在代理ID6_704訓練期間提供經驗多樣性之實例機制/技術。在每一代理ID6_704更新(正向及反向傳遞)期間,藉由與網路運算子之涵蓋範圍、硬體特徵、獎勵成比例地進行取樣提供來自本端重放緩衝器及中心經驗資料庫之經驗混合物。多樣性及資料大小增大大體上產生穩健網路。
離線代理微調為在代理ID6_704訓練期間提供經驗多樣性之實例機制/技術。若經預訓練代理表現不佳,則其可任擇地微調代理,如同受監督機器學習正使用中心經驗資料庫ID6_712一般。實例硬體效能評估器ID6_714為具有與硬體效能評估器電路系統ID6_124相同之功能的實例結構,該電路系統評估代理ID6_110所預測策略之效能。實例硬體結果發送器ID6_716為具有與硬體結果發送器電路系統ID6_120相同之功能的實例結構,該電路系統自硬體效能評估器電路系統ID6_124接收評估且將諸如潛時、輸送量及功率之硬體量度發送至代理ID6_110。
自前述內容,將瞭解,已揭露藉由自動化收斂且以較短處理時間搜尋經最佳化用於給定神經網路、目標準確度及效能之壓縮組態來改良使用運算裝置之效率的實例方法、系統、設備及製品。另外,本文中所揭露之實例允許使用者較快地進行縮放且動態地轉換其定製網路拓樸或變體以跨越硬體平台實現專業化。此外,對於在任何給定時間只能運行一個作業之項目存在明顯優勢,此係因為較短運行時間將實現更高效且更快的結果。因此,所揭露之方法、設備及製品係針對電腦運行的一或多個改良。
在一些實例中,輸入接收器電路系統ID6_102包括用於硬體目標接收之構件、用於訓練資料集接收之構件及用於網路界定接收之構件。實例亦包括用於策略預測之構件、用於經驗重放緩衝之構件、用於壓縮執行之構件、用於狀態檢查之構件、用於網路輸出之構件、用於硬體效能評估之構件及用於結果發送之構件。例如,用於硬體目標接收之構件可由自動化HW目標接收器電路系統ID6_104實施,用於訓練資料集接收之構件可由訓練資料集接收器電路系統ID6_106實施,用於網路界定接收之構件可由經訓練網路界定接收器電路系統ID6_108實施,用於策略預測之構件可由逐層混合精度/稀疏性策略預測器電路系統ID6_113實施,用於經驗重放緩衝之構件可由經驗重放緩衝器電路系統ID6_112實施,用於壓縮執行之構件可由壓縮環境執行器電路系統ID6_116實施,用於狀態檢查之構件可由準確度/網路狀態檢查器電路系統ID6_114實施,用於網路輸出之構件可由網路輸出器電路系統ID6_122實施,用於硬體效能評估之構件可由硬體效能評估器電路系統ID6_124實施,且用於結果發送之構件可由硬體結果發送器電路系統ID6_120實施。在一些實例中,前述結構可由本文中所揭露且由處理器電路系統執行之機器可執行指令實施,該處理器電路系統可由圖D2之實例處理器電路系統D212及/或實例現場可程式化閘陣列(FPGA)電路系統、其他硬體邏輯電路系統、硬體實施之狀態機,及/或硬體、軟體及/或韌體之任何其他組合實施。例如,前述結構可由經構造以在不執行軟體或韌體之情況下執行對應操作的至少一或多個硬體電路(例如,處理器電路系統、離散及/或整合式類比及/或數位電路系統、FPGA、特殊應用積體電路(ASIC)、比較器、運算放大器(op-amp)、邏輯電路等)實施,但其他結構同樣係適當的。
以下實例提供上文識別之所揭露實例的其他變型。
本文中揭露用以最佳化邊緣網路中之資源的實例方法、設備、系統及製品。其他實例及其組合包括以下:實例95包括一種設備,其包含:中央處理單元、圖形處理單元或數位信號處理器中之至少一者,中央處理單元、圖形處理單元或數位信號處理器中之該至少一者具有用以控制處理器電路系統內之資料移動的控制電路系統、用以執行對應於指令之一或多個第一操作的算術及邏輯電路系統及用以儲存一或多個第一操作之結果、設備中之指令的一或多個暫存器;現場可程式化閘陣列(FPGA),該FPGA包括邏輯閘電路系統、複數個可組配互連及儲存電路系統,邏輯閘電路系統及互連用以執行一或多個第二操作,儲存電路系統用以儲存一或多個第二操作之結果;或特殊應用積體電路系統,其包括用以執行一或多個第三操作之邏輯閘電路系統,處理器電路系統用以進行以下中之至少一者:執行第一操作、第二操作或第三操作中之至少一者以:計算用於要在第一硬體上執行之第一模型的第一壓縮策略,第一壓縮策略包括對應於第一模型之各別層的第一壓縮預測;比較第一壓縮策略之效能量度與相關聯於第一模型之第一模型參數;當效能量度滿足效能臨限值時釋放對應於第一壓縮策略之第一經壓縮模型;及回應於擷取要在第二硬體上執行之第二模型,基於對應於第一模型之各別層的第一壓縮預測計算第二壓縮策略。
實例96包括如實例95中所界定之設備,其中處理器電路系統用以應用深度加強學習演算法、貝氏最佳化演算法或演進式演算法中之至少一者。
實例97包括如實例95中所界定之設備,其中處理器電路系統用以藉由獎勵函數對第一壓縮預測之輸出進行迭代,獎勵函數係基於第一模型效能參數。
實例98包括如實例95中所界定之設備,其中第一壓縮策略係基於修剪第一模型之層或量化第一模型中之至少一者。
實例99包括如實例95中所界定之設備,其中處理器電路系統用以藉由在初始模型化迭代期間執行具有對應於第一經壓縮模型之模型參數的代理而減少模型壓縮最佳化持續時間。
實例100包括如實例99中所界定之設備,其中處理器電路系統用以基於圖形處理單元目標、中央處理單元目標或現場可程式化閘陣列目標中之至少一者進行最佳化。
實例101包括至少一種非暫時性電腦可讀儲存媒體,其包含當經執行時致使至少一個處理器至少進行以下操作之指令:計算用於要在第一硬體上執行之第一模型的第一壓縮策略,第一壓縮策略包括對應於第一模型之各別層的第一壓縮預測;比較第一壓縮策略之效能量度與相關聯於第一模型之第一模型參數;當效能量度滿足效能臨限值時釋放對應於第一壓縮策略之第一經壓縮模型;及回應於擷取要在第二硬體上執行之第二模型,基於對應於第一模型之各別層的第一壓縮預測計算第二壓縮策略。
實例102包括如實例101中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器應用深度加強學習演算法、貝氏最佳化演算法或演進式演算法中之至少一者。
實例103包括如實例101中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器藉由獎勵函數對第一壓縮預測之輸出進行迭代,獎勵函數係基於第一模型效能參數。
實例104包括如實例101中所界定之至少一種電腦可讀儲存媒體,其中第一壓縮策略係基於修剪第一模型之層或量化第一模型中之至少一者。
實例105包括如實例101中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器藉由在初始模型化迭代期間執行具有對應於第一經壓縮模型之模型參數的代理而減少模型壓縮最佳化持續時間。
實例106包括如實例105中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器基於圖形處理單元目標、中央處理單元目標或現場可程式化閘陣列目標中之至少一者進行最佳化。
實例107包括一種方法,其包含:計算用於要在第一硬體上執行之第一模型的第一壓縮策略,第一壓縮策略包括對應於第一模型之各別層的第一壓縮預測;比較第一壓縮策略之效能量度與相關聯於第一模型之第一模型參數;當效能量度滿足效能臨限值時釋放對應於第一壓縮策略之第一經壓縮模型;及回應於擷取要在第二硬體上執行之第二模型,基於對應於第一模型之各別層的第一壓縮預測計算第二壓縮策略。
實例108包括如實例107中所界定之方法,其中計算第一壓縮策略包括應用深度加強學習演算法、貝氏最佳化演算法或演進式演算法中之至少一者。
實例109包括如實例107中所界定之方法,其中計算第一壓縮策略包括藉由獎勵函數對第一壓縮預測之輸出進行迭代,獎勵函數係基於第一模型效能參數。
實例110包括如實例107中所界定之方法,其中第一壓縮策略係基於修剪第一模型之層或量化第一模型中之至少一者。
實例111包括如實例107中所界定之方法,其中計算第二壓縮策略包括藉由在初始模型化迭代期間執行具有對應於第一經壓縮模型之模型參數的代理而減少模型壓縮最佳化持續時間。
實例112包括如實例111中所界定之方法,其中代理基於圖形處理單元目標、中央處理單元目標或現場可程式化閘陣列目標中之至少一者進行最佳化。
實例113包括一種設備,其包含:代理,該代理用以計算用於要在第一硬體上執行之第一模型的第一壓縮策略,第一壓縮策略包括對應於第一模型之各別層的第一壓縮預測;壓縮環境執行器電路系統,該電路系統用以比較第一壓縮策略之效能量度與相關聯於第一模型之第一模型參數;及準確度檢查器電路系統,該電路系統用以當效能量度滿足效能臨限值時釋放對應於第一壓縮策略之第一經壓縮模型,該代理用以回應於擷取要在第二硬體上執行之第二模型,基於對應於第一模型之各別層的第一壓縮預測計算第二壓縮策略。
實例114包括如實例113中所界定之設備,其中代理用以應用深度加強學習演算法、貝氏最佳化演算法或演進式演算法中之至少一者。
實例115包括如實例113中所界定之設備,其進一步包括經驗重放緩衝器電路系統,該電路系統用以藉由獎勵函數對第一壓縮預測之輸出進行迭代,獎勵函數係基於第一模型效能參數。
實例116包括如實例113中所界定之設備,其中第一壓縮策略係基於修剪第一模型之層或量化第一模型中之至少一者。
實例117包括如實例113中所界定之設備,其中代理用以藉由在初始模型化迭代期間執行具有對應於第一經壓縮模型之模型參數的代理之先前版本而減少模型壓縮最佳化持續時間。
實例118包括如實例117中所界定之設備,其中代理用以基於圖形處理單元目標、中央處理單元目標或現場可程式化閘陣列目標中之至少一者進行最佳化。 產生及提供最佳量化權重(ID7)
深度學習模型之量化需要決定量化何運算及如何量化。深度學習之量化為藉由耗用相對較少位元寬度之替代位元寬度表示近似最初經構造以使用第一位元寬度(例如,浮點數)的神經網路的程序。此減少使用神經網路之記憶體要求及運算成本二者。另外,此亦引起對功率要求之改良,尤其係鑒於邊緣裝置及其各種限制而言。
大體而言,由使用者決定及輸入待量化之特定運算。然而,此對於使用者而言係時間密集型的,且因為使用者選擇係藉由隨意行為(例如,「直覺」)驅動,所以此類選擇缺乏最佳效率。網路內之一些運算尤其適於量化工作以得到不同程度之成功。影響量化特定運算之決策的因素包括但不限於初始位元寬度、運算類型、與運算(例如,MatMul運算、GatherNd運算)相關聯之指令的類型,及/或指令接近於其他指令之鄰接性。本文中所揭露之實例應用加強學習以決定是否量化神經網路模型中之運算,藉此消除不正確的使用者判斷且減少模型開發時間。
現代深度學習神經網路模型具有許多可量化運算,此使得由於較大問題空間,針對每一運算手動決定是否進行量化係效率低下的。為了識別要量化之特定模型、識別要量化哪些運算及/或選擇替代位元寬度,人力可能花費例如大約4週,而本文中所揭露之實例花費例如大約10小時(或更少)。經由人力來訓練神經網路花費更多時間,此係因為其需要評估參數的運算且決定運算是否可量化。然而,產生自動化此程序之框架使得深度學習神經網路模型之量化變得更高效。另外,本文中所揭露之實例減少及/或以其他方式消除由於人類隨意選擇引起之誤差。此外,可能更難以在其中可量化運算之效能不同的不同硬體資源(CPU、GPU、加速器等)情況下求解現代深度學習神經網路模型。
在本文中所揭露之實例方法中,量化係使用分組實現,其中具有類似量化運算之鄰近或類似運算可經分組為較大區塊且可經共同地量化。
量化亦用作自伺服器(例如,具有相對較多處理能力及/或功率資源)至邊緣環境(例如,具有相對較少處理能力及/或功率資源)之神經網路移動,此係因為由於硬體限制(例如,CPU相比GPU),必需最佳化速度及大小。量化在神經網路內部用整數替換浮點。用整數替換浮點(例如,權重、最佳化權重)實現較少記憶體耗用及較快計算/運算。
圖ID7_1為用於產生及提供最佳量化權重至深度學習模型之框架ID7_100的實例示意性說明。本文中所揭露之實例可位於實例邊緣雲端之任何位置處及/或以其他方式在該任何位置處執行最佳化任務,實例邊緣雲端諸如圖A1、圖A2及圖A3之實例邊緣雲端A110。另外,本文中所揭露之實例可位於多個網路層(例如,端點層A200、邊緣裝置層A210、網路接取層A220、核心網路層A230及/或雲端資料層A240)中之任一或多者處及/或以其他方式在多個網路層中之任一或多者處執行最佳化任務。本文中所揭露之實例權重(例如,量化權重)包括由文數字字元表示之一或多個值。此類值可儲存於一或多個資料結構(例如,資料結構)中,其中實例資料結構包括整數、浮點表示及/或字元。權重及表示此類權重之對應值表示以任何方式儲存之資料。此類資料亦可沿著諸如匯流排之資料路徑自第一資料結構傳播至第二或任何數目個後續資料結構。
在圖ID7_1之所說明實例中,框架ID7_100包括量化控制器電路系統ID7_102、經量化拓樸產生器電路系統ID7_104、環境量化器電路系統ID7_106、獎勵指派器電路系統ID7_108及搜尋空間求解器電路系統ID7_110。在操作中且如下文所論述,實例框架ID7_100針對深度學習模型產生及/或以其他方式提供經改良量化權重。
一些實例包括用於量化控制之構件、用於經量化拓樸產生之構件、用於環境量化之構件、用於獎勵指派之構件及用於搜尋空間求解之構件。例如,用於量化控制之構件可由量化控制器電路系統ID7_102實施,用於經量化拓樸產生之構件可由經量化拓樸產生器電路系統ID7_104實施,用於環境量化之構件可由環境量化器電路系統ID7_106實施,用於獎勵指派之構件可由獎勵指派器電路系統ID7_108實施,用於搜尋空間求解之構件可由搜尋空間求解器電路系統ID7_110實施。在一些實例中,前述結構可由本文中所揭露且由處理器電路系統執行之機器可執行指令實施,該處理器電路系統可由圖D2之實例處理器電路系統D212及/或實例現場可程式化閘陣列(FPGA)電路系統、其他硬體邏輯電路系統、硬體實施之狀態機,及/或硬體、軟體及/或韌體之任何其他組合實施。例如,前述結構可由經構造以在不執行軟體或韌體之情況下執行對應操作的至少一或多個硬體電路(例如,處理器電路系統、離散及/或整合式類比及/或數位電路系統、FPGA、特殊應用積體電路(ASIC)、比較器、運算放大器(op-amp)、邏輯電路等)實施,但其他結構同樣係適當的。
實例量化控制器電路系統ID7_102為決定應量化何類型之運算及如何接近量化決策之結構的實例。深度學習模型(例如,神經網路)為致使處理資源引發大量運算成本及記憶體之資源密集型演算法,因此必需進行量化。量化控制器電路系統ID7_102最佳化深度學習模型之訓練及推斷,以減少(例如,最小化)成本(例如,記憶體成本、CPU成本、頻寬耗用成本、準確度權衡成本、儲存空間成本等)。當在圖A1、圖A2及/或圖A3之實例邊緣雲端A110上運行時,可存在硬體限制,此為量化具吸引力之至少一個原因。量化在網路內部用第二表示(例如,整數)替換第一表示(例如,浮點)以耗用某些硬體上之較少記憶體,藉此致使計算速度增大。
實例量化控制器電路系統ID7_102產生潛在MatMul運算候選。雖然本文中所揭露之實例參考MatMul運算,但此類實例係為方便起見而論述而非限制性的。本文中所揭露之實例運算不限於MatMul運算,且可包括卷積、Relu、concat、Conv2D、Conv3D、轉置、GatherNd等。MatMul運算為深度學習中之矩陣運算的常見實施。MatMul運算傳回二個數組之矩陣乘積。MatMul運算傳回2-D數組之正常乘積;然而,若任一引數之維度大於二,則MatMul運算經處理為駐存於最後二個索引中之矩陣堆疊。此外,具有不同形狀之數組(例如,不同大小之二個或更多個數組)可使用廣播。廣播提供向量化數組運算以用於循環的方式。一旦實例量化控制器電路系統ID7_102決定應量化何類型之運算,量化控制器電路系統ID7_102可使用來自MatMul之解。量化控制器電路系統ID7_102起始訓練以收斂至最佳解。最佳解可為來自使用者的值、使用者輸入、特定收斂臨限值及/或儲存器中的預定值。使用來自MatMul運算之解,量化控制器電路系統ID7_102亦判定哪一硬體對於深度學習模型將為最佳的及/或可在指定硬體模型上獲得哪一最佳解(例如,最佳權重至整數轉換、最佳輸入至整數轉換、最佳權重)。在一些實例中,桌上型機器中之CPU執行浮動算術之速度與整數算術一樣快,因此浮動或整數值可為最佳的。在一些實例中,桌上型機器中之GPU經最佳化為偏向單精度浮動計算,因此硬體經最佳化用於單精度浮動計算。在本文中之實例中,量化控制器電路系統ID7_102計算準確度與速度之間的權衡。當量化控制器電路系統ID7_102判定使用較接近浮點之近似值時,結果將為效能(例如,速度、功率消耗、輸送量)降低,但此會使得準確度增大。另一方面,當量化控制器電路系統ID7_102判定使用整數值時,結果將為效能(例如,速度、功率消耗、輸送量)增大,但此會使得準確度降低。鑒於目標效能量度(例如,目標FLOPS、目標/所要快取記憶體儲存、目標/所要頻率等)、實例量化控制器電路系統ID7_102計算如何量化及如何接近量化之決策。在一些實例中,應用獎勵函數(或成本函數)以鑒於計分來識別量度。
總體而言,量化控制器電路系統ID7_102在初始迭代期間產生對應於模型之基線量度;識別對應於模型之運算;產生對應於模型之搜尋空間,搜尋空間包括可經量化運算中之各別者;及產生第一量化拓樸,第一量化拓樸對應於第一搜尋策略。
量化控制器電路系統ID7_102包括實例經量化拓樸產生器電路系統ID7_104,其為用以產生經量化拓樸之結構的實例。使用運算(例如,MatMul運算),經量化拓樸產生器電路系統ID7_104利用來自量化控制器電路系統ID7_102之所輸出決策以在第一迭代中產生對最佳解(例如,最佳權重至整數轉換、最佳輸入至整數轉換、最佳權重)之猜測,且產生候選拓樸(例如,互連節點及層)。在第一迭代中,實例經量化拓樸產生器電路系統ID7_104產生對最佳硬體組態之猜測,且產生候選拓樸。在後續迭代期間,實例經量化拓樸產生器電路系統ID7_104基於觀測/獎勵計算決策且產生額外候選最佳拓樸,直至量化控制器電路系統ID7_102收斂至最佳解為止。當觀測/獎勵達到臨限值(例如,大於80%準確度,小於30秒運行時間)時,達到實例最佳解。然而,可藉由替代量度(例如,功率消耗量度、儲存器大小量度、準確度量度等)界定任何數目及/或類型之最佳解。經量化拓樸產生器電路系統ID7_104包括決定及/或以其他方式選擇如下因素:其包括但不限於初始位元寬度、運算類型、與運算相關聯之指令的類型,及/或指令接近於其他指令之鄰接性。接著,實例環境量化器電路系統ID7_106為進行量化、基準校正及測試神經網路之結構。實例環境量化器電路系統ID7_106量測任何數目個因素。一些因素之實例包括但不限於量化之準確度、速度、大小及潛時。環境量化器電路系統ID7_106藉由決定如何自浮點轉至整數來進行量化動作。環境量化器電路系統ID7_106經由任何數目個因素(例如,準確度增大/降低、量化速度、拓樸之大小及/或使用者要求等)判定此情況。環境量化器電路系統ID7_106藉由使用可用基準資料集比較神經網路之效能與其他架構(例如,藉由輸入層(例如,神經網路之初始資料)、隱藏層(例如,輸入與輸出層之間的中間層及進行所有運算之位置)及輸出層(例如,產生給定輸入之結果)之各種組合建構的神經網路)來進行基準校正動作。可使用經標記資料集或經由所產生資料集實現基準校正。經標記資料集需要具有大量經標記資料。所產生資料集具有自動經標記資料且可展示神經網路在識別微小誤差方面之優勢。所產生資料集給予模型之敏感度及複雜度的量度。實例環境量化器電路系統ID7_106藉由識別誤差及擾動來測試所產生資料集中之敏感度(例如,「極不正確」相比「不正確」相比「輕微不正確」)。較準確標記產生具有較高敏感度之神經網路。實例環境量化器電路系統ID7_106藉由增大對象(例如,資料集、資料點)數目來測試所產生資料集中之複雜度。實例環境量化器電路系統ID7_106測試神經網路以處置較大複雜度。使用經標記及/或所產生資料集,環境量化器電路系統ID7_106執行模型(例如,感興趣的NN)之基準校正。環境量化器電路系統ID7_106進行測試神經網路之動作。在一些實例中,測試神經網路涉及使用訓練資料集以判定神經網路是否輸出已知最佳解。測試神經網路包括調諧模型之超參數(例如,神經網路中之隱藏單元數目-層及層寬度)。在一些實例中,測試神經網路用於藉由提前停止進行正則化(例如,在資料集上之誤差增大時,其指示過度擬合至訓練資料集,停止訓練)。因此,實例環境量化器電路系統ID7_106進行量化、基準校正及測試網路之動作。
實例環境量化器電路系統ID7_106包括實例獎勵指派器電路系統ID7_108,其為用於進行觀測且將獎勵指派至動作(例如,量化精度之不同排列、運算之不同組合分組、「嘗試」之不同排列等)的實例結構。獎勵指派器電路系統ID7_108取得量化器電路系統ID7_106之輸出(例如,量化動作之準確度、速度、大小及潛時),且判定與量化器電路系統ID7_106之輸出相關聯的動作的值(例如,較高準確度指派較高獎勵值,較低速度指派較高獎勵值等)。環境量化器電路系統ID7_106輸出之結果不存在正或負加強之回饋。在神經網路中指派獎勵使得能夠追蹤獎勵及採取動作(例如,量化精度之不同排列、運算之不同組合分組)之後的所得狀態。因此,具有較高獎勵量之動作具有積極的結果且應重複類似動作以獲得較高結果。指派獎勵係藉由將獎勵值添加至預界定動作或量度來實現。獎勵值可由使用者、使用者輸入、儲存器中之預定值及/或儲存或輸入獎勵值之其他方式預界定。在一些實例中,使用者指派之動作或量度為系統之準確度及潛時。在一些實例中,使用者指派之動作或量度為效能及速度。因此,獎勵指派器電路系統ID7_108進行觀測且將獎勵指派至動作。
總體而言,實例環境量化器電路系統ID7_106對第一量化拓樸執行量化且比較第一量化拓樸之量化結果與基線量度,量化控制器用以在第二迭代期間更新第一搜尋策略,第二搜尋策略對應於模型之經更新版本,模型之經更新版本相比於基線量度具有經改良量度。
實例環境量化器電路系統ID7_106包括搜尋空間及策略求解器電路系統ID7_110,其為用於界定搜尋空間且計算用於量化之搜尋策略的實例結構。搜尋空間界定為經特定化以解決深度學習問題之模型系列。在一些實例中,搜尋策略係自動的,且一些實例搜尋策略包括但不限於加強學習(例如,策略梯度)、演進式演算法(例如,基因演算法)及試探性搜尋(例如,分支定界)。在加強學習中,神經網路採取動作以在特定情況下最大化獎勵。搜尋空間及策略求解器電路系統ID7_110採用找出應在特定情況下採取之最佳可能行為或路徑。在演進式演算法中,神經網路實施仿生運算子,諸如突變、交越及選擇以產生最佳化及搜尋問題之解。在試探性搜尋中,神經網路使用嘗試藉由基於給定試探性函數或成本量度迭代地改良解而最佳化問題的搜尋策略。因此,搜尋空間及策略求解器電路系統ID7_110使用以下或任何其他搜尋空間及策略求解器中之一或多者,以界定搜尋空間並計算及/或以其他方式判定用於量化之一或多個搜尋策略。
圖ID7_1中之實例量化控制器電路系統ID7_102、實例經量化拓樸產生器電路系統ID7_104、實例環境量化器電路系統ID7_106、實例獎勵指派器電路系統ID7_108及實例搜尋空間求解器電路系統ID7_110之組合為用於產生及提供最佳量化權重至深度學習模型的框架(例如,系統)之示意性說明的實例結構圖。圖ID7_2說明形成用於類似於圖ID7_2中之實例的實例量化控制器電路系統ID7_102及實例環境量化器電路系統ID7_106的框架ID7_200之實例方法及結構。如在下文更詳細地描述,實例框架ID7_200實現一或多個經最佳化模型ID7_220之產生及輸出,以用於基於動態輸入資料及/或條件進行推斷。
來自圖ID7_1之實例量化控制器電路系統ID7_102起始用於決定應量化何類型之運算及如何接近量化的方法。此需要由實例經量化拓樸產生器電路系統ID7_104執行之多個步驟,且在一些實例中,包括輸入經標記訓練集ID7_204,判定模型( A)之搜尋空間ID7_206,及調用搜尋策略以產生用以嘗試之經擴增模型( A ') ID7_208,如在下文更詳細地描述。
自使用者或自資料源(例如,歷史資料源)接收、擷取及/或以其他方式獲得實例經標記訓練集(ID7_204)。實例經標記訓練集為已標示有一或多個標記之樣本。
量化控制器電路系統ID7_102亦起始並判定模型( A)之搜尋空間ID7_206,諸如待最佳化的感興趣模型。在一些實例中,模型( A)待自集中式伺服器(例如,操作於具有第一運算能力之硬體上)移動至一或多個邊緣裝置(例如,操作於具有小於集中式伺服器之彼等能力的第二運算能力之硬體上)。模型 A'之搜尋空間包括此類模型內能夠經量化及/或以其他方式經特定化以解決深度學習問題的模型及/或運算系列。在一些實例中,此係由實例經量化拓樸產生器電路系統ID7_104執行。
量化控制器電路系統ID7_102亦經由對實例模型( A) ID7_206應用一或多個搜尋策略來起始並調用搜尋策略以產生經擴增模型( A ') ID7_。如上文所論述,實例搜尋策略包括加強學習(例如,策略梯度)、演進式演算法(例如,基因演算法)及試探性搜尋(例如,分支定界)。此係由實例經量化拓樸產生器電路系統ID7_104執行。
量化控制器電路系統ID7_102將實例經擴增模型( A ')發送至實例環境量化器電路系統ID7_106。
實例環境量化器電路系統ID7_106 (例如,邊緣網路內之裝置)執行及/或以其他方式執行候選經擴增模型( A ')之量化、基準校正及測試。
實例獎勵指派器電路系統ID7_108評估經擴增模型( A ') ID7_214,且經由觀測及獎勵判定運算之量化效能。另外,獎勵指派器電路系統ID7_108促進判定經擴增模型( A ')在一種類型的硬體上之效能。當然,此迭代程序在任何數目個不同類型之硬體上執行此類評估以確定所量化經擴增模型( A ')之效能量度。硬體之一些實例包括但不限於CPU、GPU、FPGA、量子裝置及/或加速器中之一或多者的任一組合。迭代地回饋測試經擴增模型( A ')中之各別者(ID7_218)的結果以調用一或多個替代搜尋策略並產生其他用以嘗試的不同經擴增模型( A ')。回應於與經擴增模型( A ')之效能相關的迭代臨限值或一或多個收斂量度,實例環境量化器電路系統ID7_106輸出用於基於輸入訓練集進行推斷之模型ID7_220。輸出(ID7_220)係由搜尋空間及策略求解器電路系統ID7_110發送。輸出表示在產生最佳解(例如,收斂)之任何數目個迭代之後的用於基於輸入訓練集進行推斷的實例輸出模型ID7_220。
如上文所論述,實例環境量化器電路系統ID7_106輸出經擴增模型( A ')之每一迭代的效能估計ID7_218。每一經擴增模型( A ')之效能估計(例如,對應於潛時量度、準確度量度等之效能資料) ID7_218包括發送對應於量化之效能估計ID7_214的資訊(例如,觀測及獎勵),以及對應於由實例目標平台ID7_216實施之特定類型之硬體的運算之量化效能的資訊。
實例目標平台ID7_216為包括執行量化之任何類型的硬體的結構。一些實例包括但不限於CPU、GPU、FPGA及/或加速器之任一或多個組合。
輸入經標記訓練集ID7_204,判定模型(A)之搜尋空間,調用搜尋策略以產生A',A'(例如,模型(A)),評估效能ID7_214,輸出用於基於輸入訓練集進行推斷之模型ID7_220,及A'之效能估計的組合類似於圖ID7_1,且使用包括量化控制器電路系統ID7_102、經量化拓樸產生器電路系統ID7_104、環境量化器電路系統ID7_106、獎勵指派器電路系統ID7_108及搜尋空間求解器電路系統ID7_110之結構以產生及提供最佳量化權重至深度學習模型。
雖然實施圖ID7_1之用於產生及提供最佳量化權重至深度學習模型之框架的實例方式說明於圖ID7_2以及圖ID7_3、圖ID7_4、圖ID7_5及圖ID7_6中,但圖ID7_1中所說明之元件、程序及/或裝置中之一或多者可以任何其他方式組合、劃分、重新配置、省略、消除及/或實施。此外,實例量化控制器電路系統ID7_102、實例量化器拓樸產生器電路系統ID7_104、實例環境量化器電路系統ID7_106、實例獎勵指派器電路系統ID7_108,及/或更大體而言,圖ID7_1之實例搜尋空間及策略求解器電路系統ID7_110可由硬體、軟體、韌體,及/或硬體、軟體及/或韌體之任一組合實施。因此,例如,實例量化控制器電路系統ID7_102、實例量化器拓樸產生器電路系統ID7_104、實例環境量化器電路系統ID7_106、實例獎勵指派器電路系統ID7_108中之任一者,及/或更大體而言,圖ID7_1之實例搜尋空間及策略求解器電路系統ID7_110可由一或多個類比或數位電路、邏輯電路、可程式化處理器、可程式化控制器、圖形處理單元(GPU)、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)及/或現場可程式化邏輯裝置(FPLD)實施。當閱讀本專利之設備或系統請求項中之任一者以涵蓋僅軟體及/或韌體實施時,實例量化控制器電路系統ID7_102、實例量化器拓樸產生器電路系統ID7_104、實例環境量化器電路系統ID7_106、實例獎勵指派器電路系統ID7_108中之至少一者,及/或更大體而言,圖ID7_1之實例搜尋空間及策略求解器電路系統ID7_110特此明確地界定為包括包含軟體及/或韌體的非暫時性電腦可讀儲存裝置或儲存磁碟,諸如記憶體、數位化通用光碟(DVD)、緊密光碟(CD)、Blu-ray光碟等。再者,實例量化控制器電路系統ID7_102、實例量化器拓樸產生器電路系統ID7_104、實例環境量化器電路系統ID7_106、實例獎勵指派器電路系統ID7_108,及/或更大體而言,圖ID7_1之圖ID7_1之實例搜尋空間及策略求解器電路系統ID7_110可包括除了圖ID7_1中所說明之彼等之外或代替彼等的一或多個元件、程序及/或裝置,及/或可包括所說明元件、程序及裝置中之任一者或所有中的多於一者。如本文中所使用,片語「進行通訊」,包括其變型,涵蓋直接通訊及/或經由一或多個中間組件之間接通訊,且不需要直接實體(例如,有線)通訊及/或持續通訊,而實際上另外包括呈週期性間隔、經排程間隔、非週期性間隔及/或單次事件之選擇性通訊。
表示用於實施以下之實例硬體邏輯、機器可讀指令、硬體實施之狀態機及/或其任何組合的流程圖展示於圖ID7_2、圖ID7_3及圖ID7_6中:實例量化控制器電路系統ID7_102、實例量化器拓樸產生器電路系統ID7_104、實例環境量化器電路系統ID7_106、實例獎勵指派器電路系統ID7_108,及/或更大體而言,圖ID7_1之圖ID7_1之實例搜尋空間及策略求解器電路系統ID7_110。機器可讀指令可為用於由電腦處理器及/或處理器電路系統執行之一或多個可執行程式或可執行程式之部分,該電腦處理器及/或處理器電路系統諸如下文結合圖ID7_2、圖ID7_3及圖ID7_6論述之實例處理器平台ID7_700中所示之處理器ID7_712。程式可體現於儲存於諸如CD-ROM、軟碟、硬碟機、DVD、Blu-ray光碟或與處理器ID7_712相關聯的記憶體之非暫時性電腦可讀儲存媒體上的軟體中,但整個程式及/或其部分可替代地由除了處理器ID7_712以外之裝置執行及/或體現於韌體或專用硬體中。此外,儘管參考圖ID7_2、圖ID7_3及/或圖ID7_6中所說明之流程圖描述實例程式,但可替代地使用實施實例量化控制器電路系統ID7_102、實例量化器拓樸產生器電路系統ID7_104、實例環境量化器電路系統ID7_106、實例獎勵指派器電路系統ID7_108,及/或更大體而言,圖ID7_1之實例搜尋空間及策略求解器電路系統ID7_110的許多其他方法。例如,可改變區塊之執行次序,及/或可改變、消除或組合所描述區塊中之一些。另外或替代地,區塊中之任一者或全部可由經構造以在不執行軟體或韌體之情況下執行對應操作的一或多個硬體電路(例如,離散及/或整合式類比及/或數位電路系統、FPGA、ASIC、比較器、運算放大器(op-amp)、邏輯電路等)實施。處理器電路系統可分佈於不同網路位置中及/或在一或多個裝置(例如,單一機器中之多核心處理器、跨越伺服器機架分佈之多個處理器等)本端。
本文中所描述之機器可讀指令可以壓縮格式、經加密格式、分段格式、經編譯格式、可執行格式、經封裝格式等中之一或多者來儲存。如本文中所描述之機器可讀指令可儲存為資料或資料結構(例如,指令之部分、程式碼、程式碼之表示等),其可用以產生、製造及/或產生機器可執行指令。例如,機器可讀指令可經分段且儲存於位於網路或網路集合之相同或不同位置處(例如,雲端中、邊緣裝置中等)的一或多個儲存裝置及/或運算裝置(例如,伺服器)上。機器可讀指令可能需要安裝、修改、調適、更新、組合、補充、組配、解密、解壓縮、解封裝、分佈、再指派、編譯等中之一或多者,以便使該等指令可直接由運算裝置及/或其他機器讀取、解譯及/或執行。例如,機器可讀指令可儲存於多個部分中,該等部分經個別地壓縮、加密且儲存於單獨運算裝置上,其中該等部分在經解密、經解壓縮及經組合時形成實施可一起形成諸如本文中所描述的程式之程式的一或多個功能的可執行指令集。
在另一實例中,機器可讀指令可儲存於以下狀態中:其中機器可讀指令可由處理器電路系統讀取,但需要添加程式庫(例如,動態鏈接程式庫(DLL))、軟體開發套件(SDK)、應用程式設計介面(API)等,以便執行特定運算裝置或其他裝置上之指令。在另一實例中,機器可讀指令可需要在可整體或部分地執行機器可讀指令及/或對應程式之前經組配(例如,所儲存設定、資料輸入、所記錄網路位址等)。因此,如本文中所使用,機器可讀媒體可包括機器可讀指令及/或程式,而不管機器可讀指令及/或程式在儲存時或以其他方式在靜止時或在輸送時的特定格式或狀態。
本文中所描述的機器可讀指令可由任何過去、目前或未來指令語言、指令碼處理語言、程式設計語言等表示。例如,機器可讀指令可使用以下語言中之任一者來表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本標記語言(HTML),結構化查詢語言(SQL),Swift等。
如上文所提及,圖ID7_2、圖ID7_3、圖ID7_5、圖ID7_6之實例程序可使用儲存於非暫時性電腦及/或機器可讀媒體上之可執行指令(例如,電腦及/或機器可讀指令)來實施,該非暫時性電腦及/或機器可讀媒體諸如硬碟機、快閃記憶體、唯讀記憶體、緊密光碟、數位化通用光碟、快取記憶體、隨機存取記憶體,及/或歷時任何持續時間儲存資訊(例如,歷時經延長時間週期、永久性地、歷時短暫時刻、用於臨時緩衝,及/或用於資訊之快取)的任何其他儲存裝置或儲存磁碟。如本文中所使用,術語非暫時性電腦可讀媒體明確地界定為包括任何類型之電腦可讀儲存裝置及/或儲存磁碟且排除傳播信號及傳輸媒體。
圖ID7_3為表示可經執行以實施用於產生及提供最佳量化權重至深度學習模型之設備及方法的機器可讀指令之流程圖。圖ID7_3類似於圖ID7_1及圖ID7_2且展示產生及提供最佳量化權重至深度學習模型之另一實例表示。圖ID7_3之所說明實例由圖ID7_1之實例結構實施。
在圖ID7_3之所說明實例中,量化控制器電路系統ID7_102擷取模型(區塊ID7_302)。實例量化控制器電路系統ID7_102獲得經引入至(圖ID7_1)之新模型,其將經過收集可量化運算且量化最佳權重之預處理步驟。此等預處理步驟經預計算,使得並不連續地重複該等步驟。在一些實例中,量化發生在訓練後,其中使用權重及輸入訓練深度學習模型,接著在訓練之後量化權重。在一些實例中,量化發生在訓練期間,其中針對經量化權重計算梯度。實例量化控制器電路系統ID7_102擷取及/或以其他方式獲得模型(區塊ID7_302) (例如,自使用者、自可用模型之資料庫等)。然而,在一些情況下,實例量化控制器電路系統ID7_102擷取模型(區塊ID7_302),且在無使用者指令之情況下自任何資料源獲得一或多個模型。實例量化控制器電路系統ID7_102擷取模型ID7_302,且發送模型以建立基準測試(區塊ID7_304)並解析模型以識別運算(區塊ID7_308)。
量化控制器電路系統ID7_102執行實例程序以建立基準測試ID7_304。基準測試(區塊ID7_304)為獲得(例如,自動地或回應於偵測到存在一或多個額外模型)及/或擷取模型(區塊ID7_302)且運行基準測試之程序的實例。一些實例基準測試包括但不限於潛時及準確度。在建立基準測試(區塊ID7_304)之後,將基準測試之結果儲存於實例量化控制器電路系統ID7_102中。此等基準測試(區塊ID7_304)提供基線比較,使得在產生及提供最佳量化權重之迭代期間,結果將收斂至相比基準測試實現較佳測試結果(例如,較高準確度)之解(區塊ID7_304)。
量化控制器電路系統ID7_102執行實例程序以解析模型來識別運算(區塊ID7_308)。解析模型以識別運算(區塊ID7_308)為在擷取模型(區塊ID7_302)時,除了接收所有運算組態(例如,MatMul、GatherNd)之外,還自動地接收其輸入之程序的實例。在解析模型以識別運算(區塊ID7_308)之後,量化控制器電路系統ID7_102將結果(例如,MatMul、GatherNd)自動地發送至判定/產生搜尋空間(區塊ID7_310)及初始化超參數(區塊ID7_320)。此係由環境量化器電路系統ID7_106執行。解析模型以識別運算(區塊ID7_308)提供運算組態,其基於類似運算組態對模型進行分組並選擇類似量化權重。在解析模型以識別運算(區塊ID7_308)之後,量化控制器電路系統ID7_102發送其輸出以初始化本文中在下文所描述之超參數(區塊ID7_320)。
量化控制器電路系統ID7_102執行實例程序以初始化超參數(區塊ID7_320)。初始化超參數(區塊ID7_320)為自動地接收識別運算(區塊ID7_308)之經解析模型且初始化經解析量化參數的程序之實例。量化參數經發送至環境量化器電路系統ID7_106。此為環境量化器電路系統ID7_106提供了經初始化超參數,以在量化參數經發送以量化本文中所描述之選定運算(區塊ID7_326)時量化選定運算。
實例解析模型以識別運算(區塊ID7_308)亦將其輸出經解析模型發送至實例判定/產生搜尋空間(區塊ID7_310)。量化控制器電路系統ID7_102執行實例程序以判定/產生搜尋空間(區塊ID7_310)。判定/產生搜尋空間(區塊ID7_310)為使用來自實例解析模型以識別運算(區塊ID7_308)之結果產生及/或以其他方式構建搜尋空間的程序之實例,該結果係首先基於最初所擷取實例模型(區塊ID7_302)計算出的。判定/產生搜尋空間(區塊ID7_310)之輸出經發送至選擇運算組合(區塊ID7_312)。判定/產生搜尋空間(區塊ID7_310)之至少一個益處為自分析程序移除了人類判斷。大體而言,用於判定如何量化模型之傳統技術需要人類輸入及量化哪些層/元素之決策。然而,此類人類輸入會受到關於待考慮之候選搜尋空間的變化及誤差之影響。此外,若藉由人力進行,則對搜尋空間之所有可能排列進行充分且徹底的開發係不切實際的。本文中所揭露之實例考慮代理探索工作以識別候選搜尋空間及產生所得輸出。進一步檢查此類輸出對效能量度之對應影響,使得在一或多個模型中實施最佳量化選擇。
量化控制器電路系統ID7_102執行實例程序以選擇運算組合(區塊ID7_312)。選擇運算組合為將判定/產生搜尋空間(區塊ID7_310)中構建的可量化運算之搜尋空間選擇及發送至實例產生量化拓樸(區塊ID7_314)的程序之實例。在一些實例中,選擇運算組合(區塊ID7_312)在第一迭代期間選擇隨機運算組合,且在其他迭代中將運算組合優化至相比建立基準測試(區塊ID7_304)時判定之基線效能較佳之組合。在一些實例中,選擇運算組合(區塊ID7_312)使用分組來決定選擇哪個運算組合。使用分組涉及基於具有類似運算(例如,MatMul、GatherNd)及精度(例如,int8、int16、bf16等)之其他模型結果選擇運算組合。
如上文所描述,圖ID7_1中所說明之實例量化控制器電路系統ID7_102接收、擷取及/或以其他方式獲得一或多個模型(區塊ID7_302),且建立及/或以其他方式起始基準測試(區塊ID7_304)。另外,實例量化控制器電路系統ID7_102解析所擷取之一或多個模型以識別運算(區塊ID7_308),且基於例如能夠經量化之特定運算判定/產生搜尋空間(區塊ID7_310)。實例經量化拓樸產生器電路系統ID7_104選擇運算組合(區塊ID7_312),且在各別迭代期間,實例量化控制器電路系統ID7_102自先前迭代獲得當前狀態及當前狀態
Figure 02_image001
之效能量度,諸如準確度、大小及潛時。使用此等輸入,實例量化控制器電路系統ID7_102判定何運算可量化及應如何進行量化(例如,分組)。實例量化控制器電路系統ID7_102經由各種收斂策略進行此判定,該等策略包括但不限於加強學習(例如,策略梯度)、演進式演算法(例如,基因演算法)及試探性搜尋(例如,分支定界)。在前幾個迭代期間,實例量化控制器電路系統ID7_102將產生隨機量化拓樸,使得在前幾個迭代執行時,實例量化控制器電路系統ID7_102能夠判定觀測及獎勵,因此實例量化控制器電路系統ID7_102開始藉由具有最佳計分之觀測及獎勵的量化拓樸進行訓練。實例量化控制器電路系統ID7_102之輸出為動作=下一狀態
Figure 02_image003
,其經配置為用於環境量化器電路系統ID7_106輸入之量化拓樸。實例量化控制器電路系統ID7_102產生量化拓樸(區塊ID7_316),且將輸出(區塊ID7_316)發送至環境量化器電路系統ID7_106。實例量化控制器電路系統ID7_102接收環境量化器電路系統ID7_106之結果且基於比較更新搜尋策略(區塊ID7_318)。基於經更新搜尋策略(區塊ID7_318)之結果,實例量化控制器電路系統ID7_102決定應結束還是繼續迭代(區塊ID7_317)。若經更新搜尋策略(區塊ID7_318)之結果達到準則(例如,相比基準測試顯著地改良、達到使用者指定最佳解等),則決策區塊ID7_317可結束迴路且輸出所得量化及量化權重。若經更新搜尋策略(區塊ID7_318)之結果並未達到準則(例如,相比基準測試顯著地改良、達到使用者指定最佳解等),則決策區塊ID7_317將經更新搜尋策略(區塊ID7_318)發送至產生量化拓樸(區塊ID7_316),因此可開始新迭代。
量化控制器電路系統ID7_102內之經量化拓樸產生器電路系統ID7_104產生量化拓樸(區塊ID7_316) (例如,基於至實例量化控制器電路系統ID7_102之輸入)。在一些實例中,若不存在先前資料,則所產生拓樸(區塊ID7_316)以隨機拓樸開始。後續拓樸係藉由來自基於比較更新搜尋策略(區塊ID7_318)之程序(例如,代理)的指導而產生。一旦觀測及獎勵經記錄,接著經量化拓樸產生器電路系統ID7_104基於最佳量化(例如,記錄有相對較高獎勵之量化權重)產生量化拓樸(區塊ID7_316)。在一些實例中,經量化拓樸產生器電路系統ID7_104將基於具有類似運算及精度之模型經量化在一起或具有類似權重的分組來產生量化拓樸。在經量化拓樸產生器電路系統ID7_104產生量化拓樸(區塊ID7_316)之後,經量化拓樸產生器電路系統ID7_104發送其輸出以致使量化選定運算(區塊ID7_326),下文進一步詳細論述,並形成實例環境量化器電路系統ID7_106的部分。
如上文所描述,實例環境量化器電路系統ID7_106進行量化任務、基準校正任務及/或測試,如圖ID7_1中所描述。實例環境量化器電路系統ID7_106自實例量化控制器電路系統ID7_102接收輸入以產生量化拓樸(區塊ID7_316)。實例環境量化器電路系統ID7_106量化選定運算(區塊ID7_326),比較結果與基準(區塊ID7_328),且分析量化拓樸之效能(ID7_322)。效能結果經發送(基於迭代)至實例控制器電路系統ID7_102以基於比較更新搜尋策略(區塊ID7_318)。
在一些實例中,環境量化器電路系統ID7_106基於任何數目個超參數(區塊ID7_320)量化選定運算。使用選定運算(例如,MatMul、GatherNd)及所產生量化拓樸,實例環境量化器電路系統ID7_106鑒於此類超參數量化選定運算(區塊ID7_326)。此提供了具有包括準確度、潛時及/或大小之所得量度的所得經加權量化。
環境量化器ID7_106比較結果與基準(區塊ID7_328)。實例環境量化器ID7_106比較結果與基準量度(區塊ID7_328),判定基準量度(例如,輸送量、準確度、大小等),且實例獎勵指派器電路系統ID7_108判定此類量度相比一或多個先前迭代中評估之基準值是否經改良(區塊ID7_322)。
實例獎勵指派器電路系統ID7_108將效能結果發送至實例量化控制器電路系統ID7_102,以基於比較更新(例如,當前迭代之)搜尋策略(區塊ID7_318)。指派獎勵之實例包括但不限於將獎勵值添加至動作或量度(例如,使用者預界定之動作或量度)。經指派(例如,由使用者)之動作或量度的實例為模型之準確度、潛時及/或大小。在一些實例中,觀測到較高準確度會引起加權值之增量增大。若觀測到較高準確度,則將相對較大獎勵指派至動作或量度。在一些實例中,觀測到較低潛時會引起加權值之增量增大。若觀測到較低潛時,則將相對較大獎勵指派至動作或量度。在一些實例中,模型之較小大小會引起加權值之增量增大。若觀測到模型之較小大小,則將相對較大獎勵指派至動作或量度。量化控制器電路系統ID7_102執行實例程序以基於比較更新當前迭代之搜尋策略(區塊ID7_318)。在一些實例中,基於比較更新搜尋策略(區塊ID7_318)使用獎勵及效能量度作出決策(例如,在區塊ID7_317中作出迭代應結束還是繼續之決策)。來自實例環境量化器電路系統ID7_106的針對對應動作之獎勵及效能量度經評估且被發送至基於比較更新搜尋策略(區塊ID7_318)。獎勵之量度的一些實例包括但不限於準確度、潛時及大小。在一些實例中,準確度係藉由對應於具有相對最高獎勵值之模型的品質量度來判定。在一些實例中,潛時係藉由指派對應於相對較快模型之相對較高獎勵(例如,相對較高權重值)來判定。在一些實例中,大小係藉由對應於模型耗用之記憶體及/或儲存資源量的一或多個減小比率量度來判定。在一些實例中,自硬體監測視角且為進行較佳評估而添加諸如記憶體頻寬或功率消耗之額外量度。
回應於量化控制器電路系統ID7_102完成基於比較更新搜尋策略(區塊ID7_318),量化控制器電路系統ID7_102接著判定量化策略之當前迭代、當前獎勵及/或當前效能結果是否實現經改良之量化拓樸(例如,實現對應於效能臨限值之最佳解(例如,預界定最佳量度) (ID7_317)。在一些實例中,量化控制器電路系統ID7_102基於特定數量之所嘗試迭代及/或時期判定應結束迭代(區塊ID7_317)。否則,若基於比較更新搜尋策略產生並未實現最佳解或未經過特定數量之迭代的搜尋策略(區塊ID7_317),則程序前進為產生量化拓樸(之另一迭代) (區塊ID7_316),其中程序將接著經過量化選定運算(區塊ID7_326)及比較結果與基準(區塊ID7_328),且使用分析效能(區塊ID7_322)以基於比較更新搜尋策略(區塊ID7_318)的循環。
圖ID7_4為候選動作空間之實例。在圖ID7_4之所說明實例中,針對量化拓樸選擇不同候選動作空間。實例量化類型對應於迭代中使用之量化類型,諸如但不限於INT8、BF16及FP16。
圖ID7_5說明如何藉由本文中所揭露之實例分析經預量化模型ID7_502以產生經量化模型ID7_506的實例程序ID7_500。在圖ID7_5之所說明實例中,經預量化模型ID7_502為輸入至量化控制器電路系統ID7_102中之模型的實例,該電路系統取得經量化拓樸產生器電路系統ID7_104之輸出且量化模型中之對應運算。實例環境量化器電路系統ID7_106將諸如INT8或BF16之特定量化類型ID7_504應用至經預量化模型ID7_502。由於量化類型ID7_504之特定選擇,實例經量化模型ID7_506相應地經擴增。在一些實例中,若一或多個運算係鄰近的,則其經自動分組以形成較大量化-反量化區塊來增大速度及效能。在圖ID7_5之所說明實例中,第一分組區塊ID7_508為一起經量化之二個運算的實例,因為其具有類似運算(例如,MatMul)及類似精度(例如,1 (INT8))。大體而言,實例搜尋空間及策略求解器電路系統ID7_110針對特定運算及/或特定精度分析感興趣的模型之內容。在任何數目個迭代期間,搜尋空間及策略求解器電路系統ID7_110產生及/或以其他方式指派不同群組之運算及對應精度值,其當在特定分組(例如,以第一精度一起量化之二個鄰近運算,以第二精度一起量化之三個鄰近運算等)中執行時會產生不同效能量度(例如,相對較快的量化持續時間,相對較大的準確度結果等)。在一些實例中,若未產生最佳及/或以其他方式經改良解,則搜尋並找出或忽略更多排列。在一些實例中,運算係不同的(例如,MatMul相比GatherNd),此使得無法在一組中一起量化模型。在一些實例中,精度不同,此使得無法在一組中一起量化模型(例如,2 (BF16)及1(INT8))。本文中所揭露之實例任擇地曝露一或多個調整鈕以促進選擇及/或調整可選選項。可由例如使用者及/或代理選擇調整鈕。代理調整鈕調整可以獨立於使用者之自動方式發生以努力識別一或多個特定經最佳化調整鈕設定。在一些實例中,實例策略求解器電路系統ID7_110儲存在諸如效率、大小、潛時等之感興趣量度方面引起改良的所識別運算群組。此類運算群組可儲存於資料庫中以供未來參考,諸如在可查找運算之運行時間工作期間。
圖ID7_6為表示提供量化權重至深度學習模型之實例程序600的流程圖。此為圖ID7_1中之結構圖以及圖ID7_2及圖ID7_3中之程序圖的另一實例表示。實例程序600包括接收或獲得基底神經網路(區塊604)。由實例量化控制器電路系統ID7_102產生且自基底神經網路量化複數個候選運算(區塊606)。接著在產生搜尋空間及選擇策略求解器之後,由實例環境量化器電路系統ID7_106量化候選運算(區塊608)。使用經量化候選運算,由實例經量化拓樸產生器電路系統ID7_104產生候選經量化拓樸(區塊610)。為了基於候選經量化拓樸量化候選運算,由實例環境量化器電路系統ID7_106產生環境(區塊612)。接著由量化控制器電路系統ID7_102測試基底神經網路以判定對應於底層硬體平台之效能的基準量度(區塊614)。基於關於使用諸如準確度及潛時之量度對基底神經網路之觀測,由實例獎勵指派器電路系統ID7_108來指派獎勵(區塊616)。基於具有相對最高獎勵值之效能,由實例量化控制器電路系統ID7_102收斂至最佳解(區塊618)。
自前述內容,將瞭解,已揭露改良模型之量化技術的實例方法、設備、系統及製品。所揭露方法、設備、系統及製品藉由產生自動化產生及提供最佳量化權重至深度學習模型之程序的框架來改良使用運算裝置之效率。此外,本文中所揭露之實例自分析程序移除人類判斷,此產生不會由於人類參與而受到變化及誤差影響的較快速且高效系統及對應模型。另外,經量化模型(例如,圖ID7_5之實例經量化模型ID7_506)經自動分組以形成較大量化-反量化區塊來增大速度及效能。因此,所揭露方法、設備、系統及製品係針對電腦運行之一或多個改良。
以下實例提供本文中所揭露之實例的其他變型。
本文中揭露用以最佳化邊緣網路中之資源的實例方法、設備、系統及製品。其他實例及其組合包括以下:實例119包括一種設備,其包含:中央處理單元、圖形處理單元或數位信號處理器中之至少一者,中央處理單元、圖形處理單元或數位信號處理器中之該至少一者具有用以控制處理器電路系統內之資料移動的控制電路系統、用以執行對應於指令之一或多個第一操作的算術及邏輯電路系統及用以儲存一或多個第一操作之結果、設備中之指令的一或多個暫存器;現場可程式化閘陣列(FPGA),該FPGA包括邏輯閘電路系統、複數個可組配互連及儲存電路系統,邏輯閘電路系統及互連用以執行一或多個第二操作,儲存電路系統用以儲存一或多個第二操作之結果;或特殊應用積體電路系統,其包括用以執行一或多個第三操作之邏輯閘電路系統,處理器電路系統用以進行以下中之至少一者:執行第一操作、第二操作或第三操作中之至少一者以:產生對應於模型之基線量度;識別對應於模型之運算;產生對應於模型之搜尋空間,搜尋空間包括可經量化運算中之各別者;產生第一量化拓樸,第一量化拓樸對應於第一搜尋策略;對第一量化拓樸執行量化;及比較第一量化拓樸之量化結果與基線量度,量化控制器用以在第二迭代期間將第一搜尋策略更新至第二搜尋策略,第二搜尋策略對應於模型之經更新版本,模型之經更新版本相比於基線量度具有經改良量度。
實例120包括如實例119中所界定之設備,其中處理器電路系統用以計算第一量化拓樸之第一因數,第一因數包括對應於可經量化運算之鄰接資訊。
實例121包括如實例119中所界定之設備,其中處理器電路系統用以識別對應於經改良量度之運算群組。
實例122包括如實例119中所界定之設備,其中處理器電路系統用以執行包括加強學習、演進式演算法或試探性搜尋中之至少一者的搜尋策略。
實例123包括如實例119中所界定之設備,其中處理器電路系統用以計算包括輸送量、準確度、潛時或大小中之至少一者的模型量度。
實例124包括如實例119中所界定之設備,其中處理器電路系統用以計算包括記憶體頻寬、功率消耗或速度中之至少一者的硬體量度。
實例125包括如實例119中所界定之設備,其中處理器電路系統用以儲存已識別為候選群組的運算以改良效率。
實例126包括如實例119中所界定之設備,其中處理器電路系統用以自儲存裝置擷取一或多個運算群組,該等群組待一起量化。
實例127包括至少一種非暫時性電腦可讀儲存媒體,其包含當經執行時致使至少一個處理器至少進行以下操作之指令:產生對應於模型之基線量度;識別對應於模型之運算;產生對應於模型之搜尋空間,搜尋空間包括可經量化運算中之各別者;產生第一量化拓樸,第一量化拓樸對應於第一搜尋策略;對第一量化拓樸執行量化;及比較第一量化拓樸之量化結果與基線量度,量化控制器用以在第二迭代期間將第一搜尋策略更新至第二搜尋策略,第二搜尋策略對應於模型之經更新版本,模型之經更新版本相比於基線量度具有經改良量度。
實例128包括如實例127中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器計算第一量化拓樸之第一因數,第一因數包括對應於可經量化運算之鄰接資訊。
實例129包括如實例127中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器識別對應於經改良量度之運算群組。
實例130包括如實例127中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器執行包括加強學習、演進式演算法或試探性搜尋中之至少一者的搜尋策略。
實例131包括如實例127中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器計算包括輸送量、準確度、潛時或大小中之至少一者的模型量度。
實例132包括如實例127中所界定之至少一種電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器計算包括記憶體頻寬、功率消耗或速度中之至少一者的硬體量度。
實例133包括一種方法,其包含:產生對應於模型之基線量度;識別對應於模型之運算;產生對應於模型之搜尋空間,搜尋空間包括可經量化運算中之各別者;產生第一量化拓樸,第一量化拓樸對應於第一搜尋策略;對第一量化拓樸執行量化;及比較第一量化拓樸之量化結果與基線量度,量化控制器用以在第二迭代期間將第一搜尋策略更新至第二搜尋策略,第二搜尋策略對應於模型之經更新版本,模型之經更新版本相比於基線量度具有經改良量度。
實例134包括如實例133中所界定之方法,其進一步包括計算第一量化拓樸之第一因數,第一因數包括對應於可經量化運算之鄰接資訊。
實例135包括如實例133中所界定之方法,其進一步包括識別對應於經改良量度之運算群組。
實例136包括如實例133中所界定之方法,其進一步包括執行包括加強學習、演進式演算法或試探性搜尋中之至少一者的搜尋策略。
實例137包括如實例133中所界定之方法,其進一步包括計算包括輸送量、準確度、潛時或大小中之至少一者的模型量度。
實例138包括如實例133中所界定之方法,其進一步包括計算包括記憶體頻寬、功率消耗或速度中之至少一者的硬體量度。
實例139包括一種用以最佳化模型之設備,其包含:量化控制器,該量化控制器用以在初始迭代期間產生對應於模型之基線量度,識別對應於模型之運算,產生對應於模型之搜尋空間,搜尋空間包括可經量化運算中之各別者,及產生第一量化拓樸,第一量化拓樸對應於第一搜尋策略;環境量化器,該環境量化器用以對第一量化拓樸執行量化,及比較第一量化拓樸之量化結果與基線量度,量化控制器用以在第二迭代期間將第一搜尋策略更新至第二搜尋策略,第二搜尋策略對應於模型之經更新版本,模型之經更新版本相比於基線量度具有經改良量度。
實例140包括如實例139中所界定之設備,其中量化控制器用以計算第一量化拓樸之第一因數,第一因數包括對應於可經量化運算之鄰接資訊。
實例141包括如實例139中所界定之設備,其中環境量化器用以識別對應於經改良量度之運算群組。
實例142包括如實例139中所界定之設備,其中環境量化器用以執行包括加強學習、演進式演算法或試探性搜尋中之至少一者的搜尋策略。
實例143包括如實例139中所界定之設備,其中環境量化器用以計算包括輸送量、準確度、潛時或大小中之至少一者的模型量度。
實例144包括如實例139中所界定之設備,其中環境量化器用以計算包括記憶體頻寬、功率消耗或速度中之至少一者的硬體量度。 動態修剪(ID11)
本文中所揭露之實例符合2018年4月9日申請的國際公開案第WO/2019/197855號(國際申請案第PCT/IB2018/000513號)。國際公開案第WO/2019/000513號以全文引用的方式併入本文中。
卷積神經網路(CNN)可用於電腦視覺應用中以支援各種任務(例如,物件偵測)。然而,此類網路之相對較大數目個參數及高運算成本可使其難以用於諸如智慧型相機之功率受限「邊緣」裝置中。
用以減少CNN之參數數目及/或複雜度之習知嘗試可在訓練期間識別網路中之冗餘,並靜態地移除冗餘以獲得最終網路組態。此類方法可取決於在部署網路之後遇到的影像上下文而引起較低準確度。
現轉至圖ID11_A,展示包括實例第一分支實施控制器ID11_A101的神經網路ID11_A100之一部分。神經網路ID11_A100之部分包括耦接至第一網路層ID11_A104 (例如,卷積、線性整流函數/ReLU、池化、全連接(FC)層等)之輸出的第二網路層ID11_A102 (ID11_A102a、ID11_A102b,例如卷積、ReLU、池化、FC層等)。在一個實例中,至第一網路層ID11_A104之輸入保持影像之原始像素值,其中第一網路層ID11_A104為自影像擷取特徵(例如,邊緣、曲線、色彩)之卷積層。結果可為指示影像之哪些區很可能包含第一網路層ID11_A104經組配以提取之特徵的激活圖ID11_A106。組配第一網路層ID11_A104以提取某些特徵可在訓練程序期間進行,在訓練程序中,已知輸入影像經饋送至包括神經網路部分ID11_A101的神經網路,且第一網路層ID11_A104之濾波器權重經調整以實現目標結果。因為卷積程序可涉及相對較高數目個乘法運算(例如,影像像素值與濾波器權重之間的點積計算),所以第一網路層ID11_A104可表示包括神經網路部分ID11_A101的神經網路之運算成本/費用的對應較大部分。類似地,第二網路層ID11_A102可具有高運算成本。
例如,卷積層之運算複雜度可由下式判定:
Figure 02_image005
儘管改變卷積運算之核心大小的能力可受限,但Num_of_input_channels及/或Num_of_output_channels仍可經操縱以在推斷期間減少運算。
如將更詳細地論述,第一分支實施控制器ID11_A101包括及/或實施位於(例如,定位於及/或連接於)第一網路層ID11_A104與第二網路層ID11_A102之間、可用於自激活圖ID11_A106修剪不重要通道(例如,紅色通道、綠色通道、藍色通道)的輕量化分路ID11_A108。更特定而言,分路ID11_A08,及/或更大體而言,第一分支實施控制器ID11_A101可包括聚集來自第一網路層ID11_A104之上下文資訊的上下文聚集組件ID11_A110。在一個實例中,上下文資訊包括與第一網路層ID11_A104相關聯之通道值(例如,紅色通道值、綠色通道值、藍色通道值)。此外,上下文聚集組件ID11_A110可為平均化第一網路層ID11_A104中之通道值的降低取樣(例如,池化)層。另外,所說明分路ID11_A108包括由實例第一分支實施控制器ID11_A101實施及/或執行的複數個FC層ID11_A112 (ID11_A112a、ID11_A112b),其進行所聚集上下文資訊之重要性分類,且基於重要性分類選擇性地將第一網路層ID11_A104中之一或多個通道排除在第二網路層ID11_A102之考慮之外。FC層可大體上充當記錄/記住訓練期間饋送至網路之各種輸入資料的記憶體。在所說明實例中,不考慮第二網路層ID11_A102之不重要通道部分ID11_A102b且考慮重要通道部分ID11_A102a。因此,較小第二網路層ID11_A102可促進較快推斷,而不會引發準確度損耗。
因此,若第一網路層ID11_A104具有256個輸出神經元,則上下文聚集組件ID11_A110可將256個值之「二進位大型物件(blob)」提供至第一FC層ID11_A112a,其中第一FC層ID11_A112a產生具有ID11_A114元素/輸出神經元之高層級特徵向量(例如,其中每一輸出神經元的值指示彼神經元被激活的可能性)。另外,第二FC層ID11_A112b可基於高層級特徵向量產生重要性計分向量,其中重要性計分向量具有256個輸出神經元。第二FC層ID11_A112b相比第一FC層ID11_A112a大體上可進行較高層級之分類。對於不太重要通道中之神經元,重要性計分向量可包含零值。因此,將激活圖ID11_A106及重要性計分向量傳遞通過乘法器ID11_A114可選擇性地排除不太重要通道中之所有神經元。就前一層中之每一神經元連接至下一層中之每一層而言,FC層ID11_A112可被視為「全連接」。
需要特別注意的是,由實例第一分支實施控制器ID11_A101實施的上下文聚集組件ID11_A110即時(例如,在運作中)及在訓練神經網路之後聚集上下文資訊。因此,不管在部署神經網路之後遇到的影像上下文如何,皆可在加速推斷的同時增大準確度。例如,若神經網路部署於處理不含訓練時所使用影像中存在之特徵的影像的應用中,則所說明修剪方法能夠藉由消除經組配以提取缺失特徵之通道而減少處理時間。此外,本文中所描述之技術可促進丟棄可在其他方面防止網路作出準確決策的一些不重要特徵。因此,分路ID11_A108可被視為正則化技術。如將更詳細地論述,訓練後修剪可使用固定修剪比約束條件或層寬度損耗與準確度約束條件之間的「對抗性」平衡。
圖ID11_B說明實例第二分支實施控制器ID11_B101,其用以實施使用固定修剪比約束條件以加速神經網路推斷之分路ID11_B102。在一些實例中,圖ID11_A之神經網路ID11_A100的部分包括第二分支實施控制器ID11_B101而非第一分支實施控制器ID11_A101。固定修剪比約束條件可大體上為待修剪之通道百分比。在所說明實例中,第二分支實施控制器ID11_B101實施第一FC層ID11_B104,其耦接至ReLU ID11_B106 (「ReLU1」),且將非線性(例如,藉由臨限值一之截割激活)引入至第一FC層ID11_B104之輸出(例如,具有ID11_A14輸出神經元之機率向量)中。實例第二分支實施控制器ID11_B101實施可耦接至ReLU ID11_B106之第二FC層ID11_B108,其中第二FC層ID11_B108之輸出(例如,具有256個輸出神經元之機率向量)可由適應性偏差組件ID11_B110 (例如,層)處理。實例第二分支實施控制器ID11_B101實施適應性偏差組件ID11_B110。適應性偏差組件ID11_B110可計算控制來自第二FC層ID11_B108之機率向量中的正與負值之間的比率之偏差,其中該比率可基於固定修剪比約束條件(例如,80%重要,20%不重要)設定。另外,由實例第二分支實施控制器ID11_B101實施的臨限值層ID11_B112可將適應性偏差組件ID11_B110之輸出中的所有負值設定(例如,捨位)成零且將適應性偏差組件ID11_B110之輸出中的所有正值設定成一。因此,將激活圖(未示出)及臨限值層ID11_B112之輸出傳遞通過乘法器ID11_B114可選擇性地排除不太重要通道中之所有神經元,其中經由修剪比約束條件強制實施重要性。
圖ID11_C說明實例第三分支實施控制器ID11_C101,其用以實施使用第一網路層之層寬度損耗ID11_C104與第一網路層之準確度損耗ID11_C106 (例如,準確度約束條件)之間的對抗性平衡之分路ID11_C102。在一些實例中,圖ID11_A之神經網路ID11_A100的部分包括第三分支實施控制器ID11_C101而非第一分支實施控制器ID11_A100。在所說明實例中,第三分支實施控制器ID11_C101實施第一FC層ID11_C108,其耦接至ReLU ID11_C110,且將非線性(例如,藉由臨限值一之截割激活)引入至第一FC層ID11_C108之輸出(例如,具有ID11_A14輸出神經元之機率向量)中。第三分支實施控制器ID11_C101實施第二FC層ID11_C112。第二FC層ID11_C112可耦接至ReLU ID11_C110,其中第二FC層ID11_C112之輸出(例如,具有256個輸出神經元之機率向量)可由ReLU ID11_C114之另一執行個體處理。由實例第三分支實施控制器ID11_C101實施的ReLU ID11_C114可將輸出向量中之一些值設定成零。因此,由實例第三分支實施控制器ID11_C101實施的乘法器ID11_C116可選擇性地排除不太重要通道中之所有神經元,其中經由修剪比約束條件強制實施重要性。
在神經網路之訓練期間,層寬度損耗ID11_C104可經提供至ReLU ID11_C114,而準確度損耗ID11_C106 (例如,準確度約束條件)經提供至乘法器ID11_C116。層寬度損耗ID11_C104可基於修剪比約束條件而判定。在一個實例中,層寬度損耗係藉由跨越乘法器之向量之所有元素(例如,輸出神經元)計算均值,且接著運算均值與修剪比約束條件之間的歐幾里德模值(例如,距離)來判定。因此,計算出的損耗可被視為層寬度損失。在神經網路之訓練期間,可針對層寬度損耗ID11_C104平衡準確度損耗ID11_C106。在一個實例中,平衡判定通道減少與準確度之間的最佳權衡。更特定而言,在訓練程序期間,可能存在如下對抗性情況:遵循由準確度損耗ID11_C106施加之約束條件會最小化網路之誤差,但層寬度損耗ID11_C104會最小化通道數目且若通道數目並不符合修剪比約束條件,則會造成損失。
雖然實施圖ID11_A之神經網路ID11_A100之部分的實例方式說明於圖ID11_B及圖ID11_C中,但圖ID11_B及圖ID11_C中所說明之元件、程序及/或裝置中之一或多者可以任何其他方式組合、劃分、重新配置、省略、消除及/或實施。此外,實例第一分支實施控制器ID11_A101、實例第二分支實施控制器ID11_B101、實例第三分支實施控制器ID11_C101,及/或更大體而言,圖ID11_A之神經網路ID11_A100之實例部分可由硬體、軟體、韌體,及/或硬體、軟體及/或韌體之任一組合實施。實例硬體實施包括圖D1A之實例運算電路系統D102 (例如,實例處理器D104)上,或圖D1B之實例運算節點D150的實例處理器D152上之實施。因此,例如,實例第二分支實施控制器ID11_B101、實例第三分支實施控制器ID11_C101中之任一者,及/或更大體而言,圖ID11_A之神經網路ID11_A100之實例部分可由一或多個類比或數位電路、邏輯電路、可程式化處理器、可程式化控制器、圖形處理單元(GPU)、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)及/或現場可程式化邏輯裝置(FPLD)實施。當閱讀本專利之設備或系統請求項中之任一者以涵蓋僅軟體及/或韌體實施時,實例第二分支實施控制器ID11_B101及/或實例第三分支實施控制器ID11_C101中之至少一者特此明確地界定為包括包含軟體及/或韌體的非暫時性電腦可讀儲存裝置或儲存磁碟,諸如記憶體、數位化通用光碟(DVD)、緊密光碟(CD)、Blu-ray光碟等。再者,圖ID11_A之神經網路ID11_A100之實例部分可包括除了圖ID11_B及圖ID11_C中所說明之彼等之外或代替彼等的一或多個元件、程序及/或裝置,及/或可包括所說明元件、程序及裝置中之任一者或所有中的多於一者。
表示用於實施圖ID11_A之神經網路ID11_A100之部分的實例硬體邏輯、機器可讀指令、硬體實施之狀態機及/或其任何組合的流程圖展示於圖ID11_D及圖ID11_E中。機器可讀指令可為用於由電腦處理器及/或處理器電路系統執行之一或多個可執行程式或可執行程式的部分,該電腦處理器及/或處理器電路系統諸如上文結合圖D1B論述之實例處理器平台D150中所示的處理器D152。程式可體現於儲存於諸如CD-ROM、軟碟、硬碟機、DVD、Blu-ray光碟或與處理器D152相關聯的記憶體之非暫時性電腦可讀儲存媒體上的軟體中,但整個程式及/或其部分可替代地由除了處理器D152以外之裝置執行及/或體現於韌體或專用硬體中。此外,儘管參考圖ID11_D及圖ID11_E中所說明之流程圖描述實例程式,但可替代地使用實施神經網路ID11_A100之實例部分的許多其他方法。例如,可改變區塊之執行次序,及/或可改變、消除或組合所描述區塊中之一些。另外或替代地,區塊中之任一者或全部可由經構造以在不執行軟體或韌體之情況下執行對應操作的一或多個硬體電路(例如,離散及/或整合式類比及/或數位電路系統、FPGA、ASIC、比較器、運算放大器(op-amp)、邏輯電路等)實施。處理器電路系統可分佈於不同網路位置中及/或在一或多個裝置(例如,單一機器中之多核心處理器、跨越伺服器機架分佈之多個處理器等)本端。
如上文所提及,圖ID11_D及圖ID11_E之實例程序可使用儲存於非暫時性電腦及/或機器可讀媒體上之可執行指令(例如,電腦及/或機器可讀指令)來實施,該非暫時性電腦及/或機器可讀媒體諸如硬碟機、快閃記憶體、唯讀記憶體、緊密光碟、數位化通用光碟、快取記憶體、隨機存取記憶體,及/或歷時任何持續時間儲存資訊(例如,歷時經延長時間週期、永久性地、歷時短暫時刻、用於臨時緩衝,及/或用於資訊之快取)的任何其他儲存裝置或儲存磁碟。如本文中所使用,術語非暫時性電腦可讀媒體明確地界定為包括任何類型之電腦可讀儲存裝置及/或儲存磁碟且排除傳播信號及傳輸媒體。
圖ID11_D展示進行修剪操作之方法ID11_D100。方法ID11_D100可大體上實施於包括分支實施控制器中之任一者的神經網路中,諸如執行分路ID11_A08之第一分支實施控制器ID11_A101 (圖ID11_A)、執行分路ID11_B102之第二分支實施控制器ID11_B101 (圖ID11_B)及/或執行分路ID11_C102的第三分支實施控制器ID11_C101 (圖ID11_C)。更特定而言,方法ID11_D100可實施為邏輯指令集中之一或多個模組,該邏輯指令集儲存於諸如隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可程式化唯讀記憶體(PROM)、韌體、快閃記憶體等之機器或電腦可讀儲存媒體中;實施於諸如可程式化邏輯陣列(PLA)、現場可程式化閘陣列(FPGA)、複雜可程式化邏輯裝置(CPLD)之可組配邏輯中;實施於使用諸如特殊應用積體電路(ASIC)、互補金屬氧化物半導體(CMOS)或電晶體至電晶體邏輯(TTL)技術之電路技術的固定功能性硬體邏輯中;或其任何組合。
例如,可以一或多種程式設計語言之任何組合撰寫用以進行方法ID11_D100中所展示之操作的電腦程式碼,該一或多種程式設計語言包括諸如JAVA、SMALLTALK、C++等之物件導向式程式設計語言,及諸如「C」程式設計語言或類似程式設計語言之習知程序性程式設計語言。另外,邏輯指令可包括組譯程式指令、指令集架構(ISA)指令、機器指令、機器相依性指令、微碼、狀態設定資料、用於積體電路系統之組態資料、個人化硬體(例如,主機處理器、中央處理單元/CPU、微控制器等)原生之電子電路系統及/或其他結構組件的狀態資訊。
在處理區塊ID11_D102處,第一分支實施控制器ID11_A101、第二分支實施控制器ID11_B101及/或第三分支實施控制器ID11_C101提供訓練具有耦接至第一網路層之輸出的第二網路層之神經網路。在對抗性平衡架構中,在區塊ID11_D102處,第三分支實施控制器ID11_C101可基於修剪比約束條件判定第一網路層之層寬度損耗,並在神經網路之訓練期間針對層寬度損耗平衡第一網路層之準確度約束條件。在區塊ID11_D102處,第一分支實施控制器ID11_A101、第二分支實施控制器ID11_B101及/或第三分支實施控制器ID11_C101可在神經網路之訓練期間修剪神經網路ID11_A100之部分。訓練階段修剪可包括靜態技術,諸如自網路隨機移除神經元或神經元群組。靜態技術亦可涉及考慮權重及激活(例如,神經元之重要性)的絕對量值並移除每一網路層中之最小者。在又一實例中,靜態技術可考慮訓練時間期間之網路誤差,且嘗試學習表示可丟棄特定神經元或神經元群組之機率的參數。訓練之結果可為可在部署之後再次動態地修剪之最終網路組態,如本文中所描述。
實例第一分支實施控制器ID11_A101、第二分支實施控制器ID11_B101及/或第三分支實施控制器ID11_C101在區塊ID11_D104處自神經網路中之第一網路層聚集上下文資訊,其中即時地及在訓練神經網路之後聚集上下文資訊。因此,上下文資訊可對應於部署後輸入資料(例如,推斷影像)。在一個實例中,區塊ID11_D104包括由位於第一網路層與第二網路層之間的分路中之降低取樣(例如,池化)層平均化第一網路層中之通道值。實例第一分支實施控制器ID11_A101、實例第二分支實施控制器ID11_B101及/或實例第三分支實施控制器ID11_C101可利用其他方法來聚集上下文資訊。在區塊ID11_D106處,第一分支實施控制器ID11_A101、第二分支實施控制器ID11_B101及/或第三分支實施控制器ID11_C101可進行上下文資訊之重要性分類,其中可在區塊ID11_D108處基於重要性分類將第一網路層中之一或多個通道排除在第二網路層之考慮之外。在區塊ID11_D108處,實例第一分支實施控制器ID11_A101、第二分支實施控制器ID11_B101及/或第三分支實施控制器ID11_C101基於修剪比約束條件(例如,待修剪之通道百分比)選擇一或多個通道。
圖ID11_E展示進行所聚集上下文資訊之重要性分類的方法ID11_E100。方法ID11_E100可易於取代已論述的區塊ID11_D106 (圖ID11_D)。更特定而言,方法ID11_E100可由實例第一分支實施控制器ID11_A101、第二分支實施控制器ID11_B101及/或第三分支實施控制器ID11_C101實施為邏輯指令集中之一或多個模組,該輯指令集儲存於諸如RAM、ROM、PROM、韌體、快閃記憶體等之機器或電腦可讀儲存媒體中;實施於諸如PLA、FPGA、CPLD之可組配邏輯中;實施於使用諸如ASIC、CMOS或TTL技術之電路技術的固定功能性硬體邏輯中;或其任何組合。
在處理區塊ID11_E102處,實例第一分支實施控制器ID11_A101、第二分支實施控制器ID11_B101及/或第三分支實施控制器ID11_C101藉由位於第一網路層與第二網路層之間的分路中之第一FC層,基於所聚集上下文資訊產生與第一網路層相關聯之高層級特徵向量。另外,在區塊ID11_E104處,實例第一分支實施控制器ID11_A101、第二分支實施控制器ID11_B101及/或第三分支實施控制器ID11_C101可藉由分路中之第二FC層,基於高層級特徵向量產生重要性計分向量,其中對於不太重要的通道,重要性計分向量包含零值。在此情況下,在區塊ID11_D108 (圖ID11_D)處,實例第一分支實施控制器ID11_A101、第二分支實施控制器ID11_B101及/或第三分支實施控制器ID11_C101可使第一網路層之輸出乘以重要性計分向量。
現轉至圖ID11_F,展示電腦視覺系統ID11_F100 (例如,運算系統)。系統ID11_F100可大體上為具有以下功能性之電子裝置/平台的部分:運算功能性(例如,個人數位助理/PDA、筆記型電腦、平板電腦、可轉換平板電腦、伺服器)、通訊功能性(例如,智慧型手機)、成像功能性(例如,相機、攝錄像機)、媒體播放功能性(例如,智慧型電視/TV)、可穿戴功能性(例如,手錶、護目鏡、頭飾、鞋類、珠寶)、車輛功能性(例如,汽車、卡車、摩托車)、機械功能性(例如,自主機器人)等或其任何組合。在所說明實例中,系統ID11_F100包括具有一或多個核心ID11_F104及耦接至系統記憶體ID11_F108之整合式記憶體控制器(IMC) ID11_F106的一或多個處理器ID11_F102 (例如,主機處理器、中央處理單元/CPU、視覺處理單元/VPU)。
所說明系統ID11_F100亦包括連同半導體晶粒ID11_F112上之處理器ID11_F102實施為系統單晶片(SoC)的輸入輸出(IO)模組ID11_F110,其中IO模組ID11_F110充當主機裝置且可與例如顯示器ID11_F114 (例如,觸控螢幕、液晶顯示器/LCD、發光二極體/LED顯示器)、網路控制器ID11_F116 (例如,有線及/或無線)、一或多個相機ID11_F115及大容量儲存器ID11_F118 (例如,硬碟機/HDD、光碟、固態磁碟機/SSD、快閃記憶體)通訊。處理器ID11_F102可執行自系統記憶體ID11_F108及/或大容量儲存器ID11_F118擷取之指令ID11_F120 (例如,用於深度學習網路之數學核心程式庫/MKL-DNN內部的特定化核心),以執行已論述的方法ID11_D100 (圖ID11_D)及/或方法ID11_E100 (圖ID11_E)之一或多個態樣。
因此,指令ID11_F120之執行可致使系統ID11_F100自具有耦接至第一網路層之輸出的第二網路層之神經網路中的第一網路層聚集上下文資訊,其中即時地及在訓練神經網路之後聚集上下文資訊。上下文資訊可與由相機ID11_F115擷取之影像資料(例如,靜態影像、視訊圖框)相關聯。另外,指令ID11_F120之執行可致使系統ID11_F100進行所聚集上下文資訊之重要性分類,及基於重要性分類將第一網路層中之一或多個通道選擇性地排除在第二網路層之考慮之外。
圖ID11_G展示半導體設備ID11_G100 (例如,晶片、晶粒、封裝)。所說明設備ID11_G100包括一或多個基體ID11_G102 (例如,矽、藍寶石、砷化鎵),及耦接至基體ID11_G102之邏輯ID11_G104 (例如,電晶體陣列及其他積體電路/IC組件)。邏輯ID11_G104可實施已論述之方法ID11_D100 (圖ID11_D)及/或方法ID11_E100 (圖ID11_E)的一或多個態樣。因此,邏輯ID11_G104可自具有耦接至第一網路層之輸出的第二網路層之神經網路中的第一網路層聚集上下文資訊,其中即時地及在訓練神經網路之後聚集上下文資訊。邏輯ID11_G104亦可進行所聚集上下文資訊之重要性分類,及基於重要性分類將一或多個通道選擇性地排除在第二網路層之考慮之外。邏輯ID11_G104可至少部分實施於可組配邏輯或固定功能性硬體邏輯中。邏輯ID11_G104亦可包括神經網路。在一個實例中,邏輯ID11_G104包括定位於(例如,嵌入於)基體ID11_G102內之電晶體通道區。因此,邏輯ID11_G104與基體ID11_G102之間的界面可能並非陡接面。邏輯ID11_G104亦可被認為包括生長於基體ID11_G102之初始晶圓上的磊晶層。
圖ID11_H說明根據一個實施例之處理器核心ID11_H100。處理器核心ID11_H100可為用於任何類型之處理器的核心,諸如微處理器、嵌入式處理器、數位信號處理器(DSP)、網路處理器或用以執行程式碼之其他裝置。儘管圖ID11_H中僅說明一個處理器核心ID11_H100,但處理元件可替代地包括圖ID11_H中所說明之處理器核心ID11_H100中的多於一者。處理器核心ID11_H100可為單執行緒核心,或對於至少一個實施例,處理器核心ID11_H100可經多執行緒化,此係因為其每核心可包括多於一個硬體執行緒上下文(或「邏輯處理器」)。
圖ID11_H亦說明耦接至處理器核心ID11_H100之記憶體ID11_H170。記憶體ID11_H170可為如熟習此項技術者已知或以其他方式可用於熟習此項技術者的廣泛多種記憶體中之任一者(包括記憶體階層之各種層)。記憶體ID11_H170可包括待由處理器核心ID11_H100執行之一或多個程式碼ID11_H113指令,其中程式碼ID11_H113可實施已論述之方法ID11_D100 (圖ID11_D)及/或方法ID11_E100 (圖ID11_E)。處理器核心ID11_H100遵循由程式碼ID11_H113指示之指令程式序列。每一指令可進入前端部分ID11_H110並由一或多個解碼器ID11_H120處理。解碼器ID11_H120可產生微操作作為其輸出,微操作係諸如呈預界定格式之固定寬度微操作;或可產生其他指令、微指令或反映原始程式碼指令之控制信號。所說明前端部分ID11_H110亦包括暫存器重命名邏輯ID11_H125及排程邏輯ID11_H130,其大體上分配資源並將對應於轉換指令的操作排入佇列以供執行。
處理器核心ID11_H100展示為包括具有執行單元ID11_H155a至ID11_H155n之集合的執行邏輯ID11_H150。一些實施例可包括專用於特定功能或功能集合之數個執行單元。其他實施例可包括僅一個執行單元或可執行特定功能的一個執行單元。所說明執行邏輯ID11_H150執行由程式碼指令指定之操作。
在完成執行由程式碼指令所指定之操作之後,後端邏輯ID11_H160汰除程式碼ID11_H113之指令。在一個實施例中,處理器核心ID11_H100允許無序指令執行但要求有序汰除指令。汰除邏輯ID11_H165可呈如熟習此項技術者已知之多種形式(例如,重新定序緩衝器等)。以此方式,處理器核心ID11_H100在程式碼ID11_H113之執行期間至少就由解碼器所產生輸出、由暫存器重命名邏輯ID11_H125所利用硬體暫存器及表,以及由執行邏輯ID11_H150所修改任何暫存器(未展示)而言經變換。
儘管圖ID11_H中未說明,但處理元件可包括晶片上之其他元件以及處理器核心ID11_H100。例如,處理元件可包括記憶體控制邏輯連同處理器核心ID11_H100。處理元件可包括I/O控制邏輯及/或可包括與記憶體控制邏輯整合之I/O控制邏輯。處理元件亦可包括一或多個快取記憶體。
以下實例提供本文中所揭露之實例的其他變型。
實例ID11_A1為一種系統,其包括處理器,及耦接至處理器之記憶體,記憶體包括在由處理器執行時致使系統進行以下操作之可執行電腦程式指令:訓練至少包含第一網路層及第二網路層之神經網路,其中第二網路層耦接至第一網路層之輸出,且其中第一網路層具有複數個通道;自神經網路之第一網路層聚集上下文資訊,其中即時地及在訓練神經網路之後聚集上下文資訊,且其中上下文資訊包括通道值;基於所聚集上下文資訊產生與神經網路之第一網路層相關聯的特徵向量;基於所產生特徵向量產生重要性計分向量,其中重要性計分向量包括指示第一網路層之對應通道的重要性之資訊;及基於重要性計分向量將第一網路層中之一或多個通道選擇性地排除在第二網路層之考慮之外。
在實例ID11_A2中,實例ID11_A1之標的物任擇地包括當經執行時致使系統平均化通道值以自神經網路之第一網路層聚集上下文資訊的指令。
在實例ID11_A3中,實例ID11_A1至ID11_A2中之任一或多者的標的物任擇地包括對於第一網路層之不太重要通道中之神經元,重要性計分向量具有零值。
在實例ID11_A4中,實例ID11_A3之標的物任擇地包括當經執行時進一步致使系統將第一網路層之輸出乘以重要性計分向量的指令。
在實例ID11_A5中,實例ID11_A1至ID11_A4中之任一或多者的標的物任擇地包括當經執行時致使系統基於修剪比約束條件選擇第一網路層之一或多個通道的指令,其中修剪比約束條件為待修剪之通道百分比。
在實例ID11_A6中,實例ID11_A1至ID11_A5中之任一或多者的標的物任擇地包括當經執行時致使運算系統基於修剪比約束條件判定第一網路層之層寬度損耗的指令,其中修剪比約束條件為待修剪之通道百分比;及在神經網路之訓練期間針對層寬度損耗平衡第一網路層之準確度約束條件。 神經網路拓樸最佳化(ID14)
卷積神經網路(CNN)為通常用以分析視覺影像以及其他類型之圖案化資料的一類深度神經網路(DNN)。在一些實例中,CNN可經訓練以學習特徵及/或對資料進行分類。例如,CNN可經訓練以學習濾波器(或核心)中之權重。如本文中所使用,核心為權重矩陣。在操作中,一或多個核心可與輸入相乘以提取特徵資訊。如本文中所使用,濾波器為一或多個核心,且卷積層包括二個或更多個濾波器。經訓練模型可接著用以識別或提取輸入影像中之諸如邊緣、分段等之資訊。每一卷積核心可由寬度及高度(超參數)界定。另外,卷積層通常對輸入(例如,輸入影像、核心等)進行卷積並將輸出傳遞至CNN之下一層。本文中所揭露之實例權重包括由文數字字元表示之一或多個值。此類值可儲存於一或多個資料結構(例如,資料結構)中,其中實例資料結構包括整數、浮點表示及/或字元。權重及表示此類權重之對應值表示以任何方式儲存之資料。此類資料亦可沿著諸如匯流排之資料路徑自第一資料結構傳播至第二資料結構或任何數目個後續資料結構。
當前,訓練CNN所需之運算能力取決於經訓練核心之數目以及核心(例如, m x n)及輸入影像之大小。當前(傳統)神經網路方法產生在許多層中具有數百個核心之較大神經網路模型,此需要記憶體資源。當邊緣處之裝置(邊緣裝置)通常受到有限記憶體、處理及/或記憶體能力之限制時,此類要求會限制此類邊緣裝置高效操作之能力。另外,增大神經網路之準確度的工作通常涉及實施額外層。然而,添加層深度亦將會使得此類模型更難以訓練。
本文中所揭露之一些實例包括減少用於訓練CNN之核心數目及/或層數目的方法、系統、製品及設備。在一些實例中,藉由將每一輸入區與多個核心進行卷積以構建特定於彼輸入區之動態核心來針對輸入影像之每一區產生動態適應性核心。所產生核心接著與彼同一輸入區進行卷積以產生單一像素輸出。因此,代替與多個核心相關聯之多個輸出,可針對所有多個核心提供單一輸出。以此方式,可減少CNN層中訓練之核心的總數目(且因此減少訓練CNN所需之總運算能力)。
圖ID14_1為使用靜態核心之實例卷積運算的概念說明ID14_100。如圖ID14_1中所示,輸入影像ID14_110包括由網格表示的9×9個影像像素。在圖ID14_1之所說明實例中,輸入影像ID14_110之網格中的每一胞元表示影像像素值。此外,在圖ID14_1之所說明實例中,實例核心ID14_120表示為權重之3×3網格。在一些實例中,核心ID14_120被稱為遮罩,其與輸入影像ID14_110進行卷積。核心ID14_120接著經應用(例如,卷積)至輸入影像ID14_110之部分以產生實例輸出影像ID14_130。例如,在第一迭代(例如,經由輸入影像定位及/或以其他方式應用之滑動窗的第一位置)期間,遮罩ID14_120與輸入影像ID14_110重疊,且輸入影像ID14_110之彼特定部分(例如,窗)中的每一值與遮罩ID14_120中之每一值相乘。後續迭代(例如,窗之滑動位置)在遮罩ID14_120移動至輸入影像ID14_110之鄰近位置時繼續遮罩乘法。在圖14_1之所說明實例中,輸出影像ID14_130為輸入影像ID14_110之每一像素用自身與附近像素之加權和替換的結果。加權和之權重由實例核心ID14_120界定。
在一些實例中,跨越實例輸入影像ID14_110之每一3×3區段(例如,作為滑動窗等)應用核心ID14_120中之相同權重,以運算實例輸出影像ID14_130之個別像素值。此外,實例CNN訓練程序可應用類似於實例核心ID14_120 (但具有不同權重值)之多個核心,以在CNN之每一層中獲得類似於輸出影像ID14_130之多個輸出影像。
應注意,輸入影像ID14_110及核心ID14_120之大小、核心ID14_120中之權重值及影像ID14_110中之像素值可發生變化且僅係出於實例展示起見而說明。其他大小、權重值及像素值係可能的。
如上文所提及,結合圖ID14_1描述之CNN訓練程序可與相對較高運算能力要求相關聯,該要求取決於所使用核心之數目、CNN層之數目、窗大小及/或輸入影像大小。對於每一經開窗運算,針對輸出影像ID14_130計算單一像素輸出ID14_140。在二個或更多個遮罩待應用於輸入影像ID14_110之情況下,接著必須跨越整個輸入影像ID14_110重複經開窗卷積運算,藉此引起大量運算要求。
圖ID14_2A為使用動態核心ID14_200之實例卷積運算的概念說明。如所示,實例輸入影像ID14_210類似於輸入影像ID14_110地表示為像素值之網格。然而,在圖ID14_2A之實例卷積運算中,實例輸入影像ID14_210之每一區段(例如,區段ID14_212,有時被稱作窗、滑動窗或核心窗)與包括根據影像區段ID14_212中之資料調整之權重值的實例動態核心ID14_220進行卷積。
特定而言,多個(靜態)核心ID14_222、ID14_224、ID14_226、ID14_228等首先個別地與影像區段ID14_212進行卷積(例如,藉由運算中心像素與其鄰近像素之加權和)以獲得單一輸出值。圖ID14_2A之所說明實例包括九(9)個不同靜態核心(濾波器),但本文中所揭露之實例不限於此。來自使用不同靜態核心ID14_222、ID14_224、ID14_226、ID14_228等執行之卷積運算的個別輸出值接著經組合(作為權重值)至與個別核心ID14_222、ID14_224、ID14_226、ID14_228等中之每一者大小相同的所產生動態核心ID14_220中。不同於將輸入圖案的一部分與每一核心產生單一像素輸出之多個核心進行卷積的傳統方法,本文中所揭露之實例產生用於所產生動態核心ID14_220之權重。
接下來,所產生動態核心ID14_220與同一影像區段ID14_212進行卷積以產生單一輸出像素ID14_230。因此,代替針對核心ID14_222、ID14_224、ID14_226、ID14_228等中的每一者產生輸出像素,使用單一動態核心獲得單一像素輸出。
與上文論述一致,動態核心ID14_220中之權重可取決於與動態核心ID14_220進行卷積之各別影像區段ID14_212的資料內容而變化。此不同於傳統卷積方法,在傳統方法中,針對輸入圖案之每一窗應用相同多種核心(例如,ID14_222、ID14_224等)。亦即,影像ID14_210之不同區段(例如,在經開窗部分移動至右側之後)可具有不同圖案(亦即,不同像素值),且因此在其對應所產生動態核心ID14_220中產生不同權重值。因此,在輸入影像之每一經開窗部分期間執行的每一卷積產生與輸入影像ID14_212之每一區段相乘的獨特及/或以其他方式動態的核心ID14_220。
本文中所揭露之實例的至少一個益處使得在影像卷積期間產生較佳濾波器(有時被稱作「描述符」)。簡單轉至圖ID14_2B,實例輸入影像ID14_210展示為具有環繞其之八(8)個實例濾波器。圖ID14_2B之所說明實例包括第一動態濾波器ID14_250、第二動態濾波器ID14_252、第三動態濾波器ID14_254、第四動態濾波器ID14_256、第五動態濾波器ID14_258、第六動態濾波器ID14_260、第七動態濾波器ID14_262及第八動態濾波器ID14_264。不同於以獨立於輸入影像ID14_210之特定部分的方式應用相同濾波器之傳統卷積技術,本文中所揭露之實例動態濾波器係基於輸入影像ID14_210之每一部分獨特地產生的。換言之,本文中所揭露之動態濾波器/核心基於輸入影像改變其行為,使得輸入影像之每一部分與不同濾波器進行卷積。因此,因為需要較少核心及層,所以減少了條項。
本文中所揭露之動態濾波器的產生准許自輸入影像更高效地提取資訊。例如,第一濾波器ID14_250對應於輸入影像ID14_210的均質部分(例如,在感興趣的窗內僅包括單一色彩之像素)。實例第一動態濾波器ID14_250准許卷積程序學習為忽略不含資訊之此類輸入影像部分,藉此允許跳過此類區及/或以其他方式防止其他運算資源被應用於此類部分之分析。
另外,經由此實例程序,在根據圖ID14_2A中所說明之實例實施的CNN訓練模型之每一層中使用的核心(且因此超參數)數目可小於在根據結合圖ID14_1描述之實例實施的傳統CNN訓練模型之每一層中使用的對應核心(且因此超參數)數目。因此,本文中所揭露之實例降低CNN模型之記憶體要求且減少此類CNN模型所需之運算資源。雖然傳統CNN技術及本文中所揭露之動態核心技術二者皆收斂至解(例如,具有特定百分比準確度量度之解),但本文中所揭露之實例使用較少權重及較少時期進行收斂。此外,因為動態濾波器經應用於輸入影像之每一部分,所以所提取資訊之準確度得以改良。
大體而言,隨著描述符之準確度增大,對後續層中之特定數量之核心及/或神經元的對應需要會降低。表ID14_A說明典型LeNet CNN拓樸,且表ID14_B說明本文中所揭露之實例適應性核心拓樸。
單元 類型
層1 20個核心 卷積5x5
層2 50個核心 卷積5x5
層3 500個神經元 FC
層4 10個神經元 FC
表ID14_A
單元 類型
層1 5個核心 適應性卷積5x5 5x5
層2 10個核心 卷積5x5
層3 20個神經元 FC
層4 10個神經元 FC
表ID14_B 如實例表ID14_A中所說明,典型LeNet CNN拓樸包括具有二十個核心之第一層及具有五十個核心之第二層。然而,採用適應性核心之本文中所揭露實例(例如,表ID14_B)實現第一層包括五個核心且第二層具有十個核心之網路拓樸。此外,實例LeNet CNN拓樸需要431,000個參數以實現大於99%之準確度,然而本文中所揭露之實例適應性核心需要大約6500個參數以實現相同準確度,藉此大體上降低了記憶體要求。另外,市售可得之LetNet5模型需要60,000個參數以實現大於99%之準確度,其大約為本文中所揭露之實例實現大體上類似(例如,在1%至2%內)準確度所需之參數數目的九倍。雖然Patrice Y. Simard (2003)之實例「最佳實踐」模型亦使用四個層實現大於99%之準確度,但彼市售可得模型需要超過132,000個參數,其為本文中所揭露之實例所需之參數數量的二十倍。
圖ID14_3為根據本揭露內容之教示實施的用於訓練適應性卷積神經網路之實例機器學習訓練器電路系統ID14_300的方塊圖。如所示,實例機器語言訓練器ID14_300包括實例訓練資料資料存放區ID14_305、實例動態核心卷積器電路系統ID14_310、實例模型資料資料存放區ID14_315及實例模型提供者電路系統ID14_320。圖ID14_3之實例機器學習訓練器ID14_300負責促進圖ID14_2A中所揭露之實例。
在一些實例中,機器學習訓練器電路系統ID14_300包括用於機器學習訓練之構件、用於動態核心卷積之構件及用於模型提供之構件。例如,用於機器學習訓練之構件可由機器學習訓練器電路系統ID14_300實施,用於動態核心卷積之構件可由動態核心卷積器電路系統ID14_310實施,且用於模型提供之構件可由模型提供者電路系統ID14_320實施。在一些實例中,前述結構可由本文中所揭露且由處理器電路系統執行之機器可執行指令實施,該處理器電路系統可由圖D2之實例處理器電路系統D212及/或實例現場可程式化閘陣列(FPGA)電路系統、其他硬體邏輯電路系統、硬體實施之狀態機,及/或硬體、軟體及/或韌體之任何其他組合實施。例如,前述結構可由經構造以在不執行軟體或韌體之情況下執行對應操作的至少一或多個硬體電路(例如,處理器電路系統、離散及/或整合式類比及/或數位電路系統、FPGA、特殊應用積體電路(ASIC)、比較器、運算放大器(op-amp)、邏輯電路等)實施,但其他結構同樣係適當的。
圖ID14_3之所說明實例的實例訓練資料資料存放區ID14_305由任何儲存裝置(例如,用於儲存資料之記憶體、結構及/或儲存碟,諸如快閃記憶體、磁性媒體、光學媒體、固態記憶體、硬碟機、隨身碟等)實施。此外,儲存於實例訓練資料資料存放區ID14_305中之資料可呈任何資料格式,諸如二元資料、逗號定界資料、欄標定界資料、結構化查詢語言(SQL)結構等。在一個實例中,儲存於實例訓練資料資料存放區ID14_305中之資料可包括影像資料(例如,影像檔案),其包括表示各種圖案(例如,邊緣、分段等)之訓練影像,例如類似於輸入影像ID14_210。
雖然在圖ID14_3之所說明實例中,訓練資料資料存放區ID14_305說明為單一裝置,但實例訓練資料資料存放區ID14_305及/或本文中所描述之任何其他資料儲存裝置可由任何數目及/或類型之記憶體實施。實例訓練資料資料存放區ID14_305儲存由實例動態核心卷積器電路系統ID14_310使用以訓練模型之資料。
圖ID14_3之所說明實例的實例動態核心卷積器電路系統ID14_310係使用諸如硬體處理器之邏輯電路來實施。例如,動態核心卷積器電路系統ID14_310可使用由處理器執行以執行動態核心卷積器電路系統ID14_310之功能的電腦可讀指令來實施。可另外或替代地使用其他類型之電路系統,諸如一或多個類比或數位電路、邏輯電路、可程式化處理器、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)、現場可程式化邏輯裝置(FPLD)、數位信號處理器(DSP)、粗粒度降低精度架構(CGRA)、影像信號處理器(ISP)等。
在操作中,實例動態核心卷積器電路系統ID14_310藉由將資料區段與多個不同核心進行卷積,並組合經卷積核心之輸出以產生用於卷積彼資料區段之單一動態核心來產生用於訓練資料模型(例如,影像)之每一區段的動態核心,其方式與對應於圖ID14_2A之論述一致。此外,實例動態核心卷積器電路系統ID14_310將上文所描述之動態核心卷積運算之結果儲存於實例模型資料資料存放區ID14_315中。
圖ID14_3之所說明實例的實例模型資料資料存放區ID14_315由任何儲存裝置(例如,用於儲存資料之記憶體、結構及/或儲存碟,諸如快閃記憶體、磁性媒體、光學媒體、固態記憶體、硬碟機、隨身碟)實施。此外,儲存於實例模型資料資料存放區ID14_315中之資料可呈任何資料格式,諸如二元資料、逗號定界資料、欄標定界資料、結構化查詢語言(SQL)結構等。在一個特定實例中,儲存於實例模型資料存放區ID14_315中之資料包括經訓練以識別及/或分類影像資料中之特徵(例如,分段、背景)的核心(例如,權重濾波器)。
雖然在圖ID14_3之所說明實例中,模型資料資料存放區ID14_315說明為單一裝置,但實例模型資料資料存放區ID14_315及/或本文中所描述之任何其他資料儲存裝置可由任何數目及/或類型之記憶體實施。實例模型資料資料存放區ID14_315儲存關於由求根器訓練之模型的資訊。此類資訊可包括例如模型超參數、關於模型之架構的資訊等。
所說明實例之實例模型提供者電路系統ID14_320使得實例機器學習訓練器ID14_300能夠傳輸及/或以其他方式提供對儲存於模型資料資料存放區ID14_315中之模型的接取。以此方式,模型可在機器學習訓練器ID14_300 (例如,第一裝置)處經訓練,且由模型提供者電路系統ID14_320經由例如網路(例如,網際網路)提供至另一裝置(例如,第二裝置),以允許另一裝置利用模型進行推斷。
雖然實施圖3之機器學習訓練器ID14_300之實例方式說明於圖ID14_4中,但圖ID14_4中所說明之元件、程序及/或裝置中之一或多者可以任何其他方式組合、劃分、重新配置、省略、消除及/或實施。此外,實例動態核心卷積器電路系統ID14_310、實例模型提供者ID14_315,及/或更大體而言,圖ID14_3之實例機器學習訓練器ID14_300可由硬體、軟體、韌體,及/或硬體、軟體及/或韌體之任一組合實施。實例硬體實施包括圖D1A之實例運算電路系統D102 (例如,實例處理器D104)上,或圖D1B之實例運算節點D150的實例處理器D152上之實施。因此,例如,實例動態核心卷積器電路系統ID14_310、實例模型提供者ID14_315中之任一者,及/或更大體而言,實例機器學習訓練器ID14_300可由一或多個類比或數位電路、邏輯電路、可程式化處理器、可程式化控制器、圖形處理單元(GPU)、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)及/或現場可程式化邏輯裝置(FPLD)實施。當閱讀本專利之設備或系統請求項中之任一者以涵蓋僅軟體及/或韌體實施時,實例動態核心卷積器電路系統ID14_310及/或實例模型提供者ID14_315中之至少一者特此明確地界定為包括包含軟體及/或韌體的非暫時性電腦可讀儲存裝置或儲存磁碟,諸如記憶體、數位化通用光碟(DVD)、緊密光碟(CD)、Blu-ray光碟等。實例儲存裝置及/或儲存磁碟可體現為經組配用於短期或長期儲存資料的任何類型之實體裝置中之一或多者,諸如記憶體裝置、記憶體、電路系統、記憶卡、快閃記憶體、硬碟機、固態磁碟機(SSD)及/或其他資料儲存裝置/磁碟。再者,圖ID14_3之實例機器學習訓練器ID14_300可包括除了圖ID14_4中所說明之彼等之外或代替彼等的一或多個元件、程序及/或裝置,及/或可包括所說明元件、程序及裝置中之任一者或所有中的多於一者。本文中所揭露之實例任擇地曝露一或多個調整鈕以促進選擇及/或調整可選選項。可由例如使用者及/或代理選擇調整鈕。代理調整鈕調整可以獨立於使用者之自動方式發生以努力識別一或多個特定經最佳化調整鈕設定。
表示用於實施圖ID14_3之機器學習訓練器ID14_300的實例硬體邏輯、機器可讀指令、硬體實施之狀態機及/或其任何組合的流程圖展示於圖ID14_4中。機器可讀指令可為用於由電腦處理器及/或處理器電路系統執行之一或多個可執行程式或可執行程式的部分,該電腦處理器及/或處理器電路系統諸如上文結合圖D1B論述之實例處理器平台D150中所示的處理器D152。該程式可體現於儲存於諸如CD-ROM、軟碟、硬碟機、DVD、Blu-ray光碟或與處理器D152相關聯的記憶體之非暫時性電腦可讀儲存媒體上的軟體中,但整個程式及/或其部分可替代地由除了處理器D152以外之裝置執行及/或體現於韌體或專用硬體中。此外,儘管參考圖ID14_4中所說明之流程圖描述實例程式,但可替代地使用實施實例機器學習訓練器ID14_300之許多其他方法。例如,可改變區塊之執行次序,及/或可改變、消除或組合所描述區塊中之一些。另外或替代地,區塊中之任一者或全部可由經構造以在不執行軟體或韌體之情況下執行對應操作的一或多個硬體電路(例如,離散及/或整合式類比及/或數位電路系統、FPGA、ASIC、比較器、運算放大器(op-amp)、邏輯電路等)實施。處理器電路系統可分佈於不同網路位置中及/或在一或多個裝置(例如,單一機器中之多核心處理器、跨越伺服器機架分佈之多個處理器等)本端。
本文中所描述之機器可讀指令可以壓縮格式、經加密格式、分段格式、經編譯格式、可執行格式、經封裝格式等中之一或多者來儲存。如本文中所描述之機器可讀指令可儲存為資料或資料結構(例如,指令之部分、程式碼、程式碼之表示等),其可用以產生、製造及/或產生機器可執行指令。例如,機器可讀指令可經分段且儲存於位於網路或網路集合之相同或不同位置處(例如,雲端中、邊緣裝置中等)的一或多個儲存裝置及/或運算裝置(例如,伺服器)上。機器可讀指令可能需要安裝、修改、調適、更新、組合、補充、組配、解密、解壓縮、解封裝、分佈、再指派、編譯等中之一或多者,以便使該等指令可直接由運算裝置及/或其他機器讀取、解譯及/或執行。例如,機器可讀指令可儲存於多個部分中,該等部分經個別地壓縮、加密且儲存於單獨運算裝置上,其中該等部分在經解密、經解壓縮及經組合時形成實施可一起形成諸如本文中所描述的程式之程式的一或多個功能的可執行指令集。
在另一實例中,機器可讀指令可儲存於以下狀態中:其中機器可讀指令可由處理器電路系統讀取,但需要添加程式庫(例如,動態鏈接程式庫(DLL))、軟體開發套件(SDK)、應用程式設計介面(API)等,以便執行特定運算裝置或其他裝置上之指令。在另一實例中,機器可讀指令可需要在可整體或部分地執行機器可讀指令及/或對應程式之前經組配(例如,所儲存設定、資料輸入、所記錄網路位址等)。因此,如本文中所使用,機器可讀媒體可包括機器可讀指令及/或程式,而不管機器可讀指令及/或程式在儲存時或以其他方式在靜止時或在輸送時的特定格式或狀態。
本文中所描述之機器可讀指令可由任何過去、目前或未來指令語言、指令碼處理語言、程式設計語言等表示。例如,機器可讀指令可使用以下語言中之任一者來表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本標記語言(HTML),結構化查詢語言(SQL),Swift等。
如上文所提及,圖ID14_4之實例程序可使用儲存於非暫時性電腦及/或機器可讀媒體上之可執行指令(例如,電腦及/或機器可讀指令)來實施,該非暫時性電腦及/或機器可讀媒體諸如硬碟機、快閃記憶體、唯讀記憶體、緊密光碟、數位化通用光碟、快取記憶體、隨機存取記憶體,及/或歷時任何持續時間儲存資訊(例如,歷時經延長時間週期、永久性地、歷時短暫時刻、用於臨時緩衝,及/或用於資訊之快取)的任何其他儲存裝置或儲存磁碟。如本文中所使用,術語非暫時性電腦可讀媒體明確地界定為包括任何類型之電腦可讀儲存裝置及/或儲存磁碟且排除傳播信號及傳輸媒體。
圖ID14_4為表示可經執行以實施實例機器學習訓練器ID14_300來使用動態核心訓練CNN之實例機器可讀指令ID14_400的流程圖。
在區塊ID14_402處,實例機器學習訓練器ID14_300獲得待分析之資料。例如,待分析之資料可包括自邊緣裝置擷取的尚未識別之影像,諸如行人、汽車或交通標誌之影像。在一些實例中,資料係自記憶體、儲存器或具有感測器(例如,相機、麥克風、陀螺儀等)之一或多個裝置獲得。在一些實例中,待分析之資料為來自智慧型手錶之振動資訊,其中需要識別示意動作。在一些實例中,待分析之資料為待識別其內之一或多個命令的音訊資訊。實例動態核心卷積器電路系統ID14_310獲得任何數目個核心(區塊ID14_404),諸如神經網路中通常採用之靜態核心。在一些實例中,靜態核心最初填入有隨機值,且在傳統神經網路實施中,此類靜態核心在學習程序期間經修改。複數個核心可類似於核心ID14_120、ID14_222、ID14_224、ID14_226及/或ID14_228。在一個實例中,動態核心卷積器電路系統ID14_310自實例模型資料資料存放區ID14_315獲得核心。例如,可(至少部分地)使用基於同一訓練資料資料存放區之另一神經網路訓練模型運算核心中之初始權重值並將其儲存於模型資料資料存放區ID14_305中。在另一實例中,可隨機地產生核心中之初始權重值且接著在神經網路之訓練程序期間進行調整。其他實例係可能的。
如上文所描述,雖然本文中所揭露之實例以任何數目個靜態核心開始,但此類靜態核心並非藉由與輸入影像之每一選定窗進行卷積而以傳統方式採用。
實例卷積窗移位電路系統ID14_312將卷積窗定位於輸入影像之未檢查部分上(區塊ID14_406)。簡單返回至圖ID14_2A之所說明實例,區段ID14_212表示步進通過輸入影像ID14_210之卷積窗。實例動態核心卷積器電路系統ID14_310將對應於卷積窗ID14_212內之內容的窗影像資料與靜態濾波器中之選定者相乘(卷積)以產生用於實例動態核心之權重值(區塊ID14_408)。每一所產生/所計算輸出(例如,像素)可對應於輸入影像區段ID14_212中之像素值的加權和,其中權重由選定核心界定。在實例動態核心卷積器電路系統ID14_310判定一或多個額外靜態核心尚未應用於輸入影像之選定部分(區塊ID14_410)的情況下,實例動態核心卷積器電路系統ID14_310接著選擇下一可用靜態核心(區塊ID14_412)且控制返回至區塊ID14_408。
另一方面,在動態核心卷積器電路系統ID14_310判定所有靜態核心皆已應用於輸入影像之選定部分(區塊ID14_410)的情況下,實例模型資料資料存放區ID14_315儲存對應於輸入影像之選定部分的動態核心(區塊ID14_414)。在一些實例中,動態卷積器電路系統ID14_310組合輸出像素以產生用於影像之第一區段的動態核心。實例動態核心卷積器電路系統ID14_310將來自輸入影像之窗影像資料與動態核心相乘(卷積)以產生像素輸出(區塊ID14_416)。實例卷積窗移位電路系統ID14_312判定輸入影像內是否存在尚未經卷積之額外窗位置(區塊ID14_418)。若如此,則控制返回至區塊ID14_406,否則實例模型提供者電路系統ID14_320保存模型以進行儲存(區塊ID14_420)。
自前述內容,將瞭解,已揭露用於適應性地訓練卷積神經網路之實例方法、設備及製品。所揭露方法、設備及製品藉由減少用於訓練卷積神經網路模型之核心及/或層數目來改良使用運算裝置之效率。因此,所揭露之方法、設備及製品係針對電腦運行的一或多個改良。
以下實例提供上文所揭露實例之其他變型。
本文中揭露用以最佳化邊緣網路中之資源的實例方法、設備、系統及製品。其他實例及其組合包括以下:實例145包括一種設備,其包含:中央處理單元、圖形處理單元或數位信號處理器中之至少一者,中央處理單元、圖形處理單元或數位信號處理器中之該至少一者具有用以控制處理器電路系統內之資料移動的控制電路系統、用以執行對應於指令之一或多個第一操作的算術及邏輯電路系統及用以儲存一或多個第一操作之結果、設備中之指令的一或多個暫存器;現場可程式化閘陣列(FPGA),該FPGA包括邏輯閘電路系統、複數個可組配互連及儲存電路系統,邏輯閘電路系統及互連用以執行一或多個第二操作,儲存電路系統用以儲存一或多個第二操作之結果;或特殊應用積體電路系統,其包括用以執行一或多個第三操作之邏輯閘電路系統,處理器電路系統用以進行以下中之至少一者:執行第一操作、第二操作或第三操作中之至少一者以:藉由將輸入影像之部分與靜態核心中之第一者進行卷積產生第一權重;藉由將輸入影像之部分與靜態核心中之第二者進行卷積產生第二權重;回應於判定所有可用靜態核心皆已與輸入影像之部分進行卷積,藉由組合第一權重與第二權重產生動態核心;藉由將輸入影像之部分與動態核心進行卷積產生對應於輸入影像之部分的輸出像素;及自對應於輸入影像之額外部分中的各別者的額外輸出像素中之各別者構建卷積模型。
實例146包括如實例145中所界定之設備,其中處理器電路系統用以構建具有第一層深度值及第一數量個參數之卷積模型。
實例147包括如實例146中所界定之設備,其中卷積模型之第一層深度與市售可得模型相同,卷積模型之參數的第一數量比市售可得模型之參數的第二數量低至少九倍。
實例148包括如實例146中所界定之設備,其中處理器電路系統用以構建具有大體上等於對應於市售可得模型之第二準確度量度的第一準確度量度的卷積模型。
實例149包括如實例145中所界定之設備,其中處理器電路系統用以藉由介面電路系統接取輸入影像。
實例150包括至少一種非暫時性電腦可讀儲存媒體,其包含當經執行時致使至少一個處理器至少進行以下操作之指令:藉由將輸入影像之部分與靜態核心中之第一者進行卷積產生第一權重;藉由將輸入影像之部分與靜態核心中之第二者進行卷積產生第二權重;回應於判定所有可用靜態核心皆已與輸入影像之部分進行卷積,藉由組合第一權重與第二權重產生動態核心;藉由將輸入影像之部分與動態核心進行卷積產生對應於輸入影像之部分的輸出像素;及自對應於輸入影像之額外部分中的各別者的額外輸出像素中之各別者構建卷積模型。
實例151包括如實例150中所界定之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器構建具有第一層深度值及第一數量個參數之卷積模型。
實例152包括如實例151中所界定之電腦可讀儲存媒體,其中卷積模型之第一層深度與市售可得模型相同,卷積模型之參數的第一數量比市售可得模型之參數的第二數量低至少九倍。
實例153包括如實例152中所界定之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器構建具有大體上等於對應於市售可得模型之第二準確度量度的第一準確度量度的卷積模型。
實例154包括如實例151中所界定之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器藉由介面電路系統接取輸入影像。
實例155包括一種方法,其包含:藉由將輸入影像之部分與靜態核心中之第一者進行卷積產生第一權重;藉由將輸入影像之部分與靜態核心中之第二者進行卷積產生第二權重;回應於判定所有可用靜態核心皆已與輸入影像之部分進行卷積,藉由組合第一權重與第二權重產生動態核心;藉由將輸入影像之部分與動態核心進行卷積產生對應於輸入影像之部分的輸出像素;及自對應於輸入影像之額外部分中的各別者的額外輸出像素中之各別者構建卷積模型。
實例156包括如實例155中所界定之方法,其進一步包括構建具有第一層深度值及第一數量個參數之卷積模型。
實例157包括如實例156中所界定之方法,其中卷積模型之第一層深度與市售可得模型相同,卷積模型之參數的第一數量比市售可得模型之參數的第二數量低至少九倍。
實例158包括如實例156中所界定之方法,其進一步包括構建具有大體上等於對應於市售可得模型之第二準確度量度的第一準確度量度的卷積模型。
實例159包括如實例156中所界定之方法,其進一步包括經由介面電路系統接取輸入影像。
實例160包括一種用以產生模型之設備,其包含:卷積窗移位電路系統,該電路系統用以將核心窗定位至輸入影像的一部分;動態核心卷積器電路系統,該電路系統用以藉由將輸入影像之部分與靜態核心中之第一者進行卷積產生第一權重,藉由將輸入影像之部分與靜態核心中之第二者進行卷積產生第二權重,回應於判定所有可用靜態核心皆已與輸入影像之部分進行卷積,藉由組合第一權重與第二權重產生動態核心,及藉由將輸入影像之部分與動態核心進行卷積產生對應於輸入影像之部分的輸出像素;及模型提供者電路系統,該電路系統用以自對應於輸入影像之額外部分中的各別者的額外輸出像素中之各別者構建卷積模型。
實例161包括如實例160中所界定之設備,其中模型提供者電路系統用以構建具有第一層深度值及第一數量個參數之卷積模型。
實例162包括如實例161中所界定之設備,其中卷積模型之第一層深度與市售可得模型相同,卷積模型之參數的第一數量比市售可得模型之參數的第二數量低至少九倍。
實例163包括如實例161中所界定之設備,其中模型提供者電路系統用以構建具有大體上等於對應於市售可得模型之第二準確度量度的第一準確度量度的卷積模型。
實例164包括如實例160中所界定之設備,其進一步包括用以接取輸入影像的介面電路系統。 用於神經網路訓練及拓樸最佳化之二階分叉方法及設備(ID15)
包括機器學習(ML)、深度學習(DL)及/或其他人工機器驅動式邏輯之人工智慧(AI)使得機器(例如,電腦、邏輯電路等)能夠使用模型來處理輸入資料,以基於先前由模型經由訓練程序習得的圖案及/或關聯而產生輸出。例如,可藉由資料訓練模型以辨識圖案及/或關聯,並在處理輸入資料時遵循此類圖案及/或關聯,使得其他輸入產生符合所辨識圖案及/或關聯之輸出。
當前,神經網路(NN)層中之神經元或單元之數目由網路架構師手動地界定。通常,此超參數係基於架構師之經驗且遵循試誤法程序。因此,常認為最終NN拓樸在某種程度上係次優的。
典型程序為網路架構師手動地界定神經元之數目,且藉由多次訓練使用試誤法程序,直至使用者在神經元數目與預期準確度效能之間獲得令人滿意的平衡為止。一些現有技術嘗試自動地調諧超參數,從而經由蠻力執行多次訓練,直至找出產生最佳效能的超參數組合為止。
另一技術為使用基因演算法。在此方法中,每一模型表示群體之元素且結合前幾代產生新模型,並且對於每一組合,執行新訓練以便識別新群體中之最佳拓樸。
任何此類現有技術皆使用多個訓練迭代,此會轉化為在經延長時間週期上之高運算能力消耗。因此,此等方法具有較低的總實際效率。
本文中所揭露之實例方法基於豎直及水平切線拋物線之使用,使用全連接層來利用二階方法最小化NN訓練中之全域損耗誤差。本文中所揭露之實例方法擴展誤差導函數中之零交叉之搜尋區域,從而量化全連接層中對較多或較少數目個神經元之需要,以便對訓練資料庫中之圖案進行最佳分類。
在本文中所揭露之實例方法中,神經元之數目收斂至誤差函數之導數的根之數目。如本文中所使用,根界定為對應於函數之導數中的零交叉之數值。在一些實例中,函數可具有任何數目個根。例如,簡單二次函數可具有單一根,然而較複雜之多項式函數可具有多個根。亦即,當二個神經元收斂至同一根時,此等神經元將合併成單一神經元。另外,每一神經元改良其位置以較佳地覆蓋訓練資料分佈,否則將分割成二個神經元,此取決於其每一迭代中之導函數。
本文中所揭露之實例尋求藉由將全連接層中之神經元重新定位至誤差之導數的根(即,E'(u) = dE(u)/du)來最小化NN模型之誤差。E之局部最小點為E'之根。此類方法並不需要初始界定根之搜尋區間。此外,本文中所揭露之實例方法使不處於最小鄰域中之神經元移動,從而降低運算成本且因此改良模型架構。因此,不僅NN之加權參數經訓練,且同時改良了NN之拓樸,而無需訓練多個拓樸。
圖ID15_1包括說明用於求函數根之實例程序之迭代的圖。圖ID15_1之所說明實例包括六個圖ID15_110、ID15_120、ID15_130、ID15_140、ID15_150、ID15_160。在圖ID15_110、ID15_120、ID15_130、ID15_140、ID15_150、ID15_160中之每一者中,展示多項式函數ID15_105。在圖ID15_1之所說明實例中,多項式函數ID15_105可由等式ID15_1表示:
Figure 02_image007
等式ID15_1
貫穿六個圖/迭代ID15_110、ID15_120、ID15_130、ID15_140、ID15_150、ID15_160,求出了多項式函數ID15_105之根(例如,表示為x 1、x 2、x 3、x 4、x 5、x 6)。在圖ID15_1之所說明實例中,在多項式函數ID15_105之切點處添加二階多項式函數。在初始迭代中,隨機選定起點(例如,x 0)。在圖ID15_1之所說明實例中,
Figure 02_image009
處使用之多項式可用於產生
Figure 02_image011
(根)及
Figure 02_image013
。對於此情況,
Figure 02_image013
並非根但其幫助產生
Figure 02_image015
,對於下一迭代,求出另一根以及
Figure 02_image017
,其中
Figure 02_image017
幫助求出根
Figure 02_image019
等等。
圖ID15_2表示與圖ID15_1之多項式函數ID15_105相關聯的求根程序之七個迭代的值。在圖ID15_2之所說明實例中,說明七個迭代,其表示通過識別根之程序的進展。在圖ID15_2之所說明實例中,緊鄰值之核取標記指示值被識別為根。因此,在圖ID15_2之所說明實例中,在七個迭代中識別了圖ID15_1之多項式函數ID15_105之五個根。
多項式根之此識別與可能需要數百或數千迭代之蠻力搜尋技術形成對比。此外,常見蠻力技術應用「分格」,其中在多項式之特定區內(例如,整數值之間)搜尋根。此類技術通常限於在每一區內識別單一根。因此,若在圖ID15_1之多項式函數ID15_105的上下文中,在-2與-1、-1與0、0與1、1與2之間搜尋根,則將會僅識別出四個根,而實際上存在五個根。
圖ID15_3為實例神經網路之方塊圖。實例神經網路包括基於徑向基底函數(RBF)之全連接層ID15_310。在圖ID15_3之所說明實例中,使用RBF NN,然而可另外或替代地使用任何其他類型的網路。圖ID15_3之所說明實例展示隱藏層中之神經元數目為k之基本架構。本文中所揭露之實例方法將取決於誤差函數之導數中偵測到的根數目來增大及降低神經元之數目。在圖ID15_3之所說明實例中,
Figure 02_image021
表示超球體(用於2D之高斯)之質心,w表示輸出層之權重,
Figure 02_image023
表示來自高斯神經元之輸出且o為最終層之輸出。
在神經網路之訓練期間,總誤差由下式給出:
Figure 02_image025
其中
Figure 02_image027
由下式給出:
Figure 02_image029
Figure 02_image031
界定為:
Figure 02_image033
接著,誤差E偏導數為:
Figure 02_image035
由於吾人將函數界定為誤差之導數:
Figure 02_image037
因此,導數接著表示為:
Figure 02_image039
且:
Figure 02_image041
其中S為:
Figure 02_image043
且:
Figure 02_image045
現在,吾人可運算比率:
Figure 02_image047
上文比率允許圖ID15_4之實例求根器ID15_410實施下文結合圖5A及圖5B所描述之程序,以求出誤差函數之導數的根。所求出根與NN解決問題所需之神經元數目成比例。
圖ID15_4為根據本揭露內容之教示實施的用以執行二階分叉以用於訓練機器學習模型之實例機器學習訓練器400的方塊圖。實例機器學習400包括訓練資料資料存放區ID15_405、求根器ID15_410、測根器ID15_412、模型資料資料存放區ID15_415及模型提供者ID15_420。
圖ID15_4之所說明實例的訓練資料資料存放區ID15_405由任何儲存裝置(例如,用於儲存資料之記憶體、結構及/或儲存碟,諸如快閃記憶體、磁性媒體、光學媒體、固態記憶體、硬碟機、隨身碟等)實施。此外,儲存於實例訓練資料資料存放區ID15_405中之資料可呈任何資料格式,諸如二元資料、逗號定界資料、欄標定界資料、結構化查詢語言(SQL)結構等。雖然在所說明實例中,訓練資料資料存放區ID15_405說明為單一裝置,但實例訓練資料資料存放區ID15_405及/或本文中所描述之任何其他資料儲存裝置可由任何數目及/或類型之記憶體實施。實例訓練資料資料存放區ID15_405儲存由實例求根器ID15_410使用以訓練模型之資料。
圖ID15_4之所說明實例的實例求根器ID15_410由諸如硬體處理器之邏輯電路實施。然而,可另外或替代地使用任何其他類型之電路系統,諸如一或多個類比或數位電路、邏輯電路、可程式化處理器、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)、現場可程式化邏輯裝置(FPLD)、數位信號處理器(DSP)、粗粒度降低精度架構(CGRA)、影像信號處理器(ISP)等。圖ID15_4之所說明實例的實例求根器ID15_410使用二階分叉以嘗試識別待由測根器ID15_412測試之根的潛在值。如本文中所使用,函數之根表示神經網路之神經元。在一些實例中,求根器ID15_410使用所識別根來訓練機器學習模型。實例求根器ID15_410將機器學習模型訓練之結果儲存於實例模型資料資料存放區ID15_415中。
圖ID15_4之所說明實例的實例測根器ID15_412由諸如硬體處理器之邏輯電路實施。然而,可另外或替代地使用任何其他類型之電路系統,諸如一或多個類比或數位電路、邏輯電路、可程式化處理器、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)、現場可程式化邏輯裝置(FPLD)、數位信號處理器(DSP)、粗粒度降低精度架構(CGRA)、影像信號處理器(ISP)等。圖ID15_4之所說明實例的實例測根器ID15_412評估誤差值以判定特定值(例如,至函數之一或多個輸入值)是否識別函數之根。
圖ID15_4之所說明實例的實例模型資料資料存放區ID15_415由任何儲存裝置(例如,用於儲存資料之記憶體、結構及/或儲存碟,諸如快閃記憶體、磁性媒體、光學媒體、固態記憶體、硬碟機、隨身碟等)實施。此外,儲存於實例模型資料資料存放區ID15_415中之資料可呈任何資料格式,諸如二元資料、逗號定界資料、欄標定界資料、結構化查詢語言(SQL)結構等。雖然在所說明實例中,模型資料資料存放區ID15_415說明為單一裝置,但實例模型資料資料存放區ID15_415及/或本文中所描述之任何其他資料儲存裝置可由任何數目及/或類型之記憶體實施。實例模型資料資料存放區ID15_415儲存關於由求根器ID15_410訓練之模型的資訊。此類資訊可包括例如模型超參數、關於模型之架構的資訊等。
所說明實例之實例模型提供者ID15_420使得實例機器學習訓練器ID15_400能夠傳輸及/或以其他方式提供對儲存於模型資料資料存放區ID15_415中之模型的接取。以此方式,模型可在機器學習訓練器ID15_400 (例如,第一裝置)處經訓練,且由模型提供者ID15_420經由例如網路(例如,網際網路)提供至另一裝置(例如,第二裝置),以允許另一裝置利用模型進行推斷。換言之,實例機器學習訓練器ID15_400可經實施以在邊緣裝置、IoT裝置、雲端伺服器或能夠訓練機器學習模型之任何其他運算裝置處執行訓練。
雖然實施機器學習訓練器ID15_400之實例方式說明於圖ID15_4中,但圖ID15_4中所說明之元件、程序及/或裝置中之一或多者可以任何其他方式組合、劃分、重新配置、省略、消除及/或實施。此外,實例求根器ID15_410、實例測根器ID15_412、實例模型提供者ID15_420,及/或更大體而言,圖ID15_4之實例機器學習訓練器ID15_400可由硬體、軟體、韌體,及/或硬體、軟體及/或韌體之任一組合實施。因此,例如,實例求根器ID15_410、實例測根器ID15_412、實例模型提供者ID15_420中之任一者,及/或更大體而言,圖ID15_4之實例機器學習訓練器ID15_400可由一或多個類比或數位電路、邏輯電路、可程式化處理器、可程式化控制器、圖形處理單元(GPU)、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)及/或現場可程式化邏輯裝置(FPLD)實施。當閱讀本專利之設備或系統請求項中之任一者以涵蓋僅軟體及/或韌體實施時,實例求根器ID15_410、實例測根器412、實例模型提供者ID15_420中之至少一者,及/或更大體而言,圖ID15_4之實例機器學習訓練器ID15_400特此明確地界定為包括包含軟體及/或韌體的非暫時性電腦可讀儲存裝置或儲存磁碟,諸如記憶體、數位化通用光碟(DVD)、緊密光碟(CD)、Blu-ray光碟等。再者,圖ID15_4之實例機器學習訓練器ID15_400可包括除了圖ID15_4中所說明之彼等之外或代替彼等的一或多個元件、程序及/或裝置,及/或可包括所說明元件、程序及裝置中之任一者或所有中的多於一者。如本文中所使用,片語「進行通訊」,包括其變型,涵蓋直接通訊及/或經由一或多個中間組件之間接通訊,且不需要直接實體(例如,有線)通訊及/或持續通訊,而實際上另外包括呈週期性間隔、經排程間隔、非週期性間隔及/或單次事件之選擇性通訊。
表示用於實施圖ID15_4之機器學習訓練器ID15_400的實例硬體邏輯、機器可讀指令、硬體實施之狀態機及/或其任何組合的流程圖展示於圖ID15_5、圖ID15_6、圖ID15_7及/或圖ID15_8中。機器可讀指令可為用於由電腦處理器及/或處理器電路系統執行之一或多個可執行程式或可執行程式之部分,該電腦處理器及/或處理器電路系統諸如下文結合圖D1A及/或圖D1B論述之實例運算節點D100中所示的處理器D104。該程式可體現於儲存於諸如CD-ROM、軟碟、硬碟機、DVD、Blu-ray光碟或與處理器D104相關聯的記憶體之非暫時性電腦可讀儲存媒體上的軟體中,但整個程式及/或其部分可替代地由除了處理器D104以外之裝置執行及/或體現於韌體或專用硬體中。此外,儘管參考圖ID15_6、圖ID15_5、圖ID15_7及/或圖ID15_8中所說明之流程圖描述實例程式,但可替代地使用實施圖ID15_4之實例機器學習訓練器ID15_400的許多其他方法。例如,可改變區塊之執行次序,及/或可改變、消除或組合所描述區塊中之一些。另外或替代地,區塊中之任一者或全部可由經構造以在不執行軟體或韌體之情況下執行對應操作的一或多個硬體電路(例如,離散及/或整合式類比及/或數位電路系統、FPGA、ASIC、比較器、運算放大器(op-amp)、邏輯電路等)實施。處理器電路系統可分佈於不同網路位置中及/或在一或多個裝置(例如,單一機器中之多核心處理器、跨越伺服器機架分佈之多個處理器等)本端。
本文中所描述之機器可讀指令可以壓縮格式、經加密格式、分段格式、經編譯格式、可執行格式、經封裝格式等中之一或多者來儲存。如本文中所描述之機器可讀指令可儲存為資料或資料結構(例如,指令之部分、程式碼、程式碼之表示等),其可用以產生、製造及/或產生機器可執行指令。例如,機器可讀指令可經分段且儲存於位於網路或網路集合之相同或不同位置處(例如,雲端中、邊緣裝置中等)的一或多個儲存裝置及/或運算裝置(例如,伺服器)上。機器可讀指令可能需要安裝、修改、調適、更新、組合、補充、組配、解密、解壓縮、解封裝、分佈、再指派、編譯等中之一或多者,以便使該等指令可直接由運算裝置及/或其他機器讀取、解譯及/或執行。例如,機器可讀指令可儲存於多個部分中,該等部分經個別地壓縮、加密且儲存於單獨運算裝置上,其中該等部分在經解密、經解壓縮及經組合時形成實施可一起形成諸如本文中所描述的程式之程式的一或多個功能的可執行指令集。
在另一實例中,機器可讀指令可儲存於以下狀態中:其中機器可讀指令可由處理器電路系統讀取,但需要添加程式庫(例如,動態鏈接程式庫(DLL))、軟體開發套件(SDK)、應用程式設計介面(API)等,以便執行特定運算裝置或其他裝置上之指令。在另一實例中,機器可讀指令可需要在可整體或部分地執行機器可讀指令及/或對應程式之前經組配(例如,所儲存設定、資料輸入、所記錄網路位址等)。因此,如本文中所使用,機器可讀媒體可包括機器可讀指令及/或程式,而不管機器可讀指令及/或程式在儲存時或以其他方式在靜止時或在輸送時的特定格式或狀態。
本文中所描述的機器可讀指令可由任何過去、目前或未來指令語言、指令碼處理語言、程式設計語言等表示。例如,機器可讀指令可使用以下語言中之任一者來表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本標記語言(HTML),結構化查詢語言(SQL),Swift等。
如上文所提及,圖ID15_6、圖ID15_5、圖ID15_7及/或圖ID15_8之實例程序可使用儲存於非暫時性電腦及/或機器可讀媒體上之可執行指令(例如,電腦及/或機器可讀指令)來實施,該非暫時性電腦及/或機器可讀媒體諸如硬碟機、快閃記憶體、唯讀記憶體、緊密光碟、數位化通用光碟、快取記憶體、隨機存取記憶體,及/或歷時任何持續時間儲存資訊(例如,歷時經延長時間週期、永久性地、歷時短暫時刻、用於臨時緩衝,及/或用於資訊之快取)的任何其他儲存裝置或儲存磁碟。如本文中所使用,術語非暫時性電腦可讀媒體明確地界定為包括任何類型之電腦可讀儲存裝置及/或儲存磁碟且排除傳播信號及傳輸媒體。
圖ID15_5為表示可經執行以使用由圖ID15_4之求根器識別之根訓練機器學習模型的實例機器可讀指令之流程圖。圖ID15_6之實例程序在求根器ID15_410接取訓練資料以用於訓練機器學習模型時開始。(區塊ID15_510)。在本文中所揭露之實例中,訓練資料儲存於訓練資料資料存放區ID15_405中。在一些實例中,回應於自另一節點(例如,邊緣運算網路中之另一節點)接收訓練資料,將訓練資料儲存於訓練資料儲存器ID15_405中。實例求根器ID15_410及/或實例測根器ID15_412依據訓練資料發現根,如下文的圖ID15_6、圖ID15_7及/或圖ID15_8之求根程序中所描述。(區塊ID15_520)。實例求根器ID15_410判定是否繼續根發現。(區塊ID15_530)。此類判定可基於例如是否已求出臨限數目個根,是否已花費臨限時間量來嘗試識別根,是否已執行根發現程序之臨限數目個迭代及/或其任何其他特徵或組合來作出。若將繼續根發現(例如,區塊ID15_530傳回是之結果),則控制行進至區塊ID15_520,在該區塊處,繼續執行根發現程序。
若根發現完成(例如,區塊ID15_530傳回否之結果),則實例求根器ID15_410在訓練機器學習模型時將所發現根用作神經元。(區塊ID15_540)。以此方式,可藉由使用所發現根來避免原本將包括於經訓練機器學習模型中的額外外來神經元。實例求根器ID15_410接著將經訓練機器學習模型儲存於模型資料資料存放區ID15_415中。(區塊ID15_550)。
在圖ID15_5之所說明實例中,實例模型提供者ID15_420將所儲存機器學習模型提供至其他裝置以供執行。(區塊ID15_560)。以此方式,模型可在第一位置(例如,邊緣網路中之中心節點)處經訓練,且分佈至第二位置(例如,邊緣網路中之邊緣節點),使得機器學習模型可在彼等第二位置處經執行。然而,在一些實例中,模型在同一節點處經訓練及執行。相比先前技術,利用本文中所揭露的基於根發現之訓練程序使得能夠更高效地發現節點,藉此允許訓練亦可能在具有較少運算資源(例如,較少記憶體、較少處理器資源等)之節點處進行。此類方法使得能夠更頻繁地訓練(例如,再訓練、更新等)模型。圖ID15_5之實例程序接著終止,但可在例如指示將發生訓練,指示存在新訓練資料,在經訓練模型中偵測到錯誤,自先前訓練以來經過臨限時間量等時重新執行。
圖ID15_6為表示可經執行以致使實例求根器及/或測根器求函數根之實例機器可讀指令的流程圖。圖ID15_6之所說明實例表示由圖ID15_4之機器學習訓練器400執行的實例操作。在本文中所揭露之實例中,圖ID15_6中所說明之程序經多執行緒化,且至少使用每一權重之初始值來開始探索NN模型誤差之導數,以便求函數根並在每一局部最小值處移動神經元權重。
圖ID15_6之實例程序ID15_600在實例求根器ID15_410選擇用於識別函數根之起點時開始。(區塊ID15_605)。在本文中所揭露之實例中,起點經初始化為隨機值。然而,可另外或替代地使用任何其他值。實例求根器ID15_410識別根的待分析之潛在值(例如,選擇一值以判定其是否為根)。(區塊ID15_510)。在初始迭代中,待分析之潛在值為在區塊ID15_505處選定之起點。在後續迭代中,待分析之潛在值可係基於由先前迭代之分析產生的所儲存值(例如,如下文結合區塊ID15_630所描述)。測根器ID15_412判定函數之值是否小於誤差臨限值。(區塊ID15_615)。若如此(例如,區塊ID15_615傳回是之結果),則實例測根器412將所識別測試值添加為根。(區塊ID15_620)。實例測根器ID15_410判定是否應搜尋及/或測試額外根。(區塊ID15_622)。若將繼續搜尋額外根(例如,區塊ID15_622傳回是之結果),則控制行進至區塊ID15_610。若將並不執行額外搜尋(例如,區塊ID15_622傳回否之結果),則程序600終止(例如,控制返回至圖ID15_5之區塊ID15_520)。
返回至區塊ID15_615,若區塊ID15_615傳回否之結果,則實例求根器ID15_410使用二階分叉以嘗試識別待在後續迭代中分析的根之一或多個潛在位置。(區塊ID15_630)。在一些實例中,求根器ID15_410考慮潛在值是否先前已經分析,且若如此,則避免對該潛在值進行再分析。迭代地繼續實例程序,直至根發現程序完成為止。
圖ID15_7為表示可經執行以致使實例求根器410求函數根之實例機器可讀指令的流程圖。圖ID15_7之所說明實例表示由圖ID15_4之機器學習訓練器ID15_400執行的實例操作。圖ID15_8為表示對應於圖ID15_7之機器可讀指令的實例數學運算之流程圖。圖ID15_8之所說明實例說明圖ID15_7之彼等操作的數學表示ID15_800。在本文中所揭露之實例中,圖ID15_7中所說明之程序經多執行緒化,且至少使用每一權重之初始值來開始探索NN模型誤差之導數,以便求函數根並在每一局部最小值處移動神經元權重。大體而言,程序係基於函數
Figure 02_image049
之導數產生的導數比率
Figure 02_image051
,其界定為:
Figure 02_image053
其中
Figure 02_image055
表示NN模型誤差之導數。取決於
Figure 02_image057
Figure 02_image059
之值,存在如圖ID15_7之流程圖中所描述的四個不同情境。
圖ID15_7之實例程序ID15_700在實例求根器ID15_410選擇用於識別函數f(a)之根的起點時開始。(區塊ID15_705)。用於實施圖ID15_7之區塊ID15_705的實例等式展示於圖ID15_8之區塊ID15_805中。在本文中所揭露之實例中,起點(x 0)經初始化為隨機值。然而,可另外或替代地使用任何其他值。實例求根器ID15_710識別根的待分析之潛在值(例如,選擇一值以判定其是否為根)。(區塊ID15_710)。用於實施圖ID15_7之區塊ID15_710的實例等式展示於圖ID15_8之區塊ID15_810中。
在初始迭代中,待分析之潛在值為在區塊ID15_705處選定之起點。在後續迭代中,待分析之潛在值可係基於由先前迭代之分析產生的所儲存值(例如,如下文結合區塊ID15_750所描述)。測根器ID15_412判定函數之值是否小於誤差臨限值。(區塊ID15_715)。用於實施圖ID15_7之區塊ID15_715的實例等式展示於圖ID15_8之區塊ID15_815中。
若函數之值小於誤差臨限值(例如,區塊ID15_715傳回是之結果),則實例求根器ID15_410將x 0之所識別值添加為根。(區塊ID15_720)。實例求根器ID15_410判定是否應搜尋額外根。(區塊ID15_722)。若將繼續搜尋額外根(例如,區塊ID15_722傳回是之結果),則控制行進至區塊ID15_710。若將並不執行額外搜尋(例如,區塊ID15_722傳回否之結果),則程序ID15_700終止。
返回至區塊ID15_715,若區塊ID15_715傳回否之結果,則實例求根器ID15_410判定函數之二階導數(例如,f''(a))是否等於零。(區塊ID15_725)。用於實施圖ID15_7之區塊ID15_725的實例等式展示於圖ID15_8之區塊ID15_825中。
若函數之二階導數等於零(區塊725傳回是之結果),則實例求根器ID15_410判定一階導數(例如,f'(a))是否等於零。(區塊730)。用於實施圖ID15_7之區塊ID15_730的實例等式展示於圖ID15_8之區塊ID15_830中。
若一階導數並不等於零(區塊ID15_730傳回否之結果),則實例求根器ID15_410計算第一導數比率(例如,r 1) (區塊ID15_735),且將第一點(x 1)設定為等於索引(a)減去第一導數比率(例如,r 1)。(區塊ID15_740)。用於實施圖ID15_7之區塊ID15_735及ID15_740的實例等式分別展示於圖ID15_8之區塊ID15_835及ID15_840中。
若一階導數等於零(例如,區塊ID15_730傳回奇異或是之結果),則實例求根器ID15_410將第一點及第二點(x 1、x 2)設定為等於a±1。(區塊ID15_745)。用於實施圖ID15_7之區塊ID15_745的實例等式展示於圖ID15_8之區塊ID15_845中。控制接著自區塊ID15_740或745行進至區塊ID15_750,在該區塊處,實例求根器ID15_410儲存第一點及/或第二點,藉此識別待搜尋根之後續點。(區塊ID15_750)。在一些實例中,第一點儲存為L[n],且第二點(若設定)儲存為L[n+1]。用於實施圖ID15_7之區塊ID15_750的實例等式展示於圖ID15_8之區塊ID15_850中。
控制接著行進至區塊ID15_710,在該區塊處,重複該程序。在此類實例中,作為後續搜尋之部分,可產生多個額外執行緒。例如,若識別出第一及第二點二者(例如,L[n]及L[n+1]二者經儲存),則可產生二個額外執行緒以促進在彼等位置處搜尋根。在一些替代實例中,現有執行緒可再用於額外搜尋中的一者,且可產生第二(新)執行緒。隨後所搜尋值及/或搜尋到彼等隨後所搜尋值之執行緒可產生供分析以判定是否已求出根之其他位置。
在一些實例中,在識別待分析以判定值是否為根之值時,實例求根器ID15_410考慮潛在值是否先前已經測試。若先前已測試潛在值(或在潛在值之臨限距離內的值),則並不重複對彼值進行測試避免了產生無限迴路之可能性。例如,在圖ID15_3之所說明實例中,初始值-1.9未求出根,但產生根之潛在值-1.849及-1.41,該等潛在值在第一後續迭代中經分析。在第一後續迭代中,值-1.849經確認為根,且值-1.41經識別為並非根。對值-1.41之測試產生根之潛在值-2.02及-0.93,該等潛在值在第二後續迭代中經分析。在第二後續迭代中,值-2.02未識別出根,但產生根之潛在值-1.849及1.56。在第三後續迭代中分析值1.56。然而,因為值-1.849先前已經分析(而不管對值-1.849之識別被識別為根),所以值-1.849並不包括於第三後續迭代中。以此方式,潛在根之先前經分析值不會導致產生額外執行緒。
此外,在一些實例中,在第二後續迭代中分析值-2.02之後,若根識別器ID15_410判定應測試值-1.848 (相對於-1.849),則根識別器ID15_410可判定不應測試值-1.848,此係因為其在距先前所測試值臨限距離內。在一些實例中,使用不同(例如,較大)臨限距離可減少運算時間(且作為擴展,減少機器學習訓練器ID15_400之運算資源要求),此係因為並不分析額外類似值,代價為可能遺漏對彼此接近之根的識別。相比之下,使用較小臨限距離可增大運算時間(且作為擴展,增大機器學習訓練器ID15_400之運算資源要求),此係因為分析了額外類似值,藉此可能識別原本可能未發現之額外根(從而相比未發現彼等根之情況,產生更準確之機器學習模型)。
返回至圖ID15_7之區塊ID15_725,若二階導數(例如,f''(a))並不等於零(例如,區塊ID15_725傳回否之結果),則實例求根器ID15_410計算第三導數比率(r 3)。(區塊ID15_755)。用於實施圖ID15_7之區塊ID15_755的實例等式展示於圖ID15_8之區塊ID15_855中。實例求根器ID15_410判定函數之一階導數(f'(a))或函數之二階導數(f''(a))是否小於誤差臨限值。(區塊ID15_760)。用於實施圖ID15_7之區塊ID15_760的實例等式展示於圖ID15_8之區塊ID15_860中。
若區塊ID15_760傳回是之結果,則實例求根器410基於測試點(a)及第三導數比率之一半設定第一點(x 1) (例如,等於a + (½) r 3)。(區塊ID15_765)。用於實施圖ID15_7之區塊ID15_765的實例等式展示於圖ID15_8之區塊ID15_865中。控制接著行進至區塊ID15_750。
若區塊ID15_760傳回否之結果,則實例求根器410計算第二導數比率(r 2)。(區塊ID15_770)。實例求根器ID15_410判定第三導數比率之平方(例如,r 3平方)是否大於或等於第二導數比率的兩倍(例如,2r 2)。(區塊ID15_775)。用於實施圖ID15_7之區塊ID15_775的實例等式展示於圖ID15_8之區塊ID15_875中。若區塊ID15_775評估為錯誤(例如,區塊ID15_775傳回否之結果),則實例求根器ID15_410基於測試點(a)及第三導數比率設定第一點(x 1) (例如,等於a-r3)。(區塊ID15_780)。用於實施圖ID15_7之區塊ID15_780的實例等式展示於圖ID15_8之區塊ID15_880中。否則(例如,若區塊ID15_775傳回是之結果),求根器ID15_410使用基於測試點、第二導數比率及第三導數比率之等式(例如,
Figure 02_image061
)計算第一及第二點。(區塊ID15_785)。用於實施圖ID15_7之區塊ID15_785的實例等式展示於圖ID15_8之區塊ID15_885中。控制接著行進至區塊ID15_750。如上文所提及,在區塊ID15_750處,實例求根器ID15_410將第一點x 1儲存為L[n],且將第二點(若設定) x 2儲存為L[n+1],藉此識別待搜尋根之後續點。(區塊ID15_750)。控制接著行進至區塊ID15_710,在該區塊處,重複該程序。在此類實例中,作為後續搜尋之部分,可產生多個額外執行緒。例如,若L[n]及L[n+1]二者經儲存,則可產生二個額外執行緒以促進在彼等位置處搜尋根。在一些替代實例中,現有執行緒可再用於額外搜尋中的一者,且可產生第二(新)執行緒。
繼續圖ID15_7之實例程序ID15_700,直至根發現程序完成為止。當例如所有執行緒皆識別出根且不存在供測試以判定位置是否表示根之額外位置時,實例程序可被視為已完成。然而,可另外或替代地使用判定根發現程序何時被視為完成的任何其他方法,包括例如在已發現臨限數目個根(例如,五個根、十個根、二十個根)時,在已測試臨限數目個潛在根位置(例如,測試了二十個潛在根位置、測試了一百個潛在根位置、測試了一千個潛在根位置等)時,在根發現程序期間已經過臨限時間量,已在根發現程序中使用臨限運算資源量等。
在其他實例中,可基於圖D1A及圖D1B中所描繪之組件實現參考本發明邊緣運算系統及環境(例如,圖ID15_4之機器學習訓練器ID15_400)論述的運算節點或裝置中之任一者。
圖ID15_10表示用以訓練神經網路以產生特定輸出之實驗。圖10中所說明之實例影像藉由減少神經元之數目來突出顯示對NN拓樸功能性之調適。出於觀測目的,圖ID15_10中所顯示之情境由2D空間中之特徵組成。隨機初始化之神經元的數目設定為對於任務較高(超過解決問題所需數目的初始60個神經元)。
在圖ID15_10之所說明實例中,NN經訓練以在紅色點與黑色點之間進行分類(參見下文標繪圖)。白色圓形表示每一2D RBF神經元分佈。如圖ID15_10之標繪圖序列中可見,神經元之數目在訓練NN時降低,且基於將神經元合併於同一E'根上,誤差降低,該標繪圖序列按順序包括第一標繪圖ID15_1005、第二標繪圖ID15_1010、第三標繪圖ID15_1015、第四標繪圖ID15_1020及第五標繪圖ID15_1025。最終標繪圖ID15_1030 (黑色及黃色)展示對網路之逐像素評估,從而說明了此問題之最終經最佳化資源數目(9個神經元)。
自前述內容,將瞭解,已揭露藉由不僅調整神經網路之權重,且還藉由引入二次函數(即,切線豎直及水平拋物線)在訓練程序期間自動地調整全連接層內部之神經元數目來實現神經網路之訓練的實例方法、設備及製品。
藉由實施此方法論,有可能較快且較穩健地收斂至誤差函數之導數的根。因此,相對於高功率集中式伺服器,可在諸如邊緣運算節點之較低功率裝置上更高效地實現神經網路之訓練。
在所求出根中的每一者處,定位神經元,且當二個神經元收斂至同一根時,合併此等神經元以僅具有一個神經元。此構成最佳化最終NN拓樸所需之神經元數目的基本機制。以相同方式,若演算法偵測到存在較大數目個根,則有可能藉由分割層中之現有神經元(類似於生物有絲分裂程序)來產生新神經元。此等二個程序確保將在訓練階段結束時獲得適當數目個神經元。此類方法通常減少用於實施神經網路所需之神經元數目。因此,產生較小神經網路模型。使用較小神經網路模型使得能夠在較低功率運算裝置(例如,邊緣節點)上使用彼等模型進行推斷,以及降低將彼等模型提供至彼等較低功率運算裝置所需的通訊要求。因此,本文中所揭露之實例幫助找出NN模型之經改良拓樸,以便在訓練期間節省運算資源,且在經部署以進行推斷時提供預期效能。
儘管本文中已揭露某些實例方法、設備及製品,但本專利之涵蓋範圍的範疇並不限於此。相反地,本專利涵蓋落在本專利之申請專利範圍的範疇內之所有方法、設備及製品。
本文中揭露用以最佳化邊緣網路中之資源的實例方法、設備、系統及製品。其他實例及其組合包括以下:
實例165包括一種用以訓練機器學習模型之設備,該設備包括記憶體、指令及至少一個處理器,該至少一個處理器用以執行指令以致使至少一個處理器至少進行以下操作:接取訓練資料以用於訓練機器學習模型,使用二階分叉對根之可能位置進行迭代以判定根之可能位置中之各別者是否為訓練資料之根,及基於判定為訓練資料之根的根之可能位置中之各別者產生機器學習模型。
實例166包括如實例165之設備,其中訓練資料由函數表示,且為判定根之可能位置中之第一位置是否為根,至少一個處理器用以執行指令以致使至少一個處理器判定第一位置處的函數之值是否小於誤差臨限值,及回應於判定函數之值小於誤差臨限值,記錄第一位置為第一根之指示。
實例167包括如實例166之設備,其中至少一個處理器用以執行指令以致使至少一個處理器回應於判定函數之值並不小於誤差臨限值,識別第二位置,第二位置待用於後續迭代中以判定第二位置是否為第二根。
實例168包括如實例167之設備,其中至少一個處理器用以執行指令以致使至少一個處理器在第二位置在第一根之臨限距離內時,並不在後續迭代中使用第二位置。
實例169包括如實例167之設備,其中至少一個處理器用以執行指令以致使至少一個處理器回應於判定函數之值並不小於誤差臨限值,識別第三位置,第三位置待用於後續迭代中以判定第三位置是否為第三根。
實例170包括如實例167至169中任一者之設備,其中至少一個處理器用以執行指令以致使至少一個處理器基於第一位置處的函數之一階導數及第一位置處的函數之二階導數識別第二位置。
實例171包括至少一種電腦可讀儲存媒體,其包含當經執行時致使至少一個處理器至少進行以下操作之指令:接取訓練資料以用於訓練機器學習模型,使用二階分叉對根之可能位置進行迭代以判定根之可能位置中之各別者是否為訓練資料之根,及基於判定為訓練資料之根的根之可能位置中之各別者產生機器學習模型。
實例172包括如實例171之至少一種電腦可讀儲存媒體,其中訓練資料由函數表示,且為判定根之可能位置中之第一位置是否為根,指令致使至少一個處理器判定第一位置處的函數之值是否小於誤差臨限值,及回應於判定函數之值小於誤差臨限值,記錄第一位置為第一根之指示。
實例173包括如實例172之至少一種電腦可讀儲存媒體,其中指令致使至少一個處理器回應於判定函數之值並不小於誤差臨限值,識別第二位置,第二位置待用於後續迭代中以判定第二位置是否為第二根。
實例174包括如實例173之至少一種電腦可讀儲存媒體,其中指令致使至少一個處理器在第二位置在第一根之臨限距離內時,並不在後續迭代中使用第二位置。
實例175包括如實例173之至少一種電腦可讀儲存媒體,其中指令致使至少一個處理器回應於判定函數之值並不小於誤差臨限值,識別第三位置,第三位置待用於後續迭代中以判定第三位置是否為第三根。
實例176包括如實例173至175中任一者之至少一種電腦可讀儲存媒體,其中指令致使至少一個處理器基於第一位置處的函數之一階導數及第一位置處的函數之二階導數識別第二位置。
實例177包括一種訓練機器學習模型之方法,該方法包括:接取訓練資料以用於訓練機器學習模型,使用二階分叉對根之可能位置進行迭代以判定根之可能位置中之各別者是否為訓練資料之根,及基於判定為訓練資料之根的根之可能位置中之各別者產生機器學習模型。
實例178包括如實例177之方法,其中訓練資料由函數表示,且判定根之可能位置中之第一位置是否為根包括判定第一位置處的函數之值是否小於誤差臨限值,及回應於判定函數之值小於誤差臨限值,記錄第一位置為第一根之指示。
實例179包括如實例178之方法,其進一步包括回應於判定函數之值並不小於誤差臨限值,識別第二位置,第二位置待用於後續迭代中以判定第二位置是否為第二根。
實例180包括如實例179之方法,其進一步包括在第二位置在第一根之臨限距離內時,並不在後續迭代中使用第二位置。
實例181包括如實例179之方法,其進一步包括回應於判定函數之值並不小於誤差臨限值,識別第三位置,第三位置待用於後續迭代中以判定第三位置是否為第三根。
實例182包括如實例179至181中任一者之方法,其中第二位置之識別係基於第一位置處的函數之一階導數及第一位置處的函數之二階導數。
實例183包括一種用於訓練機器學習模型之設備,該設備包括:求根器,其用以對儲存於訓練資料資料存放區中之訓練資料內的根之可能位置進行迭代,該迭代係使用二階分叉執行以判定根之可能位置中之各別者是否為訓練資料之根,其中求根器用以基於判定為訓練資料之根的根之可能位置中之各別者產生機器學習模型;及模型資料資料存放區,其用以儲存由求根器產生之機器學習模型。
實例184包括如實例183之設備,其中訓練資料由函數表示,且其中為判定根之可能位置中之第一位置是否為根,求根器用以判定第一位置處的函數之值是否小於誤差臨限值,及回應於判定函數之值小於誤差臨限值,記錄第一位置為第一根之指示。
實例185包括如實例184之設備,其中求根器用以回應於判定函數之值並不小於誤差臨限值,識別第二位置,第二位置待用於後續迭代中以判定第二位置是否為第二根。
實例186包括如實例185之設備,其中求根器用以在第二位置在第一根之臨限距離內時,並不在後續迭代中使用第二位置。
實例187包括如實例185之設備,其中求根器用以回應於判定函數之值並不小於誤差臨限值,識別第三位置,第三位置待用於後續迭代中以判定第三位置是否為第三根。
實例188包括如實例185至187中任一者之設備,其中求根器用以基於第一位置處的函數之一階導數及第一位置處的函數之二階導數識別第二位置。 神經網路精度最佳化(ID24/25)
在功率、記憶體、頻寬處置及/或運算資源受到限制之邊緣裝置上部署學習演算法時,神經網路(NN)大小為一限制因素。增大NN之大小可改良任務效能之某些態樣(例如,影像辨識),同時會妨礙任務效能之其他態樣(例如,潛時)。為實現低潛時及高輸送量,可使用不同技術限制NN大小,諸如降低非零權重之數目(例如,修剪、稀疏化),降低權重及激活之位元寬度等。在一些實例中,應用均勻對稱或均勻非對稱量化技術以減小NN大小。通常,均勻對稱量化技術在使用可適應清潔位元移位運算之特定硬體裝置(例如,AVX 512 x86指令集架構(ISA))時實現最大益處,但本文中所揭露之實例不限於任何特定ISA及/或硬體。另一方面,非均勻量化利用其中鍵包括值之相對較低位元寬度表示的詞典。此類詞典對於減小大小約束是個好兆頭,但需要詞典查找額外負擔,且此類詞典自身可能會變得很大。本文中所揭露之實例發現並加速了使用經非均勻量化NN的基於詞典之加權的推斷。
發現詞典之先前工作依賴於依序搜尋與替換解壓縮技術及/或可重組配硬體。一些先前工作涉及對高斯之先前混合物進行複雜初始化,並經由最大似然技術學習彼等高斯及網路權重二者的混合參數。其他複雜後驗關聯需要具有達到機器精度之狄悅克分佈,以藉由後微調減小量化誤差。再其他技術取得經預訓練網路且藉由梯度傳播學習詞典值,但此類技術具有大體上有限質心搜尋空間,而非如本文所揭露般更新權重自身。先前技術之其他缺點包括但不限於對高度特定FPGA及/或ASIC之要求,其伴隨著相對較高之工程成本。本文中所揭露之實例權重包括由文數字字元表示之一或多個值。此類值可儲存於一或多個資料結構中,其中實例資料結構包括整數、浮點表示及/或字元。權重及表示此類權重之對應值表示以任何方式儲存之資料。此類資料亦可沿著諸如匯流排之資料路徑自第一資料結構傳播至第二或任何數目個後續資料結構。
不同於先前技術之效能問題,本文中所揭露之實例藉由二個時期而非典型的100個(或更多)時期來實現所要準確度。本文中所揭露之實例實現減小之位元精度推斷,藉此降低了記憶體頻寬瓶頸約束。大體而言,基於詞典之權重共享為所有量化技術,諸如二冪次方法、均勻對稱方法及均勻非對稱之超集。此類技術係運算裝置無關的。
圖ID24_B1說明實例矩陣壓縮框架ID24_B250。在圖ID24_B1之所說明實例中,第一張量ID24_B252、第二張量ID24_B254、第三張量ID24_B256及第四張量ID24_B258各自包括四個值。雖然圖ID24_B1之所說明實例包括如INT8之值,但本文中所揭露之實例不限於此。實例第一張量ID24_B252及實例第二張量ID24_B254包括四個單獨的獨特值,其中一些值在不同單元格中重複。關於實例第三張量ID24_B256及實例第四張量ID24_B258發生類似實例情形。如下文更詳細地揭露,針對任何數目之張量(例如,權重值之矩陣),產生一或多個詞典。在未壓縮實例張量之情況下,其經組合表示耗用記憶體之16個位元組。
鑒於實例第一張量ID24_B252及實例第二張量ID24_B254展現四個獨特權重值之共同集合(例如,經由一或多個叢集技術/演算法判定),產生第一詞典ID24_B260。特定而言,每一獨特權重值與本文中稱為鍵之特定二進位表示相關聯。因為在前述實例第一及第二張量中存在四(4)個獨特權重值,所以二個位元能夠充分表示所有權重值之組合中的每一鍵。因此,藉助於經取代鍵值表示每一張量以產生各別經壓縮張量。在圖ID24_B1之所說明實例中,第一經壓縮張量ID24_B262、第二經壓縮張量ID24_B264、第三經壓縮張量ID24_B266及第四經壓縮張量ID24_B268係藉由2位元值而非INT8值表示,藉此節約了表示/儲存所需之記憶體量。因此,所有四個實例張量之表示現在耗用記憶體之12個位元組(而非在其未經壓縮表示中之16個位元組)。
圖ID24_B2說明用以產生NN詞典之實例矩陣級數ID24_B200。在圖ID24_B2之所說明實例中,矩陣級數ID24_B200包括權重矩陣ID24_B202 (例如,張量)、叢集索引(質心) ID24_B204、近似權重矩陣ID24_B206及經壓縮矩陣ID24_B208 (例如,經壓縮張量)。在一些實例中,權重矩陣ID24_B202被稱為張量或張量矩陣。在操作中,特定權重矩陣ID24_B202包括多種值,其中每一值基於值類型(例如,浮點值(FP32、FP16)、整數值(INT16、INT8)等)耗用特定量之記憶體。如下文更詳細地揭露,叢集演算法經應用於實例權重矩陣ID24_B202以識別叢集索引(質心) ID24_B204。在一些實例中,叢集係基於平均值(例如,(-0.5 + -0.7)/2 = -0.6)之離散化值。每一質心與位元表示ID24_B210相關聯,且實例近似權重矩陣ID24_B206填入有最接近質心值。最終,用先前所識別位元(例如,二進位)表示ID24_B208替換質心值,對於每一值,位元表示耗用大體上較低量之記憶體(例如,每值2位元二進位表示相較於FP32值表示)。
開發詞典及/或判定具有小於對應原始張量/矩陣表示之記憶體/儲存要求的張量/矩陣表示之傳統方法涉及識別經最佳化質心值。例如,先前技術將質心識別為獨特值之分組,其界定搜尋空間( R C ),其中 c表示所識別質心之數目。在此有限搜尋空間 R C 內,傳統技術鑒於質心權重值結合損耗函數調整質心表示。因此,藉由傳統技術判定經更新質心值以減少(例如,最小化)損耗,但權重值自身從不改變。換言之,因為 R C 為由質心數目界定之受限搜尋空間,所以在壓縮張量/矩陣時,僅調整彼等質心會失去機會。本文中所揭露之實例不限於受限搜尋空間 R C ,而是替代地更新張量權重自身。
圖ID24_A1說明用以產生及/或以其他方式調用NN詞典之實例最佳化器電路ID24_A102。在圖ID24_A1之所說明實例中,最佳化器電路ID24_A102包括實例矩陣擷取器ID24_A104、實例叢集引擎ID24_A106、實例損耗計算器電路ID24_A108、實例梯度計算器ID24_A110、實例詞典構建器電路ID24_A112及實例矩陣解壓縮器電路ID24_A114。在操作中,實例矩陣擷取器ID24_A104擷取、接收及/或以其他方式獲得權重矩陣(例如,張量),諸如圖ID24_B2之實例權重矩陣ID24_B202。實例最佳化器電路ID24_A102以符合實例第一調諧方法論ID24_A116及/或實例第二調諧方法論ID24_A118之迭代方式執行詞典發現。
鑒於實例第一調諧方法論ID24_A116,實例叢集引擎ID24_A106執行一或多個叢集技術(例如,k均值叢集演算法),以識別、界定及/或以其他方式學習權重矩陣ID24_B202之獨特叢集值。鑒於所識別叢集,叢集引擎ID24_A106計算對應權重以最佳擬合彼等質心。此類計算包括一定程度的誤差(損耗)。因此,實例損耗計算器電路ID24_A108執行正向傳遞且計算對應於權重矩陣之所計算權重的損耗值。隨著模型(例如,神經網路)學習,原始權重( W)與經叢集權重( W ' C )之間的誤差值變得較小(例如,收斂)。特定而言,在權重更新操作期間,假定以符合實例表示ID24_1之方式藉由原始權重而非經叢集權重進行正向傳遞。
Figure 02_image063
表示ID24_1。 實例梯度計算器ID24_A110以符合實例表示ID24_2之方式在反向傳遞中計算每一獨特權重之梯度值(例如,近似值)。
Figure 02_image065
表示ID24_2。 因為所假定恆等式將經叢集權重之導數與初始權重關聯,所以在一些實例中,無需計算經叢集權重之導數。在其他實例中,實例最佳化器電路ID24_A102相對於初始權重計算經叢集權重之導數,且將導數與恆等函數關聯。並非僅更新質心值,如在先前技術中那樣,本文中所揭露之實例以符合表示ID24_3之方式進行迭代以在每一步階處重新學習質心及權重二者。
Figure 02_image067
表示ID24_3。 在表示ID24_3之所說明實例中, n表示學習權重(例如,純量)。例如,在收斂過程中,實例表示ID24_3之初始迭代會產生量值相對大於後續迭代之初始變化(例如,擺動)。因此,在臨限數目個迭代之後將學習權重( n)設定為相對較低值之一些方法促進了以經改良粒度繼續收斂並減少過沖的能力。另外,實例表示ID24_3使得本文中所揭露之實例能夠避免將搜尋空間限制及/或以其他方式限於僅彼等有限質心,且替代地,使得能夠修改權重以努力最小化損耗及收斂。近似值取決於所使用叢集演算法之穩定性,且以符合實例表示ID24_4之方式執行梯度反向傳播。
Figure 02_image069
表示ID24_4。 特定而言,經叢集權重與原始權重之間的差異變成恆等式且假定梯度相同。假定在自經叢集權重前進至非經叢集權重時不存在真實差量。隨著繼續藉由網路進行訓練,此假定獲得有效性。
除了圖ID24_A2之實例第一調諧方法論ID24_116之外,本文中所揭露之實例亦促進實例第二調諧方法論AD24_118。在圖ID24_A2之所說明實例中,界定網路( Net)。所界定網路( Net)包括二個引數:(1)輸入( x)及(2)參數( W)。在一些實例中,輸入為影像,且參數界定權重值。原始權重之備份經產生為 W ',且在恢復操作期間用 W '替換 W。另外,在所說明實例第二調諧方法論ID24_118中,藉由使用 Net(x; W 'c)來藉由 W ' (c)進行正向傳遞。此後,計算梯度且在梯度計算之後恢復權重,該計算與經叢集與原始權重之間的恆等導數對準。鑒於實例第二調諧方法論之次序,經改良準確度為至少一個有益結果,尤其在低位元寬度量化情況下。
實例詞典構建器電路ID24_A112將每一值與位元表示相關聯,且用最接近獨特值替換原始權重矩陣中之權重,藉此產生經擴增權重矩陣。實例詞典構建器電路ID24_A112亦用其對應位元表示替換獨特值,且實例最佳化器電路ID24_A102應用一或多個最小描述長度指派。因此,經壓縮權重及/或權重矩陣具有相對小於其原始組態之大小,且在傳輸模型(例如,至其他裝置,諸如具有受限記憶體、功率及/或通訊能力之邊緣裝置)時耗用較少儲存空間且需要較小頻寬。在一些非限制性實例中,最佳化器電路ID24_A102判定直方圖桶是否可超出臨限值,且若如此,則將損耗函數修改成與擬合直方圖點之高斯方差成比例。例如,在待執行可變長度壓縮以獲得進一步空間節省的情況下,產生損耗函數以增大一些質心之頻率從而允許較大可變長度壓縮。在其他實例中,改變叢集演算法以增大權重數目,此促進較大可變長度壓縮。本文中所揭露之實例任擇地曝露一或多個調整鈕以促進選擇及/或調整可選選項。可由例如使用者及/或代理選擇調整鈕。代理調整鈕調整可以獨立於使用者之自動方式發生以努力識別一或多個特定經最佳化調整鈕設定。在一些實例中,調整鈕用於控制所需固定長度壓縮之層級(詞典大小),其代價為損失一定準確度。在其他實例中,施加/設定一或多個權重限制以促進較大可變長度壓縮,從而實現較佳總體模型壓縮。一個此類實例包括L1損耗以增大模型稀疏性,此允許網路之較大壓縮以實現通訊目的。
圖ID24_C說明實例壓縮程序ID24_C300。在圖ID24_C之所說明實例中,藉由壓縮階段出現16個獨特值之假定來說明INT8至INT4壓縮程序。使用INT4鍵將二個INT8值封裝成單一INT8值。在一些實例中,詞典構建器電路ID24_A112對經壓縮張量進行交錯以避免及/或以其他方式減少後續解壓縮處之額外負擔。例如,特定硬體及相關聯指令集架構(ISA)可受益於交錯,諸如實例AVX 512 ISA。在一些實例中,並不執行交錯(例如,以避免解壓縮期間對額外位元移位運算之任何需要)。
圖ID24_D說明線性記憶體ID24_D400中可用於推斷之實例詞典。在圖ID24_D之所說明實例中,線性記憶體ID24_D400包括四個詞典及四個對應索引,但本文中所揭露之實例不限於此。另外,圖ID24_D之所說明實例包括長度為128位元之詞典,但本文中所揭露之實例不限於此且此類長度可鑒於所發現獨特值之數目而動態地改變。因此,在對於特定NN識別出相對較少數目個獨特值的情況下,隨著對應較短位元長度,解壓縮額外負擔經減小。藉由每圖塊2位元索引實現對詞典之特定選擇,此適應對四個單獨詞典之識別。雖然圖ID24_D之所說明實例包括具有2位元索引之四個詞典,但本文中所揭露之實例不限於此。
圖ID24_E說明推斷時間期間之實例矩陣/張量解壓縮ID24_E500。換言之,用對應INT8值替換INT4鍵。在操作中,實例矩陣解壓縮器電路ID24_A114接收、擷取及/或以其他方式獲得經壓縮矩陣/張量(例如,INT4),且在二個單獨暫存器中提取較低及較高半位元組,此係因為資訊量自INT4倍增至INT8。對於此實例,經壓縮張量為512位元寬且將解壓縮至1024位元寬。實例矩陣解壓縮器電路ID24_A114初始化具有待替換詞典鍵之暫存器。對於此實例,假定待用對應經解壓縮值替換鍵1101。實例矩陣解壓縮器電路ID24_A114產生用於鍵及對應半位元組之遮罩,針對上文二個暫存器中之每一者執行遮罩。因此,遮罩識別待發生替換之位置,針對每一鍵重複替換以產生經解壓縮矩陣。
值得注意的是,任何解壓縮程序通常為處理器密集型的。在位元數目增大1之情形中,運算成本會以指數方式增大。因此,如上文所揭露減小詞典位元寬度對推斷期間之裝置效率具有顯著影響。此在具有較少資源之運算裝置的邊緣位置處尤其有幫助,運算裝置諸如具有有限運算能力、頻寬能力及/或機載能量資源(例如,電池)的IoT裝置及/或行動裝置。
雖然實施圖ID24_A之最佳化器電路ID24_A102的實例方式說明於圖ID24_A中,但圖ID24_A中所說明之元件、程序及/或裝置中之一或多者可以任何其他方式組合、劃分、重新配置、省略、消除及/或實施。此外,實例矩陣擷取器ID24_A104、實例叢集引擎ID24_A106、實例損耗計算器電路ID24_A108、實例梯度計算器ID24_A110、實例詞典構建器電路ID24_A112、實例矩陣解壓縮器電路ID24_A114,及/或更大體而言,圖ID24_A之實例最佳化器電路ID24_A102可由硬體、軟體、韌體,及/或硬體、軟體及/或韌體之任一組合實施。實例硬體實施包括圖D1A之實例運算電路系統D102 (例如,實例處理器D104)上,或圖D1B之實例運算節點D150的實例處理器D152上之實施。因此,例如,實例矩陣擷取器ID24_A104、實例叢集引擎ID24_A106、實例損耗計算器電路ID24_A108、實例梯度計算器ID24_A110、實例詞典構建器電路ID24_A112、實例矩陣解壓縮器電路ID24_A114中之任一者,及/或更大體而言,圖ID24_A之實例最佳化器電路ID24_A102可由一或多個類比或數位電路、邏輯電路、可程式化處理器、可程式化控制器、圖形處理單元(GPU)、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、可程式化邏輯裝置(PLD)及/或現場可程式化邏輯裝置(FPLD)實施。當閱讀本專利之設備或系統請求項中之任一者以涵蓋僅軟體及/或韌體實施時,實例矩陣擷取器ID24_A104、實例叢集引擎ID24_A106、實例損耗計算器電路ID24_A108、實例梯度計算器ID24_A110、實例詞典構建器電路ID24_A112、實例矩陣解壓縮器電路ID24_A114中之至少一者,及/或更大體而言,圖ID24_A之實例最佳化器電路ID24_A102特此明確地界定為包括包含軟體及/或韌體的非暫時性電腦可讀儲存裝置或儲存磁碟,諸如記憶體、數位化通用光碟(DVD)、緊密光碟(CD)、Blu-ray光碟等。實例儲存裝置及/或儲存磁碟可體現為經組配用於短期或長期儲存資料的任何類型之實體裝置中之一或多者,諸如記憶體裝置、記憶體、電路系統、記憶卡、快閃記憶體、硬碟機、固態磁碟機(SSD)及/或其他資料儲存裝置/磁碟。再者,圖ID24_A之實例最佳化器電路ID24_A102可包括除了圖ID24_A中所說明之彼等之外或代替彼等的一或多個元件、程序及/或裝置,及/或可包括所說明元件、程序及裝置中之任一者或所有中的多於一者。
表示用於實施圖ID24_A之最佳化器電路ID24_A102的實例硬體邏輯、機器可讀指令、硬體實施之狀態機及/或其任何組合的流程圖展示於圖ID24_F至圖ID24_I中。機器可讀指令可為用於由電腦處理器及/或處理器電路系統執行之一或多個可執行程式或可執行程式的部分,該電腦處理器及/或處理器電路系統諸如上文結合圖D1B論述之實例處理器平台D150中所示的處理器D152。該程式可體現於儲存於諸如CD-ROM、軟碟、硬碟機、DVD、Blu-ray光碟或與處理器D152相關聯的記憶體之非暫時性電腦可讀儲存媒體上的軟體中,但整個程式及/或其部分可替代地由除了處理器D152以外之裝置執行及/或體現於韌體或專用硬體中。此外,儘管參考圖ID24_F至圖ID24_I中所說明之流程圖描述實例程式,但可替代地使用實施實例最佳化器電路ID24_A102的許多其他方法。例如,可改變區塊之執行次序,及/或可改變、消除或組合所描述區塊中之一些。另外或替代地,區塊中之任一者或全部可由經構造以在不執行軟體或韌體之情況下執行對應操作的一或多個硬體電路(例如,離散及/或整合式類比及/或數位電路系統、FPGA、ASIC、比較器、運算放大器(op-amp)、邏輯電路等)實施。處理器電路系統可分佈於不同網路位置中及/或在一或多個裝置(例如,單一機器中之多核心處理器、跨越伺服器機架分佈之多個處理器等)本端。
如上文所提及,可使用儲存於非暫時性電腦及/或機器可讀媒體上之可執行指令(例如,電腦及/或機器可讀指令)實施圖ID24_F至圖ID24_I之實例程序,該非暫時性電腦及/或機器可讀媒體諸如硬碟機、快閃記憶體、唯讀記憶體、緊密光碟、數位化通用光碟、快取記憶體、隨機存取記憶體,及/或歷時任何持續時間儲存資訊(例如,歷時經延長時間週期、永久性地、歷時短暫時刻、用於臨時緩衝,及/或用於資訊之快取)的任何其他儲存裝置或儲存磁碟。如本文中所使用,術語非暫時性電腦可讀媒體明確地界定為包括任何類型之電腦可讀儲存裝置及/或儲存磁碟且排除傳播信號及傳輸媒體。
圖ID24_F之程式ID24_F100包括區塊ID24_F102,其中實例矩陣擷取器ID24_A104擷取、接收及/或以其他方式獲得權重矩陣,諸如圖ID24_B2之實例權重矩陣ID24_B202。實例叢集引擎ID24_A106執行叢集技術以識別及/或以其他方式學習權重矩陣ID24_B202之獨特叢集值(區塊ID24_F104),且實例損耗計算器電路ID24_A108藉由經叢集權重執行正向傳遞且計算對應於權重矩陣之損耗值(區塊ID24_F106)。實例梯度計算器ID24_A110在反向傳遞中計算每一獨特權重之梯度(區塊ID24_F108),且實例最佳化器電路ID24_A102相對於初始權重計算經叢集權重之導數(區塊ID24_F110),將導數與恆等函數關聯(ID24_A112),且進行迭代以在每一步階處重新學習質心及權重二者(區塊ID24_F114)。然而,在一些實例中,無需執行區塊ID24_F110及ID24_F112,且替代地,可在重新學習質心(區塊ID24_F114)之後進行權重恢復。
若尚未發生收斂(區塊ID24_A116),則控制返回至區塊ID24_A104,否則實例詞典構建器電路ID24_A112封裝所構建詞典以供運行時間使用(區塊ID24_A118)。轉向圖ID24_F',實例詞典構建器電路ID24_A112 (參見圖ID24_A)將每一值與特定位元表示關聯(區塊ID24_F202),且用最接近獨特值替換來自原始權重矩陣之權重以產生經擴增權重矩陣(區塊ID24_F204)。實例詞典構建器電路ID24_A112用作為詞典鍵之位元表示替換獨特值,且實例最佳化器電路ID24_A102應用一或多種類型之最小描述長度指派(區塊ID24_F208)。
轉向圖ID24_G,實例最佳化器電路ID24_A102判定直方圖桶是否超出臨限值(區塊ID24_G302)。在一些實例中,若已超出臨限值(區塊ID24_G302),則實例最佳化器ID24_A102將損耗函數修改成與擬合直方圖點之高斯方差成比例(區塊ID24_G304)。在其他實例中,最佳化器電路ID24_A102任擇地在下一迭代期間改變叢集演算法以增大權重數目(區塊ID24_G306)。
圖ID24_I說明推斷時間期間的實例矩陣/張量解壓縮。在圖ID24_I之所說明實例中,矩陣解壓縮器電路ID24_A114在二個單獨暫存器中提取較低及較高半位元組(區塊ID24_I402),此係因為資訊量自INT4倍增至INT8。實例矩陣解壓縮器電路ID24_A114初始化具有待替換詞典鍵之暫存器(區塊ID24_I404)。實例矩陣解壓縮器電路ID24_A114產生用於鍵及對應半位元組之遮罩,針對上文二個暫存器中之每一者執行遮罩(區塊ID24_I406)。遮罩識別待發生替換之位置,針對每一鍵重複替換以產生經解壓縮矩陣(區塊ID24_I408)。
本文中揭露用以最佳化邊緣網路中之資源的實例方法、設備、系統及製品。其他實例及其組合包括以下:
實例189包括一種設備,其包含:中央處理單元、圖形處理單元或數位信號處理器中之至少一者,中央處理單元、圖形處理單元或數位信號處理器中之該至少一者具有用以控制處理器電路系統內之資料移動的控制電路系統、用以執行對應於指令之一或多個第一操作的算術及邏輯電路系統及用以儲存一或多個第一操作之結果、設備中之指令的一或多個暫存器;現場可程式化閘陣列(FPGA),該FPGA包括邏輯閘電路系統、複數個可組配互連及儲存電路系統,邏輯閘電路系統及互連用以執行一或多個第二操作,儲存電路系統用以儲存一或多個第二操作之結果;或特殊應用積體電路系統,其包括用以執行一或多個第三操作之邏輯閘電路系統,處理器電路系統用以進行以下中之至少一者:執行第一操作、第二操作或第三操作中之至少一者以:計算對應於權重矩陣之原始權重值的叢集,計算第一經叢集權重值,起始正向傳遞以基於經叢集權重值計算損耗值,計算對應於經叢集權重值之梯度,及基於原始權重值與梯度之間的差計算第二經叢集權重值。
實例190包括如實例189中所界定之設備,其中處理器電路系統用以藉由學習權重修改梯度。
實例191包括如實例190中所界定之設備,其中處理器電路系統用以基於臨限數目個迭代而修改學習權重。
實例192包括如實例189中所界定之設備,其中處理器電路系統用以自模型獲得權重矩陣,該模型待在執行於網路裝置上之前經壓縮。
實例193包括如實例189中所界定之設備,其中處理器電路系統用以將第二經叢集權重值與鍵值關聯,並用對應於第二經叢集權重值之鍵值替換權重矩陣之原始權重值。
實例194包括如實例189中所界定之設備,其中處理器電路系統用以迭代地計算第二經叢集權重值,直至滿足臨限收斂值為止。
實例195包括如實例189中所界定之設備,其中處理器電路系統用以調用k均值叢集演算法以計算叢集。
實例196包括至少一種非暫時性電腦可讀儲存媒體,其包含當經執行時致使至少一個處理器至少進行以下操作之指令:計算對應於權重矩陣之原始權重值的叢集,計算第一經叢集權重值,起始正向傳遞以基於經叢集權重值計算損耗值,計算對應於經叢集權重值之梯度,及基於原始權重值與梯度之間的差計算第二經叢集權重值。
實例197包括如實例196中所界定之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器藉由學習權重修改梯度。
實例198包括如實例197中所界定之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器基於臨限數目個迭代而修改學習權重。
實例199包括如實例196中所界定之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器自模型獲得權重矩陣,該模型待在執行於網路裝置上之前經壓縮。
實例200包括如實例197中所界定之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器將第二經叢集權重值與鍵值關聯,並用對應於第二經叢集權重值之鍵值替換權重矩陣之原始權重值。
實例201包括如實例197中所界定之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器迭代地計算第二經叢集權重值,直至滿足臨限收斂值為止。
實例202包括如實例197中所界定之電腦可讀儲存媒體,其中指令當經執行時致使至少一個處理器調用k均值叢集演算法以計算叢集。
實例203包括一種方法,其包含:計算對應於權重矩陣之原始權重值的叢集,計算第一經叢集權重值,起始正向傳遞以基於經叢集權重值計算損耗值,計算對應於經叢集權重值之梯度,及基於原始權重值與梯度之間的差計算第二經叢集權重值。
實例204包括如實例203中所界定之方法,其進一步包括藉由學習權重修改梯度。
實例205包括如實例204中所界定之方法,其進一步包括基於臨限數目個迭代而修改學習權重。
實例206包括如實例203中所界定之方法,其進一步包括自模型獲得權重矩陣,該模型待在執行於網路裝置上之前經壓縮。
實例207包括如實例203中所界定之方法,其進一步包括將第二經叢集權重值與鍵值關聯,並用對應於第二經叢集權重值之鍵值替換權重矩陣之原始權重值。
實例208包括如實例203中所界定之方法,其進一步包括迭代地計算第二經叢集權重值,直至滿足臨限收斂值為止。
實例209包括如實例203中所界定之方法,其進一步包括調用k均值叢集演算法以計算叢集。
實例210包括一種用以產生詞典權重之設備,該設備包含:叢集引擎,其用以計算對應於權重矩陣之原始權重值的叢集及計算第一經叢集權重值;損耗計算器,其用以起始正向傳遞以基於經叢集權重值計算損耗值;梯度計算器,其用以計算對應於經叢集權重值之梯度;及最佳化器,其用以基於原始權重值與梯度之間的差計算第二經叢集權重值。
實例211包括如實例210中所界定之設備,其中最佳化器用以藉由學習權重修改梯度。
實例212包括如實例211中所界定之設備,其中最佳化器用以基於臨限數目個迭代而修改學習權重。
實例213包括如實例210中所界定之設備,其進一步包括矩陣擷取器,該矩陣擷取器用以自模型獲得權重矩陣,該模型待在執行於網路裝置上之前經壓縮。
實例214包括如實例210中所界定之設備,其中最佳化器用以將第二經叢集權重值與鍵值關聯,並用對應於第二經叢集權重值之鍵值替換權重矩陣之原始權重值。
實例215包括如實例210中所界定之設備,其中最佳化器用以迭代地計算第二經叢集權重值,直至滿足臨限收斂值為止。
實例216包括如實例210中所界定之設備,其中叢集引擎用以調用k均值叢集演算法以計算叢集。
儘管本文中已揭露某些實例系統、方法、設備及製品,但本專利之涵蓋範圍的範疇並不限於此。相反地,本專利涵蓋落在本專利之申請專利範圍的範疇內之所有系統、方法、設備及製品。
以下申請專利範圍特此以參考方式併入此實施方式中,其中每一請求項使其自身獨立成為本揭露內容之單獨實施例。
A100:方塊圖 A110,D195:邊緣雲端 A120:總局 A130,A245:雲端資料中心 A140:接取點或基地台 A150:本端處理集線器 A160:端點資料源 A161:自主車輛 A162:使用者設備 A163:商業及工業設備 A164:視訊擷取裝置 A165:無人機 A166:智慧型城市及建築裝置 A167:感測器/IoT裝置 A200,F510:端點層 A205:運算用例 A210,F520:邊緣裝置層 A212:層 A215:節點 A220,F530:網路接取層 A225:設備 A230,F540:核心網路層 A235:核心網路資料中心 A240,F550:雲端資料中心層 A310:用戶端端點 A322,A324,A326:請求及回應 A332:本地網路系統 A334:接取點 A336:街道定位式網路系統 A340,F522:邊緣聚集節點 A342,A344:聚集點 A350:回程網路 A360:雲端或資料中心 D100,D150:邊緣運算節點 D102:運算引擎 D104,D152,F452,ID11_F102:處理器 D106:主記憶體 D108:輸入/輸出(I/O)子系統 D110:資料儲存器 D112:通訊電路系統/通訊電路系統子系統 D114:周邊裝置 D120,D168,F468:網路介面控制器(NIC) D154,F454,ID11_F108:系統記憶體 D156,F456:互連件 D158,F458:儲存器 D160,F460:非暫時性機器可讀媒體 D162:所連接邊緣裝置 D164:加速電路系統 D166,F466:無線網路收發器 D170:感測器集線器/外部介面 D172,F228,F472:感測器 D174,F474:致動器 D176,F476:電池 D178,F478:電池監測器/充電器 D180,F480:電力區塊 D182,F482,F488,ID11_F120:指令 D184,D224,F484:輸出裝置 D186,D222,F486:輸入裝置 D190,F490:可信執行環境(TEE) D200:處理器平台 D212:處理器電路系統 D213:本端記憶體 D214:依電性記憶體,主記憶體 D216:非依電性記憶體,主記憶體 D217:記憶體控制器 D218,D304,D322:匯流排 D220,D306:介面電路系統 D226,I110,ID4_C60:網路 D228:大容量儲存裝置 D232:機器可執行指令 D300:微處理器 D302,ID3_408a,ID3_408b,ID3_408c,ID3_408d,ID11_F104,ID14_120,ID14_222,ID14_224,ID14_226,D14_228:核心 D310:共享記憶體 D314:控制單元電路系統 D316:算術及邏輯(AL)電路系統 D318:暫存器 D320:本端記憶體,1階(L1)快取記憶體 D400:現場可程式化閘陣列(FPGA)電路系統 D402:輸入/輸出(I/O)電路系統 D404:組態電路系統 D406:外部硬體 D408:邏輯閘電路系統 D410:可組配互連 D412:儲存電路系統 D414:專用操作電路系統 D416:特定用途電路系統 D418:通用可程式化電路系統 D420:中央處理單元(CPU) D422:數位信號處理器(DSP) F102:骨幹鏈路 F104,F202,F450:物聯網(IoT)裝置 F116,F132:鏈路 F122:低功耗藍牙(BLE)鏈路 F128:IEEE 802.11鏈路 F154,F204,F310,F328:閘道器 F156:IoT網路,網狀網路 F158:IoT網路,無線區域網路(WLAN)網路 F160:IoT網路,蜂巢式網路 F162:IoT網路,低功率廣域(LPWA)網路 F200,F300,F400:雲端 F206,F304,F330:伺服器 F220:霧端網路 F222:無線電鏈路 F226:資料聚集器 F306:交通控制群組 F308:有線/無線鏈路 F312:有線/無線子網路 F314:IoT裝置,遠端氣象站 F316:本端資訊終端 F318:警報系統 F320:IoT裝置,自動櫃員機 F322:警報面板 F324:IoT裝置,緊急車輛 F326:其他車輛 F462:網狀收發器 F464:網狀裝置 F470:外部介面 F500:邊緣運算系統 F502:用戶端運算節點 F512:邊緣閘道器節點 F524:霧端裝置 F526:霧端網路連接組配 F532:核心資料中心 F542:全域網路雲端 I105:軟體分佈平台 ID3_100:環境 ID3_102,ID3_302:租戶 ID3_104:協調器電路系統 ID3_106:第一工作負載 ID3_110:第二工作負載 ID3_112:第三工作負載 ID3_114,ID3_304:第一節點 ID3_116:第四工作負載 ID3_118:第五工作負載 ID3_120:第六工作負載 ID3_122,ID3_306:第二節點 ID3_308:資料介面電路 ID3_310:請求驗證器電路 ID3_312:資源管理器電路 ID3_314:候選模型產生器電路 ID3_316:節點可用性判定器電路 ID3_318:工作負載遷移器電路 ID3_320:服務品質(QoS)監測器電路 ID3_400:多核心運算節點 ID3_404a,ID3_404b,ID3_404c:人工智慧(AI)模型 ID3_412:快取記憶體 ID3_416,ID11_H170:記憶體 ID3_420:控制器/控制器電路 ID3_424:監測器電路 ID3_428:分析器電路 ID3_500:效能圖 ID3_504:Y軸 ID3_508:x軸 ID3_512a,ID3_516c:第一候選AI模型 ID3_512b,ID3_516b:第二候選AI模型 ID3_512c,ID3_516a:第三候選AI模型 ID3_604,ID3_608,ID3_612,ID3_616,ID3_704,ID3_706,ID3_708,ID3_710,ID3_712,ID3_714,ID3_716,ID3_718,ID3_720,ID3_722,ID3_724,ID3_726,ID3_804,ID3_808,ID3_812,ID3_816,ID3_818,ID3_820,ID3_824,ID3_828,ID4_E10,ID4_E20,ID4_E30,ID4_E40,ID4_F10,ID4_F20,ID4_F30,ID4_F40,ID4_F50,ID4_F60,ID4_F70,ID4_F80,ID4_F90,ID5_D102,ID5_D104,ID5_D106,ID5_D108,ID5_D110,ID5_D112,ID5_D114,ID5_E202,ID5_E204,ID5_E206,ID5_E208,ID5_F302,ID5_F304,ID5_F306,ID5_F308,ID5_F310,ID5_F312,ID5_F314,ID7_302,ID7_304,ID7_308,ID7_310,ID7_312,ID7_316,ID7_317,ID7_318,ID7_320,ID7_322,ID7_326,ID7_328,604,606,608,610,612,614,616,618,ID11_D102,ID11_D104,ID11_D106,ID11_D108,ID11_E102,ID11_E104,ID14_402,ID14_404,ID14_406,ID14_408,ID14_410,ID14_412,ID14_414,ID14_416,ID14_418,ID14_420,ID15_510,ID15_520,ID15_530,ID15_540,ID15_550,ID15_560,ID15_605,ID15_610,ID15_615,ID15_620,ID15_622,ID15_630,ID15_705,ID15_710,ID15_715,ID15_720,ID15_722,ID15_725,ID15_730,ID15_735,ID15_740,ID15_745,ID15_750,ID15_755,ID15_760,ID15_765,ID15_770,ID15_775,ID15_780,ID15_785,ID15_805,ID15_810,ID15_815,ID15_825,ID15_830,ID15_835,ID15_840,ID15_845,ID15_850,ID15_855,ID15_860,ID15_865,ID15_875,ID15_880,ID15_885,ID24_F102,ID24_F104,ID24_F106,ID24_F108,ID24_F110,ID24_F112,ID24_F114,ID24_F116,ID24_F118,ID24_F202,ID24_F204,ID24_F208,ID24_G302,ID24_G304,ID24_G306,ID24_I402,ID24_I404,ID24_I406,ID24_I408:區塊 ID3_620:單向或閉合迴路 ID3_700,ID3_800,ID3_900:機器可讀指令及/或操作 ID4_A00:AutoML設備 ID4_A10:特徵化搜尋系統 ID4_A20,ID4_D10,ID4_D20:硬體平台 ID4_A30:模型開發器電路系統 ID4_B10:區塊分析器電路系統 ID4_B20:架構搜尋器電路系統 ID4_B30:網路訓練器電路系統 ID4_B40:標記擷取器電路系統 ID4_B50:資料庫 ID4_C10:應用程式 ID4_C12:虛擬機(VM) ID4_C14:作業系統(OS)/虛擬記憶體管理器(VMM) ID4_C16:聯合可擴展韌體介面(UEFI)/基本輸入/輸出系統(BIOS) ID4_C18:微碼更新管理器 ID4_C20:軟體(SW)層 ID4_C30:指令集架構(ISA)管理器電路系統 ID4_C32:遙測管理器 ID4_C34:微操作(UOP)剩餘映射器 ID4_C36:ISA評估器 ID4_C38:ISA解碼器 ID4_C40:硬體(HW)層 ID4_C50:系統單晶片(SoC)/硬體 ID4_C52:微碼,實例微碼調度器 ID4_C54:安全微碼,實例微碼調度器 ID4_C70:基於雲端之伺服器 ID4_D00:眾包部署 ID4_E00,ID4_F00,ID4_G00,ID7_500,600,ID15_600,ID15_700:程序 ID5_A100,ID6_200,ID7_100,ID7_200:框架 ID5_A102:工作負載池 ID5_A104:平台資源 ID5_A106:經最佳化圖 ID5_A108:聯合圖 ID5_A110:經封裝工作負載 ID5_A112:運行時間 ID5_A114:服務等級協議(SLA)資訊/參數 ID5_A116:當前利用率資訊 ID5_B200:感興趣的圖 ID5_C300:最佳化電路系統 ID5_C302:基準管理電路系統 ID5_C304:SLA管理電路系統 ID5_C306:超參數調諧電路系統 ID5_C308:重組態管理電路系統 ID5_C310:代理管理電路系統 ID5_C312:工作負載活動偵測電路系統 ID5_D100,ID5_F300,ID24_F100:程式 ID6_102:輸入接收器電路系統 ID6_104:自動化HW目標接收器電路系統 ID6_106:訓練資料集接收器電路系統 ID6_108:經訓練網路界定接收器電路系統 ID6_110,ID6_131,ID6_704:代理 ID6_112,ID6_134,ID6_710:經驗重放緩衝器電路系統 ID6_113,ID6_702:逐層混合精度稀疏性策略預測器電路系統 ID6_114,ID6_708:準確度/網路狀態檢查器電路系統 ID6_116,ID6_706:壓縮環境執行器電路系統 D6_118:HW可執行碼 ID6_120,ID6_716:硬體結果發送器電路系統 ID6_122:網路輸出器電路系統 ID6_124,ID6_714:硬體效能評估器電路系統 ID6_126:完整經訓練神經網路(NN) ID6_128:逐層修剪 ID6_130:逐層量化 ID6_132:代理控制器 ID6_136:獎勵函數 ID6_138:目標模型 ID6_140,ID6_142,ID6_144:層量化器 ID6_147:混合精度,經量化資料,完整壓縮策略 ID6_148:量化環境 ID6_150:硬體評估器 ID6_152:準確度、模型大小及層失真 ID6_154:潛時、輸送量及功率 ID6_202,ID6_602:代理A ID6_204:VPU (Int8/4/2/1,稀疏運算) ID6_206,ID6_604:代理B ID6_208:FPGA (Int X) ID6_210,ID6_606:代理C ID6_212:CPU (FP32、BF16、INT X) ID6_214:GPU (FP16,稀疏運算) ID6_302:客戶A ID6_304:客戶B ID6_306:客戶C ID6_402:第一實例A ID6_404:第一學習代理 ID6_406:第二學習代理 ID6_408:第三學習代理 ID6_410,ID6_430:總搜尋時間 ID6_412:第二實例B ID6_416:第一可再用代理 ID6_418:可再用熟練代理,第二可再用代理 ID6_420:第三可再用代理 ID6_422:第四可再用代理 ID6_424:第五可再用代理 ID6_426:第六可再用代理 ID6_428:第七可再用代理 ID6_500:一般化代理架構 ID6_502:模型輸入器 ID6_504:目標HW輸入器 ID6_506:可壓縮運算嵌入器 ID6_508:平台嵌入器 ID6_510:靜態屬性器 ID6_512:動態觀測器 ID6_514:壓縮環境/硬體評估器 ID6_516:運算潛在表示器 ID6_518:HW潛在表示器 ID6_520:經正規化密集特徵表示器 ID6_522:互動網路組合器 ID6_524:策略網路輸出器 ID6_526:價值網路輸出器 ID6_610,ID6_612:再用 ID6_712:中心經驗資料庫 ID7_102:量化控制器電路系統 ID7_104:經量化拓樸產生器電路系統 ID7_106:環境量化器電路系統 ID7_108:獎勵指派器電路系統 ID7_110:搜尋空間求解器電路系統 ID7_220:經最佳化模型 ID7_216:目標平台 ID7_502:經預量化模型 ID7_504:量化類型 ID7_506:經量化模型 ID7_508:第一分組區塊 ID11_A100:神經網路 ID11_A101:第一分支實施控制器 ID11_A102:第二網路層 ID11_A102a:重要通道部分 ID11_A102b:不重要通道部分 ID11_A104:第一網路層 ID11_A106:激活圖 ID11_A108:輕量化分路 ID11_A110:上下文聚集組件 ID11_A112,ID15_310:全連接(FC)層 ID11_A112a,ID11_B104,ID11_C108:第一FC層 ID11_A112b,ID11_B108,ID11_C112:第二FC層 ID11_A114,ID11_B114,ID11_C116:乘法器 ID11_B101:第二分支實施控制器 ID11_B102,ID11_C102:分路 ID11_B106,ID11_C110,ID11_C114:線性整流函數(ReLU) ID11_B110:適應性偏差組件 ID11_B112:臨限值層 ID11_C101:第三分支實施控制器 ID11_C104:層寬度損耗 ID11_C106:準確度損耗 ID11_D100,ID11_E100:方法 ID11_F100:電腦視覺系統 ID11_F106:整合式記憶體控制器(IMC) ID11_F110:輸入輸出(IO)模組 ID11_F112:半導體晶粒 ID11_F114:顯示器 ID11_F115:相機 ID11_F116:網路控制器 ID11_F118:大容量儲存器 ID11_G100:半導體設備 ID11_G102:基體 ID11_G104:邏輯 ID11_H100:處理器核心 ID11_H110:前端部分 ID11_H113:程式碼 ID11_H120:解碼器 ID11_H125:暫存器重命名邏輯 ID11_H130:排程邏輯 ID11_H150:執行邏輯 ID11_H155a-ID11_H155n:執行單元 ID11_H160:後端邏輯 ID11_H165:汰除邏輯 ID14_100,ID14_200:概念說明 ID14_110,ID14_210:輸入影像 ID14_130:輸出影像 ID14_140,ID14_230:單一像素輸出 ID14_212:影像區段,卷積窗 ID14_220:動態核心 ID14_250:第一動態濾波器 ID14_252:第二動態濾波器 ID14_254:第三動態濾波器 ID14_256:第四動態濾波器 ID14_258:第五動態濾波器 ID14_260:第六動態濾波器 ID14_262:第七動態濾波器 ID14_264:第八動態濾波器 ID14_300,ID15_400:機器學習訓練器電路系統 ID14_305,ID15_405:訓練資料資料存放區 ID14_310:動態核心卷積器電路系統 ID14_312:卷積窗移位電路系統 ID14_315,ID15_415:模型資料資料存放區 ID14_320,ID15_420:模型提供者電路系統 ID14_400:機器可讀指令 ID15_110,ID15_120,ID15_130,ID15_140,ID15_150,ID15_160:圖,迭代 ID15_105:多項式函數 x 0:起點 x 1,x 2,x 3,x 4,x 5,x 6:根 ID15_410:求根器 ID15_412:測根器 ID15_800:數學表示 ID15_1005:第一標繪圖 ID15_1010:第二標繪圖 ID15_1015:第三標繪圖 ID15_1020:第四標繪圖 ID15_1025:第五標繪圖 ID15_1030:最終標繪圖 ID24_B200:矩陣級數 ID24_B202:權重矩陣 ID24_B204:叢集索引(質心) ID24_B206:近似權重矩陣 ID24_B208:經壓縮矩陣 ID24_B210:位元表示 ID24_B250:矩陣壓縮框架 ID24_B252:第一張量 ID24_B254:第二張量 ID24_B256:第三張量 ID24_B258:第四張量 ID24_B260:第一詞典 ID24_B262:第一經壓縮張量 ID24_B264:第二經壓縮張量 ID24_B266:第三經壓縮張量 ID24_B268:第四經壓縮張量 ID24_A102:最佳化器電路 ID24_A104:矩陣擷取器 ID24_A106:叢集引擎 ID24_A108:損耗計算器電路 ID24_A110:梯度計算器 ID24_A112:詞典構建器電路 ID24_A114:矩陣解壓縮器電路 ID24_A116:第一調諧方法論 ID24_A118:第二調諧方法論 ID24_C300:壓縮程序 ID24_D400:線性記憶體 ID24_E500:矩陣/張量解壓縮
圖A1說明用於邊緣運算之邊緣雲端組態之概述。
圖A2說明端點、邊緣雲端及雲端運算環境當中的可操作層。
圖A3說明用於邊緣運算系統中之網路連接及服務的實例方法。
圖D1A提供部署於邊緣運算系統中之運算節點處的用於運算之實例組件的概述。
圖D1B提供邊緣運算系統中之運算裝置內的實例組件之又一概述。
圖D2為經構造以執行本文中所揭露之機器可讀指令的實例處理器平台之方塊圖。
圖D3為圖D2之處理器電路系統D212的實例實施之方塊圖。
圖D4為圖D2之處理器電路系統D212的另一實例實施之方塊圖。
圖F1說明根據實例的用於經由鏈路耦接至各別閘道器之各別物聯網(IoT)網路的域拓樸。
圖F2說明根據實例的與操作為雲端運算網路之邊緣處的霧端(fog)裝置的IoT裝置之網狀網路通訊的雲端運算網路。
圖F3說明根據實例的與數個物聯網(IoT)裝置通訊的雲端運算網路或雲端之圖式。
圖F4說明根據實例的可在其上執行本文中所論述的技術(例如,操作、程序、方法及方法論)中之任一或多者的實例IoT處理系統架構的方塊圖。
圖F5說明根據實例的部署於邊緣運算系統當中之分佈式運算層的概述。
圖I1為實例軟體分佈平台(例如,一或多個伺服器)之方塊圖,該平台用以將軟體(例如,對應於實例機器可讀指令(對應於本文中所揭露之流程圖)的軟體)分佈至與終端使用者及/或消費者(例如,用於許可、銷售及/或使用)、零售商(例如,用於銷售、轉售、許可及/或再許可)及/或原始設備製造商(OEM) (例如,用於包括於待分佈至例如零售商及/或諸如直接購買客戶之其他終端使用者的產品中)相關聯的用戶端裝置。
圖ID3_1為包括實例協調器及執行人工智慧(AI)模型之複數個多核心運算節點的實例環境之方塊圖。
圖ID3_3為圖ID3_1之實例協調器的方塊圖。
圖ID3_4為執行AI模型且利用控制器之實例多核心運算節點的方塊圖。
圖ID3_5為具有不同快取記憶體大小及記憶體頻寬利用率之候選模型的實例效能圖。
圖ID3_6為用於圖ID3_1之多核心運算節點的實例系統流程之方塊圖。
圖ID3_7、圖ID3_8及圖ID3_9為表示可由實例處理器電路系統執行以實施圖ID3_1之協調器的實例機器可讀指令之流程圖。
圖ID4_A說明實例自動化機器學習設備。
圖ID4_B說明圖ID4_A之實例特徵化搜尋系統的實施。
圖ID4_C為圖4_A之實例硬體平台之實施,圖ID4_A之實例特徵化搜尋系統可在該硬體平台上操作及/或實施。
圖ID4_D說明在伺服器處收集資料之複數個硬體平台的實例眾包部署。
圖ID4_E至圖ID4_G為表示可經執行以實施圖ID4_A至圖ID4_D之實例特徵化搜尋系統的全部或部分之機器可讀指令的流程圖。
ID5_A為用以最佳化工作負載之實例框架。
ID5_B為用於感興趣的候選圖之實例圖語義嵌入。
ID5_C為用以最佳化異質環境中之工作負載的實例最佳化器。
ID5_D至ID5_F為表示可經執行以實施圖ID5_C之實例最佳化器的全部或部分之機器可讀指令的流程圖。
圖ID6_1A為可經執行以實施用於模型壓縮方法之搜尋流程的結構及機器可讀指令之實例框架。
圖ID6_1B說明實例壓縮技術。
圖ID6_1C為實例壓縮框架之方塊圖。
圖ID6_2為可經執行以針對具有不同要求之三個客戶實施用於模型壓縮方法之搜尋流程的結構及機器可讀指令之實例框架的方塊圖。
圖ID6_3為具有不同要求之三個客戶的實例。
圖ID6_4說明由本文中所揭露之實例產生的實例生產力改良。
圖ID6_5為用於最佳平台專業化之可縮放模型壓縮方法的一般化代理架構的實例。
圖ID6_6為轉移學習之實例,其藉由再用具有不同要求之客戶的資料以產生用於最佳平台專業化之可縮放模型壓縮方法。
圖ID6_7為經由中心資料庫之知識累積的實例。
圖ID7_1為用於產生及提供最佳量化權重至深度學習模型之框架的實例示意性說明。
圖ID7_2為用於最佳化量化工作之方法的框架之實例概述。
圖ID7_3為表示可經執行以實施用於產生及提供最佳量化權重至深度學習模型之設備及方法的機器可讀指令之流程圖。
圖ID7_4為樣本動作空間之實例。
圖ID7_5為經預量化模型及經量化模型之實例。
圖ID7_6為表示提供量化權重至深度學習模型之實例方法的流程圖。
圖ID11_A為根據實例的神經網路中之層之間的分路之實例的方塊圖。
圖ID11_B為根據實例的基於修剪比約束條件而不考慮通道的分路之實例的方塊圖。
圖ID11_C為根據實例的平衡準確度約束條件與層寬度損耗之分路的實例之方塊圖。
圖ID11_D為根據實例的在半導體設備中進行修剪操作之方法的實例之流程圖。
圖ID11_E為根據實例的進行上下文資訊之重要性分類的方法之實例的流程圖。
圖ID11_F為根據實例的電腦視覺系統之實例的方塊圖。
圖ID11_G為根據實例的半導體封裝設備之實例的說明。
圖ID11_H為根據實例的處理器之實例的方塊圖。
圖ID14_1為使用靜態核心之實例卷積運算的示意性說明。
圖ID14_2A為使用動態核心之實例卷積運算的示意性說明。
圖ID14_2B說明實例輸入影像及複數個不同濾波器。
圖ID14_3為根據本揭露內容之教示實施的用於訓練適應性卷積神經網路(CNN)之實例機器學習訓練器電路系統的方塊圖。
圖ID14_4為表示可經執行以實施實例機器學習訓練器電路系統來使用動態核心訓練CNN之實例機器可讀指令的流程圖。
圖ID15_1包括說明用於求函數根之實例程序之迭代的圖。
圖ID15_2表示與圖ID15_1之多項式函數相關聯的求根程序之七個迭代的值。
圖ID15_3為實例神經網路之方塊圖。
圖ID15_4為根據本揭露內容之教示實施的用以執行二階分叉以用於訓練機器學習模型之實例機器學習訓練器400的方塊圖。
圖ID15_5為表示可經執行以使用由圖ID15_2之求根器識別之根訓練機器學習模型的實例機器可讀指令之流程圖。
圖ID15_6為表示可經執行以致使實例求根器及/或測根器求函數根之實例機器可讀指令的流程圖。
圖ID15_7為表示可經執行以致使實例求根器求函數根之實例機器可讀指令的流程圖。
圖ID15_8為表示對應於圖ID15_7之機器可讀指令的實例數學運算之流程圖。
圖ID15_10表示用以訓練神經網路以產生特定輸出之實驗。
圖ID24_A1為用以產生神經網路(NN)詞典之實例最佳化器的方塊圖。
圖ID24_A2為二個實例調諧方法論之方塊圖。
圖ID24_B1為實例詞典鍵(key)替換之方塊圖。
圖ID24_B2為用以產生NN詞典之實例矩陣級數的方塊圖。
圖ID24_C說明實例壓縮程序。
圖ID24_D說明實例線性記憶體及用於裝置上詞典之索引方法。
圖ID24_E說明推斷時間期間之實例矩陣/張量解壓縮。
圖ID24_F至ID24_I為表示可經執行以產生詞典之實例機器可讀指令的流程圖。
圖式未按比例繪製。實情為,層或區之厚度可在圖式中放大。儘管圖式展示具有清晰線及邊界之層及區,但此等線及/或邊界中的一些或全部可為理想化的。實際上,邊界及/或線可為不可觀測的、摻合的及/或不規則的。大體而言,貫穿圖式及隨附撰寫之描述將使用相同參考數字來指代相同或類似部分。如本文中所使用,除非另外陳述,否則術語「上方」描述二個部分相對於大地之關係。若第二部分具有在大地與第一部分之間的至少一個部分,則第一部分在第二部分上方。同樣,如本文中所使用,當第一部分相比第二部分較接近大地時,第一部分在第二部分「下方」。如上文所提及,第一部分可在以下各者中之一或多者的情況下在第二部分上方或下方:其間存在其他部分,其間並無其他部分,第一與第二部分發生觸碰,或第一與第二部分並不彼此直接接觸。如本專利中所使用,陳述任何部分(例如,層、膜、區或板)以任何方式在另一部分上(例如,定位在另一部分上、位於另一部分上、安置於另一部分上或形成於另一部分上等)指示所參考部分接觸另一部分,或所參考部分在另一部分上方,其中一或多個中間部分位於兩部分間。如本文中所使用,除非另外指示,否則連接參考(例如,附接、耦接、連接及接合)可包括由元件之間的連接參考及/或相對移動所參考的彼等元件之間的中間部件。因此,連接參考未必推斷二個元件直接連接及/或彼此成固定關係。如本文中所使用,陳述任何部分與另一部分「接觸」被界定為意謂二個部分之間不存在中間部分。
除非另外特定陳述,否則諸如「第一」、「第二」、「第三」等描述詞在本文中使用而不以任何方式插補或以其他方式指示優先級、實體次序、清單中之配置及/或排序之任何意義,但為易於理解所揭露實例,僅用作標記及/或任意名稱以區分元件。在一些實例中,描述詞「第一」可用於指代詳細描述中之元件,而相同元件可在技術方案中用諸如「第二」或「第三」之不同描述詞來指代。在此等情況下,應理解,此等描述詞僅用於清楚地識別可能例如以其他方式共享同一名稱之彼等元件。如本文中所使用,「大約」及「約」指代由於製造容限及/或其他真實世界缺陷而可能不準確的尺寸。如本文中所使用,「大體上即時」指代以近瞬時方式辨識之發生,可存在用於運算時間、傳輸等之真實世界延遲。因此,除非另外指定,否則「大體上即時」指代即時+/-1秒。如本文中所使用,片語「進行通訊」,包括其變型,涵蓋直接通訊及/或經由一或多個中間組件之間接通訊,且不需要直接實體(例如,有線)通訊及/或持續通訊,而實際上另外包括呈週期性間隔、經排程間隔、非週期性間隔及/或單次事件之選擇性通訊。如本文中所使用,「處理器電路系統」界定為包括(i)一或多個特定用途電路,其經構造以執行特定操作且包括一或多個基於半導體之邏輯裝置(例如,由一或多個電晶體實施之電氣硬體),及/或(ii)一或多個基於半導體之通用電路,其經規劃有用以執行特定操作之指令且包括一或多個基於半導體之邏輯裝置(例如,由一或多個電晶體實施之電氣硬體)。處理器電路系統之實例包括經規劃微處理器、可具現化指令之現場可程式化閘陣列(FPGA)、中央處理器單元(CPU)、圖形處理器單元(GPU)、數位信號處理器(DSP)、XPU或微控制器及諸如特殊應用積體電路(ASIC)之積體電路。例如,XPU可由異質運算系統實施,該異質運算系統包括多種類型之處理器電路系統(例如,一或多個FPGA、一或多個CPU、一或多個GPU、一或多個DSP等及/或其組合),及可將運算任務指派至多種類型之處理電路系統中最適於執行運算任務之任一(些)者的應用程式設計介面(API)。
ID5_A100:框架
ID5_A102:工作負載池
ID5_A104:平台資源
ID5_A106:經最佳化圖
ID5_A108:聯合圖
ID5_A110:經封裝工作負載
ID5_A112:運行時間
ID5_A114:服務等級協議(SLA)資訊/參數
ID5_A116:當前利用率資訊

Claims (22)

  1. 一種包含指令之至少一電腦可讀儲存媒體,該等指令當被執行時致使至少一個處理器至少進行下列動作: 調用一探索代理以識別平台資源裝置; 選擇經識別之該等平台資源裝置中之一第一者; 針對對應於經識別之該等平台資源裝置中之該第一者的工作負載,產生第一最佳化量度,該等第一最佳化量度對應於一第一路徑; 將第一語義資訊嵌入至該工作負載,該第一語義資訊包括對應於經識別之該等平台資源裝置中之該第一者的最佳化圖資訊及平台結構資訊; 選擇經識別之該等平台資源裝置中之一第二者; 針對對應於經識別之該等平台資源裝置中之該第二者的該工作負載,產生第二最佳化量度,該等第二最佳化量度對應於一第二路徑; 將第二語義資訊嵌入至該工作負載,該第二語義資訊包括對應於經識別之該等平台資源裝置中之該第二者的最佳化圖資訊及平台結構資訊;以及 在運行時間期間基於對應於該第一經識別平台資源裝置及該第二經識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇該第一路徑或該第二路徑。
  2. 如請求項1之至少一電腦可讀儲存媒體,其中該等指令當被執行時致使該至少一個處理器: 判定對應於該等平台資源裝置中之該第一者及該第二者的一利用率偏差; 比較該利用率偏差與該SLA資訊;以及 將該工作負載遷移至該第一路徑或該第二路徑中之一者以滿足該SLA資訊之至少一個臨限值。
  3. 如請求項1或2之至少一電腦可讀儲存媒體,其中該SLA資訊包括潛時量度、功率消耗量度、資源成本量度或準確度量度中之至少一者。
  4. 如請求項1之至少一電腦可讀儲存媒體,其中該等指令當被執行時致使該至少一個處理器在產生該等第一最佳化量度及該等第二最佳化量度時,判定參與經識別之該等平台資源裝置的租戶之一數量。
  5. 如請求項4之至少一電腦可讀儲存媒體,其中該等指令當被執行時致使該至少一個處理器將對應於租戶之該數量的資訊與該第一語義資訊及該第二語義資訊一起嵌入。
  6. 如請求項1之至少一電腦可讀儲存媒體,其中該等指令當被執行時致使該至少一個處理器回應於不足的SLA準則而向一租戶提供小額支付。
  7. 一種用以最佳化一工作負載之方法,該方法包含: 調用一探索代理以識別平台資源裝置; 選擇經識別之該等平台資源裝置中之一第一者; 針對對應於經識別該等平台資源裝置中之該第一者的該工作負載,產生第一最佳化量度,該等第一最佳化量度對應於一第一路徑; 將第一語義資訊嵌入至該工作負載,該第一語義資訊包括對應於經識別之該等平台資源裝置中之該第一者的最佳化圖資訊及平台結構資訊; 選擇經識別之該等平台資源裝置中之一第二者; 針對對應於經識別之該等平台資源裝置中之該第二者的該工作負載,產生第二最佳化量度,該等第二最佳化量度對應於一第二路徑; 將第二語義資訊嵌入至該工作負載,該第二語義資訊包括對應於經識別之該等平台資源裝置中之該第二者的最佳化圖資訊及平台結構資訊;以及 在運行時間期間基於對應於該第一經識別平台資源裝置及該第二經識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇該第一路徑或該第二路徑。
  8. 如請求項7之方法,其進一步包括: 判定對應於該等平台資源裝置中之該第一者及該第二者的一利用率偏差; 比較該利用率偏差與該SLA資訊;以及 將該工作負載遷移至該第一路徑或該第二路徑中之一者以滿足該SLA資訊之至少一個臨限值。
  9. 如請求項7至8中任一項之方法,其中該SLA資訊包括潛時量度、功率消耗量度、資源成本量度或準確度量度中之至少一者。
  10. 如請求項7之方法,其中產生該等第一最佳化量度及該等第二最佳化量度進一步包括判定參與經識別之該等平台資源裝置之租戶的一數量。
  11. 如請求項10之方法,其進一步包括將對應於租戶之該數量的資訊與該第一語義資訊及該第二語義資訊一起嵌入。
  12. 如請求項7或10中任一項之方法,其進一步包括回應於偵測到不足的SLA參數而向一租戶提供小額支付。
  13. 一種設備,其包含: 代理管理電路系統,其用以: 調用一探索代理以識別平台資源裝置; 選擇經識別之該等平台資源裝置中之一第一者; 針對對應於經識別之該等平台資源裝置中之該第一者的工作負載,產生第一最佳化量度,該等第一最佳化量度對應於一第一路徑;以及 選擇經識別之該等平台資源裝置中之一第二者;以及 針對對應於經識別之該等平台資源裝置中之該第二者的該工作負載,產生第二最佳化量度,該等第二最佳化量度對應於一第二路徑; 基準管理電路系統,其用以將第二語義資訊嵌入至該工作負載,該第二語義資訊包括對應於經識別之該等平台資源裝置中之該第二者的最佳化圖資訊及平台結構資訊;以及 重組態管理電路系統,其用以在運行時間期間基於對應於該第一經識別平台資源裝置及該第二經識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇該第一路徑或該第二路徑。
  14. 如請求項13之設備,其中該重組態管理電路系統係用以: 判定對應於該等平台資源裝置中之該第一者及該第二者的一利用率偏差; 比較該利用率偏差與該SLA資訊;以及 將該工作負載遷移至該第一路徑或該第二路徑中之一者以滿足該SLA資訊之至少一個臨限值。
  15. 如請求項13至14中任一項之設備,其中該SLA資訊包括潛時量度、功率消耗量度、資源成本量度或準確度量度中之至少一者。
  16. 如請求項13之設備,其中產生該等第一最佳化量度及該等第二最佳化量度進一步包括判定參與經識別之該等平台資源裝置之租戶的一數量。
  17. 如請求項16之設備,其中該基準管理電路系統係用以將對應於租戶之該數量的資訊與該第一語義資訊及該第二語義資訊一起嵌入。
  18. 一種系統,其包含: 用於管理代理之構件,該構件用以: 調用一探索代理以識別平台資源裝置; 選擇經識別之該等平台資源裝置中之一第一者; 針對對應於經識別之該等平台資源裝置中之該第一者的工作負載,產生第一最佳化量度,該等第一最佳化量度對應於一第一路徑; 選擇經識別之該等平台資源裝置中之一第二者;以及 針對對應於經識別之該等平台資源裝置中之該第二者的該工作負載,產生第二最佳化量度,該等第二最佳化量度對應於一第二路徑; 用於管理基準之構件,該構件用以將第二語義資訊嵌入至該工作負載,該第二語義資訊包括對應於經識別之該等平台資源裝置中之該第二者的最佳化圖資訊及平台結構資訊;以及 用於管理重組態之構件,該構件用以在運行時間期間基於對應於該第一經識別平台資源裝置及該第二經識別平台資源裝置的(a)服務等級協議(SLA)資訊及(b)利用率資訊,選擇該第一路徑或該第二路徑。
  19. 如請求項18之系統,其中該用於管理重組態之構件係用以: 判定對應於該等平台資源裝置中之該第一者及該第二者的一利用率偏差; 比較該利用率偏差與該SLA資訊;以及 將該工作負載遷移至該第一路徑或該第二路徑中之一者以滿足該SLA資訊之至少一個臨限值。
  20. 如請求項18至19中任一項之系統,其中該SLA資訊包括潛時量度、功率消耗量度、資源成本量度或準確度量度中之至少一者。
  21. 如請求項18之系統,其中產生該等第一最佳化量度及該等第二最佳化量度進一步包括判定參與經識別之該等平台資源裝置之租戶的一數量。
  22. 如請求項21之系統,其中該用於管理基準之構件係用以將對應於租戶之該數量的資訊與該第一語義資訊及該第二語義資訊一起嵌入。
TW110148288A 2020-12-24 2021-12-22 用以最佳化邊緣網路中的資源之方法、系統、製品及設備 TW202234236A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063130508P 2020-12-24 2020-12-24
US63/130,508 2020-12-24
PCT/US2021/039222 WO2022139879A1 (en) 2020-12-24 2021-06-25 Methods, systems, articles of manufacture and apparatus to optimize resources in edge networks
WOPCT/US21/39222 2021-06-25

Publications (1)

Publication Number Publication Date
TW202234236A true TW202234236A (zh) 2022-09-01

Family

ID=82159760

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110148288A TW202234236A (zh) 2020-12-24 2021-12-22 用以最佳化邊緣網路中的資源之方法、系統、製品及設備

Country Status (5)

Country Link
US (1) US20240007414A1 (zh)
EP (1) EP4268077A1 (zh)
NL (1) NL2030226B1 (zh)
TW (1) TW202234236A (zh)
WO (1) WO2022139879A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI821038B (zh) * 2022-11-22 2023-11-01 財團法人工業技術研究院 運算工作分派方法及應用其之終端電子裝置與運算系統
CN117176728A (zh) * 2023-07-04 2023-12-05 北京百星电子系统有限公司 基于云边协同技术的工业物联网调度方法及调度系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11917654B2 (en) * 2021-10-26 2024-02-27 Dell Products, Lp System and method for intelligent wireless carrier link management system at user equipment devices
CN115237581B (zh) * 2022-09-21 2022-12-27 之江实验室 一种面向异构算力的多策略智能调度方法和装置
CN116032757B (zh) * 2022-12-16 2024-05-10 派欧云计算(上海)有限公司 边缘云混跑场景的网络资源优化方法及装置
CN115695055B (zh) * 2023-01-05 2023-03-14 中国电子科技集团公司第三十研究所 一种基于内存数据库的高可靠高并发安全认证系统和方法
CN116244076B (zh) * 2023-02-13 2023-11-24 安徽大学 一种面向云环境流处理任务的资源成本优化方法及系统
CN116209015B (zh) * 2023-04-27 2023-06-27 合肥工业大学智能制造技术研究院 一种边缘网络缓存调度方法、系统和存储介质
CN116820844B (zh) * 2023-08-29 2023-11-07 南京云信达科技有限公司 一种有效利用存储容量和性能的存储池组设计和优化方法
CN117172205B (zh) * 2023-11-02 2024-03-15 摩尔线程智能科技(北京)有限责任公司 性能分析方法、装置、电子设备及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9967159B2 (en) * 2012-01-31 2018-05-08 Infosys Limited Systems and methods for providing decision time brokerage in a hybrid cloud ecosystem
US20170024649A1 (en) * 2015-07-24 2017-01-26 General Electric Company Anomaly detection system and method for industrial asset
CN108268885B (zh) * 2017-01-03 2020-06-30 京东方科技集团股份有限公司 特征点检测方法、设备和计算机可读存储介质
CN107280807A (zh) 2017-06-28 2017-10-24 上海宏普医疗器械有限公司 一种半封闭双支撑可回收型腔静脉滤器
US20210027166A1 (en) 2018-04-09 2021-01-28 Intel Corporation Dynamic pruning of neurons on-the-fly to accelerate neural network inferences
US10944689B2 (en) * 2018-06-29 2021-03-09 Intel Corporation Scalable edge computing
KR20200028168A (ko) * 2018-09-06 2020-03-16 삼성전자주식회사 컨볼루셔널 뉴럴 네트워크를 이용하는 컴퓨팅 장치 및 그 동작 방법
US11507430B2 (en) * 2018-09-27 2022-11-22 Intel Corporation Accelerated resource allocation techniques
US10725748B2 (en) * 2018-11-19 2020-07-28 Microsoft Technology Licensing, Llc Extracting program features for assisting software development
US11210578B2 (en) * 2018-12-12 2021-12-28 International Business Machines Corporation Automatic determination of cognitive models for deployment at computerized devices having various hardware constraints
US11461145B2 (en) * 2019-01-28 2022-10-04 EMC IP Holding Company LLC Building neural networks for resource allocation for iterative workloads using reinforcement learning
US11388054B2 (en) * 2019-04-30 2022-07-12 Intel Corporation Modular I/O configurations for edge computing using disaggregated chiplets
EP3963449A1 (en) * 2019-04-30 2022-03-09 Bernhard Frohwitter Apparatus and method to dynamically optimize parallel computations
KR102432254B1 (ko) * 2019-05-16 2022-08-12 삼성전자주식회사 전자 장치가 뉴럴 네트워크 내의 소정 레이어에서 컨볼루션 연산을 수행하는 방법 및 그 방법을 수행하는 전자 장치
US11032164B1 (en) * 2019-05-30 2021-06-08 Cox Communications, Inc. Edge-based cloud application acceleration
US11797876B1 (en) * 2019-06-26 2023-10-24 Amazon Technologies, Inc Unified optimization for convolutional neural network model inference on integrated graphics processing units
US11824784B2 (en) * 2019-12-20 2023-11-21 Intel Corporation Automated platform resource management in edge computing environments
WO2021244742A1 (en) * 2020-06-04 2021-12-09 NEC Laboratories Europe GmbH Virtualized ran slicing with bandwidth parts

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI821038B (zh) * 2022-11-22 2023-11-01 財團法人工業技術研究院 運算工作分派方法及應用其之終端電子裝置與運算系統
CN117176728A (zh) * 2023-07-04 2023-12-05 北京百星电子系统有限公司 基于云边协同技术的工业物联网调度方法及调度系统

Also Published As

Publication number Publication date
US20240007414A1 (en) 2024-01-04
NL2030226A (en) 2022-07-20
WO2022139879A1 (en) 2022-06-30
EP4268077A1 (en) 2023-11-01
NL2030226B1 (en) 2023-08-04

Similar Documents

Publication Publication Date Title
TW202234236A (zh) 用以最佳化邊緣網路中的資源之方法、系統、製品及設備
US20220124005A1 (en) Systems and methods for reactive intent-driven end-to-end orchestration
US11647034B2 (en) Service access data enrichment for cybersecurity
US11836576B2 (en) Distributed machine learning at edge nodes
Kang et al. Neurosurgeon: Collaborative intelligence between the cloud and mobile edge
US20210097449A1 (en) Memory-efficient system for decision tree machine learning
Balaprakash et al. Scalable reinforcement-learning-based neural architecture search for cancer deep learning research
EP3938963A1 (en) Scheduling computation graphs using neural networks
CN116011511A (zh) 用于功率感知硬件的机器学习模型缩放系统
US10909471B2 (en) Resource-efficient machine learning
US20210325861A1 (en) Methods and apparatus to automatically update artificial intelligence models for autonomous factories
KR20230075494A (ko) 스트레치 팩터 오류 완화가 활성화된 양자 컴퓨터
Minakova et al. Scenario based run-time switching for adaptive cnn-based applications at the edge
Carballo-Hernández et al. Flydeling: Streamlined performance models for hardware acceleration of CNNs through system identification
Guo et al. Hierarchical design space exploration for distributed CNN inference at the edge
US20240144030A1 (en) Methods and apparatus to modify pre-trained models to apply neural architecture search
US11875224B2 (en) Entity steering of a running quantum program
NL2033285B1 (en) Intent-based orchestration in heterogenous compute platforms
US20230418622A1 (en) Methods and apparatus to perform cloud-based artificial intelligence overclocking
US20230315516A1 (en) Quantum computer performance enhancement
US11568235B2 (en) Data driven mixed precision learning for neural networks
US20220114136A1 (en) Methods, systems, and apparatus to reconfigure a computer
Junaid et al. Enhancing cloud performance using file format classifications
Karamchandani et al. A methodological framework for optimizing the energy consumption of deep neural networks: a case study of a cyber threat detector
Shafique et al. Introduction to the Special Issue on Accelerating AI on the Edge–Part 1