TW201207735A - Technique for GPU command scheduling - Google Patents

Technique for GPU command scheduling Download PDF

Info

Publication number
TW201207735A
TW201207735A TW100112681A TW100112681A TW201207735A TW 201207735 A TW201207735 A TW 201207735A TW 100112681 A TW100112681 A TW 100112681A TW 100112681 A TW100112681 A TW 100112681A TW 201207735 A TW201207735 A TW 201207735A
Authority
TW
Taiwan
Prior art keywords
gpu
commands
command
buffer
scheduler
Prior art date
Application number
TW100112681A
Other languages
English (en)
Inventor
Per Persson
Original Assignee
Ericsson Telefon Ab L M
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 Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Publication of TW201207735A publication Critical patent/TW201207735A/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/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/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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)

Description

201207735 六、發明說明: 【發明所屬之技術領域】 本揭示内容大體上係關於在一異質計算環境中之命令排 程,且特定言之關於一種圖形處理單元(GPU)命令排程。 【先前技術】 GPU已長期在固定電腦中予以使用且現今亦成為手持型 器件(諸如行動電話)之一重要技術特徵。雖然GPU最初係 意欲用於3D圖像之加速,但是現今GPU係用於需要大量額 外處理之圖形任務,諸如2D圖形再現、將多個圖形層複合 入一單一影像中、影像及視訊處理以及使用者介面加速。 固有架構平行度使GPU尤其適合圖形任務,並且在許多 情況下,在通用計算領域中,當在一 GPU上(而非在一中 央處理單元(CPU)上)執行一任務時,存在速度及電力益 處。尤其在異質嵌入器件中,該CPU通常係一關鍵源,然 而該GPU通常利用不足。通用GPU(GPGPU)因此變得曰益 普遍,且近來已由Khronos群組定義一對應標準(OpenCL)。 WO 2009/1 1 1045 A1描述一 GPU之一典型環境架構。將 由用戶應用所產生之圖形命令非同步地寫入命令缓衝器。 一窗伺服器經組態以藉由該等用戶應用而偵測圖形命令之 產生。該窗伺服器分析一個別影像以判定是否針對此影像 起始複合處理。在複合處理期間,該影像組合其他用戶應 用之一或多個其他圖像或視訊層,且對應複合圖形命令係 接著儲存於該等命令緩衝器中。 一 GPU驅動器依由該等用戶應用及該窗伺服器所寫入之 155012.doc 201207735 次序自該等命令緩衝器讀取圖形命令組。該GPU驅動器具 有一分批產生器模組,該分批產生器模組準備來自自該等 命令緩衝器所擷取之該等圖形命令之一圖形命令分批。一 旦已準備好,則在一單一異動中經由一硬體命令佇列發送 該圖形命令分批至該GPU。 由該GPU驅動器之一通知處置器模組控制自該分批產生 器模組至該GPU之圖形命令分批之傳輸。該通知處置器模 組自該GPU接收通知訊息,該等通知訊息指示該GPU已準 備好接收額外命令。該等通知訊息係基於自該GPU發送至 代管該GPU驅動器之一 CPU之中斷。 習知GPU架構之一缺點(諸如在WO 2009/1 1 1045 A1中所 描述之一缺點)係事實上習知GPU結構無法防止一個別應 用壟斷或甚至封鎖該GPU。為此,已提議GPU命令排程 器。
Mikhail Bautin,Ashok Dwarakinath及 Tzi-Cker Chiueh於 2008 年 1 月之「Graphics· Engine Resource Management」, Proceedings of 15th Multimedia Computing and Networking Conference,2008,SPIE 28提議一種GPU命令排程器,該 GPU命令排程器係透過其之CPU排程優先權而控制一應用 之一 GPU命令產生速率。具體言之,依GPU排程匹配一 CPU排程器之資源分配決定之此一方式排程GPU命令。因 此,一相等份額的GPU時間可分配至各應用,而不管應用 特殊需求。 由M. Bautin等人所建議之GPU命令排程器之一軟體實施 155012.doc 201207735 包括請求GPU資源之各應用之一專用命令佇列。使用一加 權循環排程原則而自此等「預應用」命令佇列排程Gpu命 令群組。 已發現習知GPU命令排程方法仍存有某些缺點。例如, 排程通常係以應用為中心,此意謂著在命令排程程序期間 不考量個別GPU之特殊需要及可能性。 US 2008/303833 A1揭示一種通知一共用顯示驅動器以 更新具有一圖形框體(包含由多個圖形處理單元(Gpu)所分 開呈現之多個圖形資料)之一顯示之方法及裝置。
Chia-Ming Chang 等人之「Energy-saving techniques for low-power graphics processing unit」,International SoC
Design Conference,2008,IEEE,Piscataway,NJ,USA 揭示自演算法、架構及電路層級允許實現高效能與低電力 消耗之一種具有節能技術之GPU。 US 2005/125701 A1揭示一種在一處理系統内提供能量 管理之方法及系統’該方法及系統可透過程序之智慧排程 及遵循由各程序使用之一量測等級的能量而藉由管理程序 來減少能量消耗。 【發明内容】 本揭示内容之一潛在目的係提供一種避免習知(例如, 以應用為中心)排程方法之特定缺點之GPU命令排程技 術。 根據一第一態樣,提供一種排程GPU命令之調度之方 法,其中該方法包括以下步驟:自複數個應用接收命令; 155012.doc 201207735 緩衝該等接收命令;及朝該GPU調度該等緩衝命令作為— 分批。該調度係基於一排程,該排程經判定以在朝該Gpu 調度之兩個連續命令分批之間產生一 GPU閒置週期。 在一例示性實施中,該等命令分批係調度至一 Gpu驅動 器。以此方式’調度程序可自處理由該Gpu其本身所起妒 之請求而去耦(例如,見WO 2009/1 1 1045 A1)。 排程意欲於控制一 G P U閒置週期之產生的命令分批調度 可允許該GPU減少其電力消耗。作為一實例,該Gpu可在 因此產生之該等閒置週期期間進入一電力節省模式或甚至 休眠。可在控制一作業系統下執行該排程。相應地,該作 業系統可獲得GPU處理循環之控制。 為了最大化該等閒置週期,可實施一或多個間置週期延 伸程序。一此間置週期延伸程序可包括排除將一或多個緩 衝命令朝该GPU調度。為此,可在一第一步驟中分析該等 緩衝命令。在一第二步驟中,該等分析命令之一或多者可 取決於一分析結果而排除朝該Gpu調度。 可依許多不同方式執行該等緩衝命令之該分析。作為一 實例,可使用一基於圖形的分析方法。在此一基於圖形的 刀析方法中,可產生該等緩衝命令之一階層式或非階層式 圖形表7F °自5亥等緩衝命令所產生之圖形可包括節點及邊 緣在變體中,各節點表示當應用至〇時導致一特定目 的地表面之該等緩衝命令之一或多個者(各為一或多個源 表面)I此變II中’各邊緣可鏈接表示一㈣地表面之 -第-節點與表示該第一節點之一源表面之一第二節點。 155012.doc 201207735 如本文中所瞭解一表面可係由—資料結構所表示之一 抽象實體,該資料結構含有定義該表面之圓形相關資訊。 該圖形相關資訊可包括與在一顯示器件上之一特定圖像目 私、圖形任務及/或圖像區域有關之Gpu命令之—邏輯 組。 外 作為-實例’各表面可具有一表面範圍及一表面内容 =一錢諸結構部分表示各者)。該表面範圍可指示 备在 顯示器件上輪出日專兮类& 呀a表面内容之一大小(例如,高 度及^度)及/或位置。3_方面,可由與該表面相關聯之 =少^衝命令定義該表面内容。作為—實例,可由藉由 執灯與該表面㈣聯之該至卜緩衝命令所產生之一 圖像定義該表面内容。例如,該中間圖像可採取-影㈣ ,.文理(例如’付合;咖或任何其他圖形標準之—影像播 幻之形式。此外或替代地,可由至少一工作定義該表面 内容。各工作可包含盥一桩中 之-或多者。〃、以表面有關之該等緩衝命令 在-貫施中’在各調度程序判定調度該等緩衝命令之前 解析該圖形。此外,可繼各調度程序之後(至少部分)重新 產生該圖形。在該圖形之一部分重新產生期間,可重新使 用未因前次調度程序而變更之與緩衝命令有關之一或多個 先前所產生的圖形部分(例如,子圖形)。此外,對於未因 該前次調度程序而變更之該等緩衝命令,可產生一相關聯 之中間圖像。可藉由執行此等命令並將執行結果儲存於表 示中間圖像之-資料結構中而產生該中間圖像。 155012.doc 201207735 分析該等緩衝命令可包括解析該圖形以判定至少一可、 略圖形部分(例如’一節點或子圖形)。關於該可:略= 部分之該等緩衝命令可接著被排除在朝該Gpu調产之外 該省略圖形部分可與由另一表面所隱藏之一表面^或一表 面之-部分)有關。此外或替代地,該省略圖形部分可與 已在與該省略圖形部分相關聯之該等緩衝 / 〜 7 < —先前執 行期間所產生及儲存之一中間圖像有關。 該排程可定義一顯示器件之一顯示更新速率。因此,可 由該排程動態地控難顯示更新速率。在―實例中,㈣ ,考觸及CPU之至少一者之當前處理能力(例如,工作 置)。在一即將來臨的顯示更新程序期間,若一或多個中 間圖像可用’則可提取並在一顯示器件上再現該等中間圖 像以替代執行該等緩衝命令(已排除在朝該GPU調度之 外)。如將明白,該等中間圖像消耗記憶體資源,但:節 省處理(例如,GPU)資源。 在-進-步實施中’該等緩衝命令可經分析以判定盥該 等緩衝命令相關聯之一總GPU工作量。根據該工作量判 定,可起始介於該GPU與另一 GPU及一 Gpu之至少一者之 間的一工作量平衡。
可經由一㈣應用程式化介面(API)自各種應用接收GPU Ρτ此外,命令分批可調度至負責饋送該等GPU命令給 該GPU之一 GPU驅動器。 根據另-態樣’提供-種電腦程式產品。該電腦程式產 品包括程式碼部分’當在—計算器件上執行該程式碼部分 I55012.doc 201207735 時,導致該計算器件執行本文所描述之任何方法之步驟。 該電腦程式產品可儲存於一電腦可讀記錄媒體上,諸如一 永久或可重寫記憶體、一 CD_R0M或一 DVD。該電腦程式 產品亦可經由一或多個電腦網路(諸如網際網路、一蜂巢 式電信網路或一無線或有線區域網(LAN))而提供下載。 根據一又進一步態樣,提供一種GPU命令排程器,其中 該排程器包括:-介面,其經調適以自複數個應用接收命 令,一緩衝器,其經調適以緩衝該等接收命令;及一控制 器,其經調適以朝一 GPU調度該等緩衝命令作為一命令分 批。該控制器經組態以基於一排程而控制該調度,該排程 經判定以在朝該GPU調度之兩個連續命令分批之間產生一 GPU閒置週期。 該控制器亦可經調適以進行以下步驟:分析該等緩衝命 令;及取決於一分析結果而排除將該等分析命令之一或多 者朝該GPU調度。該控制器可進一步經調適以自該等緩衝 命令產生一圖形(如上文大體上所描述)。當分析該等緩衝 命令時,接著可由控制器解析該圖形以判定至少一可省略 圖形部分。接著可排除將關於該可省略圖形部分之該等緩 衝命令朝該GPU調度。上文已描述可省略圖形部分之若干 實例。 在排程定義一顯示更新速率之一案例中,該控制器可進 一步經調適以根據該GPU及一 CPU之至少一者之當前處理 能力而動態地控制該顯示更新速率。此外,該控制器亦可 經調適以進行以下步驟:分析該等緩衝命令以判定與該等 155012.doc -9- 201207735 緩衝命令相關聯之總GPU工作量;及根據該工作量判定而 起始該GPU與另一 GPU及一 CPU之至少一者之間的一工作 量平衡。 接收GPU命令之排程器介面可採取一 GPU API之形式。 此外,該排程器可進一步包括或連接至一 GPU驅動器,該 GPU驅動器經調適以接收調度的GPu命令。該GPU驅動器 繼而可經組態以饋送接收自該排程器之該等GPU命令給該 GPU。 【實施方式】 在下文中,將參考圖式中所圖解說明之例示性實施例更 詳細討論本文所描述之此項技術。 在下文描述中,為了解釋及非限制目的,陳述特殊細節 (諸如特殊器件組態及特殊圖形内容處理及顯示案例)以提 供對本文所揭示之此項技術之一徹底瞭解。將明白熟習此 項技術者亦可在不悖離此等特殊細節之其他實施例中實踐 此項技術。 熟習此項技術者將進一步明白可使用個別硬體電路、結 合一程式化微處理器或通用電腦使用軟體機能、使用一應 用特定積體電路(ASIC)及/或使用一或多個數位信號處理 器(DSP)來實施本文所解釋之方法、步驟及功能。亦將明 白雖然主要依方法及器件之形式描述下文實施例,但是亦 可以一或多個處理單元及耦合至該等處理單元之一記憶體 具體實施本文所揭示之此項技術’其中當由該一或多個處 理單元執行一或多個程式(其(等)執行本文所討論之步驟) 155012.doc •】0· 201207735 時,該記憶體儲存該一或多個程式。 圖1圖解說明根據本文所描述之此項技術之一實施例之 一 GPU命令排程器140之一實施案例。如圖1所展示,命令 排程器140係位於產生GPU命令之複數個應用(一方面)與一 GPU 180之一 GPU驅動器160(另一方面)之間。在圖1中所 展示之實例中,命令排程器140包括經調適以自該等應用 接收對應GPU命令之一 2D圖形API以及一 3D圖形API。命 令排程器140進一步包括一介面,該介面經組態以接收及/ 或產生自由該等應用所產生之兩個或兩個以上GPU命令所 導出之一複合命令。 替代由各應用經由GPU驅動器160直接發送GPU命令至 GPU 180的係,以個別命令分批調度該等GPU命令至GPU 驅動器160並因此至GPU 180之前,將由命令排程器14〇緩 衝該等GPU命令。因此,將使GPU 180免受由各種應用之 不協調存取’此將防止GPU 180轉至休眠或起始本端電力 節省措施’並防止與一系統階層資源及電力管理方案協作 之能力。 一旦由命令排程器140緩衝該等GPU命令,則可分析、 簡化、刪除該等緩衝GPU命令等等。特定言之,一作業系 統(OS)可經由命令排程器14〇而控制GPU使用。該〇s可因 此控制如何在GPU 1 80與一 CPU(或一進一步GPU)之間分佈 負載。此外,該OS可控制命令排程器140以實現GPU 180 與一系統階層資源及電力管理方案之一協作,作為一實 例,該OS可經由命令排程器140而限制一顯示更新速率以 155012.doc 201207735 減小總負載及系統電力消耗。 現在將參考圖2至圖11更詳細描述命令排程器14〇之此等 及其他有利態樣。將使用相同參考數字以表示相同或相似 組件。 圖2圖解說明在一行動終端機1〇〇中之命令排程器之 一例示性實施。在圖2中,行動終端機1〇〇經圖解說明為採 取一行動電話(例如,一智慧型電話)之形式。將容易明白 亦可依其他器件(諸如個人電腦或膝上型電腦)實施命令排 程器140。 在圖2中所圖解說明之行動終端機1〇〇(除包括命令排程
器140之外)亦包括一 CPU 120、一 GPU驅動器160、一 GPU 1 8 0以及一顯示器件2 0 〇。C P U 12 0經組態以執行一 〇 s 21 0 及各種應用之程式碼。〇 S 210經組態以控制命令排程器 140。應注意,雖然在CPU 120上運行之應用經組態以產生 GPU命令’但是該等應用無需係3D圖形應用。相反地,該 等應用亦可係(例如)將GPU 180用作為一 GPGPU以使CPU 120減輕負擔之2D圖形、影像處理、視訊或通用應用。 如在圖2中所圖解說明,命令排程器14〇可包括朝CPU 120之採取一GPU API 220之形式之一介面。GPU API 220 可(例如)組合圖1中所展示之2D圖形API與3D圖形API之功 能。此外,GPU API 220可另外經組態以接收及/或產生如 上文參考圖1所討論之複合命令。 命令排程器140進一步包括位於GPU API 220之下游之一 命令緩衝器240。命令緩衝器240經組態以暫時儲存經由 155012.doc •12· 201207735 GPU API 220所接收之該等GPU命令。在一實施中,依一 命令佇列之形式實現命令緩衝器240(例如,根據FIFO範 例)。 命令排程器140之一控制器260經調適以自命令缓衝器 240調度在個別命令分批中之命令至GPU驅動器160。控制 器260排程該等個別命令分批之調度,使得在朝GPU 1 80所 調度之兩個連續命令分批之間產生一 GPU閒置週期。由控 制器260之調度程序之排程可考量自0S 210所接收之資訊 或指令。以此方式,GPU命令排程可與系統階層資源及電 力管理方案一致。 GPU驅動器160自命令排程器140之命令緩衝器240接收 GPU命令分批。可由GPU驅動器160根據習知命令饋送策 略(例如,見W0 2009/11 1045 A1)饋送因此所接收之該等 GPU 命令至 GPU 180。 現在將參考在圖3之例示性流程圖300中所圖解說明之一 方法實施例更詳細描述命令排程器140之操作。 如圖3中所展示,排程程序開始於命令排程器140自在 CPU 120上運行之複數個應用接收GPU命令(步驟302)。此 等GPU命令可與圖像相關處理操作有關以更新在顯示器件 200上之一呈現。此外或替代地,該等GPU命令可關於根 據例如,由OS 210所施行之一負載平衡方案自CPU 120卸 下至GPU 180之通用處理操作。 在一下一步驟304中,自各種應用所接收之該等GPU命 令可暫時儲存於命令緩衝器240中。可依各種不同方式執 155012.doc 13 201207735 行5亥等GPU命令之緩衝。根據一例示性緩衝方法,由控制 器2 6 0根據促進該等緩衝命令之一分析之一命令圖形排列 命令緩衝器240中之該等GPU命令。 在一進一步步驟306中’控制器260調度該等緩衝命令作 為至GPU驅動器160並因此朝GPU 180之一單一命令分批。 控制器2 6 0排程該調度,使得在兩個連續命令分批之間產 生一 GPU閒置週期。圖4圖解說明由處理兩個連續命令分 批引起的介於兩個GPU活動週期之間的此一閒置週期。在 該閒置週期期間,GPU 180可轉至休眠或進入一低電力模 式。所得電力減少對電池操作的器件(諸如圖2之行動終端 機10 0)尤其有利。 圖4之該閒置週期係命令排程器14〇保護GPU 18〇免受由 在CPU 120上運行之多個應用「隨機存取」之結果。此等 「隨機存取」由以下事實引起:各種應用獨立於彼此而產 生其等之GPU命令。因此,介於來自不同應用之兩個連續 GPU命令之間的時間週期將足夠長以允許GPU 180進入一 低電力模式或轉至休眠之機會係極其低的。僅介於產生該 等GPU命令之應用與處理該等GPu命令之gpu 180之間插 入叩7排私器14〇,可實現意欲於最大化該閒置週期之一 緩衝及該等緩衝GPU命令之一分批調度。特定言之,該調 度可變得獨立於如自w〇 2〇〇9/111〇45 A1大體上已知之 GPU請求。 可由OS 210根據一系統階層資源或電力管理方案觸發或 調整自命令緩衝器240調度命令分批。作為一實例,〇s 155012.doc 14 201207735 210可藉由控制(例如,動態地調整)介於兩個連續調度程序 之間的時間週期而控制顯示器件210之一顯示更新速率。 相應地,可由OS 210預動式地限制該顯示更新速率以限制 一總負載及電力消耗(例如,根據行動終端機1〇〇之當前電 池狀態)。 替代地或此外,OS 210可藉由在運行時允許介於如圖5 中大體上所圖解說明之CPU 120與GPU 180之間的一負載 平衡而將GPU 180併入一系統階層資源及電力管理方案 中。如圖5中所展示,可取決於當前系統負載而介於cpu 120與GPU 180之間分佈例示性2D圖形命令之處理。 圖5之上圖中所圖解說明之工作量分佈案例圖解說明單 獨依賴於CPU 120再現2D圖形及僅使用GPU 180用於2D圖 形命令複合之「傳統」方式。如圖5之中間圖中所展示, 當系統工作量增加時,可自CPU 120移動一相當處理量至 GPU 1 80。藉此相較於在頂圖中所圖解說明之方法,cpu 負載降低至30%。GPU負載上升,但是沒CPU負載降低得 多’此係因為僅移動已最優化GPU 180之處理任務(例如, 需要平行處理之任務)至GPU 180。 在下圖中’最大化GPU使用’同時最小化CPU使用。此 方法亦包含自CPU 120移動尤其不適合GPU 180之任務至 GPU 180。因此,相較於自頂圖至中間圖之轉變,總效率 增益係較低的。 在頂圖中所圖解說明之工作量分佈案例中,CPU 120可 能成為一可能的瓶頸,然而在底圖中’ GPU 180可能成為 155012.doc 15 201207735 該瓶頸。將在運行時執行介於CPU 120與GPU 180之間的 適當工作量平衡。 應注意’圖5中所展示之案例圖解說明請求CPU及GPU 處理資源之許多用戶應用之僅一者。除圖5中所圖解說明 的2D圖形應用之外,3D圖形應用及其他圓形或非圖形應 用亦可如圖5中所例示性圖解說明之2D圖形應用般在相同 時間請求對應處理資源。 在下文中,將參考圖6至圖π描述最大化介於兩個連續 命令分批之間的閒置週期之一基於圖形的方法。如圖6中 所展示,其係圖1中所展示之實施例之一延伸,由控制器 260提供命令排程器14〇之基於圖形的功能。具體言之,基 於當前儲存於命令緩衝器240中之命令,控制器26〇產生工 作。基於該等工作,控制器260產生及維持一階層式工作 圖形。繼各調度程序之後,基於已最新到達命令緩衝器 240中之命令,可重新產生該工作圖形(至少部分)。 一旦已產生該工作圖形,則由控制器26〇分析該工作圖 形以判定是否可將任何當前緩衝命令排除在與下一命令分 批一起朝GPU 180調度之外。如將容易明白,將該等緩衝 命令之一或多者排除在調度至該GPU之外將延伸GPU閒置 週期並因此幫助減少GPU電力消耗》 圖7圖解說明由控制器260針對一組緩衝命令所產生之— 階層式工作圖形之一實施例。簡言之,該工作圖形包括節 點(亦稱為表面)及鏈接該等表面之邊緣(或頂點)。各表面 係與一或多個工作相關聯,及由當前包含於命令緩衝器 1550l2.doc -16 · 201207735 240中之一或多個命令定義各工作。可由一所謂的φ 像替代地定義一表面,該戶、中間圖 ㈣夕☆ ^ 所舌月的中間圖像係由該表面u 關聯之工作之-執行引起。根部表面係表 面之相 顯示器件200之總顯示區域。 '、 並表示 $體上,可認為-表面係Μ _表面範圍性質及 =之:抽象實體(例如’-資料結構)。該表面範圍可: 早曰不邊表面内谷(當在顯示器件2〇〇上再現時)之/ 如i寬度及高度)及(視需要)位置。可由-多邊形定義;^ 面乾圍。可使用標準化座標連同—轉換矩陣來定義节 形,該轉換矩陣允許將該等標準化座標轉換成器件: 義座標或使用者空間座標系統。 、 可藉由工作之一有序清十.主& & + 々β皁描述表面内容,各工作視需要 具有另一表面之一參考(「邊緣」),因此形成—定向圖 形。替代地’彳由藉由執行來源於表面(潛在地遞迴入— 構成表面中)之工作清單所產生之一中間圖像(通常係一影 像或紋理)描述該内容。因此可認為該中間圖像係該表= 之一性質,表示執行相關聯工作清單之成果。—旦已產生 該中間圖像,則可儲存該中間圖像以供以後重新使用且益 需重新產生,除非在一將來顯示更新循環期間於潛在工作 或表面中存在一變更。 依一相似方式,可認為一工作係定義下文資料項目之一 或多者之一資料結構: 1)當前儲存於命令緩衝器240中之一序列(有序組)一或多 個GPU命令及相關聯資料(諸如指示邊緣之資料等); 155012.doc -17. 201207735 2) -目的地表面(即’藉由與此工作相關聯之咖命令之 一執行所作用的一表面); 3) -選用源表面,作為對於該卫作之輸人的動作即 至其;及 4) —延伸(例如,指示該工作所應用之區域之一定界多 邊形)。 |夕 可如圖8中所圖解說明般簡化圖7之複雜工作圖形,且下 文將更詳細討論此簡化圖像以圖解說明子圖形(「圖形部 分」)、共同子圖形之概念及子圖形與中間圆像之間的關 係。 圖9圖解說明分群成一工作圖形之多個工作(一方面)與 引起在顯示器件200上之一特定再現之一螢幕(另一方面)之 間的關聯。如圖9中所圖解說明,該等工作可關於與以下 有關之圖形命令:清除表面内容、拖曳表面内容、使表面 内容定大小、定位表面内容、混合表面内容等。共定義三 個不同表面A、表面B及表面C,且各自工作係與該等表面 之個別者相關聯。 圖10及圖11圖解說明由顯示器件200所再現之内容之關 係(見圖10)與基於緩衝GPU命令所產生之導致在顯示器件 200上再現對應内容之對應工作圖形(見圖11)之間的一進一 步實例。 如圖π中所圖解說明,7個表面卯至36係來源於螢幕表 面。該螢幕表面其本身包括三個子圖形或圖形部分: S0—S3->(S6,S6)、S1->S3->(S5,S6)及 S2->S4。由表面s〇 155012.doc -18- 201207735 及si共用該子圖形S3_^S5,S6),且因此構成30及81之— 共同子圖形。在為一視訊聊天之一實體模型之圖i 0之例示 性内容再現中’ S3係藉由組合一前景(S5/女人)與一背景 (S6/山)所形成之由聊天影像(SO)及其反射(S1)所使用之一 影像β 由於由SO及S1兩者使用S3,及藉由組合S5及S6而形成 S3,所以可藉由以下步驟而交換(31>11處理資源(組合兩個 影像)與記憶體資源(S3之儲存空間):對由s〇首先使用之— 中間圖像(例如,一影像檔案)呈現S3 ;及在一個且相同之 顯不更新循環中針對s丨直接重新使用該中間圖像。此外, 只要S5及S6或在其等各自之工作清單中之工作/命令繼續 存在於命令緩衝器24〇中,則亦可重新使用該中間圖像以 用於將來的顯示更新循環。 一旦已在一相關聯記憶體(圖2中未展示)中產生及儲存 中間圖像,則可在下一顯示更新循環期間省略與該中間 圖像有關之子圖形,此意謂著命令緩衝器24〇中之對應 GPU命令可排除在調度至Gpu 18〇之外。相反地,替代調 度對應命令至GPU 180的係,將自記憶體提取該中間圖像 以供在即將來臨的顯示更新循環期間再現。 應注意,在當前嵌入平台上,相較於Gpu處理資源,記 憶體可更昂貴,使得是否針對—共同子圖形產生一中間圖 像之決定可取決於特定硬體架構。替代地或此外亦可基 於GPU 180之當前工作量及其他參數作出該決定。 大體上,繼各調度程序之後,需要基於最新寫入命令緩 155012.doc -19· 201207735 衝器240中之命令重新產生工作圖形(及可自命令緩衝器 240刪除該等調度命令)。然而,在某些情況下,當產生該 新工作圖形(即,以執行—部分更新)時,可能重新使用先 前工作圖像之既有部分。此意謂著可能無需重新產生整個 工作圖形以用於即將來臨的顯示更新循環。 給定圖11之該工作圖形,若一應用藉由添加/移除個別 工作或變更工作次序而變更S4之内容,則先驗地知道不來 源於S2中之子圖形將不受S4之内容變更的影響。作為一實 例,若S0及s 1已被縮減至一中間圖像争(例如,影像申), 則為獲彳于在顯不器件200上之最終再現所需做的係再現S2 並接著將S2與SO及S1之該中間圖像組合至由螢幕表面之工 作清單所定義之該螢幕表面中(應記住如本文所瞭解之 「螢幕」係一表面’且無需係顯示器件2〇〇之實體螢幕)。 由於部分更新’可簡化該工作圖形之產生。 在上文所討論之實例中’由控制器260解析該工作圖形 以判定可省略子圖形’使得相關聯的緩衝命令可排除在朝 GPU 1 80調度之外。將緩衝命令排除在朝Gpu 1 8〇調度之 外之一進一步可能性係由與由另一表面所隱藏之一表面 (或一表面部分)有關之子圖形(當在顯示器件200上再現時) 引起。 如上文已討論’表面及工作兩者具有定義其等之邊界 (例如’依一多邊形形式)之一延伸性質。基於該延伸性 質’可由控制器260判定在顯示器件2〇〇上之由一特定表面 或工作之該再現是否可視。在此判定期間,亦考量如在該 155012.doc •20- 201207735 工作圖形中所定義之該等表面及工作之執行次序。 所陳述,工作係依有序清單之形式儲存於工作圖形中上文 該等表面係在該工作圖形中階層式排序的。 因此’若一工作或表面將無助於一顯示更新循環,則當 由控制器260解析該工作圖形時可省略該工 取表面。該 工作之省略將使該工作留在對應工作圖形中,但是將防止 相關聯命令朝GPU _度。相似於工作,若一^面^ 藏,則當判定緩衝命令係待朝GPU 18〇調度時將省略該隱 藏表面及來源於該表面中之所有子圖形。省略該表面及來 源於該表面中之子圖形將防止儲存於命令緩衝器24〇中之 該等相關聯命令朝GPU 180調度。 隨著自較佳實施例之描述已變得顯而易見,本文所呈現 之此項技術允許保護GPU 180免受由多個應用隨機存取, 使得可依-受控制方式產生介於兩個連續咖活動週期之 間的GPU閒置週冑。由於可由〇s 21〇控制該間置週期之產 生’所以GPU 180可包含於一系統階層資源及電力管理方 案中。此外,介於GPU 180與CPU 12〇之間的工作量平衡 變得可能的,且OS 210受顯示更新速率之影響,使得該顯 示更新速率可調適至總系統之當前資源情況。 作為一進一步有利措施,可藉由將命令緩衝器24〇中之 某些命令排除在朝GPU 18〇調度之外而延伸該閒置週期。 可使用基於圖开> 的技術來執行可排除在朝Gpu】8〇調度 之外的7之判定。在-實施中,該基於圖形的技術允許 偵測表示不影響在顯示器件2〇〇上之再現程序之Gpu命令 155012.doc 201207735 之子圖形。因此無需由GPU處理此GPU命令。 在前文中,已例示性描述實施本文所揭示之此項技術之 原理、實施例及各種模式。本發明不應解釋為限於本文所 討論之特定原理、實施例及模式。相反地,將明白可由熟 習此項技術者在不悖離如在隨附申請專利範圍中所定義之 本發明之範疇之情況下做出各種變更及修改。 【圖式簡單說明】 圖1圖示圖解說明根據本文所描述之技術之一實施例之 介於應用與一 GPU驅動器/GPU之間的—命令排程器之配 置; 圖2圖示圖解說明包括圖1之該命令排程器之一行動終端 機之一實施例; 圖3係圖解說明一排程程序之一方法實施例之一示意流 程圖; 圖4係圖解說明產生一 GPU閒置週期之—示意圖; 圖5係圖解說明一圖形應用之介於—Gpu與一 cpu之間 的一工作量平衡程序之一示意圖; 圖6係圖解說明產生一工作圖形之—示专圖. 圖7係圖解說明一工作圖形之内容之—_ ^ 一示意圖; 圖8圖解說明一工作圖形之一簡化圖像. 圖9圖解說明一工作圖形與—羯干技 …貝不螢幕之一相關聯再現 結果之一第一實例;及 圖10及圖11圖解說明一工作圖形與— 、•,属不螢幕之一相關 聯再現結果之一第二實例。 155012.doc •22- 201207735 【主要元件符號說明】 100 行動終端機 120 中央處理單元(CPU) 140 命令排程器 160 圖形處理單元(GPU)驅動器 180 圖形處理單元(GPU) 200 顯示器件 210 作業系統 220 介面 240 命令緩衝器 260 控制器 50 表面 51 表面 52 表面 53 表面 54 表面 55 表面 56 表面 -23- 155012.doc

Claims (1)

  1. 201207735 七、申請專利範圍: 1. 一種排程圖形處理單元(GPU)命令之調度之方法,該方 法包括以下步驟: 自複數個應用接收命令; 緩衝該等接收命令;及 朝一GPU(180)調度該等緩衝命令作為一命令分批, 其特徵為基於-排程控制該調度,該排程經判定以在 朝該GPU(180)調度之兩個連續命令分批之間產生一㈣ 閒置週期。 2. 如請求項1之方法,其進一步包括: 分析該等緩衝命令;及 取決於該分析之-結果而將該等分析命令之一或多者 排除在朝該GPU( 180)調度之外。 3. 如請求項1之方法,立谁一丰— 八進步包括自該等緩衝命令產生 一圖形,該圖形包含: 郎點,其中各節势:本-A 即點表不當應用至0時導致一特定目的 地表面之該等緩衝命今 V, ^ ^ 可之一或多者,其各為一或多個源 表面;及 ’其中各邊緣鏈接表示一目的地 不該第一節點之一源表面之一第 鏈接該等節點之邊緣 表面之一第一節點與表 二節點。 如請求項3之方法,i . ,、干各目的地表面具有一表面範圍 及一表面内容,且复φ /、〒由藉由執行與該目的地表面相關 聯之至少一緩衝命令所 7所產生之一中間圖像定義該表面内 155012.doc 201207735 容。 5. 衝命令包括透過 且其中將關於該 朝該GPU(180)調 如請求項2或3之方法,其中分析該等緩 解析而判定至少一可省略之圖形部分, 可省略圖形部分之該等緩衝命令排除在 度之外。 6.如請求項5之方法’其中該省略圖形部分與一表面或由 另一表面所隱藏之表面之一部分有關。 7·如請求項4或5之方法’其令該省略圖形部分與已在盘該 1圖㈣分相關聯之該等緩衝命令之_先前執行期間 所產生及儲存之該中間圖像有關。 8.如請求項1之方法,其中該排程定義-顯示更新速率, 且進—步包括: 根據該GPU(18〇)及-中央處理單元⑽)之至少一者之 當前處理能力而動態地控制該顯示更新速率。 9.如請求項1之方法,其進一步包括: 分析該等緩衝命令以判定與該等緩衝命令相關聯之一 總G P U工作量;及 根據垓工作量判定而起始介於該Gpu( 與另一 Gpu 及一中央處理單元⑽)之至少一者之間的一工作量平 10.如請求項1 $古、土 $之方法,其中經由一 GPU應用程式化介面 (22〇)而自該等應用接收該等命令。 /长項1或10之方法,其令朝一 Gpu驅動器(16〇)調度 k等接收命令,該GPU驅動器(160)經調適以饋送該等調 1550i2.doc 201207735 度之接收命令給該GPU(180)。 12_ —種包括程式碼部分之電腦程式產品,當在一計算器件 上執行該等程式碼部分時,該等程式碼部分導致該計算 器件執行凊求項1至11十任何一者之該等步驟。 13. 如請求項12之電腦程式產品,其係儲存於—電腦可讀記 錄媒體上。 14. 一種用於圖形處理單元(Gpu)命令之排程器(丨4〇),該排 程器(140)包括: "面(220),其經調適以自複數個應用接收命令; 一緩衝器(240) ’其經調適以緩衝該等接收命令; 一控制器(260),其經調適以朝一Gpu(18〇)調度該等緩 衝命令作為一命令分批, 其特徵為該控制器(260)經調適以基於一排程而控制該 調度,該排程經判定以在朝該Gpu(1 8〇)所調度之兩個連 續命令分批之間產生一 GPU閒置週期。 15. 如5青求項14之排程器,其中該控制器(260)進一步經調適 以: 为析s亥等緩衝命令;及 取决於D玄分析之一結果而將該等分析命令之一或多者 排除在朝該GPU(180)調度之外。 16. 如响求項14之排程器,其中該控制器(260)進一步經調適 以自該等緩衝命令產生-圖形,該圖形包含: 節點其中各節點表示當應用至〇時導致一特定目的 地表面之該等緩衝命令之一或多者,其各為一或多個源 155012.doc 201207735 表面;及 鏈接該等節點之邊緣,立中夂 八 各邊緣鏈接表示一目的地 表面之·一第一郎點與表示兮笛 衣不忒第一節點之一源表面之至少 一第二節點。 17·如請求項16之排程器,其中夂 再中各目的地表面具有一表面範 圍及一表面内容,且其中由莸士 甲由韁由執行與該目的地表面相 關聯之至少一緩衝命令所產峰 所屋生之—中間圖像定義該表面 内容。 18.如請求項15或16之排程11 ’纟中分析該等緩衝命令包為 透過解析而判定至少一可省略之_部分, 該可省4圖料分之該等緩衝命令可排除在朝錢 GPU(180)調度之外。 19. 如請求項18之排程器,其中該省略圖形部分與一表面或 由另一表面所隱藏之表面之一部分有關。 20. 如請求項17或18之排程器,其中該省略圖形部分與已在 與該省略圖形部分相關聯之該等緩衝命令之一先前執行 期間所產生及儲存之該中間圖像有關。 21. 如請求項14之排程器,其中該排程定義—顯示更新速 率’且其中該控制器(2 6 0)進一步經調適以: 根據該GPU(180)及一中央處理單元(12〇)之至少一者之 當前處理能力而動態地控制該顯示更新速率。 22. 如請求項14之排程器,其中該控制器進一步經調適以. 分析該等緩衝命令以判定與該等緩衝命令相關聯之— 總GPU工作量;及 155012.doc 201207735 根據該工作量判定而起始介於該GPU( 180)與另一 GPU 及一中央處理單元(120)之至少一者之間的一工作量平 衡。 23. 如請求項14之排程器,其進一步包括以下之至少一者: 一 GPU應用程式化介面(220),其經調適以自該等應用 接收該等GPU命令;及 一 GPU驅動器(160),其經調適以接收該等調度之GPU 命令。 24. 如請求項14之排程器,其進一步經連接至以下之至少一 者: 一 GPU應用程式化介面(220),其經調適以自該等應用 接收該等GPU命令;及 一 GPU驅動器(160),·其經調適以接收該等調度之GPU 命令。 155012.doc
TW100112681A 2010-04-28 2011-04-12 Technique for GPU command scheduling TW201207735A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10004490.8A EP2383648B1 (en) 2010-04-28 2010-04-28 Technique for GPU command scheduling
US33288210P 2010-05-10 2010-05-10

Publications (1)

Publication Number Publication Date
TW201207735A true TW201207735A (en) 2012-02-16

Family

ID=42711750

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100112681A TW201207735A (en) 2010-04-28 2011-04-12 Technique for GPU command scheduling

Country Status (5)

Country Link
US (1) US9001137B2 (zh)
EP (1) EP2383648B1 (zh)
CN (1) CN102859492B (zh)
TW (1) TW201207735A (zh)
WO (1) WO2011134942A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI506586B (zh) * 2012-05-02 2015-11-01 Nvidia Corp 基於伺服器之圖形處理技術
US9542715B2 (en) 2012-05-02 2017-01-10 Nvidia Corporation Memory space mapping techniques for server based graphics processing
US9591358B2 (en) 2013-03-15 2017-03-07 Intel Corporation Media playback workload scheduler
US9613390B2 (en) 2012-05-02 2017-04-04 Nvidia Corporation Host context techniques for server based graphics processing
US9805439B2 (en) 2012-05-02 2017-10-31 Nvidia Corporation Memory space mapping techniques for server based graphics processing
US11663044B2 (en) 2020-10-22 2023-05-30 Shanghai Biren Technology Co., Ltd Apparatus and method for secondary offloads in graphics processing unit
TWI807301B (zh) * 2020-10-22 2023-07-01 大陸商上海壁仞智能科技有限公司 適應於圖形處理器的二次卸載的編譯裝置和方法和電腦程式產品

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120158631A1 (en) * 2010-12-15 2012-06-21 Scientific Conservation, Inc. Analyzing inputs to an artificial neural network
US8972763B2 (en) * 2011-12-05 2015-03-03 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US8970596B2 (en) * 2012-02-17 2015-03-03 Apple Inc. Using render-graph characteristics to optimize the rendering of an adjusted image
US9019289B2 (en) * 2012-03-07 2015-04-28 Qualcomm Incorporated Execution of graphics and non-graphics applications on a graphics processing unit
US9304813B2 (en) 2012-07-18 2016-04-05 Intel Corporation CPU independent graphics scheduler for performing scheduling operations for graphics hardware
CN102890643B (zh) * 2012-07-26 2015-01-21 上海交通大学 基于应用效果即时反馈的显卡虚拟化下的资源调度系统
US9384523B1 (en) * 2013-07-30 2016-07-05 Google Inc. Method for reducing input latency on GPU accelerated devices and applications
US8854385B1 (en) 2013-10-03 2014-10-07 Google Inc. Merging rendering operations for graphics processing unit (GPU) performance
US9292903B2 (en) 2013-10-03 2016-03-22 Google Inc. Overlap aware reordering of rendering operations for efficiency
WO2015080719A1 (en) * 2013-11-27 2015-06-04 Intel Corporation Apparatus and method for scheduling graphics processing unit workloads from virtual machines
US9477480B2 (en) * 2014-01-30 2016-10-25 Nvidia Corporation System and processor for implementing interruptible batches of instructions
KR101855311B1 (ko) * 2014-02-20 2018-05-09 인텔 코포레이션 그래픽 처리 유닛을 위한 작업 부하 일괄 제출 메커니즘
US9530174B2 (en) 2014-05-30 2016-12-27 Apple Inc. Selective GPU throttling
US10133597B2 (en) 2014-06-26 2018-11-20 Intel Corporation Intelligent GPU scheduling in a virtualization environment
US10521874B2 (en) 2014-09-26 2019-12-31 Intel Corporation Method and apparatus for a highly efficient graphics processing unit (GPU) execution model
CN107710757B (zh) 2015-06-04 2021-08-10 英特尔公司 用于缓慢运动视频记录的自适应批量编码
CN107743636B (zh) 2015-06-07 2021-07-23 苹果公司 用于高效实时渲染预先不知道的图形的图形引擎和环境
CN105224410A (zh) * 2015-10-19 2016-01-06 成都卫士通信息产业股份有限公司 一种调度gpu进行批量运算的方法及装置
WO2017143522A1 (en) * 2016-02-23 2017-08-31 Intel Corporation Graphics processor workload acceleration using a command template for batch usage scenarios
CN107992328A (zh) * 2016-10-26 2018-05-04 深圳市中兴微电子技术有限公司 一种数据处理的方法、装置和片上系统
US10204394B2 (en) * 2017-04-10 2019-02-12 Intel Corporation Multi-frame renderer
CN109729113B (zh) * 2017-10-27 2021-03-23 伊姆西Ip控股有限责任公司 管理专用处理资源的方法、服务器系统和计算机程序产品
KR102491606B1 (ko) * 2018-01-09 2023-01-26 삼성전자주식회사 커맨드 세트 기반 리플레이를 통해 수행 정보를 수집하는 프로세서 장치
US10713747B2 (en) 2018-06-08 2020-07-14 Honeywell International Inc. System and method for distributed processing of graphic server components
US10692169B2 (en) 2018-09-28 2020-06-23 Apple Inc. Graphics driver virtual channels for out-of-order command scheduling for a graphics processor
CN109558235B (zh) * 2018-11-30 2020-11-06 杭州迪普科技股份有限公司 一种处理器的调度方法、装置及计算机设备
US10861126B1 (en) * 2019-06-21 2020-12-08 Intel Corporation Asynchronous execution mechanism
CN110502348B (zh) * 2019-07-23 2023-10-27 中国航空无线电电子研究所 基于服务的gpu指令提交服务器
US11586472B2 (en) * 2019-12-10 2023-02-21 Advanced Micro Devices, Inc. Method of task transition between heterogenous processors
CN112015474B (zh) * 2020-08-28 2024-01-26 格兰菲智能科技有限公司 电子装置及其命令数量减少方法
US20210117246A1 (en) 2020-09-25 2021-04-22 Intel Corporation Disaggregated computing for distributed confidential computing environment
CN113051071A (zh) * 2021-03-02 2021-06-29 长沙景嘉微电子股份有限公司 命令提交方法和装置、命令读取方法和装置、电子设备
US11886433B2 (en) * 2022-01-10 2024-01-30 Red Hat, Inc. Dynamic data batching for graph-based structures

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125701A1 (en) * 2003-12-03 2005-06-09 International Business Machines Corporation Method and system for energy management via energy-aware process scheduling
US7692642B2 (en) * 2004-12-30 2010-04-06 Intel Corporation Method and apparatus for controlling display refresh
US8022958B2 (en) * 2007-04-04 2011-09-20 Qualcomm Incorporated Indexes of graphics processing objects in graphics processing unit commands
US8310491B2 (en) * 2007-06-07 2012-11-13 Apple Inc. Asynchronous notifications for concurrent graphics operations
US8237723B2 (en) * 2007-06-07 2012-08-07 Apple Inc. Deferred deletion and cleanup for graphics resources
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
US8477143B2 (en) 2008-03-04 2013-07-02 Apple Inc. Buffers for display acceleration

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI506586B (zh) * 2012-05-02 2015-11-01 Nvidia Corp 基於伺服器之圖形處理技術
US9311169B2 (en) 2012-05-02 2016-04-12 Nvidia Corporation Server based graphics processing techniques
US9542715B2 (en) 2012-05-02 2017-01-10 Nvidia Corporation Memory space mapping techniques for server based graphics processing
US9613390B2 (en) 2012-05-02 2017-04-04 Nvidia Corporation Host context techniques for server based graphics processing
US9805439B2 (en) 2012-05-02 2017-10-31 Nvidia Corporation Memory space mapping techniques for server based graphics processing
US9591358B2 (en) 2013-03-15 2017-03-07 Intel Corporation Media playback workload scheduler
US11663044B2 (en) 2020-10-22 2023-05-30 Shanghai Biren Technology Co., Ltd Apparatus and method for secondary offloads in graphics processing unit
TWI807301B (zh) * 2020-10-22 2023-07-01 大陸商上海壁仞智能科技有限公司 適應於圖形處理器的二次卸載的編譯裝置和方法和電腦程式產品
US11748077B2 (en) 2020-10-22 2023-09-05 Shanghai Biren Technology Co., Ltd Apparatus and method and computer program product for compiling code adapted for secondary offloads in graphics processing unit

Also Published As

Publication number Publication date
CN102859492B (zh) 2016-09-28
EP2383648A1 (en) 2011-11-02
US20130057563A1 (en) 2013-03-07
US9001137B2 (en) 2015-04-07
CN102859492A (zh) 2013-01-02
WO2011134942A1 (en) 2011-11-03
EP2383648B1 (en) 2020-02-19

Similar Documents

Publication Publication Date Title
TW201207735A (en) Technique for GPU command scheduling
JP6381734B2 (ja) グラフィックス計算プロセススケジューリング
EP2315124B1 (en) Methods and systems for remoting three dimensional graphics
US8310492B2 (en) Hardware-based scheduling of GPU work
US9734546B2 (en) Split driver to control multiple graphics processors in a computer system
US9417929B2 (en) Runtime profile determinations of virtual machines for graphics processing unit (GPU) allocation
JP6228459B2 (ja) システムコール要求の通信の最適化
JP6086868B2 (ja) ユーザモードからのグラフィックス処理ディスパッチ
US20090307428A1 (en) Increasing remote desktop performance with video caching
KR20200054403A (ko) 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법
JP2014508982A (ja) 異種処理デバイスの動的ワークパーティション
US10719970B2 (en) Low latency firmware command selection using a directed acyclic graph
KR20140105609A (ko) 온라인 게이밍
JP2015515052A (ja) グラフィックス処理ユニット上でのグラフィックスアプリケーションおよび非グラフィックスアプリケーションの実行
US10037225B2 (en) Method and system for scheduling computing
WO2021143590A1 (zh) 一种分布式容器镜像构建调度系统及方法
US20160162324A1 (en) Manageable external wake of virtual machines
US20200379804A1 (en) Multi-level scheduling
Barbieru et al. Soft real-time hadoop scheduler for big data processing in smart cities
WO2024037068A1 (zh) 任务调度方法、电子设备及计算机可读存储介质
Huang et al. Dust: Real-time code offloading system for wearable computing
WO2023020177A1 (zh) 一种任务调度方法、游戏引擎、设备及存储介质
JP2013114538A (ja) 情報処理装置、情報処理方法及び制御プログラム
Bhuiyan et al. Capability-aware energy-efficient virtual machine scheduling in heterogeneous datacenters
CN113032154B (zh) 一种虚拟cpu的调度方法、装置、电子设备及存储介质