TW202129492A - 用於分割異質系統的電腦應用的自動學習科技 - Google Patents

用於分割異質系統的電腦應用的自動學習科技 Download PDF

Info

Publication number
TW202129492A
TW202129492A TW109131870A TW109131870A TW202129492A TW 202129492 A TW202129492 A TW 202129492A TW 109131870 A TW109131870 A TW 109131870A TW 109131870 A TW109131870 A TW 109131870A TW 202129492 A TW202129492 A TW 202129492A
Authority
TW
Taiwan
Prior art keywords
function
telemetry information
type
execution
telemetry
Prior art date
Application number
TW109131870A
Other languages
English (en)
Other versions
TWI845762B (zh
Inventor
*** 哈格哈特
莎拉 班索艾
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 TW202129492A publication Critical patent/TW202129492A/zh
Application granted granted Critical
Publication of TWI845762B publication Critical patent/TWI845762B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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/5044Allocation 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 hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • 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
    • 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一種系統、設備與方法可以提供識別相關於一函數的優先化資料結構的技術,其中該優先化資料結構依優先權順序列出硬體資源類型。如果有第一類型硬體資源可用,則該科技也可以配置該第一類型硬體資源給該函數,其中該第一類型硬體資源在該優先化資料結構中具有最高優先權。另外,如果沒有第一類型硬體資源可用,則該科技也可以配置該優先權順序中之第二類型硬體資源給該函數。

Description

用於分割異質系統的電腦應用的自動學習科技
實施例大致關係於應用分割。更明確地說,實施例關係於自動學習科技,用以分割異質系統的電腦應用。
給定電腦應用(例如,軟體)典型被寫成以在計算系統的特定處理器(例如,中央處理單元CPU)上執行。然而,由於有開發新類型處理器(例如,特殊目的加速器),所以為了促使該應用能在該新處理器上有效地執行可能涉及高成本及費時的應用碼重寫。即使應用被寫成以在包含異質組處理器的計算系統上執行,促使該應用被有效地執行於具有不同異質組處理器的計算系統上,但這可能仍涉及高成本及費時的應用碼重寫。
現參考圖1,顯示例如用於統一規劃模型(如,ONEAPI)的軟體堆疊20。所例示之統一軟體堆疊20包含:階0介面22、在階0介面22之下的系統軟體(SW)24、在階0介面22之上的系統軟體26、及開發者介面28。在階0介面22下的系統軟體24與異質組處理器36通訊。該異質組處理器36可以包含例如CPU(例如,其可能支援純量運算及/或函數)、GPU(圖形處理單元,例如,其可以支援向量運算及/或函數)、AI(人工智慧)加速器(例如,其可以支援矩陣運算及/或函數)、及FPGA(場可程式閘陣列,例如,其可以支援空間運算及/或函數)的硬體。另外,開發者介面28與最佳化中間軟體與相關框架互動,這些隨後支援一或更多最佳化應用38。
在一實施例中,堆疊20的自動分割部份包含一排程器30,其例如維持優先化資料結構,例如,處理器調度表(PDT)資料庫32、記憶體配置表(MAT)資料庫34等等。在一例子中,排程器30使用該優先化資料結構以自動分割程式館函數的執行至整個異質組處理器36。如下所詳述,PDT資料庫32可以以優先權順序並以每函數為準列出處理器類型。例如,一組程式館40可以包含一函數,其係被建立用於在該異質組處理器36中的各個類型處理器。在此情況中,所例示PDT資料庫32將指出哪一處理器類型具有最高優先權,以執行該函數,哪一處理器類型具有第二高優先權,用以執行該函數,以此類推。同樣地,MAT資料庫34可以指明哪一記憶體類型(例如,快取、揮發性記憶體、非揮發性記憶體)具有最高儲存優先權,用於該函數的資料結構,哪一記憶體類型具有第二高儲存優先權,用於該函數的資料結構。在一例子中,優先化資料結構係依據在該函數執行時所收集的遙測資訊加以產生。因此,所例示的優先化資料結構可以藉由促成更多最佳執行組態以每函數為準地被自動識別,以加強效能、電力/能量效率及/或可擴縮性。確實,隨著時間更新優先化資料結構,所例示堆疊20提供了自動學習解決方案,以分割函數執行該整個異質組處理器36上。
圖2例示多數程式館版本50,其中基礎程式館50a(“Lib k”)被用以建立CPU程式館50b、GPU程式館50c、AI程式館50d及FPGA程式館50e。在所例示的例子中,在基礎程式館50a中的各個函數(“Func_1”至“Func_m”)在另一版本50的基礎程式館50a中有一對應函數。如果在給定類型處理器上沒有某些程式館版本50或部份內含函數,則此情況可以指示給排程器及/或應用鏈結器。
圖3A顯示遙測資訊60(例如,輪廓(profile)資訊)的例子,其包含函數識別碼(ID)66、第一遙測記錄62、第二遙測記錄64,等等。所例示遙測記錄62、64追蹤對應於該函數ID 66的該函數的連續執行的例如參數大小及值、記憶體要求、執行時間、執行緒數量、功率消耗等等的操作狀況。遙測記錄62、64也可以記錄該函數執行的日期時間、效能及功率分佈特徵,等等。也可以收集例如硬體能力的利用率(例如,單指令多資料/SIMD向量指令的使用)、圖形能力的利用率、及在分層記憶體子系統(如,包含持續記憶體)中快取階的利用率的資訊。在一例子中,在此輪廓被收集的訓練交談期間,此資訊被建立一次。
在其他實施例中,遙測資訊60於函數執行中隨著時間(例如,由使用者所決定作選擇地或週期地)被重覆收集。因此,第一遙測記錄62可能對應於該函數的第一執行,第二遙測記錄64可能對應於該函數的第二執行,等等。此手法可能特別有利於其中利用率預測可能不是可靠或可預測的多住戶計算架構。可以由執行到執行及由函數到函數變化的追蹤操作狀況可以促成如優先化資料結構,例如,已討論的PDT資料庫32(圖1)及/或MAT資料庫34(圖1)的自動產生。
圖3B顯示遙測資訊70的例子,其包含函數ID 72及單一遙測記錄74。所例示遙測記錄74追蹤對應於該函數ID 72的函數的連續執行的例如參數大小及值、記憶體要求、執行時間、執行緒數量、功率消耗等等的操作狀況。因此,所例示解決方案只維持用於各個函數的一個遙測記錄74,其中當該系統隨著時間學習到更多有關作為該函數的函數執行時,該記錄74作為動態資料模型。此一手法可以特別有用於處置函數,這些函數係被執行任意大數量的次數。在另一實施例中,該函數可能沒有任何對應動態輪廓資訊,但該系統創造器也可以靜態地提供有關該函數的資訊,例如,在排程程序中的處理器目標的建議順序的指示(例如,先試特殊加速器、再來特定GPU、及最後才CPU)。
圖4例示處理器調度表(PDT)80。如所示,函數遙測資訊可以被使用以建立PDT 80,其將函數映射至異質系統的處理器。在其他實施例中,輪廓資訊可以被開發者/使用者暗示及經驗法則所加強、替換或置換。在一實施例中,PDT 80指明在給定函數執行中,在異質系統的目標處理器的較佳順序。在一簡單實施例中,PDT 80為排序陣列,其中,各個元件為目標處理器的ID。在一實施例中,第一元件指明用以執行給定函數的最高優先權(例如,最佳)處理器。在此一情況中,PDT的第二元件指明用以執行該給定函數的第二選擇的處理器,等等。在所例示例子中,具有最高優先權的處理器的類型為“加速器1”,具有次高優先權的處理器類型為“加速器2”,等等。例如,如果對應於一函數的遙測資訊表示大量使用寬向量指令,則此知識可以反映至用以執行該函數的處理器選擇的優先權順序中。換句話說,排程器可以想要在具有相當寬指令的處理器上執行該函數。
另一類型的優先化資料結構為記憶體配置(例如,佈局)表(MAT),其導引記憶體的配置供包含該函數的計算單元選擇資料結構。在一實施例中,MAT從應用或函數的之前執行,捕捉到開發者的知識及該函數的動態遙測輪廓。系統代理可以分析之前執行的執行特徵,其中選擇資料結構(例如,大陣列或緩衝器)被映像至某記憶體單元。在一例子中,代理然後建立對應於該資料結構之用於記憶體配置的優先權表,其將在應用或函數執行期間為該記憶體配置器所使用。因此,對於該函數的資料結構,MAT的優先化列表可能是[快取=>RAM=>持續儲存器],而對於該函數的另一資料結構,該MAT的優先化列表可以是[RAM=>持續儲存器]。類似於PDT,當系統自動學習更多有關應用或函數的執行特徵時,MAT也可以進化。因此,由新的執行而來的學習被用以進一步改良未來執行的行為。在某些實施例中,MAT的範圍擴張超出單一計算系統的組件,例如涵蓋架構,例如分類分層記憶架構系統。
圖5顯示操作排程器之方法90。方法90通常可以例如被實施於已經討論的例如排程器30(圖1)的排程器中。更明確地說,方法90可以實施為:一或更多模組,作為:儲存在例如隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可程式ROM(PROM)、韌體、快閃記憶體等的機器或電腦可讀取儲存媒體中的一組邏輯指令;例如在例如可程式邏輯陣列(PLA)、FPGA、複雜可程式邏輯裝置(CPLD)的可組態邏輯;例如在使用如特殊應用積體電路(ASIC)、互補金屬氧化物半導體(CMOS)或電晶體-電晶體邏輯(TTL)技術的電路技術的固定功能邏輯硬體或其任意組合。
例如,用以執行示於方法90中的操作的電腦程式碼可以被寫成一或更多程式語言的任意組合,包含物件導向程式語言,例如,JAVA、SMALLTALK、C++或類似者以及傳統程序程式語言,例如,“C”程式語言或類似程式語言。另外,邏輯指令可能包含:組合指令、ISA指令、機器指令、機器相依指令、微碼、狀態設定資料、積體電路的組態資料、個人化電子電路及/或對於硬體(例如,主處理器、中央處理單元/CPU、微控制器等)為本機的其他結構組件的狀態資訊。
例示處理方塊92提供識別有關(如,專用)於一函數的優先化資料結構(例如,PDT、MAT),其中優先化資料結構依優先權順序列出硬體資源類型。方塊92也可以包含根據收集的遙測資訊,產生及/或修改該優先化資料結構。相關於此,方塊92可以設計優先化資料結構,以改良效能(例如,藉由優先化高效處理器)、降低功耗(例如,藉由優先化低功率處理器)等等。確實,映像可以甚至是日期時間特定。
在方塊94,可以選擇一類型硬體資源,其中方塊96決定所選擇的硬體資源類型是否為可用的。如果是,則在方塊98,所選擇硬體資源類型被配置(例如指派)給函數。如果所選擇硬體資源類型為不可用,則所例示方法90回到方塊94並且選擇優先權順序中的下一類型的硬體資源。
因此,如果在優先化資料結構中具有最高優先權的資源類型可用,則該資源類型將被配置給該函數。否則,(優先權順序中)第二類型硬體資源將被配置給該函數,其中該第二類型硬體資源為下一可用類型的硬體資源。如所述,硬體資源類型可以為處理器類型(例如,於PDT情況中)及/或記憶體類型(例如,於MAT情況中)。因此,所例示方法90藉由促使更多最佳執行組態被以每函數為基礎地自動識別,而加強效能、效率及/或可擴縮性。再者,當新類型硬體資源被開發時,由於優先化資料結構可以隨著時間更新,所以,可以避免應用碼的高成本與費時的重寫。
圖6顯示操作效能加強的計算系統的方法101。方法101可以實施為一或更多模組,作為:儲存在例如RAM、ROM、PROM、韌體、快閃記憶體等的機器或電腦可讀取儲存媒體中的一組邏輯指令;例如在例如PLA、FPGA、CPLD的可組態邏輯;例如在使用如ASIC、CMOS或TTL技術的電路技術的固定功能邏輯硬體或其任意組合。
通常,應用/函數排程器100可以利用處理器調度表102與記憶體配置表104的通用資料庫,以組態一函數(或應用)供執行並配置記憶體供該函數執行用。在一些實施例中,有關於該執行的新遙測資訊係被記錄以供代理所使用,該代理依據新資訊修訂PDT 102與MAT 104。例如,應用/函數可以在處理方塊106,執行於某處理器/記憶體組態上,其中,在方塊108,該執行遙測輪廓被聚集(例如,收集)。在一實施例中,在方塊110中,執行分析器建立/更新遙測資訊(例如,輪廓、歷史)。在所例示例子中,遙測資訊收集與優先化資料結構更新針對該函數的多次執行被重複進行。
因此,所例示方法101提供自動學習解決方案給異質系統的分割電腦應用(例如,避免了應用碼的高成本與費時重寫)。另外,遙測資訊可以針對該函數的每一執行被儲存在不同遙測記錄(見,例如,圖3A)或者針對該函數的每一執行被儲存在相同遙測記錄(見,例如,圖3B)。在一實施例中,排程器100根據該遙測資訊,產生及修改優先化資料結構。
現參考圖7,顯示效能加強的計算系統170。系統170可以大致為具有計算功能(例如,個人數位助理/PDA、筆記型電腦、平板電腦、可轉換平板電腦、伺服器)、通訊功能(例如,智慧手機)、攝像功能(例如,相機、攝影機)、媒體播放功能(例如,智慧電視/TV)、穿戴功能(例如,手錶、眼鏡、頭盔、鞋件、珠寶)、載具功能(例如,車輛、卡車、摩托車)、機器人功能(例如,自動機器人)等等、或其任意組合的電子裝置/平台的一部份。在例示的例子中,系統170包含主處理器172,具有整合記憶體控制器(IMC)174,其耦接至系統記憶體176。
所例示系統170也包含輸入輸出(IO)模組178,與主處理器172與圖形處理器180一起實施在半導體晶粒182上,作為系統晶片(SoC)。所例示IO模組178例如與顯示器184(例如,觸控螢幕、液晶顯示器/LCD、發光二極體/LED顯示器)、網路控制器186(例如,有線及/或無線)、及大量儲存器188(例如,硬碟機/HDD、光碟、固態機/SSD、快閃記憶體)通訊。
在一實施例中,主處理器172、圖形處理器180及/或IO模組178執行從系統記憶體176及/或大量儲存器188檢索的程式指令190,以執行已經討論的方法90(圖5)及/或方法101(圖6)的一或更多態樣。因此,所例示指令190的執行可以使得計算系統170在函數執行期間,收集遙測資訊並根據該遙測資訊產生優先化資料結構,其中該優先化結構依優先權順序列出硬體資源類型。在一例子中,指令190的執行也使得計算系統170在函數的多數執行期間,收集遙測資訊,並根據該遙測資訊,修改該優先化資料結構。
在一實施例中,例示指令190的執行也使得如果有第一類型硬體資源可用時,則計算系統170配置第一類型硬體資源給該函數,其中該第一類型硬體資源在該優先化資料結構中,具有最高優先權。另外,如果沒有該第一類型硬體資源可用時,則該指令190的執行也造成該計算系統170依優先權順序配置第二類型硬體資源給該函數。在一實施例中,第二類型硬體資源為下一個可用類型的硬體資源。如所討論,硬體資源類型也可以是處理器類型、記憶體類型等等。因此,當計算系統170使用優先化資料結構時,其至少被效能加強至促成更多最佳執行組態以每函數為基礎地被自動識別與使用的程度。
圖8顯示半導體封裝設備192。所例示設備192包含一或更多基板194(例如,矽、藍寶石、砷化鎵)及耦接至該基板194的邏輯196(例如,電晶體陣列及其他積體電路/IC組件)。邏輯196可以至少部份實施為可組態邏輯或固定功能邏輯硬體。在一例子中,邏輯196實施如已經討論的方法90(圖5)及/或方法101(圖6)的一或更多態樣。因此,邏輯196可以在函數執行期間,收集遙測資訊並根據該遙測資訊,產生優先化資料結構,其中優先化資料結構依優先順序列出硬體資源類型。在一例子中,邏輯196也在函數的多數執行期間,收集遙測資訊,並根據該遙測資訊,修改該優先化資料結構。
在一實施例中,如果有第一類型硬體資源可用,則邏輯196配置第一類型硬體資源給該函數,其中該第一類型硬體資源在優先化資料結構中具有最高優先權。另外,如果沒有第一類型硬體資源可用,則邏輯196也依優先權順序配置第二類型硬體資源給該函數。在一例子中,第二類型硬體資源為下一可用類型的硬體資源。如所討論,硬體資源類型可以為處理器類型、記憶體類型等等。因此,當設備192使用優先化資料結構時,其至少被效能加強到促成更多最佳執行組態以每函數為基礎地自動識別與使用的程度。
在一例子中,邏輯196包含電晶體通道區,其係定位(例如,嵌)於基板194內。因此,在邏輯196與基板194間之介面可以不是一陡接面。邏輯196也可以被認為是包含磊晶層,其係成長在基板194的初始晶圓上。
圖9例示依據一實施例之處理器核心200。處理器核心200可以為用於任一類型處理器,例如,微處理器、內嵌處理器、數位信號處理器(DSP)、網路處理器的核心,或者,執行碼的其他裝置的核心。雖然在圖9中只顯示一個處理器核心200,但處理元件也可以包含一個以上之圖9所示的處理器核心200。處理器核心200也可以是單執行緒核心,或者,對於至少一實施例,處理器核心200也可以是多執行緒,其中,每核心可以包含一個以上硬體執行緒上下文(或,“邏輯處理器”)。
圖9也例示耦接至處理器核心200的記憶體270。記憶體270也可以是各種已知或可為熟習於本技藝者所用的記憶體(包含各種層的記憶體階層)。記憶體270可以包含將為處理器核心200所執行的一或更多碼213指令,其中,碼213可以實施已經討論的方法90(圖5)及/或方法101(圖6)的一或更多態樣。處理器核心200遵循由碼213所指示的指令的程式序列。各個指令可以進入前端部份210並為一或更多解碼器220所處理。解碼器220可以產生例如成為預定格式的固定寬度微運算的微運算作為其輸出,或者,可以產生反映該原始碼指令的其他指令、微指令或控制信號。所例示前端部份210也包含暫存器重命名邏輯225及排程邏輯230,其通常對應於用以執行之轉換指令,來配置資源及佇列該運算。
處理器核心200係被顯示包含執行邏輯250,具有一組執行單元255-1至255-N。一些實施例可以包含若干執行單元,專用於特定函數,或者多組函數。其他實施例也可以包含只有一執行單元或者可以執行一特定函數的一執行單元。所例示執行邏輯250執行由碼指令所指明的運算。
在執行完成由碼指令所指明的運算後,後端邏輯260停用(retire)碼213的指令。在一實施例中,處理器核心200允許亂序執行但需要指令的按序停用。停用邏輯265可以採用各種為熟習於本技藝者所知的形式(例如,重排序緩衝器等等)。以此方式,在碼213的執行期間,至少以解碼器所產生的輸出看來,處理器核心200轉換了為暫存器重命名邏輯225所利用的硬體暫存器及表,以及,為執行邏輯250所修改的任何暫存器(未示出)。
雖然未示於圖9中,但處理元件在晶片上可以包含與處理器核心200一起的其他元件。例如,處理元件可以包含與處理器核心200一起的記憶體控制邏輯。處理元件可以包含I/O控制邏輯及/或可以包含與記憶體控制邏輯整合一起的I/O控制邏輯。處理元件也可以包含一或更多快取。
現參考圖10,所示為依據實施例之計算系統1000實施例的方塊圖。所示的圖10為多處理器系統1000,其包含第一處理元件1070及第二處理元件1080。雖然顯示有兩處理元件1070與1080,但可以了解的是,系統1000的實施例也可以包含只有此一個處理元件。
系統1000被例示為點對點互連系統,其中,第一處理元件1070與第二處理元件1080係透過點對點互連1050耦接。應了解的是,例示於圖10中之任一或所有互連可以被實施為多投匯流排,而不是點對點互連。
如於圖10所示,各個處理元件1070及1080可以為多核心處理器,包含第一與第二處理器核心(即,處理器核心1074a及1074b與處理器核心1084a及1084b)。此等核心1074a、1074b、1084a、1084b可以被組態以類似於有關以上圖9所討論的方式執行指令碼。
各個處理單元1070、1080可以包含至少一共享快取1896a、1896b。共享快取1896a、1896b可以儲存為例如核心1074a、1074b與1084a、1084b的處理器之一或更多組件所分別利用的資料(例如,指令)。例如,共享快取1896a、1896b可以本地快取儲存於記憶體1032、1034中之資料,用以為處理器的組件所更快存取。在一或更多實施例中,共享快取1896a、1896b可以包含一或更多中階快取,例如,快取的第2階(L2)、第3階(L3)、第4階(L4)或其他階、最後階快取(LLC)、及/或其組合。
雖然所顯示只具有兩處理元件1070、1080,但應了解,實施例的範圍並不限於此。在其他實施例中,一或更多其他處理元件也可以以給定的處理器出現。或者,一或更多處理元件1070、1080可以是一元件,而不是一處理器,例如,加速器或場可程式閘陣列。例如,額外處理元件可以包含:與第一處理器1070相同的額外處理器,額外處理器可以與第一處理器1070的處理器異質或非對稱;加速器(例如,圖形加速器或數位信號處理(DSP)單元);場可程式閘陣列;或任何其他處理元件。以包含架構、微架構、熱、功率消耗特徵等等的性能指數頻譜看來,在處理元件1070、1080間可能有各種差異。這些差異可以有效地證明它們本身為處理元件1070、1080間之非對稱性與異質性。對於至少一實施例,各種處理元件1070、1080可以內駐在相同晶粒封裝內。
第一處理元件1070可以更包含記憶體控制器邏輯(MC)1072及點對點(P-P)介面1076及1078。類似地,第二處理元件1080也可以包含MC 1082及P-P介面1086及1088。如於圖10所示,MC 1072及1082將處理器耦接至個別記憶體,即記憶體1032及記憶體1034,其可以為本地附接至個別處理器的主記憶體的部份。雖然MC 1072及1082被顯示為整合入處理元件1070、1080,但對於替代實施例,MC邏輯可以為在處理元件1070、1080外側的分立邏輯,而不是被整合於其中。
第一處理元件1070及第二處理元件1080可以分別經由P-P互連1076、1086耦接至I/O次系統1090。如於圖10所示,I/O次系統1090包含P-P介面1094及1098。再者,I/O次系統1090包含介面1092,用以將I/O次系統1090耦接至高效圖形引擎1038。在一實施例中,匯流排1049可以被用以將圖形引擎1038耦接至I/O次系統1090。或者,點對點互連也可以耦接這些組件。
隨後,I/O次系統1090可以經由介面1096耦接至第一匯流排1016。在一實施例中,第一匯流排1016可以為週邊組件互連(PCI)匯流排,或例如快速PCI匯流排的匯流排,或另一第三代I/O互連匯流排,但實施例的範圍並不作此限定。
如於圖10所示,各種I/O裝置1014(例如,生物掃描器、喇叭、相機、感應器)可以被耦接至第一匯流排1016,以及匯流排橋接器1018,其可以將第一匯流排1016耦接至第二匯流排1020。在一實施例中,第二匯流排1020可以為低腳數(LPC)匯流排。各種裝置可以被耦接至第二匯流排1020,包含例如鍵盤/滑鼠1012、通訊裝置1026、及資料儲存單元1019,例如,磁碟機或其他大量儲存裝置,在一實施例中,其可以包含碼1030。所示碼1030可以實施已經討論的方法90(圖5)及/或方法101(圖6)的一或更多態樣。再者,音訊I/O 1024可以耦接至第二匯流排1020及電池1010可以供給電力給該計算系統1000。
注意,也可以想出其他實施例。例如,不同於圖10的點對點架構,系統也可以實施為多投匯流排或另一此通訊拓樸。同時,圖10的元件也可以被使用比圖10所示更多或更少的整合晶片加以分割。
其他註記與例子:
例子1包含效能加強計算系統,其包含網路控制器、耦接至該網路控制器的處理器、及耦接至該處理器的記憶體,該記憶體包含一組可執行程式指令,當其為該處理器所執行時,使得該計算系統用以:識別相關於一函數的優先化資料結構,其中該優先化資料結構依優先權順序列出硬體資源類型;如果有第一類型硬體資源可用,則將該第一類型硬體資源配置給該函數,其中該第一類型硬體資源在該優先化資料結構中具有最高優先權;及如果並沒有該第一類型硬體資源可用,則配置該優先權順序中第二類型硬體資源給該函數,其中該硬體資源類型為處理器類型或記憶體類型之一。
例子2包含例子1的計算系統,其中當所述指令被執行時,使得該計算系統用以:在該函數執行期間,收集遙測資訊;及根據該遙測資訊,產生該優先化資料結構,其中該第二類型硬體資源將為下一個可用類型的硬體資源,其中該遙測資訊被用以包含參數大小與值、記憶體要求、執行時間、執行緒數量或功率消耗之一或更多,及其中該優先化資料結構將為處理器調度表或記憶體配置表之一。
例子3包含例子1的計算系統,其中當所述指令被執行時,使得該計算系統用以:在該函數的多數執行期間,收集遙測資訊;及根據該遙測資訊,修改該優先化資料結構。
例子4包含例子3的計算系統,其中當所述指令被執行時,使得該計算系統用以:將第一遙測資訊儲存至第一遙測記錄中,其中該第一遙測資訊係相關於該函數的第一執行;並儲存第二遙測資訊至第二遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
例子5包含例子3的計算系統,其中當所述指令被執行時,使得該計算系統用以:儲存第一遙測資訊至遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行;及儲存第二遙測資訊至該遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
例子6包含一種半導體設備,包含一或更多基板,及耦接至所述一或更多基板的邏輯,其中該邏輯係被至少部份實施於一或更多的可組態邏輯或固定功能硬體邏輯中,耦接至所述一或更多基板的該邏輯用以:識別相關於一函數的優先化資料結構,其中該優先化資料結構依優先權順序列出硬體資源類型;如果有第一類型硬體資源可用,則配置該第一類型硬體資源給該函數,其中該第一類型硬體資源在優先化資料結構中具有最高優先權,及如果沒有該第一類型硬體資源可用,則配置該優先權順序中的第二類型硬體資源給該函數。
例子7包含例子6的半導體設備,其中所述耦接至所述一或更多基板的邏輯係用以在該函數執行期間,收集遙測資訊,並根據該遙測資訊產生該優先化資料結構,其中該第二類型硬體資源係為下一個可用類型的硬體資源,其中該遙測資訊係用以包含參數大小及值、記憶體要求、執行時間、執行緒數量、或功率消耗之一或更多,及其中該優先化資料結構係用以為處理器調度表或記憶體配置表之一。
例子8包含例子6之半導體設備,其中所述耦接至所述一或更多基板的邏輯係用以在該函數的多數執行期間收集遙測資訊,並根據該遙測資訊修改該優先化資料結構。
例子9包含例子8的半導體設備,其中所述耦接至所述一或更多基板的邏輯係用以儲存第一遙測資訊至第一遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行,並儲存第二遙測資訊至第二遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
例子10包含例子8的半導體設備,其中所述耦接至所述一或更多基板的邏輯係用以儲存第一遙測資訊至遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行,並儲存第二遙測資訊至該遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
例子11包含例子6至10中之任一的半導體設備,其中該硬體資源類型為處理器類型。
例子12包含例子6至10中之任一的半導體設備,其中該硬體資源類型為記憶體類型。
例子13包含至少一電腦可讀儲存媒體,包含一組可執行程式指令,其當為計算系統所執行時,使得該計算系統用以:識別出與一函數相關的優先化資料結構,其中該優先化資料結構依優先權順序列出硬體資源類型;如果有第一類型硬體資源可用,則配置第一類型硬體資源至該函數,其中該第一類型硬體資源在該優先化資料結構中具有最高優先權;及,如果沒有該第一類型硬體資源可用,則配置優先權順序中之第二類型硬體資源給該函數。
例子14包含例子13之至少一電腦可讀儲存媒體,其中當所述指令被執行時,使得該計算系統用以:在該函數的執行期間,收集遙測資訊;及根據該遙測資訊,產生該優先化資料結構,其中該第二類型硬體資源係為下一可用類型的硬體資源,其中該遙測資訊係用以包含參數大小及值、記憶要求、執行時間、執行緒數量或功率消耗之一或多者,及其中該優先化資料結構係為處理器調度表或記憶體配置表之一。
例子15包含例子13的至少一電腦可讀儲存媒體,其中當所述指令被執行時,使得該計算系統用以:在該函數的多數執行期間,收集遙測資訊,及根據該遙測資訊,修改該優先化資料結構。
例子16包含例子15之至少一電腦可讀儲存媒體,其中當所述指令被執行時,使得該計算系統用以:儲存第一遙測資訊至第一遙測記錄,及其中該第一遙測資訊係相關於該函數的第一執行,及儲存第二遙測資訊至第二遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
例子17包含例子15的至少一電腦可讀儲存媒體,其中當所述指令被執行時,使得該計算系統用以:儲存第一遙測資訊至遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行,及儲存第二遙測資訊至該遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
例子18包含例子13至17之任一的至少一電腦可讀儲存媒體,其中該硬體資源類型為處理器類型。
例子19包含例子13至17之任一的至少一電腦可讀儲存媒體,其中該硬體資源類型為記憶體類型。
例子20包含一種操作效能加強計算系統的方法,該方法包含:識別相關於一函數的優先化資料結構,其中該優先化資料結構依優先權順序列出硬體資源類型;如果有第一類型硬體資源可用,則配置該第一類型硬體資源至該函數,其中該第一類型硬體資源在該優先化資料結構中具有最高優先權;及如果沒有該第一類型硬體資源可用,則配置該優先權順序中之第二類型硬體資源至該函數,其中該硬體資源類型為處理器類型或記憶體類型之一。
例子21包含例子20的方法,更包含:在該函數執行期間,收集遙測資訊,及根據該遙測資訊,產生該優先化資料結構,其中該第二類型硬體資源為下一可用類型硬體資源,其中該遙測資訊包含參數大小及值、記憶體要求、執行時間、執行緒數量、或功率消耗之一或更多,及其中該優先化資料結構為處理器調度表或記憶體配置表之一。
例子22包含例子21的方法,更包含在該函數的多數執行期間,收集遙測資訊,及根據該遙測資訊,修改該優先化資料結構。
例子23包含例子22的方法,更包含儲存第一遙測資訊至第一遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行,及儲存第二遙測資訊至第二遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
例子24包含例子22的方法,更包含儲存第一遙測資訊至遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行,及儲存第二遙測資訊至該遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
例子25包含用以執行如例子20至24中之任一的方法的手段。
因此,於此所述之技術促成系統之設計,所述系統自動分割用於異質電腦系統的電腦應用,所述異質電腦系統包含CPU、GPU、FPGA、及其他特殊加速器及異質分層記憶體子系統。該技術係基於統一規劃模型,例如,ONEAPI,其可以映像至各種計算及記憶體類型。該技術也可以用以設計電腦系統,其依潛候期、頻寬、流通量、功率消耗、及成本看來係高度最佳化用於特定域應用或具有特殊服務階層協定(SLA)應用。除了相關於計算基元的計算特徵(例如,效能、功率)的動態遙測與輪廓回饋外,該技術也可以使用相關於已知演算法、基元及小碼的效能特徵的預先知識。因此,該技術可以自動地分割電腦應用,以在最佳計算處理器上執行。該技術也可以以智慧方式使用,其中系統當執行應用時學習,造成用於自動應用分割的學習系統。另外,於此所述之技術可以降低上市時間(TTM),這可以直接相關於規劃的容易度。該技術也促成該計算平台的開發,以符合它們的計算與成本要求。
實施例可以與所有類型的半導體積體電路(“IC”)晶片一起使用。這些IC晶片的例子包含但並不限於處理器、控制器、晶片組元件、可程式邏輯陣列(PLA)、記憶體晶片、網路晶片、系統晶片(SoC)、SSD/NAND控制器ASIC等等。另外,在一些圖式中,信號導線係被以線條表示。有些可能不同,而具有標號,以表示更多組成信號路徑,表示組成信號路徑的數目、及/或在一或更多末端具有箭頭,以表示主資訊流方向。然而,這不應被建構為限定方式。相反地,此外加細節可以用以配合一或更多例示實施例,以促成對電路的更佳了解。任何代表信號線,不論是否具有額外資訊,均可以實際包含一或更多信號,其可以以多方向行進並可以被以任何適當類型的信號方案加以實施,例如,以差動對、光纖線及/或單端線實施的數位或類比線。
可能已經給出有例示大小/模型/值/範圍,但實施例並不限於相同者。因為製造技術(例如,光微影術)隨著時間成熟,可以預測可以製造出更小尺寸的裝置。另外,已知對IC晶片與其他組件的功率/接地連接,為了簡明顯示與討論,可能或可能沒有顯示在圖式中,而不模糊實施例的某些態樣。再者,配置也可能以方塊圖形式顯示,以避免模糊實施例,同時,以事實看來,相關於此等方塊圖配置的實施法的細節高度取決於在實施例內所要實施的計算系統,即此等細節在熟習於本技藝的範圍內。雖然特定細節(例如,電路)被說明以描述例示實施例,但對於熟習於此技藝者明顯的是,這些實施例可以在沒有這些特定細節或有這些特定細節的變化下加以實施。因此,本說明並應被視為例示性而非限制用。
用語“耦接”在此可以用以表示在相關元件間之任何類型的直接或間接關係,並可以被應用至電氣、機械、流體、光學、電磁、電機或其他連接。另外,於此所用之用語“第一”、“第二”等只表示促成討論,除非特別指明,否則並未帶有任何特定時間或順序上的重要性。
如同在本案與申請專利範圍中所用,一列項目結合上用語“一或更多”可能表示所列用語的任意組合。例如,片語“A、B或C的一或更多”可以表示A;B;C;A與B;A與C;B與C;或A、B與C。
熟習於本技藝者可以由前述說明了解,實施例的廣泛技術可以以各種形式實施。因此,雖然實施例已經配合特定例子加以描述,但實施例的真實範圍應不作此限定,因為,熟習此技藝者在研讀附圖、說明書與以下申請專利範圍後,可以作出其他修改。
20:軟體堆疊 22:階0介面 24:系統軟體 26:系統軟體 28:開發者介面 30:排程器 32:處理器調度表資料庫 34:記憶體配置表資料庫 36:異質組處理器 38:最佳化應用 40:一組程式館 50:程式館版本 50a:基礎程式館 50b:CPU程式館 50c:GPU程式館 50d:AI程式館 50e:FPGA程式館 60:遙測資訊 62:第一遙測記錄 64:第二遙測記錄 66:函數識別碼 70:遙測資訊 72:函數ID 74:單一遙測記錄 80:處理器調度表 90:方法 92:方塊 94:方塊 96:方塊 98:方塊 100:排程器 101:方法 102:處理器調度表 104:記憶體配置表 106:處理方塊 108:方塊 110:方塊 170:系統 172:主處理器 174:整合記憶體控制器 176:系統記憶體 178:輸入輸出模組 180:圖形處理器 182:半導體晶粒 184:顯示器 186:網路控制器 188:大量儲存器 190:指令 192:半導體封裝設備 194:基板 196:邏輯 200:處理器核心 210:前端部份 213:碼 220:解碼器 225:執行邏輯 230:排程邏輯 250:執行邏輯 255-1:執行單元 255-2:執行單元 255-N:執行單元 260:後端邏輯 265:停用邏輯 270:記憶體 1000:計算系統 1010:電池 1012:鍵盤/滑鼠 1014:I/O裝置 1016:第一匯流排 1018:匯流排橋接器 1019:資料儲存單元 1020:第二匯流排 1024:音訊I/O 1026:通訊裝置 1030:碼 1032:記憶體 1034:記憶體 1038:高效圖形引擎 1049:匯流排 1050:點對點互連 1070:處理元件 1072:記憶體控制器邏輯 1074a:處理器核心 1074b:處理器核心 1076:點對點互連 1078:點對點互連 1080:處理元件 1082:記憶體控制器邏輯 1084a:處理器核心 1084b:處理器核心 1086:點對點互連 1088:點對點互連 1090:I/O次系統 1092:介面 1094:點對點互連 1096:介面 1098:點對點互連 1896a:快取 1896b:快取
實施例的各種優點將藉由讀取以下的說明書與隨附的申請專利範圍並參考附圖而為熟習於本技藝者所了解,其中:
[圖1]為依據一實施例之一軟體堆疊例子的方塊圖;
[圖2]為依據一實施例之一組程式館版本例子的方塊圖;
[圖3A與3B]為依據實施例之遙測資料例子的方塊圖;
[圖4]為依據實施例之處理器調度表例子的方塊圖;
[圖5]為依據實施例之操作一排程器的方法例子的流程圖;
[圖6]為依據實施例之操作一效能強化計算系統的方法例子的流程圖;
[圖7]為依據實施例之效能強度計算系統例子的方塊圖;
[圖8]為依據實施例之半導體設備例子的示意圖;
[圖9]為依據實施例之處理器例子的方塊圖;及
[圖10]為依據實施例之多處理器為主計算系統例子的方塊圖。
20:軟體堆疊
22:階0介面
24:系統軟體
26:系統軟體
28:開發者介面
30:排程器
32:處理器調度表資料庫
34:記憶體配置表資料庫
36:異質組處理器
38:最佳化應用
40:一組程式館

Claims (24)

  1. 一種計算系統,包含: 處理器,包含多數執行單元,所述執行單元係為相關於第一信任域與第二信任域的執行; 快取,用以儲存相關於該第一與第二信任域的資料;及 耦接至該處理器的記憶體,該記憶體包含一組可執行程式指令,當其為該處理器所執行時,使得該計算系統用以: 決定相關於該第一信任域的第一資料將被儲存入該快取的第一部份;及 決定相關於該第二信任域的第二資料將被儲存入該第一部份的第一部,而該第一資料的第二部將被保持在該第一組的第二部中。
  2. 如請求項1的計算系統,其中當所述指令被執行時,使得該計算系統用以: 根據指定給該第一信任域的第一值,決定該第一資料將被儲存在該第一部份; 根據指定給該第二信任域的第二值,決定該第二資料將被儲存在該第一部中,其中該第二值係與該第一值不同。
  3. 如請求項1的計算系統,其中當所述指令被執行時,使得該計算系統用以: 在該函數的多數執行期間,收集遙測資訊;及 根據該遙測資訊,修改該優先化資料結構。
  4. 如請求項3的計算系統,其中當所述指令被執行時,使得該計算系統用以: 將第一遙測資訊儲存至第一遙測記錄中,其中該第一遙測資訊係相關於該函數的第一執行;及 儲存第二遙測資訊至第二遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
  5. 如請求項3的計算系統,其中當所述指令被執行時,使得該計算系統用以: 儲存第一遙測資訊至遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行;及 儲存第二遙測資訊至該遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
  6. 一種半導體設備,包含: 一或更多基板,及 耦接至所述一或更多基板的邏輯,其中該邏輯係被至少部份實施於一或更多的可組態邏輯或固定功能硬體邏輯中,耦接至所述一或更多基板的該邏輯用以: 識別相關於一函數的優先化資料結構,其中該優先化資料結構依優先權順序列出硬體資源類型; 如果有第一類型硬體資源可用,則配置該第一類型硬體資源給該函數,其中該第一類型硬體資源在優先化資料結構中具有最高優先權;及 如果沒有該第一類型硬體資源可用,則配置該優先權順序中的第二類型硬體資源給該函數。
  7. 如請求項6的半導體設備,其中所述耦接至所述一或更多基板的邏輯係用以: 在該函數執行期間,收集遙測資訊,及 根據該遙測資訊產生該優先化資料結構,其中該第二類型硬體資源係為下一個可用類型的硬體資源,其中該遙測資訊係用以包含參數大小及值、記憶體要求、執行時間、執行緒數量、或功率消耗之一或更多,及其中該優先化資料結構將為處理器調度表或記憶體配置表之一。
  8. 如請求項6之半導體設備,其中所述耦接至所述一或更多基板的邏輯係用以: 在該函數的多數執行期間,收集遙測資訊,及 根據該遙測資訊,修改該優先化資料結構。
  9. 如請求項8的半導體設備,其中所述耦接至所述一或更多基板的邏輯係用以: 儲存第一遙測資訊至第一遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行,及 儲存第二遙測資訊至第二遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
  10. 如請求項8的半導體設備,其中所述耦接至所述一或更多基板的邏輯係用以: 儲存第一遙測資訊至遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行,及 儲存第二遙測資訊至該遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
  11. 如請求項6的半導體設備,其中該硬體資源類型為處理器類型。
  12. 如請求項6的半導體設備,其中該硬體資源類型為記憶體類型。
  13. 一種至少一電腦可讀儲存媒體,包含一組可執行程式指令,當其為計算系統所執行時,使得該計算系統用以: 識別出與一函數相關的優先化資料結構,其中該優先化資料結構依優先權順序列出硬體資源類型; 如果有第一類型硬體資源可用,則配置該第一類型硬體資源至該函數,其中該第一類型硬體資源在該優先化資料結構中具有最高優先權;及 如果沒有該第一類型硬體資源可用,則配置該優先權順序中之第二類型硬體資源給該函數。
  14. 如請求項13之至少一電腦可讀儲存媒體,其中當所述指令被執行時,使得該計算系統用以: 在該函數的執行期間,收集遙測資訊;及 根據該遙測資訊,產生該優先化資料結構,其中該第二類型硬體資源係為下一可用類型的硬體資源,其中該遙測資訊係用以包含參數大小及值、記憶要求、執行時間、執行緒數量、或功率消耗之一或多者,及其中該優先化資料結構係為處理器調度表或記憶體配置表之一。
  15. 如請求項13的至少一電腦可讀儲存媒體,其中當所述指令被執行時,使得該計算系統用以: 在該函數的多數執行期間,收集遙測資訊;及 根據該遙測資訊,修改該優先化資料結構。
  16. 如請求項15之至少一電腦可讀儲存媒體,其中當所述指令被執行時,使得該計算系統用以: 儲存第一遙測資訊至第一遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行;及 儲存第二遙測資訊至第二遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
  17. 如請求項15的至少一電腦可讀儲存媒體,其中當所述指令被執行時,使得該計算系統用以: 儲存第一遙測資訊至遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行;及 儲存第二遙測資訊至該遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
  18. 如請求項13的至少一電腦可讀儲存媒體,其中該硬體資源類型為處理器類型。
  19. 如請求項13的至少一電腦可讀儲存媒體,其中該硬體資源類型為記憶體類型。
  20. 一種方法,包含: 識別相關於一函數的優先化資料結構,其中該優先化資料結構依優先權順序列出硬體資源類型; 如果有第一類型硬體資源可用,則配置該第一類型硬體資源至該函數,其中該第一類型硬體資源在該優先化資料結構中具有最高優先權;及 如果沒有該第一類型硬體資源可用,則配置該優先權順序中之第二類型硬體資源至該函數,其中該硬體資源類型為處理器類型或記憶體類型之一。
  21. 如請求項20的方法,更包含: 在該函數的執行期間,收集遙測資訊;及 根據該遙測資訊,產生該優先化資料結構,其中該第二類型硬體資源為下一可用類型硬體資源,其中該遙測資訊包含參數大小及值、記憶體要求、執行時間、執行緒數量、或功率消耗之一或更多,及其中該優先化資料結構為處理器調度表或記憶體配置表之一。
  22. 如請求項21的方法,更包含: 在該函數的多數執行期間,收集遙測資訊;及 根據該遙測資訊,修改該優先化資料結構。
  23. 如請求項22的方法,更包含: 儲存第一遙測資訊至第一遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行;及 儲存第二遙測資訊至第二遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
  24. 如請求項22的方法,更包含: 儲存第一遙測資訊至遙測記錄,其中該第一遙測資訊係相關於該函數的第一執行;及 儲存第二遙測資訊至該遙測記錄,其中該第二遙測資訊係相關於該函數的第二執行。
TW109131870A 2019-12-20 2020-09-16 用於分割異質系統的電腦應用的自動學習科技的系統、半導體設備、方法及儲存媒體 TWI845762B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/722,778 2019-12-20
US16/722,778 US11520501B2 (en) 2019-12-20 2019-12-20 Automated learning technology to partition computer applications for heterogeneous systems

Publications (2)

Publication Number Publication Date
TW202129492A true TW202129492A (zh) 2021-08-01
TWI845762B TWI845762B (zh) 2024-06-21

Family

ID=

Also Published As

Publication number Publication date
US11520501B2 (en) 2022-12-06
JP2021099785A (ja) 2021-07-01
US20200133537A1 (en) 2020-04-30
DE102020130528A1 (de) 2021-06-24
CN113010468A (zh) 2021-06-22
KR20210080173A (ko) 2021-06-30

Similar Documents

Publication Publication Date Title
US20210382754A1 (en) Serverless computing architecture for artificial intelligence workloads on edge for dynamic reconfiguration of workloads and enhanced resource utilization
US20210390460A1 (en) Compute and memory based artificial intelligence model partitioning using intermediate representation
US20210319298A1 (en) Compute-based subgraph partitioning of deep learning models for framework integration
JP2021099782A (ja) ファンクション・アズ・ア・サービスコンピューティングのための統一プログラミングモデル
US20230333999A1 (en) Maximizing on-chip data reuse in compute in memory and compute near memory architectures
US11520501B2 (en) Automated learning technology to partition computer applications for heterogeneous systems
US20210365804A1 (en) Dynamic ai model transfer reconfiguration to minimize performance, accuracy and latency disruptions
EP3879406A1 (en) Simulated annealing-based memory allocations
TWI845762B (zh) 用於分割異質系統的電腦應用的自動學習科技的系統、半導體設備、方法及儲存媒體
US11249910B2 (en) Initialization and management of class of service attributes in runtime to optimize deep learning training in distributed environments
US20210406777A1 (en) Autonomous allocation of deep neural network inference requests in a cluster with heterogeneous devices
US11663056B2 (en) Unified programming interface for regrained tile execution
US10915356B2 (en) Technology to augment thread scheduling with temporal characteristics
US20230115542A1 (en) Programmable matrix multiplication engine
US20210374554A1 (en) Graph context-based operator checks to improve graph clustering and execution in ai accelerator framework integration
US20220391710A1 (en) Neural network based power and performance model for versatile processing units
US11941437B2 (en) Graph partitioning to exploit batch-level parallelism
US20240126599A1 (en) Methods and apparatus to manage workloads for an operating system
US20210019260A1 (en) Multiple virtual numa domains within a single numa domain via operating system interface tables
JP2023514898A (ja) 階層化オブジェクトメモリ配置のためのランタイム装置の管理
TW202324147A (zh) 用以將操作的運算及資料儲存交疊之交錯式資料負載系統
US20200118006A1 (en) Poisson distribution based approach for bootstrap aggregation in a random forest