TWI547811B - 選擇性圖形處理單元(gpu)節流 - Google Patents

選擇性圖形處理單元(gpu)節流 Download PDF

Info

Publication number
TWI547811B
TWI547811B TW104116883A TW104116883A TWI547811B TW I547811 B TWI547811 B TW I547811B TW 104116883 A TW104116883 A TW 104116883A TW 104116883 A TW104116883 A TW 104116883A TW I547811 B TWI547811 B TW I547811B
Authority
TW
Taiwan
Prior art keywords
gpu
utilization
gpu utilization
thermal
handler
Prior art date
Application number
TW104116883A
Other languages
English (en)
Other versions
TW201608391A (zh
Inventor
厄梅許 蘇瑞席 維萱帕恩
德瑞克R 庫馬
西西里 馬利 弗里特
安東尼 格朗漢 桑布特
哈許瓦德漢P 格帕拉奎席南
威廉E 三世 達門
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 TW201608391A publication Critical patent/TW201608391A/zh
Application granted granted Critical
Publication of TWI547811B publication Critical patent/TWI547811B/zh

Links

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/04Maintaining the quality of display appearance
    • G09G2320/041Temperature compensation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • 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

Description

選擇性圖形處理單元(GPU)節流 相關申請案
申請者主張2014年5月30日申請之先前同在申請中臨時申請案第62/006,009號之優先權益,該申請案之全文以引用之方式併入。
本發明大體上係關於裝置熱管理,且更特定言之係關於藉由選擇性節流裝置圖形處理單元來管理裝置熱管理。
一種裝置通常可包括一或多個圖形處理單元(GPU),該等GPU用以處理該裝置的圖形或通用操作。該等GPU中之每一者為專用電子電路,該電子電路經設計以快速操縱及改變記憶體以加速圖框緩衝器中意欲用於輸出至顯示器之影像的創建。舉例而言,GPU可用以轉碼視訊、為使用者介面(UI)呈現圖形、視訊編碼/解碼、OpenCL等。
此等GPU操作中之每一者將致使裝置消耗導致熱量由該裝置產生的功率。此產生之熱量可添加至施加至該裝置之熱負荷。過多熱負荷可能影響裝置效能,且在極端情況下可導致裝置關機。現有裝置可藉由針對所有處理程序全局地降低GPU操作頻率來減輕熱負荷,而不考慮GPU操作是否用於批次處理程序或支援使用者介面操作之處理程序。
本發明描述藉由選擇性節流一裝置之圖形處理單元操作來管理 該裝置之熱分佈的裝置的方法及裝置的設備。在例示性實施例中,裝置監視該裝置之熱分佈,其中該裝置執行利用該裝置之圖形處理單元之複數個處理程序。另外,複數個處理程序包括高優先級處理程序及低優先級處理程序。若該裝置之熱分佈超過熱臨限值,則裝置減少對於低優先級處理程序之第一GPU利用率且維持對於高優先級處理程序之第二GPU利用率。裝置進一步使用第一GPU利用率與GPU執行低優先級處理程序且使用第二GPU利用率與GPU執行高優先級處理程序。
本發明亦描述其他方法及設備。
100‧‧‧裝置
102‧‧‧中央處理單元(CPU)
104‧‧‧整合圖形
106‧‧‧圖形處理單元(GPU)
108‧‧‧輸入/輸出(IO)子系統
110‧‧‧熱精靈協助程式
112‧‧‧核心程式
114‧‧‧驅動程式
116‧‧‧平台外掛程式
118‧‧‧系統管理控制器
120‧‧‧感測器
122‧‧‧硬體
124‧‧‧作業系統
300‧‧‧處理程序
302‧‧‧區塊
304‧‧‧區塊
306‧‧‧區塊
308‧‧‧區塊
310‧‧‧區塊
312‧‧‧區塊
400‧‧‧處理程序
402‧‧‧區塊
404‧‧‧區塊
406‧‧‧區塊
500A‧‧‧GPU利用率
500B‧‧‧GPU利用率
600‧‧‧GPU節流模組
602‧‧‧接收熱資料模組
604‧‧‧比較較高熱臨限值模組
606‧‧‧比較較低熱臨限值模組
608‧‧‧增加GPU節流模組
610‧‧‧減少GPU節流模組
700‧‧‧GPU處理模組
702‧‧‧選擇模組
704‧‧‧執行模組
800‧‧‧資料處理系統
803‧‧‧匯流排
804‧‧‧快取記憶體
805‧‧‧微處理器
807‧‧‧唯讀記憶體
809‧‧‧揮發性隨機存取記憶體
811‧‧‧非揮發性記憶體
813‧‧‧顯示控制器及顯示裝置
815‧‧‧輸入/輸出裝置
819‧‧‧輸入/輸出控制器
900‧‧‧資料處理系統
901‧‧‧記憶體
903‧‧‧無線收發器
905‧‧‧音訊輸入/輸出子系統
909‧‧‧顯示控制器及顯示裝置
911‧‧‧處理系統
913‧‧‧輸入裝置
915‧‧‧選用之輸入/輸出裝置
917‧‧‧通信埠
在隨附圖式之圖中藉由實例且無限制的方式說明本發明,在該等圖中,相同參考指示類似元件。
圖1為藉由選擇性節流一裝置之圖形處理單元操作來減輕該裝置之熱分佈之裝置的一實施例的方塊圖
圖2A至圖2C為用於不同層級之GPU節流之圖形處理單元(GPU)節流表之說明。
圖3為基於裝置之熱資料來管理GPU節流之處理程序之一實施例的流程圖。
圖4為根據處理程序之服務品質來管理GPU執行之處理程序之一實施例的流程圖。
圖5A至圖5B為對於高及低優先級處理程序之GPU利用率之一實施例之方塊圖。
圖6為基於該裝置之熱資料管理I/GPU節流之熱精靈協助程式之一實施例的方塊圖。
圖7為根據處理程序之服務品質管理GPU執行之GPU之一實施例的方塊圖。
圖8說明可結合本文所描述之實施例使用的典型電腦系統之一個 實例例。
圖9展示可與本發明之一項實施例一起使用的資料處理系統之實例。
本發明描述一種方法及一種裝置之設備,該裝置藉由選擇性節流該裝置之圖形處理單元操作來管理裝置之熱分佈。在以下描述中,闡述大量具體細節以提供對本發明之實施例之澈底解釋。然而,熟習此項技術者將顯而易見,本發明之實施例可在無此等具體細節的情況下進行實踐。在其他情況下,未詳細展示熟知組件、結構及技術,以便不混淆對此描述之理解。
本說明書對「一項實施例」或「實施例」之參考意謂結合實施例描述之特定特徵、結構或特性可包括於本發明的至少一個實施例中。本說明書中之各處出現之片語「在一項實施例中」不必皆指代同一實施例。
在以下描述及申請專利範圍中,可使用術語「耦接」及「連接」連同其衍生詞。應理解,此等術語並不意欲作為彼此之同義詞。「耦接」用以指示可或可不與彼此直接實體或電接觸之兩個或兩個以上元件彼此合作或互動。「連接」用以指示在彼此耦接之兩個或兩個以上元件之間的通信之建立。
在隨後之圖式中描繪之處理程序藉由包含硬體(例如電路、專用邏輯等)、軟體(諸如在通用電腦系統或專用機器上執行)或兩者之組合之處理邏輯執行。儘管下文依照一些順序操作描述處理程序,但應瞭解,所描述之一些操作可以不同次序執行。此外,一些操作可並行而非按順序執行。
術語「伺服器」、「用戶端」及「裝置」意欲大體上指代資料處理系統而非具體地指代伺服器、用戶端及/或裝置之特定外觀尺寸。
描述一種方法及一種置之設備,該裝置藉由選擇性節流該裝置之圖形處理單元(GPU)操作來管理裝置之熱分佈。在一項實施例中,裝置藉由限制對於處理程序中之一者、一些、或全部之GPU利用率來選擇性節流GPU操作,以使得總體GPU利用率降低,但用於較高服務品質(QoS)優先級處理程序之GPU操作不受影響或其受到的影響小於用於QoS優先級處理程序之GPU操作。在一項實施例中,裝置監視該裝置之熱資料。若熱資料達到或超過一或多個熱臨限值,則該裝置選擇性節流用於不同處理程序之GPU操作。在此實施例中,每一處理程序操作具有QoS優先級(或「優先級」)。每一優先級表示處理程序是否為不應節流(或在更多熱負荷下節流)的重要處理程序或處理程序是否可為可在更少熱負荷下節流之較不重要的處理程序。舉例而言且在一項實施例中,與使用者介面操作相關聯之處理程序將具有較高優先級(例如,對於UI或圖形視覺之圖形呈現、視訊呼叫之編碼/解碼、至無線顯示裝置之圖框緩衝器傳輸之編碼,及/或其他類型之高優先級處理程序),而與批次處理程序(例如,視訊轉碼、批次解碼/編碼、背景串流計算工作量、不頻繁或非交互圖形輸出及/或其他類型之批次式處理程序)相關聯之處理程序將具有較低優先級。該裝置可包括多種不同處理程序優先級。該等優先級中之每一者具有相關聯的GPU利用率。GPU利用率係每一處理程序在GPU執行時間槽期間可使用之容許GPU資源。該裝置藉由基於該裝置上之當前熱負荷限制對於不同優先級之GPU利用率來選擇性節流總體裝置GPU使用。舉例而言且在一項實施例中,若裝置熱負荷增加,則該裝置可限制最低或較優先級GPU利用率。此將減少對於此等較低優先級之GPU使用,但使對於較高優先級之GPU使用保持不變。隨著裝置上之熱負荷進一步增加,裝置可增加較低優先級處理程序之GPU節流及/或開始節流較高優先級處理程序。在另一實施例中,隨著裝置上之熱負荷減少,該裝置可 選擇性放寬對於不同優先級處理程序之GPU節流。
圖1為藉由選擇性節流裝置之GPU操作來減輕裝置之熱分佈之裝置100的一項實施例之方塊圖。在一項實施例中,裝置100可為個人電腦、膝上型電腦、伺服器、行動裝置(例如,智慧型電話、膝上型電腦、個人數位助理、音樂播放裝置、遊戲裝置等)、網路元件(例如,路由器、交換器、閘道器等)及/或能夠執行多個應用程式之任何裝置。在一項實施例中,裝置100可為實體或虛擬裝置。在圖1中,裝置100包括一或多個中央處理單元(CPU)102、圖形處理單元106、輸入/輸出(I/O)子系統108、驅動程式114、作業系統124、系統管理控制器(SMC)118、感測器120及平台外掛程式116。在一項實施例中,CPU 102為通用處理裝置(諸如微處理器或另一類型之處理器)且耦接至作業系統124。更特定而言,CPU 102可為複雜指令集運算(CISC)微處理器、精簡指令集運算(RISC)微處理器、超長指令字(VLIW)微處理器、實施其他指令集之處理器或實施指令集集合之處理器。中央處理單元(CPU)102亦可為一或多個專用處理裝置,諸如特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、數位信號處理器(DSP)、網路處理器或類似者。在一項實施例中,CPU 102可包括一或多個CPU且CPU中之每一者可包括一或多個處理核心。在一項實施例中,CPU 102中之一或多者可包括整合圖形104,其中整合圖形104為與CPU 102之記憶體共用記憶體之圖形處理單元。雖然在一項實施例中,整合圖形104為對應CPU 102之部分,但在替代實施例中,整合圖形處於與對應CPU 102相同之主板上。在一項實施例中,裝置可具有一或多個GPU 106、整合圖形104及/或其組合。
在一項實施例中,GPU 104為專用電子電路,該電路經設計以快速操縱且更改記憶體以加速圖框緩衝器中意欲用於輸出至顯示器之影像的創建,且GPU 104耦接至作業系統。在另一實施例中,GPU 104 可用於其他通用計算,諸如在圖形處理單元上之通用計算。在此實施例中,在圖形處理單元上之通用計算為用以在傳統地由中央處理單元處置之應用程式中執行計算的圖形處理單元之利用率。舉例而言且在一項實施例中,圖形處理單元可用於串流處理,該串流處理正對記錄集合(例如,向量處理、紋理處理或另一類型之資料結構)執行相同或類似操作。在一項實施例中,GPU 104可包括一或多個GPU且該等GPU中之每一者可包括一或多個圖形處理核心。
在一項實施例中,I/O子系統108包括儲存控制器及用以儲存裝置之資料之儲存器。在一項實施例中,作業系統124係用以管理裝置硬體資源之軟體集合且為其他執行中之電腦程式(諸如應用程式)提供共同服務。在一項實施例中,系統管理控制器118為控制裝置功率流及風扇速度之子系統。在此實施例中,系統管理控制器118耦接至作業系統124、感測器120及硬體122。在一項實施例中,感測器106包括監視及記錄關於裝置100之熱分佈之資料的感測器。在此實施例中,熱分佈為關於裝置100之熱特性之資料。舉例而言且在一項實施例中,熱分佈可包括隨時間變化之裝置100溫度、隨時間變化之裝置100模組溫度(例如儲存溫度、CPU裸晶溫度、裝置外殼之底殼溫度、風扇速度及/或與裝置100之熱特性有關的其他資料)。在一項實施例中,感測器120係量測裝置100之熱特性之一或多個感測器。舉例而言且在一項實施例中,感測器120可包括用於裝置溫度之感測器、用於I/O子系統108之感測器、風扇速度感測器、虛擬感測器(例如,自其他正讀取之感測器及其他熱模型導出之值)。在一項實施例中,驅動程式114為軟體層,其將來自應用程式或框架層之高級命令轉譯為可藉由其控制之模組解譯之命令。舉例而言且在一項實施例中,媒體驅動程式控制GPU上之媒體功能,3D驅動程式控制GPU之功能。在一項實施例中,驅動程式114影響GPU之行為,因此GPU節流可在此層中執行。在一 項實施例中,驅動程式114包括用以執行如在以下圖4及圖7中所描述的GPU節流之模組。在一項實施例中,平台外掛程式116係含有平台/裝置特定調諧參數之模組。
在一項實施例中,作業系統124調整GPU 106之操作以減輕裝置100之熱分佈。在此實施例中,作業系統124包括熱精靈協助程式(thermald)110及核心程式112。在此實施例中,熱精靈協助程式110為選擇性節流一或多個執行中處理程序之GPU操作以便減輕裝置100之熱環境的精靈協助程式。在一項實施例中,熱精靈協助程式110接收熱分佈之熱資料且判定熱資料是否已超過一或多個熱臨限值中之一者。在一項實施例中,裝置可經組態用於若干不同熱臨限值,其中每一熱臨限值具有不同GPU節流層級。在此實施例中,超過熱臨限值可意謂熱精靈協助程式110調整用於不同優先權層級處理程序之GPU利用率值的集合。在此實施例中,優先級利用率值由GPU使用以根據彼操作之優先級對處理程序之時間片段的GPU執行進行排程。每一處理程序具有相關聯優先級,其指示在藉由GPU執行該處理程序時利用多少GPU的相對重要性。具有較高優先級之處理程序相比較低優先級處理程序更可能接收較高GPU利用率。在一項實施例中,可存在複數個不同優先級(例如,兩個或兩個以上不同優先級)。在一項實施例中,在裝置100之低熱負荷條件下,優先級中之每一者將具有高GPU利用率(例如接近於或為100%)。隨著裝置100上之熱負荷增加,熱精靈協助程式110調整一或多個不同處理程序優先級之優先級GPU利用率。在一項實施例中,裝置上之熱負荷可增加,係因為該裝置或該裝置之一或多個組件(例如,GPU 106、CPU 102、I/O 108等)之功率消耗增加。
在一項實施例中,熱精靈協助程式110在減少較高優先級處理程序之前選擇性減少較低優先級處理程序之GPU利用率,使得較低優先 級處理程序之GPU執行在較高優先級處理程序之前節流。藉由選擇性節流較低優先級處理程序GPU執行,較高優先級處理程序之該GPU執行未經節流,但總體GPU使用減少,因此減少裝置100之儲存系統之功率消耗及減少由該裝置產生之熱量且降低裝置100上之熱負荷。若裝置100上之熱負荷繼續增加,則熱精靈協助程式110可進一步節流較低優先級處理程序或開始節流較高優先級處理程序。在一項實施例中,熱精靈協助程式110節流較低優先級處理程序及較高優先級處理程序兩者。在另一實施例中,隨著裝置之熱負荷減少,熱精靈協助程式110藉由放寬置於不同優先級處理程序上之束縛來減少或去除較低及/或較高層級之節流。在此實施例中,若裝置之熱負荷變低,則熱精靈協助程式110將一個、一些或所有處理程序之優先級還原為普通(例如,100% GPU利用率)。GPU節流可藉由節流GPU 106中之一者、部分或所有、整合圖形104或該兩者而發生。下文在圖4中進一步描述管理不同優先級處理程序之GPU執行。在一項實施例中,核心程式112為作業系統102之基本組件且提供裝置資源(例如,處理器、輸入/輸出系統、網路資源等)之抽象層級。
圖2A至圖2C為用於不同層級之GPU節流之圖形處理單元(GPU)節流表200A至200C之圖解。在一項實施例中,GPU節流表200A至200C中之每一者表示用於低至高QoS優先級之GPU利用率百分比。舉例而言,在一項實施例中,圖2A說明GPU節流表200A,其不存在GPU節流。該GPU節流表200A說明在Y軸上之低至高QoS優先級處理程序及在X軸上之0至100%的GPU利用率。由於無GPU節流,低QoS優先級處理程序及高QoS優先級處理程序將各自具有100% GPU利用率,因為每次該GPU針對彼處理程序執行。此意謂藉由GPU執行處理程序中之一者,該GPU以充分利用率執行。在一項實施例中,充分GPU利用率意謂GPU在該GPU可以其操作之最高頻率下執行。舉例而言且在一項 實施例中,若GPU可在高達800MHz之頻率下操作,則該GPU將針對所有處理程序執行800MHz下的處理程序。在此實施例中,充分GPU利用率亦意謂GPU以較高功率及熱負荷在裝置上操作。
隨著裝置上之熱負荷增加,該裝置可節流用於GPU執行之一些較低優先級處理程序。如圖2B中所說明,GPU節流表200B具有較低優先級處理程序之降低的GPU利用率。舉例而言,在一項實施例中,具有高QOS之處理程序(例如,具有優先級0或1之處理程序)將繼續具有100%之GPU利用率。具有較低QoS優先級之處理程序(例如,具有優先級2或3之處理程序)將具有低於100%之GPU利用率。如圖2B中所說明,優先級為2之處理程序將具有75%之GPU利用率,且優先級為3之處理程序將具有50%之GPU利用率。舉例而言且在一項實施例中,若GPU可在高達800MHz之頻率下操作,則該GPU將在800MHz下執行優先級為0或1之處理程序,在600MHz下執行優先級為2之處理程序,且在400MHz下執行優先級為3之處理程序。在此實例中,裝置之總體GPU利用率減少,從而減少裝置上之總熱負荷。此外,高優先級處理程序以充分GPU利用率操作,從而使重要處理程序正常執行。較低優先級將以較小GPU利用率操作。
隨著熱負荷增加,裝置可進一步節流GPU,使得GPU節流影響較低及較高優先級處理程序兩者。如圖2C中所說明,GPU節流表200C具有較低及較高優先級處理程序之降低的GPU利用率。舉例而言且在一項實施例中,優先級為0或1的處理程序將具有75%之GPU利用率。優先級為2的處理程序將具有50%之GPU利用率優先級為3的處理程序(最低優先級處理程序)具有25%之GPU利用率,其為最低GPU利用率。在此實施例中,針對GPU利用率部分地節流較高優先級處理程序,同時更嚴格地節流較低優先級處理程序。舉例而言且在一項實施例中,若GPU可在高達800MH之頻率下操作,則GPU將在600MHz下 執行優先級為0或1之處理程序,在400MHz下執行優先級為2之處理程序及在200MHz下執行優先級為3之處理程序。
圖3為基於裝置之熱資料來管理GPU節流之處理程序300之一項實施例的流程圖。在一項實施例中,藉由管理I/O節流之熱精靈協助程式(諸如上文在圖1中所描述的精靈協助程式110)執行處理程序300。在圖4中,處理程序300以在區塊302處接收熱資料開始。在一項實施例中,熱資料為與裝置之熱分佈或其他熱特性相關之資料。舉例而言,在一項實施例中,熱資料可為關於裝置溫度、裝置之特定模組之溫度的時間相關熱資料、關於風扇使用之資料及/或與裝置之熱特性相關之其他資料。在區塊304處,處理程序300判定熱資料是否大於較高臨限值。在一項實施例中,較高臨限值為指示裝置可具有較大GPU節流以便減輕裝置上之熱負荷的臨限值。舉例而言且在一項實施例中,熱臨限值可與裝置之溫度、裝置之模組、風扇速度或某一其他熱特性相關。作為另一實例及實施例,較高熱臨限值之集合可為裝置溫度是否超過40℃、45℃、50℃等。在一項實施例中,熱資料可超過一個以上的臨限值。在另一實施例中,熱臨限值可基於當日時間或使用者活動。舉例而言且在一項實施例中,若處理程序300瞭解使用者極有可能在近期(比方說自午餐返回時)使用該機器,則處理程序300可選擇節流低QoS任務以留下「熱餘量」,因為任務使用者很可能來執行。此對於不具有主動散熱之風扇的裝置尤其重要。若熱資料大於較高臨限值,則處理程序300調整GPU節流表以增加區塊308處之GPU節流。在一項實施例中,處理程序300藉由節流一個、一些或所有處理程序優先級的一或多個不同GPU利用率來調整GPU節流表。在此實施例中,處理程序300可開始節流優先級或進一步節流已節流之優先權層級。在一項實施例中,處理程序300藉由限制用於彼優先級之GPU執行之GPU利用率來節流優先級。舉例而言,在一項實施例中,處理 程序300可藉由限制100%的GPU執行降至80%來節流優先級,如上文在圖2中所描述。替代地,處理程序300可節流自50%的GPU利用率限制降至25%之優先級。藉由節流優先級之GPU利用率,處理程序300選擇性節流不同優先級,從而允許較大GPU利用率用於較高優先級且較低GPU利用率用於較低優先級。此情況允許用於裝置的較少GPU功率消耗,同時以較低GPU利用率用於較低優先級處理程序為代價而具有用於較高優先級處理程序之GPU利用率。儲存系統之較低功率消耗可有助於減輕裝置上之熱負荷。
若熱資料不大於較高臨限值,則處理程序300在區塊306處判定熱資料是否低於較低臨限值。在一項實施例中,若熱資料低於較低臨限值,則當裝置上之熱負荷可能少時,處理程序300可放寬GPU節流。若熱資料低於較低臨限值,則在區塊310處,處理程序300調整GPU利用率以減少GPU節流。在一項實施例中,處理程序300放寬置於用於一或多個不同優先級的I/O輸送量上的限制。舉例而言且在一項實施例中,處理程序300可將具有80% GPU利用率之優先級放寬回至無限制的100% GPU利用率。替代地,處理程序300可將25% GPU利用率下之受限優先級放寬至較不受限之50% GPU利用率。若熱資料不低於較低臨限值,則處理程序300在區塊312處維持當前GPU節流。執行進行至區塊312以上。
如上文所描述,裝置可回應於裝置之熱資料而選擇性限制並放寬不同優先級GPU利用率。裝置使用不同GPU利用率來處理裝置GPU操作。圖4為根據處理程序之服務品質來管理GPU執行之處理程序400之一項實施例的流程圖。在一項實施例中,處理程序400藉由GPU處理模組700執行,該GPU處理模組係驅動程式之一部分,諸如,上文在圖1中所描述之GPU 106或整合圖形104。在圖4中,處理程序400以在區塊402處在當前時間槽內選擇用於GPU執行之處理程序開始。在 一項實施例中,GPU排程用於在不同時間槽中執行之處理程序,使得GPU可執行多個處理程序。在特定時間槽期間,GPU將執行處理程序之任務且可能將在另一時間槽內切換至另一處理程序。在一項實施例中,排程器藉由使用用於每一時間槽之環形緩衝器來記錄GPU效能。在此實施例中,因為任務置於多個基於優先級之佇列中,所以排程器允許先占一或多個飛行中處理程序之任務。當一個工作單元藉由GPU完成時,存在接下來將執行哪一處理程序之決策。若存在處於一未經節流之佇列的處理程序,則選擇最高優先級處理程序以供GPU執行。對於較低優先級,排程器考慮GPU利用率並判定GPU利用率是否到期。在一項實施例中,有可能以降低的頻率執行GPU或以相同頻率執行GPU,但執行較短時間週期,以允許較大睡眠週期(例如GPU閒置及處於低功率狀態)。在一項實施例中,可有利的係以較高頻率執行GPU達較短時間週期且允許GPU進入閒置功率狀態,而非以較低頻率執行該GPU,但是使該GPU保持忙碌達更長時間週期。舉例而言且在一項實施例中,若存在用於GPU執行工作的空間,則處理程序400排程較低優先級處理程序。在一項實施例中,存在匱乏機制,其經由軟體排程器實施以防止較低優先級處理程序形式匱乏。在具有對應於不同優先級處理程序之不同工作佇列的情況下,有可能拖延較低優先級佇列之排程並降低在GPU上提交之工作量。
在區塊404處,處理程序400使用GPU並根據用於彼處理程序之QoS優先級之GPU利用率來執行處理程序。如上文所描述,每一處理程序將具有用以判定GPU利用率之QoS優先級。在一項實施例中,GPU利用率為GPU在執行處理程序達時間槽時以其操作之GPU利用率。在一項實施例中,GPU利用率是GPU最大或正常操作頻率之百分比。在另一實施例中,GPU利用率為GPU利用率之平均值。在此實施例中,處理程序400可在一或多個時間槽中以高GPU利用率(例如處於 或接近100%)執行處理程序且在另一時間槽中以低GPU利用率執行處理程序。舉例而言且在一項實施例中,若GPU利用率為75%,則處理程序400可在四分之三時間槽內執行具有GPU利用率之處理程序且在四分之一槽內使GPU閒置(例如,0%利用率)。在一項實施例中,在一時間槽內使GPU閒置可產生允許將硬體組件放入低功率狀態從而允許裝置更快冷卻的條件。處理程序400在區塊406處前進至下一時間槽。執行進行至區塊402以上。
如上文所描述,在GPU排程及執行一處理程序的時間槽期間,藉由處理程序400應用經節流之GPU利用率。圖5A至圖5B為用於高及低優先級處理程序之GPU利用率500A-B之實施例之方塊圖。在圖5A中,GPU在不同時間槽內以不同GPU利用率執行高及低優先級處理程序。在一項實施例中,以100% GPU利用率(例如,高優先級處理程序時間槽502A-D)執行高優先級處理程序,且以低於100% GPU利用率(例如,低優先級處理程序時間槽504A-C)執行低優先級處理程序。在此實施例中,在每一時間槽以相同低GPU利用率執行低優先級處理程序。對比而言,在圖5B中,在不同時間槽以不同GPU利用率執行低優先級處理程序。在一項實施例中,在時間槽554A中,GPU利用率為100%,然而該GPU在時間槽554B-C為閒置的。藉由利用不同GPU利用率以用於低優先級處理程序,可降低用於此處理程序之總GPU利用率。另外,在圖5B中,在時間槽552A-D以100% GPU利用率執行高優先級處理程序。而在一項實施例中,圖5A至圖5B說明有更多時間槽分配給高優先級處理程序,在替代實施例中,與較高優先級處理程序相比,較低優先級處理程序可分配有相同或更大數目之時間槽。
圖6為基於裝置之熱資料管理GPU節流之熱精靈協助程式(thermald)110之一項實施例的方塊圖。在一項實施例中,精靈協助程式110包括GPU節流模組600,其判定是否選擇性將GPU節流應用或放 寬至一優先級。在一項實施例中,GPU節流模組600包括接收熱資料模組602、比較較高熱臨限值模組604、比較較低熱臨限值606、增加GPU節流模組608及減少GPU節流模組610。在一項實施例中,接收熱資料模組602接收熱資料,如上文在圖3中之區塊302處所描述。比較較高熱臨限值模組604將熱資料與較高熱臨限值比較,如上文在圖3中之區塊304處所描述。比較較低熱臨限值模組606將熱資料與較低熱臨限值比較,如上文在圖3中之區塊306處所描述。增加GPU節流模組608增加對於一或多個處理程序之GPU節流,如上文在圖3中之區塊308處所描述。減少GPU節流模組610減少對於一或多個處理程序之GPU節流,如上文在圖3中之區塊310處所描述。
圖7為根據處理程序之服務品質管理GPU執行之GPU 106之一項實施例的方塊圖。在一項實施例中,GPU 106包括GPU處理模組700,其應用用於處理程序之對應GPU利用率。在一項實施例中,GPU處理模組700包括選擇模組702及執行模組704。在一項實施例中,選擇模組702選擇藉由GPU執行之處理程序,且執行模組704根據GPU利用率用GPU執行彼處理程序,分別如上文在圖4中之區塊402及404中所描述。在一項實施例中,整合圖形104亦可包括GPU處理模組700。
圖8展示與本發明之一項實施例一起使用之資料處理系統800之一項實例。舉例而言,可實施系統800,其包括如圖1中所示之裝置100。應注意,雖然圖8說明電腦系統之各種組件,但並不意欲表示互連該等組件之任何特定架構或方式,因為此等細節並不與本發明密切相關。亦將瞭解,網路電腦及其他資料處理系統或其他消費型電子裝置(其具有較少組件或可能較多組件)亦可用於本發明。
如圖8中所示,呈資料處理系統之形式之電腦系統800包括匯流排803,該匯流排耦接於微處理器805及唯讀記憶體(ROM)807與揮發 性RAM 809及非揮發性記憶體811。微處理器805可自記憶體807、809、811擷取指令且執行該等指令以執行上文所描述之操作。匯流排803將此等各種組件互連在一起且亦將此等組件805、807、809及811與顯示控制器及顯示裝置88互連並與周邊裝置互連,該等周邊裝置諸如輸入/輸出(I/O)裝置,其可為滑鼠、鍵盤、數據機、網路介面、印表機及此項技術中所熟知的其他裝置)。通常,輸入/輸出裝置815經由輸入/輸出控制器813耦合至系統。揮發性隨機存取記憶體(RAM)809通常實施為動態RAM(DRAM),其不斷需要電力以便再新或維持記憶體中之資料。
大容量儲存器811通常為磁性硬碟機或磁性光碟機或光碟機或DVD ROM或快閃記憶體或其他類型之記憶體系統,該儲存器甚至在自系統去除電力之後仍維持資料(例如,大量資料)。通常,大容量儲存器811亦將為隨機存取記憶體,但此並不必要。雖然圖8展示大容量儲存器811為直接耦合至資料處理系統中之大部分組件的本端裝置,但應瞭解,本發明可利用遠離系統之非揮發性記憶體,諸如,經由網路介面(諸如數據機、乙太網路介面或無線網路)耦接至資料處理系統之網路儲存裝置。如此項技術中所熟知,匯流排803可包括經由各種橋接器、控制器及/或配接器彼此連接之一或多個匯流排。
圖9展示可與本發明之一個實施例一起使用的另一資料處理系統900之實例。舉例而言,系統900可實施為如圖1中所示之裝置100。圖9中所展示之資料處理系統900包括處理系統911,該處理系統可為一或多個微處理器,或其可為單晶片系統積體電路,且系統亦包括用於儲存資料及程式以供處理系統執行的記憶體901。系統900亦包括音訊輸入/輸出子系統905,其可包括麥克風及揚聲器以用於(例如)經由揚聲器及麥克風播放音樂或提供電話功能性。
顯示控制器及顯示裝置909為使用者提供視覺化使用者介面;此 數位介面可包括圖形使用者介面,其類似於當執行OSX作業系統軟體時在麥金塔電腦上或當執行iOS作業系統時在蘋果iPhone上所展示的介面。系統900亦包括與另一資料處理系統(諸如,圖9之系統900)通信之一或多個無線收發器903。無線收發器可為WLAN收發器、紅外收發器、藍芽收發器及/或無線蜂巢式電話收發器。應瞭解,在某些實施例中,額外組件(圖中未展示)亦可為系統900之一部分,且在某些實施例中比圖9中所展示之組件少的組件亦可用於資料處理系統中。系統900進一步包括用以與另一資料處理系統(諸如,圖8之系統800)通信之一或多個通信埠917。通信埠可為USB埠、Firewire埠、藍芽介面,等。
資料處理系統900亦包括一或多個輸入裝置913,其經提供以允許使用者提供輸入至系統。此等輸入裝置可為小鍵盤或鍵盤或觸控面板或多觸控面板。資料處理系統900亦包括選輸入/輸出裝置915,其可為用於塢之連接器。應瞭解,如此項技術中所熟知,一或多個匯流排(圖中未展示)可用於互連各種組件。圖9中所展示之資料處理系統可為手持型電腦或個人數位助理(PDA),或具有類似PDA功能性之蜂巢式電話,或包括蜂巢式電話之手持型電腦,或媒體播放器(諸如iPod),或組合此等裝置之態樣或功能之裝置(諸如,在一個裝置中與PDA及蜂巢式電話組合之媒體播放器)或嵌入式裝置或其他消費型電子裝置。在其他實施例中,資料處理系統900可為網路電腦或在另一裝置內之嵌入式處理裝置,或其他類型之資料處理系統,其他類型之資料處理系統與圖9中所展示之資料處理系統相比具有較少組件或可能較多組件。
本發明之至少某些實施例可為諸如攜帶型音樂及/或視訊媒體播放器的數位媒體播放器之一部分,該播放器可包括用以呈現媒體之媒體處理系統、用以儲存媒體之儲存裝置且可進一步包括與天線系統及 該媒體處理系統耦接的射頻(RF)收發器(例如,用於蜂巢式電話之RF收發器)。在某些實施例中,儲存於遠端儲存裝置上之媒體可經由RF收發器而傳輸至媒體播放器。媒體可為(例如)音樂或其他音訊、靜態圖片或運動圖片中之一或多者。
攜帶型媒體播放器可包括媒體選擇裝置,諸如來自加利福尼亞州庫帕提諾蘋果公司之iPod®或iPod Nano®媒體播放器上之點選輪輸入裝置、觸控螢幕輸入裝置、按鈕裝置、可移動指標輸入裝置或其他輸入裝置。媒體選擇裝置可用於選擇儲存於儲存裝置及/或遠端儲存裝置上之媒體。在至少某些實施例中,攜帶型媒體播放器可包括顯示裝置,其耦接至媒體處理系統以顯示經由輸入裝置選擇並經由揚聲器或耳機呈現或在顯示裝置上或在顯示裝置與揚聲器或耳機兩者上呈現的媒體之標題或其他指示符。攜帶型媒體播放器之實例經描述於已公開之美國專利案第7,345,671號及美國公開專利案第2004/0224638號中,該兩個專利案以引用之方式併入本文中。
上文描述的內容之部分可藉由諸如專用邏輯電路之邏輯電路或藉由微控制器或執行程式碼指令之其他形式的處理核心來實施。因此,由以上論述教示之處理程序可藉由諸如機器可執行指令之程式碼執行,該等機器可執行指令致使執行此等指令之機器執行某些功能。在此上下文中,「機器」可為將中間形式(「抽象」)指令轉化為處理器特定指令(例如,抽象執行環境,諸如「虛擬機」(例如,Java虛擬機)、解譯器、共同語言運行時間、高階語言虛擬機等)之機器,及/或安置在半導體晶片(例如,藉由電晶體實施之「邏輯電路」)上之電子電路,其經設計以執行諸如通用處理器及/或專用處理器的指令。由以上論述所教示的處理程序(替代為機器或與機器組合)亦可藉由經設計以在不執行程式碼的情況下執行處理程序(或該等處理程序之一部分)之電子電路執行。
本發明亦係關於用於執行本文所描述之操作之設備。此設備可經特別建構以用於所需目的,或該設備可包含由儲存於電腦中之電腦程式選擇性地啟動或重組態之通用電腦。此電腦程式可儲存於電腦可讀儲存媒體中,諸如(但不限於)任何類型之磁碟,包括軟性磁碟、光碟、CD-ROM及磁性光碟、唯讀記憶體(ROM)、RAM、EPROM、EEPROM、磁性卡或光學卡或任何類型之適用於儲存電子指令之媒體,且其每一者耦接至一電腦系統匯流排。
機器可讀媒體包括用於儲存或傳輸呈可由機器(例如,電腦)讀取之形式之資訊的任何機制。舉例而言,機器可讀媒體包括唯讀記憶體(「ROM」);隨機存取記憶體(「RAM」);磁碟儲存媒體;光學儲存媒體;快閃記憶體裝置;等。
製品可用以儲存程式碼。儲存程式碼之製品可體現為(但不限於):一或多個記憶體(例如,一或多個快閃記憶體、隨機存取記憶體(靜態、動態或其他))、光碟、CD-ROM、DVD ROM、EPROM、EEPROM、磁性或光學卡或適合於儲存電子指令之其他類型機器可讀媒體。程式碼亦可藉助於體現在傳播媒體(例如,經由通信鏈路(例如,網路連接))中之資料訊號而自遠端電腦(例如,伺服器)下載至一請求電腦(例如,用戶端)。
先前詳細描述係在對電腦記憶體內之資料位元之運算的演算法及符號表示方面呈現。此等演算法描述及表示為藉由熟習資料處理之技術者用以將其工作之主旨最有效地傳達至其他熟習此項技術者的工具。在此且大體而言設想演算法為導致一所要結果之操作之自相一致序列。該等操作為需要物理量之實體操縱的操作。通常(雖然未必),此等量採取能夠儲存、傳送、組合、比較及以其他方式操縱的電信號或磁信號之形式。已證明將此等信號稱為位、值、元素、符號、字符、項、數字或其類似者時常(主要為了普通用途)為便利的。
然而,應記住,所有此等及類似術語應與適當物理量相關聯且僅為應用於此等量之便利標記。除非另有特定說明,否則如自以上論述顯而易見,應瞭解,貫穿本描述,利用諸如「監視」、「減少」、「增加」、「維持」、「執行」、「處理」、「計算」、「記錄」、「恢復」或其類似者之術語的論述係指電腦系統或類似電子運算裝置的動作或處理程序,將表示為電腦系統之暫存器及記憶體內的物理(電子)量的資料操縱及變換成類似地表示為電腦系統記憶體或暫存器或其他此等資訊儲存、傳輸或顯示裝置內之物理量的其他資料。
本文所呈現之處理程序及顯示器並不固有地與任何特定電腦或其他設備相關聯。根據本文之教示,各種通用系統可與程式一起使用,或其可證明便於建構一較專用設備來執行所描述操作。用於多種此等系統之所需要結構將自下文描述顯而易見。另外,並未參考任何特定程式設計語言而描述本發明。將瞭解,多種程式設計語言可用於實施如本文中所描述的本發明之教示。
前文論述僅描述本發明之一些例示性實施例。熟習此項技術者將自此論述、附隨圖式及申請專利範圍容易地認識到,可在不背離本發明之精神及範疇的情況下進行各種修改。
300‧‧‧處理程序
302‧‧‧區塊
304‧‧‧區塊
306‧‧‧區塊
308‧‧‧區塊
310‧‧‧區塊
312‧‧‧區塊

Claims (20)

  1. 一種具有可執行指令之非暫時性機器可讀媒體,該等可執行指令使一或多個處理單元執行用以管理一裝置之一熱分佈的一方法,該方法包含:監視該裝置之該熱分佈之熱資料,該裝置正執行利用該裝置之一圖形處理單元(GPU)之複數個處理程序,該複數個處理程序包括一高優先級處理程序及一低優先級處理程序;若該裝置之該熱資料超過一第一熱臨限值,則減少用於該低優先級處理程序之一第一GPU利用率,維持用於該高優先級處理程序之一第二GPU利用率;使用該第一GPU利用率與該GPU執行該低優先級處理程序;及使用該第二GPU利用率與該GPU執行該高優先級處理程序,其中在該裝置的熱資料超過一第一熱臨限值之後,該第一GPU利用率不同於該第二GPU利用率,而且該第一GPU利用率及該第二GPU利用率各具有不同百分比的最大GPU頻率。
  2. 如請求項1之非暫時性機器可讀媒體,其中一GPU利用率設定GPU資源之量在藉由該GPU執行一處理程序時用於該處理程序。
  3. 如請求項2之非暫時性機器可讀媒體,其中該GPU利用率可為零。
  4. 如請求項2之非暫時性機器可讀媒體,其中該GPU執行層級大於零且小於100%。
  5. 如請求項1之非暫時性機器可讀媒體,其中該第一GPU利用率小於100%且該第二GPU利用率為100%。
  6. 如請求項1之非暫時性機器可讀媒體,若該裝置之該熱資料超過一第二熱臨限值, 則進一步增加該第一GPU利用率;及減少該第二GPU利用率,其中該第二GPU利用率小於100%。
  7. 如請求項6之非暫時性機器可讀媒體,若該熱資料降至該第二熱臨限值之下,則將該第一GPU利用率及第二該GPU利用率恢復至先前值。
  8. 如請求項1之非暫時性機器可讀媒體,其中該熱資料係選自由以下組成之群組:裝置溫度及可聽風扇噪音。
  9. 如請求項1之非暫時性機器可讀媒體,其中該高優先級處理程序為視覺化處理程序且該低優先級為一批次處理程序。
  10. 如請求項1之非暫時性機器可讀媒體,其中該熱資料之該監視包含:記錄該裝置溫度。
  11. 一種用以管理一裝置之一熱分佈的方法,該方法包含:監視該裝置之該熱分佈之熱資料,該裝置正執行利用該裝置之一圖形處理單元(GPU)之複數個處理程序,該複數個處理程序包括一高優先級處理程序及一低優先級處理程序;若該裝置之該熱資料超過一第一熱臨限值,則減少用於該低優先級處理程序之一第一GPU利用率,及維持用於該高優先級處理程序之一第二GPU利用率;使用該第一GPU利用率與該GPU執行該低優先級處理程序;及使用該第二GPU利用率與該GPU執行該高優先級處理程序,其中在該裝置的熱資料超過一第一熱臨限值之後,該第一GPU利用率不同於該第二GPU利用率,而且該第一GPU利用率及該第二GPU利用率各具有不同百分比的最大GPU頻率。
  12. 如請求項11之方法,其中一GPU利用率設定GPU資源之量在藉由該GPU執行一處理程序時用於該處理程序。
  13. 如請求項11之方法,若該裝置之該熱資料超過一第二熱臨限值,則進一步增加該第一GPU利用率;及減少該第二GPU利用率,其中該第二GPU利用率低於100%。
  14. 如請求項13之方法,若該熱資料降至該第二熱臨限值之下,則將該第一GPU利用率及該第二GPU利用率恢復至先前值。
  15. 如請求項11之方法,其中該熱資料係選自由以下組成之群組:裝置溫度及可聽風扇噪音。
  16. 如請求項11之方法,其中該高優先級處理程序為視覺化處理程序且該低優先級為一批次處理程序。
  17. 一種裝置,其用以管理該裝置之一熱分佈,該裝置包含:一處理器;一記憶體,其經由一匯流排耦接至該處理器;及一處理程序,其藉由該處理器自該記憶體執行,該處理程序使該處理器監視該裝置之該熱分佈之熱資料,該裝置正執行利用該裝置之一圖形處理單元(GPU)之複數個處理程序,該複數個處理程序包括一高優先級處理程序及一低優先級處理程序,若該裝置之該熱資料超過一第一熱臨限值,則減少用於該低優先級處理程序之一第一GPU利用率,且維持用於該高優先級處理程序之一第二GPU利用率,使用該第一GPU利用率與該GPU執行該低優先級處理程序,及使用該第二GPU利用率與該GPU執行該高優先級處理程序,其中在該裝置的熱資料超過一第一熱臨限值之後,該第一GPU利用率不同於該第二GPU利用率,而且該第一GPU利用率及該第二GPU利用率各具有不同百分比的最大GPU頻率。
  18. 如請求項17之裝置,其中一GPU利用率設定GPU資源之量在藉由該GPU執行一處理程序時用於該處理程序。
  19. 如請求項17之裝置,若該裝置之該熱資料超過一第二熱臨限值,則該處理程序進一步使該處理器進一步增加該第一GPU利用率並減少該第二GPU利用率,其中該第二GPU利用率低於100%。
  20. 如請求項19之裝置,若該熱資料降至該第二熱臨限值之下,則該處理程序進一步使該處理器將該第一GPU利用率及該第二GPU利用率恢復至先前值。
TW104116883A 2014-05-30 2015-05-26 選擇性圖形處理單元(gpu)節流 TWI547811B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462006009P 2014-05-30 2014-05-30
US14/503,311 US9530174B2 (en) 2014-05-30 2014-09-30 Selective GPU throttling

Publications (2)

Publication Number Publication Date
TW201608391A TW201608391A (zh) 2016-03-01
TWI547811B true TWI547811B (zh) 2016-09-01

Family

ID=53366256

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104116883A TWI547811B (zh) 2014-05-30 2015-05-26 選擇性圖形處理單元(gpu)節流

Country Status (3)

Country Link
US (1) US9530174B2 (zh)
TW (1) TWI547811B (zh)
WO (1) WO2015183586A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10203746B2 (en) 2014-05-30 2019-02-12 Apple Inc. Thermal mitigation using selective task modulation
US10095286B2 (en) 2014-05-30 2018-10-09 Apple Inc. Thermally adaptive quality-of-service
US20160371118A1 (en) * 2015-06-17 2016-12-22 Intel Corporation Virtual machine management method and apparatus including idling and scheduling of virtual processors
US9892024B2 (en) * 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing
US10064139B2 (en) * 2015-12-26 2018-08-28 Intel IP Corporation Context-assisted thermal management scheme in a portable device
US10373283B2 (en) * 2016-03-14 2019-08-06 Dell Products, Lp System and method for normalization of GPU workloads based on real-time GPU data
US10175731B2 (en) * 2016-06-17 2019-01-08 Microsoft Technology Licensing, Llc Shared cooling for thermally connected components in electronic devices
US11474591B2 (en) * 2016-08-05 2022-10-18 Ati Technologies Ulc Fine-grain GPU power management and scheduling for virtual reality applications
US10133610B2 (en) * 2016-08-16 2018-11-20 International Business Machines Corporation System, method and recording medium for temperature-aware task scheduling
US10402932B2 (en) * 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
WO2020005268A1 (en) * 2018-06-29 2020-01-02 Hewlett-Packard Development Company, L.P. Thermal profile selections based on orientation
US11099628B2 (en) 2018-09-27 2021-08-24 Intel Corporation Throttling of components using priority ordering
EP3829157B1 (en) * 2019-11-29 2024-04-17 Canon Kabushiki Kaisha Recording apparatus, method of controlling recording apparatus, and storage medium
CN113687980B (zh) * 2020-05-19 2024-03-01 北京京东乾石科技有限公司 异常数据自恢复方法、系统、电子设备和可读存储介质
US11508124B2 (en) * 2020-12-15 2022-11-22 Advanced Micro Devices, Inc. Throttling hull shaders based on tessellation factors in a graphics pipeline
US11776085B2 (en) 2020-12-16 2023-10-03 Advanced Micro Devices, Inc. Throttling shaders based on resource usage in a graphics pipeline
US11710207B2 (en) 2021-03-30 2023-07-25 Advanced Micro Devices, Inc. Wave throttling based on a parameter buffer

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289362A1 (en) * 2004-06-24 2005-12-29 Merkin Aaron E Maintaining server performance in a power constrained environment
TWM363648U (en) * 2006-05-12 2009-08-21 Xgi Technology Inc Plug-in graphics module architecture
US20110072178A1 (en) * 2009-09-15 2011-03-24 Arm Limited Data processing apparatus and a method for setting priority levels for transactions
US20130155081A1 (en) * 2011-12-15 2013-06-20 Ati Technologies Ulc Power management in multiple processor system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7345671B2 (en) 2001-10-22 2008-03-18 Apple Inc. Method and apparatus for use of rotational user inputs
US7069189B2 (en) 2002-12-31 2006-06-27 Intel Corporation Method and apparatus for controlling multiple resources using thermal related parameters
US7627343B2 (en) 2003-04-25 2009-12-01 Apple Inc. Media player system
US8237386B2 (en) * 2003-08-15 2012-08-07 Apple Inc. Methods and apparatuses for operating a data processing system
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
US7466316B1 (en) 2004-12-14 2008-12-16 Nvidia Corporation Apparatus, system, and method for distributing work to integrated heterogeneous processors
US7454631B1 (en) 2005-03-11 2008-11-18 Sun Microsystems, Inc. Method and apparatus for controlling power consumption in multiprocessor chip
US8762097B2 (en) * 2006-08-04 2014-06-24 Apple Inc. Method and apparatus for a thermal control system based on virtual temperature sensor
US8386672B2 (en) * 2008-07-08 2013-02-26 Dell Products L.P. Systems, methods and media for disabling graphic processing units
US8854381B2 (en) 2009-09-03 2014-10-07 Advanced Micro Devices, Inc. Processing unit that enables asynchronous task dispatch
EP2383648B1 (en) 2010-04-28 2020-02-19 Telefonaktiebolaget LM Ericsson (publ) Technique for GPU command scheduling
US8942857B2 (en) * 2011-04-22 2015-01-27 Qualcomm Incorporated Method and system for thermal load management in a portable computing device
US8842122B2 (en) 2011-12-15 2014-09-23 Qualcomm Incorporated Graphics processing unit with command processor
US20130162661A1 (en) 2011-12-21 2013-06-27 Nvidia Corporation System and method for long running compute using buffers as timeslices
US10095526B2 (en) 2012-10-12 2018-10-09 Nvidia Corporation Technique for improving performance in multi-threaded processing units
US9261935B2 (en) * 2013-07-01 2016-02-16 Advanced Micro Devices, Inc. Allocating power to compute units based on energy efficiency
US9703355B2 (en) * 2013-08-28 2017-07-11 Qualcomm Incorporated Method, devices and systems for dynamic multimedia data flow control for thermal power budgeting
US9378536B2 (en) * 2014-04-30 2016-06-28 Qualcomm Incorporated CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289362A1 (en) * 2004-06-24 2005-12-29 Merkin Aaron E Maintaining server performance in a power constrained environment
TWM363648U (en) * 2006-05-12 2009-08-21 Xgi Technology Inc Plug-in graphics module architecture
US20110072178A1 (en) * 2009-09-15 2011-03-24 Arm Limited Data processing apparatus and a method for setting priority levels for transactions
US20130155081A1 (en) * 2011-12-15 2013-06-20 Ati Technologies Ulc Power management in multiple processor system

Also Published As

Publication number Publication date
TW201608391A (zh) 2016-03-01
US9530174B2 (en) 2016-12-27
WO2015183586A1 (en) 2015-12-03
US20150348226A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
TWI547811B (zh) 選擇性圖形處理單元(gpu)節流
TWI592802B (zh) 熱調適服務品質等級
TWI553551B (zh) 使用選擇性任務調變之熱減輕
US10970085B2 (en) Resource management with dynamic resource policies
JP6005895B1 (ja) ワット当たりの最適パフォーマンスのためのインテリジェントマルチコア制御
US9690685B2 (en) Performance management based on resource consumption
TWI551985B (zh) 用以管理裝置之熱分佈之方法及裝置以及相關的非暫時性機器可讀媒體
CN110637271B (zh) 用于对便携式计算设备中的沉浸式多媒体工作负载的智能调整的系统和方法
TW200426688A (en) Performance scheduling using multiple constraints
WO2018085167A1 (en) Thread importance based processor core partitioning
EP3391211B1 (en) Controlling scheduling of a gpu
US20170097854A1 (en) Task placement for related tasks in a cluster based multi-core system
TWI566087B (zh) Cpu使用控制系統及方法
WO2014098997A1 (en) Channel aware job scheduling
CN104756043B (zh) 用于以有保证的瞬态最后期限来控制中央处理单元功率的系统和方法
US20150220371A1 (en) Energy aware information processing framework for computation and communication devices coupled to a cloud
JP2018509682A (ja) 入出力動作特性に基づくシステムオンチップアイドル電力状態制御のシステムと方法
US8447895B2 (en) Methods and apparatus for decreasing power consumption and bus activity