TW201405422A - 於異質處理器群組間之運行時間調度技術 - Google Patents

於異質處理器群組間之運行時間調度技術 Download PDF

Info

Publication number
TW201405422A
TW201405422A TW102115881A TW102115881A TW201405422A TW 201405422 A TW201405422 A TW 201405422A TW 102115881 A TW102115881 A TW 102115881A TW 102115881 A TW102115881 A TW 102115881A TW 201405422 A TW201405422 A TW 201405422A
Authority
TW
Taiwan
Prior art keywords
processor
source code
data
scheduler module
computing unit
Prior art date
Application number
TW102115881A
Other languages
English (en)
Other versions
TWI578229B (zh
Inventor
Yong Jiang
Rui-Jia Li
Lei Shen
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201405422A publication Critical patent/TW201405422A/zh
Application granted granted Critical
Publication of TWI578229B publication Critical patent/TWI578229B/zh

Links

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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • G06F9/4552Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

所描述的是包括用於在一異質處理器群組間之運行時間調度之操作的系統、裝置、物品及方法。

Description

於異質處理器群組間之運行時間調度技術
本發明係有關於於異質處理器群組間之運行時間調度技術。
發明背景
包括平板電腦、膝上型電腦、行動網際網路器件(mobile Internet device,MID)、智慧型手機及/或其類似者之現代計算器件通常可經配備有異質處理引擎。舉例來說,此類異質處理引擎可能包括主要中央處理單元(central processing unit,CPU)、輔助CPU(例如,此可在智慧型手機實施中常見)、圖形處理單元(graphics processing unit,GPU)、數位信號處理器(digital signal processor,DSP)、其類似者,及/或其組合。
在哪些處理引擎上將發生哪些計算操作之判定當前係在設計時間(例如,在設計給定作用中應用程式之時間所定義)而非在運行時間(例如,在設計給定作用中應用程式之時間所決定)進行定義。在一些情形中,相比於CPU,在GPU上,計算可能運行得較快,但亦可能消耗較多電力, 或情況相反。若在CPU及GPU兩者處執行而非僅僅在CPU處或僅僅在GPU處執行,則計算亦可能運行得較快。因此,給定作用中應用程式可能已在設計時間經調適以具有在哪些處理引擎上將發生哪些計算操作之預定指派。
依據本發明之一實施例,係特地提出一種用於在一電腦之一異質處理器群組間之運行時間調度的電腦實施方法,其包含以下步驟:經由一排程器模組自一作用中應用程式傳送一計算單元原始碼以及與該計算單元原始碼相關聯之第一上下文資料及第二上下文資料,其中可組配用於個別執行之複數個計算單元包含該作用中應用程式;經由該排程器模組判定該計算單元原始碼至包括一第一處理器及一第二處理器之該異質處理器群組之一分佈,其中該第二處理器相比於該第一處理器係為一不同類型;經由該排程器模組編譯該計算單元原始碼之一第一二進位版本及一第二二進位版本,其中該計算單元原始碼之該第一二進位版本係與該第一處理器相容,且該計算單元原始碼之該第二二進位版本係與該第二處理器相容;以及經由該排程器模組將該計算單元原始碼之該第一二進位版本及該第一上下文資料傳送至該第一處理器,且將該計算單元原始碼之該第二二進位版本及該第二上下文資料傳送至該第二處理器。
100‧‧‧運行時間調度系統
110‧‧‧作用中應用程式
112‧‧‧單元A
114‧‧‧單元B
116‧‧‧單元C
120‧‧‧計算單元原始碼
122‧‧‧上下文B1
124‧‧‧上下文B2
126‧‧‧上下文B3
130‧‧‧排程器模組
132‧‧‧二進位B1
134‧‧‧二進位B2
136‧‧‧二進位B3
140‧‧‧調度模組
142‧‧‧中央處理單元(CPU)
144、146‧‧‧圖形處理單元(GPU)
200、300‧‧‧運行時間調度處理序
202、204、206、208‧‧‧區塊/操作
310、312、314、316、318、320、322、324、326、328、330、332、334、336、338、340、342‧‧‧動作/操作
306‧‧‧邏輯模組
408‧‧‧記憶體儲存器
500‧‧‧系統
502‧‧‧平台
505‧‧‧晶片組
510‧‧‧處理器
512‧‧‧記憶體
514‧‧‧儲存體
515‧‧‧圖形子系統
516‧‧‧軟體應用程式
518‧‧‧無線電
520、604‧‧‧顯示器
522‧‧‧使用者介面
530‧‧‧內容服務器件
540‧‧‧內容遞送器件
550‧‧‧導覽控制器
560‧‧‧網路
600‧‧‧小型外觀尺寸器件
602‧‧‧外殼
606‧‧‧輸入/輸出(I/O)器件
608‧‧‧天線
612‧‧‧導覽特徵
在附圖中藉由實例而非藉由限制來例示本文所 描述之材料。出於例示簡單及清楚起見,該等圖所例示之元件未必按比例繪製。舉例來說,出於清楚起見,一些元件之尺寸可相對於其他元件進行誇示。另外,在被認為適當的情況下,已在該等圖間重複參考標籤以指示對應或類似元件。在該等圖中:圖1為實例運行時間調度系統之例示性圖;圖2為例示實例運行時間調度處理序之流程圖;圖3為在操作中之實例運行時間調度系統之例示性圖;圖4為實例運行時間調度系統之例示性圖;圖5為實例系統之例示性圖;以及圖6為全部根據本發明之至少一些實施而配置的實例系統之例示性圖。
較佳實施例之詳細說明
現在參看附圖來描述一或多個實施例或實施。雖然論述特定組配及配置,但應理解,此論述係僅出於例示性目的而進行。熟習相關技術者將認識到,可在不脫離該描述之精神及範疇的情況下使用其他組配及配置。對於熟習相關技術者將顯而易見,亦可在不同於本文所描述之系統及應用程式的多種系統及應用程式中使用本文所描述之技術及/或配置。
雖然以下描述闡明可在若干架構(例如,此類系統單晶片(system-on-a-chip,SoC)架構)中表明之各種實施,但本文所描述之技術及/或配置之實施不限於特定架構 及/或計算系統且可由用於相似目的之任何架構及/或計算系統實施。舉例來說,使用(例如)多個積體電路(integrated circuit,IC)晶片及/或封裝之各種架構及/或諸如機上盒、智慧型手機等等之各種計算器件及/或消費型電子件(consumer electronic,CE)器件可實施本文所描述之技術及/或配置。另外,雖然以下描述可闡明諸如系統組件之邏輯實施、類型及相互關係、邏輯分割/整合選擇等等之眾多特定細節,但可在無此類特定細節之情況下實踐所主張主題。在其他情況下,可不詳細地展示諸如控制結構及全軟體指令序列之一些材料,以便不混淆本文所揭示之材料。
本文所揭示之材料可以硬體、韌體、軟體或其任何組合進行實施。本文所揭示之材料亦可被實施為儲存於機器可讀媒體上之指令,該等指令可由一或多個處理器讀取及執行。機器可讀媒體可包括用於儲存或傳輸呈可由機器(例如,計算器件)讀取之形式之資訊的任何媒體及/或機構。舉例來說,機器可讀媒體可包括唯讀記憶體(ROM);隨機存取記憶體(RAM);磁碟儲存媒體;光學儲存媒體;快閃記憶體器件;電學、光學、聲學或其他形式之傳播信號(例如,載波、紅外線信號、數位信號等等);及其他者。
本說明書中對「一實施」、「一實例實施」等等之參考指示出所描述實施可包括一特定特徵、結構或特性,但各實施可未必包括該特定特徵、結構或特性。此外,此類片語未必指代同一實施。另外,當結合一實施而描述一特定特徵、結構或特性時,應認為,無論本文是否明確地 進行描述,結合其他實施而實現此類特徵、結構或特性皆係在熟習此項技術者之知識範圍內。
下文描述包括用於異質處理器群組間之運行時間調度之操作的系統、裝置、物品及方法。
如上文所描述,在一些狀況下,在哪些處理引擎上將發生哪些計算操作之判定通常係在設計時間(例如,在設計給定作用中應用程式之時間所定義)而非在運行時間(例如,在設計給定作用中應用程式之時間所決定)進行定義。在一些情形中,相比於CPU,在GPU上,計算可能運行得較快,但亦可能消耗較多電力,或情況相反。因此,給定作用中應用程式可能已在設計時間經調適以具有在哪些處理引擎上將發生哪些計算操作之預定指派。
舉例來說,Khronos OpenCLTM型作用中應用程式可能經設計成基於在設計時間設定之預定指派而將計算任務編譯至不同處理引擎。另外,對於此類OpenCLTM型作用中應用程式,將任務調度至不同處理引擎之功能可必須由作用中應用程式自身處置。舉例來說,OpenCLTM可能夠用來自作用中應用程式之指令將同一程式碼編譯至多種類型之CPU及GPU。此類作用中應用程式可決定其意欲在哪一處理引擎上運行;然而,在大多數狀況下,作用中應用程式通常僅僅將所有任務調度至一種類型之處理引擎。因此,當前可不存在有意義運行時間調度。
另外,Microsoft DirectX® GPU排程器可能夠依據優先權來排程計算單元。然而,此類DirectX® GPU排程 器可僅能夠處置GPU,且可不能夠處置其他處理引擎。另外,比如開放原始碼電腦視覺(Open Source Computer Vision,OpenCV)、NVIDIA之平行計算架構(統一計算器件架構(Compute Unified Device Architecture,CUDA))及/或C-Media的平行計算解決方案可僅允許在CPU抑或GPU處而非在此兩者處計算一個內核。因此,當前可不存在至異質處理引擎之有意義運行時間調度。
如下文將更詳細地所描述,用於異質處理器群組間之運行時間調度之操作可包括引入被稱作排程器之組件。此類排程器可提供在運行時間將任務調度至異質處理引擎之能力。此類運行時間調度可基於諸如以下各者之某些準則而在運行時間進行選擇性地調整:電力節約、熱平衡、速度最佳化、其類似者,及/或其組合。此類運行時間調度可基於實際運行時間使用方式模型及/或實際運行時間條件而非基於在設計時間進行之預測而提供改良型使用者體驗。
在無額外硬體成本之情況下在速度、電力消耗及/或熱平衡方面具有較佳效能及使用者體驗可為顯著能力。運行時間調度可允許針對時間關鍵應用程式之較快處理及在相同硬體組配之情況下之較長電池壽命兩者。此類能力對於平板電腦、膝上型電腦、行動網際網路器件(MID)、智慧型手機及/或其類似者之使用者可重要。又,縮減總電力消耗之能力可幫助促成環境保護。
圖1為根據本發明之至少一些實施而配置的實 例運行時間調度系統100之例示性圖。在所例示實施中,運行時間調度系統100可包括作用中應用程式110、一或多個邏輯模組(例如,排程器模組130及/或調度模組140),及/或一或多個處理器(例如,異質處理器群組CPU 142、GPU 144、GPU 146及/或其類似者)。在所例示實例中,異質處理器群組142/144/146可包括CPU 142、GPU 144及/或GPU 146;然而,異質處理器群組142/144/146可包括本質上並非皆同質之兩個或兩個以上處理器。如本文所使用,術語「異質處理器群組」可指代存在兩種或兩種以上類型之處理器(例如,CPU、GPU等等),及/或可指代在該等處理器間存在變化之效能特性(例如,第一GPU 144具有第一處理速度,且第二GPU 146具有不同處理速度,或其類似者)。
在一些實例中,運行時間調度系統100可包括出於清楚起見而在圖1中尚未展示之額外項目。舉例來說,運行時間調度系統100可包括顯示器、成像器件、視訊編碼器、射頻型(RF)收發器,及/或天線。另外,運行時間調度系統100可包括出於清楚起見而在圖1中尚未展示之額外項目,諸如,揚聲器、麥克風、加速度計、記憶體、路由器、網路介面邏輯等等。
在一些實例中,作用中應用程式110可經組配以載入計算單元原始碼120,其中計算單元原始碼120可包括選自構成作用中應用程式110之複數個計算單元(例如,單元A 112、單元B 114、單元C 116等等)之個別計算單元。如本文所使用,術語「原始碼」可指代人類可讀電腦語言、 中間語言(諸如,java位元組程式碼),或其類似者。作用中應用程式110可經組配以至少部分地基於計算單元原始碼120而產生執行緒上下文陣列(thread context array),其中該執行緒上下文陣列包括第一上下文及第二上下文(例如,上下文B1 122、上下文B2 124,及/或上下文B3 126等等)。作用中應用程式110可經組配以將一排程請求起始至排程器模組130,其中該排程請求可包括計算單元原始碼120以及與計算單元原始碼120相關聯之第一上下文資料及第二上下文資料(例如,上下文B1 122、上下文B2 124,及/或上下文B3 126等等)。
在一些實例中,排程器模組130可通信地耦接至異質處理器群組142/144/146。排程器模組130可經組配以自作用中應用程式110傳送計算單元原始碼120以及與計算單元原始碼120相關聯之第一上下文資料及第二上下文資料(例如,上下文B1 122、上下文B2 124,及/或上下文B3 126等等)。舉例來說,可組配用於個別執行之複數個計算單元(例如,單元A 112、單元B 114、單元C 116等等)可包括作用中應用程式110之全部或部分。因此,排程器模組130可在應用程式開發者已經將計算任務分隔成小計算單元112/114/116之環境中操作,此可在開放原始碼電腦視覺(OpenCV)、NVIDIA之平行計算架構(統一計算器件架構(CUDA))及/或C-Media中進行。排程器模組130可經組配以判定計算單元原始碼120至異質處理器群組142/144/146之分佈。舉例來說,異質處理器群組 142/144/146可包括第一處理器142及第二處理器146或更多處理器(例如,GPU 144或其類似者),其中第二處理器146相比於第一處理器142屬於不同類型。
在一些實例中,排程器模組130可經組配以編譯計算單元原始碼之第一二進位版本(例如,二進位B1 132)及第二二進位版本(例如,二進位B2 134)或更多二進位版本(例如,二進位B3 136等等)。舉例來說,計算單元原始碼120之第一二進位版本132可與第一處理器142相容,且計算單元原始碼120之第二二進位版本134可與第二處理器146相容。
在一些實例中,排程器模組130可經組配以傳送與電腦相關聯之熱資料。舉例來說,排程器模組130可經組配以至少部分地基於熱資料而判定熱位準。如本文所使用,術語「傳送」一般地可指代涉及被動地接收資料、回應於作用中請求而接收資料或發送此類資料之通信,諸如,可涉及推送型通信、提取型通信或推送及提取型通信之通信。
或者或另外,排程器模組130可經組配以傳送與電腦相關聯之電力供應資料。舉例來說,排程器模組130可經組配以至少部分地基於電力供應資料而判定當前電源及/或電池電荷位準。
或者或另外,排程器模組130可經組配以自異質處理器群組142/144/146傳送負載資料,其中該負載資料指示可用於個別處理器之負載。排程器模組130可經組配以 至少部分地基於負載資料而偵測異質處理器群組142/144/146之個別處理器。
在一些實例中,排程器模組130可經組配以將計算單元原始碼120之第一二進位版本132以及第一上下文資料122傳送至第一處理器142,且將計算單元原始碼120之第二二進位版本134及/或136以及第二上下文資料124及/或126傳送至第二處理器146。舉例來說,計算單元原始碼120至異質處理器群組142/144/146之分佈的判定可至少部分地基於以下各者中之一或多者:負載資料、熱位準之判定、當前電源及/或電池電荷位準之判定、其類似者,及/或其組合。
在一些實例中,運行時間調度系統100可進一步包括調度模組140(例如,調度模組140係可自排程器模組130啟動)。舉例來說,調度模組140可與排程器模組130相關聯,且可經組配以至少部分地基於來自異質處理器群組142/144/146之負載資料而判定異質處理器群組142/144/146之第一處理器及/或第二處理器中之一者何時變得可用,其中該負載資料指示可用於個別處理器之負載。計算單元原始碼120之第一二進位版本132以及第一上下文資料122至第一處理器142的傳送及計算單元原始碼120之第二二進位版本134及/或136以及第二上下文資料124及/或126至第二處理器146的傳送可經由調度模組140回應於第一處理器142及/或第二處理器146變得可用而執行。
在操作中,運行時間調度系統100可利用排程器模組130以在運行時間而非在設計時間將計算單元及上下文調度至異質處理器群組142/144/146。舉例來說,此類操作可提供在電腦正使用AC電力之狀況下基於速度最佳化演算法而載入異質處理器群組142/144/146的可能性。相似地,在電腦正使用電池電力之狀況下,運行時間調度系統100可利用排程器模組130以基於電力最佳化演算法而載入異質處理器群組142/144/146。同樣地,在電腦為熱敏感之狀況下,運行時間調度系統100可利用排程器模組130以基於熱平衡演算法而載入異質處理器群組142/144/146。因此,運行時間調度系統100可在計算單元原始碼120至異質處理器群組142/144/146之分佈的判定期間利用此類速度最佳化演算法、電力最佳化演算法、熱平衡演算法及/或其類似者之任何組合。因此,運行時間調度系統100可允許經由作用中應用程式110、排程器模組130及異質處理器群組142/144/146間之合作在運行時間而非在設計時間於異質處理引擎間調度計算任務。
如下文將更詳細地所論述,運行時間調度系統100可用以執行下文結合圖2及/或圖3所論述之各種功能中之一些或全部。
圖2為根據本發明之至少一些實施而配置的實例運行時間調度處理序200之流程圖。在所例示實施中,處理序200可包括如由區塊202、204、206及/或208中之一或多者例示的一或多個操作、功能或動作。藉由非限制 性實例,本文將參考圖1及/或圖4之實例運行時間調度系統100來描述處理序200。
處理序200可操作為用於電腦之異質處理器群組間之運行時間調度的電腦實施方法。處理序200可始於區塊202「傳送原始碼及上下文資料」,其中可傳送原始碼及上下文資料。舉例來說,可經由排程器模組自作用中應用程式傳送計算單元原始碼以及與計算單元原始碼相關聯之第一上下文資料及第二上下文資料。在一些實例中,可組配用於個別執行之複數個計算單元可構成作用中應用程式。
如本文所使用,術語「傳送」一般地可指代涉及被動地接收資料、回應於作用中請求而接收資料或發送此類資料之通信,諸如,可涉及推送型通信、提取型通信或推送及提取型通信之通信。
處理可自操作202繼續至操作204「判定至複數個處理器之分佈」,其中可判定至複數個處理器之分佈。舉例來說,排程器模組可判定計算單元原始碼至異質處理器群組之分佈。在一些實例中,異質處理器群組可包括第一處理器及第二處理器,其中第二處理器相比於第一處理器可屬於不同類型。
處理可自操作204繼續至操作206「編譯與複數個處理器相容的原始碼之二進位版本」,其中可編譯與複數個處理器相容的原始碼之二進位版本。舉例來說,排程器模組可編譯計算單元原始碼之第一二進位版本及第二二進 位版本。在一些實例中,計算單元原始碼之第一二進位版本可與第一處理器相容,且計算單元原始碼之第二二進位版本可與第二處理器相容。
處理可自操作206繼續至操作208「將二進位版本及上下文資料傳送至複數個處理器」,其中可將二進位版本及上下文資料傳送至複數個處理器。舉例來說,排程器模組可將計算單元原始碼之第一二進位版本及第一上下文資料傳送至第一處理器,且將計算單元原始碼之第二二進位版本及可將第二上下文資料傳送至第二處理器。
在操作中,處理序200可利用對電力供應資料、熱資料及/或負載資料之智慧型及上下文感知回應。舉例來說,處理序200可能夠基於在操作204處判定之分佈而選擇性地調整運行時間調度。
可在下文關於圖3更詳細地論述之實施之一或多個實例中例示與處理序200有關之一些額外及/或替代細節。
圖3為根據本發明之至少一些實施而配置的在操作中之實例運行時間調度系統100及運行時間調度處理序300之例示性圖。在所例示實施中,處理序300可包括如由動作310、312、314、316、318、320、322、324、326、328、330、332、334、336、338、340及/或342中之一或多者例示的一或多個操作、功能或動作。藉由非限制性實例,本文將參考圖1及/或圖4之實例運行時間調度系統100來描述處理序300。
在所例示實施中,運行時間調度系統100可包括作用中應用程式110、異質處理器142/144/146、邏輯模組306、其類似者,及/或其組合。儘管如圖3所示之運行時間調度系統100可包括與特定模組相關聯之一個特定區塊或動作集合,但此等區塊或動作可與不同於此處所例示之特定模組的模組相關聯。
處理可始於操作310「傳送電力供應資料」,其中可傳送電力供應資料。舉例來說,排程器模組130可傳送與電腦相關聯之電力供應資料。
在一些實例中,電力供應資料可包括當前電源之指示及/或電池電荷位準之指示。當前電源之指示可指示當前電源為電池型電源抑或外部電源。舉例來說,可結合電力供應器(未圖示,諸如,電池或其類似者)而執行電力供應資料之擷取。電力供應資料可包括當前電源之指示及/或電池電荷位準之指示。
處理可自操作310繼續至操作312「判定電源及/或電池電荷位準」,其中可判定電源及/或電池電荷位準。舉例來說,排程器模組130可至少部分地基於電力供應資料而判定當前電源及/或電池電荷位準。
舉例來說,電力供應資料可供應當前電源之指示(例如,電力供應資料可指示當前電源為電池型電源抑或外部電源)。另外,電力供應資料可供應電池電荷位準之指示。
處理可自操作312繼續至操作314「傳送熱資料」,其中可傳送與電腦相關聯之熱資料。舉例來說,排程 器模組130可傳送與電腦相關聯之熱資料。
處理可自操作314繼續至操作316「判定熱位準」,其中可判定熱位準。舉例來說,排程器模組130可至少部分地基於熱資料而判定熱位準。
處理可自操作316繼續至操作318「傳送負載資料」,其中可傳送負載資料。舉例來說,排程器模組130可自異質處理器群組142/144/146傳送負載資料,其中該負載資料可指示可用於異質處理器群組142/144/146之個別處理器之負載。
雖然處理序300被例示為始於操作310、312、314、316及318,但可在操作330之前的任何點處發生操作310、312、314、316及/或318中之一些或全部,此在下文將予以更詳細地論述。
處理可自操作318繼續至操作320「載入來源」,其中可載入來源。舉例來說,可經由作用中應用程式110載入計算單元原始碼。在一些實例中,計算單元原始碼可包括選自構成作用中應用程式之複數個計算單元之個別計算單元。
處理可自操作320繼續至操作322「產生執行緒上下文陣列」,其中可產生執行緒上下文陣列。舉例來說,作用中應用程式100可至少部分地基於計算單元原始碼而產生執行緒上下文陣列,其中該執行緒上下文陣列可包括第一上下文及第二上下文。
處理可自操作322繼續至操作324「請求排程」, 其中可起始排程請求。舉例來說,作用中應用程式110可將排程請求起始至排程器模組130。雖然處理序300被例示為始於操作310、312、314、316及318,但可在操作324之前或之後的任何點處及在操作330之前的任何點處發生操作310、312、314、316及/或318中之一些或全部。
在一些實例中,排程請求可包括計算單元原始碼以及與計算單元原始碼相關聯之第一上下文資料及第二上下文資料。舉例來說,此類排程請求可包括及/或觸發原始碼及上下文資料之傳送。在此類實例中,可將計算單元原始碼以及與計算單元原始碼相關聯之第一上下文資料及第二上下文資料自作用中應用程式傳送至排程器模組130。在一些實例中,可組配用於個別執行之複數個計算單元可構成作用中應用程式。
處理可自操作324繼續至操作326「等待直至排程器完成執行為止」,其中作用中應用程式110可等待直至排程器模組130完成執行為止。舉例來說,作用中應用程式110可等待直至排程器模組130完成促進執行(如下文關於操作342將更詳細地所描述)以繼續操作為止。
雖然處理序300被例示為自操作324繼續進行至操作328,但可在操作328之前或之後的任何點處及在操作330之前的任何點處發生操作310、312、314、316及/或318,此在下文將予以更詳細地論述。
處理可自操作318及/或324繼續至操作328「偵測可用處理器」,其中可偵測可用處理器。舉例來說,排程 器模組130可至少部分地基於負載資料而偵測異質處理器群組142/144/146之個別處理器。雖然處理序300被例示為始於操作310、312、314、316及318,但可在操作328之前或之後的任何點處及在操作330之前的任何點處發生操作310、312、314、316及/或318中之一些或全部。
處理可自操作328繼續至操作330「判定分佈」,其中可判定至複數個處理器之分佈。舉例來說,排程器模組130可判定計算單元原始碼至異質處理器群組之分佈。在一些實例中,異質處理器群組142/144/146可包括第一處理器及第二處理器,其中第二處理器相比於第一處理器可屬於不同類型。
在操作中,計算單元原始碼至異質處理器群組142/144/146之分佈的此類判定可至少部分地基於負載資料、熱位準之判定、當前電源及/或電池電荷位準之判定、其類似者,及/或其組合。因此,運行時間調度系統100可能夠回應於負載資料、熱位準、當前電源及/或電池電荷位準或其類似者而將運行時間調度選擇性地調整至基本運行時間調度。
處理可自操作330繼續至操作332「編譯二進位」,其中可編譯與複數個處理器相容的原始碼之二進位版本。舉例來說,排程器模組130可編譯計算單元原始碼之第一二進位版本及第二二進位版本。在一些實例中,計算單元原始碼之第一二進位版本可與第一處理器相容,且計算單元原始碼之第二二進位版本可與第二處理器相容。
處理可自操作332繼續至操作334「啟動調度」,其中可啟動調度模組140。舉例來說,調度模組140可經由排程器模組130而啟動。在一些實例中,調度模組130之啟動可由排程器模組130完成二進位編譯而觸發。
處理可自操作334繼續至操作336「判定合適處理器可用」,其中可進行關於合適處理器之可用性的判定。舉例來說,調度模組140可至少部分地基於來自異質處理器群組142/144/146之負載資料而判定第一處理器及/或第二處理器中之一者何時變得可用,其中該負載資料可指示可用於個別處理器之負載。
處理可自操作336繼續至操作338「獲得二進位」,其中可獲取二進位版本。舉例來說,計算單元原始碼之第一二進位版本及第一上下文資料至第一處理器的傳送以及計算單元原始碼之第二二進位版本及第二上下文資料至第二處理器的傳送可經由調度模組140回應於第一處理器及/或第二處理器變得可用而執行。
處理可自操作338繼續至操作340「傳送二進位及上下文」,其中可將二進位版本及上下文資料傳送至複數個處理器142/144/146。舉例來說,調度模組140(其可與排程器模組130相關聯)可將計算單元原始碼之第一二進位版本及第一上下文資料傳送至第一處理器,且將計算單元原始碼之第二二進位版本及可將第二上下文資料傳送至第二處理器。
處理可自操作340繼續至操作342「執行」,其 中可執行二進位版本。舉例來說,可與第一上下文資料一致地經由第一處理器執行計算單元原始碼之第一二進位版本,且可與第二上下文資料一致地經由第二處理器執行計算單元原始碼之第二二進位版本。
在操作中,處理序300可利用對電力供應資料、熱資料及/或負載資料之智慧型及上下文感知回應。舉例來說,處理序300可能夠基於在操作330處判定之分佈而選擇性地調整運行時間調度。舉例來說,如上文所論述,計算任務可先前已經指定以分隔(例如,在設計時間由應用程式開發者)成作用中應用程式110中之小計算單元。此等計算單元可在設計時間編譯至或由排程器模組130剛好及時編譯至平台相依二進位。作用中應用程式110可藉由呼叫排程器模組130之應用程式設計介面(API)將此等計算單元及相關上下文傳遞至排程器模組130。
在一些實例中,排程器模組130可基於一或多個調度演算法而將計算單元及相關上下文調度至異質處理器群組142/144/146。此類調度演算法可為用以優先化速度、電力消耗、熱平衡、其類似者或當前未利用或具有較低負載之僅簡單填滿處理器(filling processor)的單一演算法或不同演算法之組合。排程器模組130與異質處理器群組142/144/146之間的通信可為推送型、提取型或推送及提取型通信。
在一些實例中,排程器模組130可具有用以執行調度活動的被稱作調度模組140之獨立式執行緒或處理 序。排程器模組130可誘發由調度模組140與剛好及時(JIT)編譯造成之一些系統額外負荷。可經由使用JIT二進位快取及/或其他JIT最佳化方法來最小化此類JIT編譯額外負荷。調度模組140之額外負荷可相對小,其與來自作業系統之處理序切換額外負荷相當。調度模組140可在整合作業系統(OS)內核時最佳化。此類額外負荷可藉由經由處理序300之其他部分獲得之效能而補償。
雖然如圖2及圖3所例示的實例處理序200及300之實施可包括採取以所例示次序而展示之所有區塊,但本發明在此方面不受到限制,且在各種實例中,處理序200及300之實施可包括僅採取所展示及/或呈不同於所例示次序之次序的區塊之子集。
另外,可回應於由一或多個電腦程式產品提供之指令而採取圖2及圖3之區塊中之任何一或多者。此類程式產品可包括提供指令之信號承載媒體,該等指令在由(例如)處理器執行時可提供本文所描述之功能性。可以任何形式之電腦可讀媒體來提供電腦程式產品。因此,舉例來說,包括一或多個處理器核心之處理器可回應於由電腦可讀媒體輸送至處理器之指令而採取圖2及圖3所示之區塊中之一或多者。
如本文所描述之任何實施所使用,術語「模組」指代經組配以提供本文所描述之功能性的軟體、韌體及/或硬體之任何組合。軟體可被體現為軟體套件、程式碼及/或指令集或指令,且如本文所描述之任何實施所使用,「硬體」 可單獨地或以任何組合包括(例如)固線式電路、可程式化電路、狀態機電路,及/或儲存由可程式化電路執行之指令之韌體。該等模組可共同地或個別地被體現為形成較大系統(例如,積體電路(IC)、系統單晶片(SoC)等等)之部分的電路。
圖4為根據本發明之至少一些實施而配置的實例運行時間調度系統100之例示性圖。在所例示實施中,運行時間調度系統100可包括邏輯模組306、一或多個處理器(例如,異質處理器群組142/144/146之),及/或一或多個記憶體儲存器408。邏輯模組306可包括排程器模組130、調度模組140(例如,調度模組140可包含排程器模組130之部分或可與排程器模組130分離)、其類似者,及/或其組合。如所例示,異質處理器群組142/144/146及/或記憶體儲存器408可能夠彼此通信及/或與邏輯模組306之部分通信。儘管如圖4所示之運行時間調度系統100可包括與特定模組相關聯之一個特定區塊或動作集合,但此等區塊或動作可與不同於此處所例示之特定模組的模組相關聯。
在一些實例中,一或多個記憶體儲存器408可通信地耦接至異質處理器群組142/144/146。邏輯模組306可通信地耦接至異質處理器群組142/144/146及/或記憶體儲存器408。
在一些實例中,排程器模組130可通信地耦接至異質處理器群組142/144/146及一或多個記憶體儲存器408。排程器模組130可經組配以自作用中應用程式傳送計 算單元原始碼以及與計算單元原始碼相關聯之第一上下文資料及第二上下文資料。舉例來說,可組配用於個別執行之複數個計算單元可包括作用中應用程式。排程器模組130可經組配以判定計算單元原始碼至異質處理器群組142/144/146之分佈。舉例來說,異質處理器群組142/144/146可包括第一處理器及第二處理器,其中第二處理器相比於第一處理器屬於不同類型。
在一些實例中,排程器模組130可經組配以編譯計算單元原始碼之第一二進位版本及第二二進位版本。舉例來說,計算單元原始碼之第一二進位版本可與第一處理器相容,且計算單元原始碼之第二二進位版本可與第二處理器相容。
在一些實例中,排程器模組130可經組配以將計算單元原始碼之第一二進位版本及第一上下文資料傳送至第一處理器,且將計算單元原始碼之第二二進位版本及第二上下文資料傳送至第二處理器。
在一些實例中,作用中應用程式可經組配以載入計算單元原始碼,其中該計算單元原始碼包括選自構成作用中應用程式之複數個計算單元之個別計算單元。作用中應用程式可經組配以至少部分地基於計算單元原始碼而產生執行緒上下文陣列,其中該執行緒上下文陣列可包括第一上下文及第二上下文。作用中應用程式可經組配以將排程請求起始至排程器模組130,其中該排程請求可包括計算單元原始碼以及與計算單元原始碼相關聯之第一上下文資 料及第二上下文資料。
在一些實例中,排程器模組130可經組配以傳送與電腦相關聯之熱資料。舉例來說,排程器模組130可經組配以至少部分地基於熱資料而判定熱位準。
或者或另外,排程器模組130可經組配以傳送與電腦相關聯之電力供應資料。舉例來說,排程器模組130可經組配以至少部分地基於電力供應資料而判定當前電源及/或電池電荷位準。
或者或另外,排程器模組130可經組配以自異質處理器群組142/144/146傳送負載資料,其中該負載資料指示可用於個別處理器之負載。排程器模組130可經組配以至少部分地基於負載資料而偵測異質處理器群組142/144/146之個別處理器。
在一些實例中,計算單元原始碼至異質處理器群組142/144/146之分佈的判定可至少部分地基於以下各者中之一或多者:負載資料、熱位準之判定、當前電源及/或電池電荷位準之判定、其類似者,及/或其組合。
在一些實例中,運行時間調度系統100可進一步包括調度模組140(例如,調度模組140係可自排程器模組130啟動)。舉例來說,調度模組140可與排程器模組130相關聯,且可經組配以至少部分地基於來自異質處理器群組142/144/146之負載資料而判定第一處理器及/或第二處理器中之一者何時變得可用,其中該負載資料指示可用於個別處理器之負載。計算單元原始碼之第一二進位版本及 第一上下文資料至第一處理器的傳送以及計算單元原始碼之第二二進位版本及第二上下文資料至第二處理器的傳送可經由調度模組140回應於第一處理器及/或第二處理器變得可用而執行。
在各種實施例中,排程器模組130可以硬體進行實施,而軟體可實施調度模組140。舉例來說,在一些實施例中,排程器模組130可由ASIC邏輯實施,而調度模組140可由諸如處理器142/144/146之邏輯所執行之軟體指令提供。然而,本發明在此方面不受到限制,且排程器模組130及/或調度模組140可由硬體、韌體及/或軟體之任何組合實施。另外,記憶體儲存器408可為任何類型之記憶體,諸如,揮發性記憶體(例如,靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)等等),或非揮發性記憶體(例如,快閃記憶體等等),等等。在一非限制性實例中,記憶體儲存器408可由快取記憶體實施。
圖5例示根據本發明之實例系統500。在各種實施中,系統500可為媒體系統,但系統500並不限於此內容背景。舉例來說,系統500可併入至個人電腦(PC)、膝上型電腦、超膝上型電腦、平板電腦、觸控板、攜帶型電腦、手持型電腦、掌上型電腦、個人數位助理(PDA)、蜂巢式電話、組合蜂巢式電話/PDA、電視、智慧型器件(例如,智慧型手機、智慧型平板電腦或智慧型電視)、行動網際網路器件(MID)、傳訊器件、資料通信器件等等中。
在各種實施中,系統500包括耦接至顯示器520 之平台502。平台502可自諸如內容服務器件530或內容遞送器件540或其他相似內容來源之內容器件接收內容。包括一或多個導覽特徵之導覽控制器550可用以與(例如)平台502及/或顯示器520互動。下文更詳細地描述此等組件中之各者。
在各種實施中,平台502可包括以下各者之任何組合:晶片組505、處理器510、記憶體512、儲存體514、圖形子系統515、應用程式516及/或無線電518。晶片組505可在處理器510、記憶體512、儲存體514、圖形子系統515、應用程式516及/或無線電518間提供內部通信。舉例來說,晶片組505可包括能夠提供與儲存體514之內部通信的儲存體配接器(未描繪)。
處理器510可被實施為複雜指令集電腦(Complex Instruction Set Computer,CISC)或精簡指令集電腦(Reduced Instruction Set Computer,RISC)處理器、x86指令集相容處理器、多核心或任何其他微處理器,或中央處理單元(CPU)。在各種實施中,處理器510可為雙核心處理器、雙核心行動處理器等等。
記憶體512可被實施為揮發性記憶體器件,諸如但不限於,隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)或靜態RAM(SRAM)。
儲存體514可被實施為非揮發性儲存器件,諸如但不限於,磁碟機、光碟機、磁帶機、內部儲存器件、附接儲存器件、快閃記憶體、電池備用SDRAM(同步DRAM) 及/或網路可存取儲存器件。在各種實施中,舉例來說,儲存體514可包括用以在包括多個硬碟時增加針對有價值數位媒體之儲存效能增強型保護的技術。
圖形子系統515可執行諸如靜態影像或視訊影像之影像的處理以供顯示。舉例來說,圖形子系統515可為圖形處理單元(GPU)或視覺處理單元(VPU)。類比或數位介面可用來通信地耦接圖形子系統515及顯示器520。舉例來說,該介面可為高清晰度多媒體介面、DisplayPort、無線HDMI及/或符合無線HD技術中任一者。圖形子系統515可整合至處理器510或晶片組505中。在一些實施中,圖形子系統515可為通信地耦接至晶片組505之獨立式卡。
本文所描述之圖形及/或視訊處理技術可以各種硬體架構進行實施。舉例來說,圖形及/或視訊功能性可整合於晶片組內。或者,可使用離散圖形及/或視訊處理器。作為又一實施,圖形及/或視訊功能可由包括多核心處理器之一般通途處理器提供。在其他實施例中,該等功能可實施於消費型電子件器件中。
無線電518可包括能夠使用各種合適無線通信技術來傳輸及接收信號之一或多種無線電。此類技術可涉及橫越一或多個無線網路之通信。實例無線網路包括(但不限於)無線區域網路(WLAN)、無線個人區域網路(WPAN)、無線都會網路(WMAN)、蜂巢式網路及衛星網路。在橫越此類網路之通信中,無線電518可根據呈任何版本之一或多個適用標準而操作。
在各種實施中,顯示器520可包括任何電視型監視器或顯示器。舉例來說,顯示器520可包括電腦顯示螢幕、觸控螢幕顯示器、視訊監視器、類電視器件,及/或電視。顯示器520可為數位及/或類比顯示器。在各種實施中,顯示器520可為全像顯示器。又,顯示器520可為可接收視像投射(visual projection)之透明表面。此類投射可輸送各種形式之資訊、影像及/或物件。舉例來說,此類投射可為針對行動擴增實境(mobile augmented reality,MAR)應用程式之視覺重疊。在一或多個軟體應用程式516之控制下,平台502可將使用者介面522顯示於顯示器520上。
在各種實施中,舉例來說,內容服務器件530可由任何國家、國際及/或獨立服務主控,且因此可由平台502經由網際網路而存取。內容服務器件530可耦接至平台502及/或耦接至顯示器520。平台502及/或內容服務器件530可耦接至網路560以向及自網路560傳達(例如,發送及/或接收)媒體資訊。內容遞送器件540亦可耦接至平台502及/或耦接至顯示器520。
在各種實施中,內容服務器件530可包括有線電視機上盒、個人電腦、網路、電話、能夠遞送數位資訊及/或內容之網際網路允用器件或器具,及能夠經由網路560或直接地在內容提供者與平台502及/或顯示器520之間單向地或雙向地傳達內容之任何其他相似器件。應瞭解,可經由網路560向及自系統500中之組件中任一者以及內容提供者單向地及/或雙向地傳達內容。內容之實例可包括任 何媒體資訊,包括(例如)視訊、音樂、醫學及遊戲資訊等等。
內容服務器件530可接收諸如有線電視節目之內容,包括媒體資訊、數位資訊及/或其他內容。內容提供者之實例可包括任何有線電視或衛星電視或無線電或網際網路內容提供者。所提供實例並不意謂以任何方式限制根據本發明之實施。
在各種實施中,平台502可自具有一或多個導覽特徵之導覽控制器550接收控制信號。舉例來說,控制器550之導覽特徵可用以與使用者介面522互動。在若干實施例中,導覽控制器550可為指標器件,該指標器件可為允許使用者將空間(例如,連續及多維)資料輸入至電腦中之電腦硬體組件(具體而言,人性化介面器件)。諸如圖形使用者介面(GUI)以及電視及監視器之許多系統允許使用者使用實體示意動作來控制電腦或電視且將資料提供至電腦或電視。
可在顯示器(例如,顯示器520)上藉由移動顯示於該顯示器上之指標、游標、聚焦環或其他視覺指示器而複製控制器550之導覽特徵之移動。舉例來說,在軟體應用程式516之控制下,可(例如)將位於導覽控制器550上之導覽特徵映射至顯示於使用者介面522上之虛擬導覽特徵。在若干實施例中,控制器550可並非分離組件,而可整合至平台502及/或顯示器520中。然而,本發明並不限於該等元件或在本文所示或描述之內容背景中不受到限制。
在各種實施中,舉例來說,驅動程式(未圖示)可包括用以在經啟用時使使用者能夠在初始開機之後藉由觸碰按鈕而立即接通及關斷比如電視之平台502的技術。程式邏輯可允許平台502將內容串流至媒體轉接器或其他內容服務器件530或內容遞送器件540,即使當該平台「關斷」時亦如此。另外,舉例來說,晶片組505可包括針對5.1環繞聲音訊及/或高清晰度7.1環繞聲音訊之硬體及/或軟體支援。驅動程式可包括用於整合式圖形平台之圖形驅動程式。在若干實施例中,圖形驅動程式可包含快速周邊組件互連(PCI)圖形卡。
在各種實施中,可整合系統500所示之組件中之任何一或多者。舉例來說,可整合平台502及內容服務器件530,或可整合平台502及內容遞送器件540,或舉例來說,可整合平台502、內容服務器件530及內容遞送器件540。在各種實施例中,平台502及顯示器520可為整合式單元。舉例來說,可整合顯示器520及內容服務器件530,或可整合顯示器520及內容遞送器件540。此等實例並不意謂限制本發明。
在各種實施例中,系統500可被實施為無線系統、有線系統,或此兩者之組合。當被實施為無線系統時,系統500可包括適於經由無線共用媒體而通信之組件及介面,諸如,一或多個天線、傳輸器、接收器、收發器、放大器、濾波器、控制邏輯等等。無線共用媒體之實例可包括無線頻譜之部分,諸如,RF頻譜等等。當被實施為有線 系統時,系統500可包括適於經由有線通信媒體而通信之組件及介面,諸如,輸入/輸出(I/O)配接器、用以連接I/O配接器與對應有線通信媒體之實體連接器、網路介面卡(NIC)、光碟控制器、視訊控制器、音訊控制器,及其類似者。有線通信媒體之實例可包括電線、纜線、金屬引線、印刷電路板(PCB)、後擋板、交換網狀架構、半導體材料、雙絞線、同軸纜線、光纖等等。
平台502可建立一或多個邏輯或實體頻道以傳達資訊。該資訊可包括媒體資訊及控制資訊。媒體資訊可指代表示意欲用於使用者之內容的任何資料。舉例來說,內容之實例可包括來自語音交談之資料、視訊會議、串流視訊、電子郵件訊息、語音郵件訊息、文數字符號、圖形、影像、視訊、文字等等。舉例來說,來自語音交談之資料可為話音資訊、無回應週期、背景雜訊、人為背景雜訊、音調等等。控制資訊可指代表示意欲用於自動化系統之命令、指令或控制字的任何資料。舉例來說,控制資訊可用以經由系統而路由媒體資訊,或指示節點以預定方式來處理媒體資訊。然而,該等實施例並不限於該等元件或在圖5所示或描述之內容背景中不受到限制。
如上文所描述,系統500可以變化之實體樣式或外觀尺寸進行體現。圖6例示可體現系統500之小型外觀尺寸器件600之實施。在若干實施例中,舉例來說,器件600可被實施為具有無線能力之行動計算器件。舉例來說,行動計算器件可指代具有處理系統及行動電源或電力供應 器(諸如,一或多個電池)之任何器件。
如上文所描述,行動計算器件之實例可包括個人電腦(PC)、膝上型電腦、超膝上型電腦、平板電腦、觸控板、攜帶型電腦、手持型電腦、掌上型電腦、個人數位助理(PDA)、蜂巢式電話、組合蜂巢式電話/PDA、電視、智慧型器件(例如,智慧型手機、智慧型平板電腦或智慧型電視)、行動網際網路器件(MID)、傳訊器件、資料通信器件等等。
行動計算器件之實例亦可包括經配置以供人佩戴之電腦,諸如,腕電腦、手指電腦、戒指電腦、眼鏡電腦、皮帶夾電腦、臂章電腦、鞋電腦、衣服電腦,及其他可佩戴電腦。在各種實施例中,舉例來說,行動計算器件可被實施為能夠執行電腦應用程式以及語音通信及/或資料通信之智慧型手機。儘管可用藉由實例而實施為智慧型手機之行動計算器件來描述一些實施例,但可瞭解,亦可使用其他無線行動計算器件來實施其他實施例。該等實施例在此內容背景中不受到限制。
如圖6所示,器件600可包括外殼602、顯示器604、輸入/輸出(I/O)器件606及天線608。器件600亦可包括導覽特徵612。顯示器604可包括用於顯示適於行動計算器件之資訊之任何合適顯示單元。I/O器件606可包括用於將資訊輸入至行動計算器件中之任何合適I/O器件。用於I/O器件606之實例可包括文數字鍵盤、數字小鍵盤、觸控板、輸入按鍵、按鈕、開關、搖臂開關、麥克風、揚聲器、 語音辨識器件及軟體等等。亦可藉由麥克風(未圖示)將資訊輸入至器件600中。此類資訊可由語音辨識器件(未圖示)數位化。該等實施例在此內容背景中不受到限制。
可使用硬體元件、軟體元件或此兩者之組合來實施各種實施例。硬體元件之實例可包括處理器、微處理器、電路、電路元件(例如,電晶體、電阻器、電容器、電感器等等)、積體電路、特殊應用積體電路(ASIC)、可程式化邏輯器件(PLD)、數位信號處理器(DSP)、場可程式化閘陣列(FPGA)、邏輯閘、暫存器、半導體器件、晶片、微晶片、晶片組等等。軟體之實例可包括軟體組件、程式、應用程式、電腦程式、系統程式、機器程式、作業系統軟體、中介軟體、韌體、軟體模組、常式、次常式、函式、方法、程序、軟體介面、應用程式介面(API)、指令集、計算程式碼、電腦程式碼、程式碼片段、電腦程式碼片段、字、值、符號或其任何組合。判定一實施例是否使用硬體元件及/或軟體元件進行實施可根據任何數目個因素而變化,諸如,所要計算速率、剩餘電量、耐熱性、處理循環預算、輸入資料速率、輸出資料速率、記憶體資源、資料匯流排速度,及其他設計或效能約束。
至少一實施例之一或多個態樣可由儲存於表示處理器內之各種邏輯之機器可讀媒體上的代表性指令實施,該等代表性指令在由機器讀取時使機器製作用以執行本文所描述之技術的邏輯。被稱作「IP核心」之此類表示可儲存於有形機器可讀媒體上且供應至各種消費者或製造 設施以載入至實際地製成該邏輯或處理器之製作機器中。
雖然已參考各種實施而描述本文所闡述之某些特徵,但此描述並不意欲被認作限制性意義。因此,本文所描述之實施之各種修改以及對於熟習本發明所屬技術者顯而易見之其他實施應被視為在本發明之精神及範疇內。
以下實例係關於另外實施例。
在一實例中,一種用於一電腦之一異質處理器群組間之運行時間調度的電腦實施方法可包括:經由一排程器模組自一作用中應用程式傳送一計算單元原始碼以及與該計算單元原始碼相關聯之第一上下文資料及第二上下文資料。可組配用於個別執行之複數個計算單元可構成該作用中應用程式。該排程器模組可判定該計算單元原始碼至該異質處理器群組之一分佈。該異質處理器群組可包括一第一處理器及一第二處理器,其中該第二處理器相比於該第一處理器可屬於一不同類型。該排程器模組可編譯該計算單元原始碼之一第一二進位版本及一第二二進位版本,其中該計算單元原始碼之該第一二進位版本可與該第一處理器相容,且該計算單元原始碼之該第二二進位版本可與該第二處理器相容。該排程器模組可將該計算單元原始碼之該第一二進位版本及該第一上下文資料傳送至該第一處理器,且將該計算單元原始碼之該第二二進位版本及該第二上下文資料傳送至該第二處理器。
在一些實例中,該方法可包括:經由該作用中應用程式載入該計算單元原始碼,其中該計算單元原始碼包 括選自構成該作用中應用程式之複數個計算單元之一個別計算單元。該作用中應用程式可至少部分地基於該計算單元原始碼而產生一執行緒上下文陣列,其中該執行緒上下文陣列包括該第一上下文及該第二上下文。該作用中應用程式可將一排程請求起始至該排程器模組,其中該排程請求包括該計算單元原始碼以及與該計算單元原始碼相關聯之該第一上下文資料及該第二上下文資料。該排程器模組可傳送與該電腦相關聯之熱資料。該排程器模組可至少部分地基於該熱資料而判定一熱位準。該排程器模組可傳送與該電腦相關聯之電力供應資料。該排程器模組可至少部分地基於該電力供應資料而判定一當前電源及/或一電池電荷位準。該排程器模組可自該異質處理器群組傳送負載資料,其中該負載資料指示可用於個別處理器之負載。該排程器模組可至少部分地基於該負載資料而偵測該異質處理器群組之個別處理器。該計算單元原始碼至該異質處理器群組之該分佈的該判定可至少部分地基於該負載資料、該熱位準之該判定及該當前電源及/或一電池電荷位準之該判定、其類似者,及/或其組合。該計算單元原始碼之該第一二進位版本及該第一上下文資料至該第一處理器的該傳送以及該計算單元原始碼之該第二二進位版本及該第二上下文資料至該第二處理器的該傳送可包括經由該排程器模組啟動與該排程器模組相關聯之一調度模組。該調度模組可至少部分地基於來自該異質處理器群組之負載資料而判定該第一處理器及/或該第二處理器中之一者何時變得 可用,其中該負載資料指示可用於個別處理器之負載。該計算單元原始碼之該第一二進位版本及該第一上下文資料至該第一處理器之該傳送以及該計算單元原始碼的該第二二進位版本及該第二上下文資料至該第二處理器的該傳送可經由該調度模組回應於該第一處理器及/或該第二處理器變得可用而執行。
在其他實例中,一種用於針對一電腦之運行時間調度之系統可包括:一異質處理器群組、一或多個記憶體儲存器、一排程器模組、其類似者,及/或其組合。該一或多個記憶體儲存器可通信地耦接至該異質處理器群組。該排程器模組可通信地耦接至該異質處理器群組及該一或多個記憶體儲存器,且經組配以自一作用中應用程式傳送一計算單元原始碼以及與該計算單元原始碼相關聯之第一上下文資料及第二上下文資料,其中可組配用於個別執行之複數個計算單元包括該作用中應用程式。該排程器模組可經組配以判定該計算單元原始碼至包括一第一處理器及一第二處理器之該異質處理器群組之一分佈,其中該第二處理器相比於該第一處理器屬於一不同類型。該排程器模組可經組配以編譯該計算單元原始碼之一第一二進位版本及一第二二進位版本,其中該計算單元原始碼之該第一二進位版本係與該第一處理器相容,且該計算單元原始碼之該第二二進位版本係與該第二處理器相容。該排程器模組可經組配以將該計算單元原始碼之該第一二進位版本及該第一上下文資料傳送至該第一處理器,且將該計算單元原始 碼之該第二二進位版本及該第二上下文資料傳送至該第二處理器。
在一些實例中,該作用中應用程式可經組配以載入該計算單元原始碼,其中該計算單元原始碼包括選自構成該作用中應用程式之複數個計算單元之一個別計算單元。該作用中應用程式可經組配以至少部分地基於該計算單元原始碼而產生一執行緒上下文陣列,其中該執行緒上下文陣列包括該第一上下文及該第二上下文。該作用中應用程式可經組配以將一排程請求起始至該排程器模組,其中該排程請求包括該計算單元原始碼以及與該計算單元原始碼相關聯之該第一上下文資料及該第二上下文資料。該排程器模組可經組配以傳送與該電腦相關聯之熱資料。該排程器模組可經組配以至少部分地基於該熱資料而判定一熱位準。該排程器模組可經組配以傳送與該電腦相關聯之電力供應資料。該排程器模組可經組配以至少部分地基於該電力供應資料而判定一當前電源及/或一電池電荷位準。該排程器模組可經組配以自該異質處理器群組傳送負載資料,其中該負載資料指示可用於個別處理器之負載。該排程器模組可經組配以至少部分地基於該負載資料而偵測該異質處理器群組之個別處理器。該計算單元原始碼至該異質處理器群組之該分佈的該判定係至少部分地基於以下各者中之一或多者:該負載資料、該熱位準之該判定,及該當前電源及/或一電池電荷位準之該判定。該系統可進一步包括可自該排程器模組啟動之一調度模組。該調度模 組可與該排程器模組相關聯,且可經組配以至少部分地基於來自該異質處理器群組之負載資料而判定該第一處理器及/或該第二處理器中之一者何時變得可用,其中該負載資料指示可用於個別處理器之負載。該計算單元原始碼之該第一二進位版本及該第一上下文資料至該第一處理器的該傳送以及該計算單元原始碼之該第二二進位版本及該第二上下文資料至該第二處理器的該傳送係經由該調度模組回應於該第一處理器及/或該第二處理器變得可用而執行。
在一另外實例中,一種至少一機器可讀媒體可包括複數個指令,該複數個指令回應於在一計算器件上執行而使該計算器件執行根據以上實例中任一者之方法。
在又一實例中,一種裝置可包括用於執行根據以上實例中任一者之方法的構件。
以上實例可包括特定特徵組合。然而,此類以上實例在此方面不受到限制,且在各種實施中,以上實例可包括僅採取此類特徵之子集、採取此類特徵之不同次序、採取此類特徵之不同組合,及/或採取不同於明確地列出之彼等特徵的額外特徵。舉例來說,關於實例方法所描述之所有特徵可關於實例裝置、實例系統及/或實例物品進行實施,且關於實例裝置、實例系統及/或實例物品所描述之所有特徵可關於實例方法進行實施。
100‧‧‧運行時間調度系統
110‧‧‧作用中應用程式
112‧‧‧單元A
114‧‧‧單元B
116‧‧‧單元C
120‧‧‧計算單元原始碼
122‧‧‧上下文B1
124‧‧‧上下文B2
126‧‧‧上下文B3
130‧‧‧排程器模組
132‧‧‧二進位B1
134‧‧‧二進位B2
136‧‧‧二進位B3
140‧‧‧調度模組
142‧‧‧中央處理單元(CPU)
144、146‧‧‧圖形處理單元(GPU)

Claims (20)

  1. 一種用於在一電腦之一異質處理器群組間之運行時間調度的電腦實施方法,其包含以下步驟:經由一排程器模組自一作用中應用程式傳送一計算單元原始碼以及與該計算單元原始碼相關聯之第一上下文資料及第二上下文資料,其中可組配用於個別執行之複數個計算單元包含該作用中應用程式;經由該排程器模組判定該計算單元原始碼至包括一第一處理器及一第二處理器之該異質處理器群組之一分佈,其中該第二處理器相比於該第一處理器係為一不同類型;經由該排程器模組編譯該計算單元原始碼之一第一二進位版本及一第二二進位版本,其中該計算單元原始碼之該第一二進位版本係與該第一處理器相容,且該計算單元原始碼之該第二二進位版本係與該第二處理器相容;以及經由該排程器模組將該計算單元原始碼之該第一二進位版本及該第一上下文資料傳送至該第一處理器,且將該計算單元原始碼之該第二二進位版本及該第二上下文資料傳送至該第二處理器。
  2. 如請求項第1項之方法,其進一步包含以下步驟:經由該排程器模組自該異質處理器群組傳送負載資料,其中該負載資料指示可用於個別處理器之負載; 以及經由該排程器模組至少部分地基於該負載資料而偵測該異質處理器群組之個別處理器。
  3. 如請求項第1項之方法,其進一步包含以下步驟:經由該排程器模組自該異質處理器群組傳送負載資料,其中該負載資料指示可用於個別處理器之負載;且其中該計算單元原始碼至該異質處理器群組之該分佈的該判定,係至少部分地基於該負載資料。
  4. 如請求項第1項之方法,其進一步包含以下步驟:經由該排程器模組傳送與該電腦相關聯之熱資料;經由該排程器模組至少部分地基於該熱資料而判定一熱位準;且其中該計算單元原始碼至該異質處理器群組之該分佈的該判定,係至少部分地基於該熱位準之該判定。
  5. 如請求項第1項之方法,其進一步包含以下步驟:經由該排程器模組傳送與該電腦相關聯之電力供應資料;經由該排程器模組至少部分地基於該電力供應資料而判定一當前電源及/或一電池電荷位準;且其中該計算單元原始碼至該異質處理器群組之該分佈的該判定,係至少部分地基於該當前電源及/或一電池電荷位準之該判定。
  6. 如請求項第1項之方法,其中該計算單元原始碼之該第 一二進位版本及該第一上下文資料至該第一處理器的該傳送,以及該計算單元原始碼之該第二二進位版本及該第二上下文資料至該第二處理器的該傳送包含:經由該排程器模組啟動與該排程器模組相關聯之一調度模組;以及經由該調度模組至少部分地基於來自該異質處理器群組之負載資料,而判定該第一處理器及/或該第二處理器中之一者何時變得可用,其中該負載資料指示可用於個別處理器之負載,其中該計算單元原始碼之該第一二進位版本及該第一上下文資料至該第一處理器的該傳送,以及該計算單元原始碼之該第二二進位版本及該第二上下文資料至該第二處理器的該傳送,係經由該調度模組回應於該第一處理器及/或該第二處理器變得可用而執行。
  7. 如請求項第1項之方法,其進一步包含以下步驟:經由該作用中應用程式載入該計算單元原始碼,其中該計算單元原始碼包含選自組成該作用中應用程式之複數個計算單元之一個別計算單元;經由該作用中應用程式至少部分地基於該計算單元原始碼而產生一執行緒上下文陣列,其中該執行緒上下文陣列包含該第一上下文及該第二上下文;以及經由該作用中應用程式將一排程請求起始至該排程器模組,其中該排程請求包括該計算單元原始碼以及與該計算單元原始碼相關聯之該第一上下文資料及該 第二上下文資料。
  8. 如請求項第1項之方法,其進一步包含以下步驟:經由該排程器模組傳送與該電腦相關聯之熱資料;經由該排程器模組至少部分地基於該熱資料而判定一熱位準;經由該排程器模組傳送與該電腦相關聯之電力供應資料;經由該排程器模組至少部分地基於該電力供應資料而判定一當前電源及/或一電池電荷位準;經由該排程器模組自該異質處理器群組傳送負載資料,其中該負載資料指示可用於個別處理器之負載;以及經由該排程器模組至少部分地基於該負載資料而偵測該異質處理器群組之個別處理器;其中該計算單元原始碼至該異質處理器群組之該分佈的該判定,係至少部分地基於以下各者中之一或多者:該負載資料、該熱位準之該判定,及該當前電源及/或一電池電荷位準之該判定。
  9. 如請求項第1項之方法,其進一步包含以下步驟:經由該作用中應用程式載入該計算單元原始碼,其中該計算單元原始碼包含選自包含有該作用中應用程式之複數個計算單元之一個別計算單元;經由該作用中應用程式至少部分地基於該計算單元原始碼而產生一執行緒上下文陣列,其中該執行緒上 下文陣列包含該第一上下文及該第二上下文;經由該作用中應用程式將一排程請求起始至該排程器模組,其中該排程請求包括該計算單元原始碼以及與該計算單元原始碼相關聯之該第一上下文資料及該第二上下文資料。經由該排程器模組傳送與該電腦相關聯之熱資料;經由該排程器模組至少部分地基於該熱資料而判定一熱位準;經由該排程器模組傳送與該電腦相關聯之電力供應資料;經由該排程器模組至少部分地基於該電力供應資料而判定一當前電源及/或一電池電荷位準;經由該排程器模組自該異質處理器群組傳送負載資料,其中該負載資料指示可用於個別處理器之負載;以及經由該排程器模組至少部分地基於該負載資料而偵測該異質處理器群組之個別處理器;其中該計算單元原始碼至該異質處理器群組之該分佈的該判定,係至少部分地基於以下各者中之一或多者:該負載資料、該熱位準之該判定,及該當前電源及/或一電池電荷位準之該判定,其中該計算單元原始碼之該第一二進位版本及該第一上下文資料至該第一處理器的該傳送,以及該計算單元原始碼之該第二二進位版本及該第二上下文資料 至該第二處理器的該傳送包含:經由該排程器模組啟動與該排程器模組相關聯之一調度模組;以及經由該調度模組至少部分地基於來自該異質處理器群組之負載資料而判定該第一處理器及/或該第二處理器中之一者何時變得可用,其中該負載資料指示可用於個別處理器之負載,其中該計算單元原始碼之該第一二進位版本及該第一上下文資料至該第一處理器的該傳送,以及該計算單元原始碼之該第二二進位版本及該第二上下文資料至該第二處理器的該傳送,係經由該調度模組回應於該第一處理器及/或該第二處理器變得可用而執行。
  10. 一種用於針對一電腦之運行時間調度之系統,其包含:一異質處理器群組;一或多個記憶體儲存器,其通信地耦接至該異質處理器群組;一排程器模組,其通信地耦接至該異質處理器群組及該一或多個記憶體儲存器,且其經組配以:自一作用中應用程式傳送一計算單元原始碼以及與該計算單元原始碼相關聯之第一上下文資料及第二上下文資料,其中可組配用於個別執行之複數個計算單元包含該作用中應用程式;判定該計算單元原始碼至包括有一第一處理 器及一第二處理器之該異質處理器群組之一分佈,其中該第二處理器相比於該第一處理器係為一不同類型;編譯該計算單元原始碼之一第一二進位版本及一第二二進位版本,其中該計算單元原始碼之該第一二進位版本係與該第一處理器相容,且該計算單元原始碼之該第二二進位版本係與該第二處理器相容;以及將該計算單元原始碼之該第一二進位版本及該第一上下文資料傳送至該第一處理器,且將該計算單元原始碼之該第二二進位版本及該第二上下文資料傳送至該第二處理器。
  11. 如請求項第10項之系統,其中該排程器模組經進一步組配以:自該異質處理器群組傳送負載資料,其中該負載資料指示可用於個別處理器之負載;且至少部分地基於該負載資料而偵測該異質處理器群組之個別處理器。
  12. 如請求項第10項之系統,其中該排程器模組經進一步組配以:自該異質處理器群組傳送負載資料,其中該負載資料指示可用於個別處理器之負載;且其中該計算單元原始碼至該異質處理器群組之該分佈的該判定係至少部分地基於該負載資料。
  13. 如請求項第10項之系統,其中該排程器模組經進一步組配以:傳送與該電腦相關聯之熱資料;至少部分地基於該熱資料而判定一熱位準;且其中該計算單元原始碼至該異質處理器群組之該分佈的該判定係至少部分地基於該熱位準之該判定。
  14. 如請求項第10項之系統,其中該排程器模組經進一步組配以:傳送與該電腦相關聯之電力供應資料;至少部分地基於該電力供應資料而判定一當前電源及/或一電池電荷位準;且其中該計算單元原始碼至該異質處理器群組之該分佈的該判定,係至少部分地基於該當前電源及/或一電池電荷位準之該判定。
  15. 如請求項第10項之系統,其進一步包含可自該排程器模組啟動之一調度模組,該調度模組係與該排程器模組相關聯且經組配以:至少部分地基於來自該異質處理器群組之負載資料而判定該第一處理器及/或該第二處理器中之一者何時變得可用,其中該負載資料指示可用於個別處理器之負載,其中該計算單元原始碼之該第一二進位版本及該第一上下文資料至該第一處理器的該傳送,以及該計算單元原始碼之該第二二進位版本及該第二上下文資料 至該第二處理器的該傳送,係經由該調度模組回應於該第一處理器及/或該第二處理器變得可用而執行。
  16. 如請求項第10項之系統,其中該作用中應用程式經組配以:載入該計算單元原始碼,其中該計算單元原始碼包含選自包含有該作用中應用程式之複數個計算單元之一個別計算單元;至少部分地基於該計算單元原始碼而產生一執行緒上下文陣列,其中該執行緒上下文陣列包含該第一上下文及該第二上下文;以及將一排程請求起始至該排程器模組,其中該排程請求包括該計算單元原始碼以及與該計算單元原始碼相關聯之該第一上下文資料及該第二上下文資料。
  17. 如請求項第10項之系統,其中該排程器模組經進一步組配以:傳送與該電腦相關聯之熱資料;至少部分地基於該熱資料而判定一熱位準;傳送與該電腦相關聯之電力供應資料;至少部分地基於該電力供應資料而判定一當前電源及/或一電池電荷位準;自該異質處理器群組傳送負載資料,其中該負載資料指示可用於個別處理器之負載;且至少部分地基於該負載資料而偵測該異質處理器群組之個別處理器; 其中該計算單元原始碼至該異質處理器群組之該分佈的該判定,係至少部分地基於以下各者中之一或多者:該負載資料、該熱位準之該判定,及該當前電源及/或一電池電荷位準之該判定。
  18. 如請求項第10項之系統,其中該作用中應用程式經組配以:載入該計算單元原始碼,其中該計算單元原始碼包含選自包含有該作用中應用程式之複數個計算單元之一個別計算單元;至少部分地基於該計算單元原始碼而產生一執行緒上下文陣列,其中該執行緒上下文陣列包含該第一上下文及該第二上下文;且將一排程請求起始至該排程器模組,其中該排程請求包括該計算單元原始碼以及與該計算單元原始碼相關聯之該第一上下文資料及該第二上下文資料;其中該排程器模組經進一步組配以:傳送與該電腦相關聯之熱資料;至少部分地基於該熱資料而判定一熱位準;傳送與該電腦相關聯之電力供應資料;至少部分地基於該電力供應資料而判定一當前電源及/或一電池電荷位準;自該異質處理器群組傳送負載資料,其中該負載資料指示可用於個別處理器之負載;且至少部分地基於該負載資料而偵測該異質處理器 群組之個別處理器;其中該計算單元原始碼至該異質處理器群組之該分佈的該判定係至少部分地基於以下各者中之一或多者:該負載資料、該熱位準之該判定,及該當前電源及/或一電池電荷位準之該判定,該系統進一步包含可自該排程器模組啟動之一調度模組,該調度模組係與該排程器模組相關聯且經組配以:至少部分地基於來自該異質處理器群組之負載資料而判定該第一處理器及/或該第二處理器中之一者何時變得可用,其中該負載資料指示可用於個別處理器之負載,其中該計算單元原始碼之該第一二進位版本及該第一上下文資料至該第一處理器的該傳送,以及該計算單元原始碼之該第二二進位版本及該第二上下文資料至該第二處理器的該傳送,係經由該調度模組回應於該第一處理器及/或該第二處理器變得可用而執行。
  19. 至少一機器可讀媒體,其包含:複數個指令,其回應於在一計算器件上執行而使該計算器件執行如請求項第1項至第9項中任一項之方法。
  20. 一種裝置,其包含:用於執行如請求項第1項至第9項中任一項之方法 的構件。
TW102115881A 2012-05-30 2013-05-03 於異質處理器群組間之運行時間調度技術 TWI578229B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/076285 WO2013177765A1 (en) 2012-05-30 2012-05-30 Runtime dispatching among heterogeneous group of processors

Publications (2)

Publication Number Publication Date
TW201405422A true TW201405422A (zh) 2014-02-01
TWI578229B TWI578229B (zh) 2017-04-11

Family

ID=49672293

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102115881A TWI578229B (zh) 2012-05-30 2013-05-03 於異質處理器群組間之運行時間調度技術

Country Status (4)

Country Link
US (2) US9280395B2 (zh)
EP (1) EP2856315A4 (zh)
TW (1) TWI578229B (zh)
WO (1) WO2013177765A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11693691B2 (en) 2016-12-31 2023-07-04 Intel Corporation Systems, methods, and apparatuses for heterogeneous computing

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013177765A1 (en) 2012-05-30 2013-12-05 Intel Corporation Runtime dispatching among heterogeneous group of processors
US9632761B2 (en) * 2014-01-13 2017-04-25 Red Hat, Inc. Distribute workload of an application to a graphics processing unit
CN105940376A (zh) * 2014-04-24 2016-09-14 联发科技股份有限公司 中央处理单元控制方法、电子***控制方法及电子***
CN107613724B (zh) * 2014-06-04 2020-04-28 华为技术有限公司 一种电子设备
US9959142B2 (en) * 2014-06-17 2018-05-01 Mediatek Inc. Dynamic task scheduling method for dispatching sub-tasks to computing devices of heterogeneous computing system and related computer readable medium
FR3024794B1 (fr) * 2014-08-05 2016-09-02 Continental Automotive France Procede d'acquisition de signaux, tels que signaux representatifs de l'etat de contacts d'un vehicule automobile
US10133602B2 (en) * 2015-02-19 2018-11-20 Oracle International Corporation Adaptive contention-aware thread placement for parallel runtime systems
US10474600B2 (en) 2017-09-14 2019-11-12 Samsung Electronics Co., Ltd. Heterogeneous accelerator for highly efficient learning systems
CN109726080B (zh) * 2018-12-29 2023-07-14 百度在线网络技术(北京)有限公司 监控异构计算***的工作状态的方法及装置
CN111694675B (zh) 2019-03-15 2022-03-08 上海商汤智能科技有限公司 任务调度方法及装置、存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446070B1 (en) * 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
WO2001040903A2 (en) * 1999-12-06 2001-06-07 Warp Solutions, Inc. System and method for enhancing operation of a web server cluster
US7614055B2 (en) * 2004-06-14 2009-11-03 Alcatel-Lucent Usa Inc. Selecting a processor to run an executable of a distributed software application upon startup of the distributed software application
US7766938B2 (en) * 2004-07-08 2010-08-03 Pneumrx, Inc. Pleural effusion treatment device, method and material
US7733347B2 (en) * 2004-11-05 2010-06-08 Microsoft Corporation Automated construction of shader programs
ATE504043T1 (de) * 2005-04-28 2011-04-15 Univ Edinburgh Umkonfigurierbares anweisungs-zellen-array
US20080163183A1 (en) * 2006-12-29 2008-07-03 Zhiyuan Li Methods and apparatus to provide parameterized offloading on multiprocessor architectures
US8286196B2 (en) * 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
US7811830B2 (en) 2007-05-18 2010-10-12 New Mexico Technical Research Foundation Photosensitizers for photodynamic therapy at infrared excitation
WO2009055368A2 (en) * 2007-10-21 2009-04-30 Citrix Systems, Inc. Systems and methods to adaptively load balance user sessions to reduce energy consumption
US20110213950A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US8479178B2 (en) * 2008-06-27 2013-07-02 Microsoft Corporation Compiler in a managed application context
US20120297395A1 (en) * 2008-08-18 2012-11-22 Exludus Inc. Scalable work load management on multi-core computer systems
US20100156888A1 (en) * 2008-12-23 2010-06-24 Intel Corporation Adaptive mapping for heterogeneous processing systems
US9569270B2 (en) 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US8245210B2 (en) * 2009-05-22 2012-08-14 Microsoft Corporation Compile-time context for dynamically bound operations
US8412832B2 (en) * 2009-12-23 2013-04-02 Citrix Systems, Inc. Systems and methods for GSLB MEP connection management across multiple core appliances
DE102010005770A1 (de) * 2010-01-25 2011-07-28 Stefan Prof. Dr. 78464 Mecking Polymere aus nachwachsenden Rohstoffen
US8370672B2 (en) * 2010-02-26 2013-02-05 Microsoft Corporation Reducing power consumption of distributed storage systems
US9268611B2 (en) 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US9658890B2 (en) * 2010-10-08 2017-05-23 Microsoft Technology Licensing, Llc Runtime agnostic representation of user code for execution with selected execution runtime
WO2012087971A2 (en) * 2010-12-20 2012-06-28 Marvell World Trade Ltd. Descriptor scheduler
US8942857B2 (en) * 2011-04-22 2015-01-27 Qualcomm Incorporated Method and system for thermal load management in a portable computing device
US8782645B2 (en) * 2011-05-11 2014-07-15 Advanced Micro Devices, Inc. Automatic load balancing for heterogeneous cores
WO2013075012A2 (en) * 2011-11-18 2013-05-23 The Regents Of The University Of Michigan Computational sprinting using multiple cores
US10025643B2 (en) * 2012-05-10 2018-07-17 Nvidia Corporation System and method for compiler support for kernel launches in device code
WO2013177765A1 (en) 2012-05-30 2013-12-05 Intel Corporation Runtime dispatching among heterogeneous group of processors

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11693691B2 (en) 2016-12-31 2023-07-04 Intel Corporation Systems, methods, and apparatuses for heterogeneous computing
TWI810166B (zh) * 2016-12-31 2023-08-01 美商英特爾股份有限公司 用於異質計算之系統,方法,及設備

Also Published As

Publication number Publication date
WO2013177765A1 (en) 2013-12-05
EP2856315A4 (en) 2016-02-17
TWI578229B (zh) 2017-04-11
US20150095896A1 (en) 2015-04-02
US20160239351A1 (en) 2016-08-18
US9280395B2 (en) 2016-03-08
EP2856315A1 (en) 2015-04-08
US10331496B2 (en) 2019-06-25

Similar Documents

Publication Publication Date Title
TWI578229B (zh) 於異質處理器群組間之運行時間調度技術
JP6072834B2 (ja) 方法、プログラム、装置、およびシステム
KR101798369B1 (ko) 휴대용 디바이스에서 동기적 태스크 디스패치를 위한 시스템 및 방법
US9652300B2 (en) Systems, methods, and computer program products for preemption of threads at a synchronization barrier
US10459514B2 (en) Coordinated multi-device power management
TWI502540B (zh) 動態再平衡圖型處理器資源的方法、裝置與系統
US20160248125A1 (en) Heterogeneous Battery Cell Switching
JP6374038B2 (ja) ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム
WO2017206856A1 (zh) 处理器资源的分配方法及移动终端
TWI601092B (zh) 降低用於3d工作負載之功率的技術
JP5792337B2 (ja) グラフィクスのレンダリング中における電力消費の低減
US20170090551A1 (en) Context aware power management for graphics devices
TW201531998A (zh) 動態圖形幾何預處理頻率標度縮放及效能增益之預測技術
JP2015505395A (ja) 外部ディスプレイ‐データi/oポートを介してグラフィック処理を拡張するための方法、装置およびシステム
KR101722413B1 (ko) 부하 라인 최적화를 위한 그래픽 전압 감소
TW201447571A (zh) 用於圖形處理單元的記憶體映射技術
KR102223446B1 (ko) 비특권 애플리케이션에 의한 그래픽 작업부하 실행의뢰
US9823927B2 (en) Range selection for data parallel programming environments
KR20140099295A (ko) 파이프라인 이미지 프로세싱 시퀀서
US9832257B2 (en) Service acquisition techniques for wireless communications systems
TW201340030A (zh) 內容適應性視訊處理技術
TWI587694B (zh) 固定功能媒體裝置之先佔
TWI610178B (zh) 共享函數多埠rom系統及裝置