TWI743934B - 晶片工作頻率的設置方法和裝置、電子設備及記錄媒體 - Google Patents
晶片工作頻率的設置方法和裝置、電子設備及記錄媒體 Download PDFInfo
- Publication number
- TWI743934B TWI743934B TW109127158A TW109127158A TWI743934B TW I743934 B TWI743934 B TW I743934B TW 109127158 A TW109127158 A TW 109127158A TW 109127158 A TW109127158 A TW 109127158A TW I743934 B TWI743934 B TW I743934B
- Authority
- TW
- Taiwan
- Prior art keywords
- subtask
- chip
- frequency
- task
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
Abstract
本發明實施例提供一種晶片工作頻率的設置方法和裝置、電子設備及記錄媒體,其中方法包括:獲取目標任務的多個子任務以及每個子任務的任務參數,所述任務參數包括用於表示所述子任務的運算規模的參數;基於所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率;根據確定的每個子任務的所述目標晶片頻率,設置晶片執行所述每個子任務的工作頻率。
Description
本發明涉及智慧設備技術,具體涉及晶片工作頻率的設置方法和裝置。
隨著5G和人工智慧技術的發展,終端設備(例如,智慧手機,智慧攝像機等)被賦予更多的計算需求,需要執行更多的任務。然而,終端設備中包括的用於計算處理的晶片大多存在功耗限制,不能完全發揮設備的計算峰值能力。降頻是現在晶片防止功耗超標的主要方法之一,降頻技術主要是通過臨時降低晶片的工作頻率(frequency)來減少晶片的功耗。
在一些技術中,可以在終端設備中運行應用程式執行前,設置一個初始工作頻率,晶片以該初始工作頻率運行以執行對應用程式的計算處理。並且,在應用程式的運行過程中,遇到晶片的功耗超標等情況時,對晶片可以採用固定降頻策略,例如,將晶片的工作頻率按照固定的比例降低,或者將其工作頻率降低到一固定的數值。
本發明實施例至少提供一種晶片工作頻率的設置方法和裝置。
第一方面,提供一種晶片工作頻率的設置方法,該方法包括:獲取目標任務的多個子任務以及每個子任務的任務參數,所述任務參數包括用於表示所述子任務的運算規模的參數;基於所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率;根據確定的每個子任務的目標晶片頻率,設置晶片執行所述每個子任務的工作頻率。
根據本發明的任一實施例,所述方法還包括:對所述目標任務進行任務解析處理,得到所述多個子任務以及每個子任務的任務參數;儲存所述多個子任務中每個子任務與所述每個子任務的任務參數的對應關係;所述獲取目標任務的多個子任務以及每個子任務的任務參數包括:從儲存的所述對應關係中查找每個子任務的任務參數。
根據本發明的任一實施例,所述任務參數包括如下至少一項:所述子任務的計算量、所述子任務的訪存量。
根據本發明的任一實施例,所述基於所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率,包括:獲取所述晶片所在設備的設備資訊,所述設備資訊包括設備資源資訊;基於所述設備資訊和所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率。
根據本發明的任一實施例,所述設備資源資訊包括以下中的任意一項或多項:計算單元的數量、頻寬、儲存裝置容量。
根據本發明的任一實施例,所述設備資訊還包括:所述晶片的晶片溫度;所述基於所述設備資訊和所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率,包括:基於所述多個子任務中的第一子任務的任務參數、所述設備資源資訊和所述第一子任務執行時的晶片溫度,確定所述第一子任務的目標晶片頻率。
根據本發明的任一實施例,所述基於所述設備資訊和所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率,包括:獲取多個第一資料和多個第二資料之間的預設映射關係,所述第一資料包括預設任務參數和預設設備資訊,所述第二資料包括預設晶片頻率;根據所述預設映射關係、所述設備資訊以及每個子任務的任務參數,確定所述每個子任務的目標晶片頻率。
根據本發明的任一實施例,所述根據所述預設映射關係、所述設備資訊以及每個子任務的任務參數,確定所述每個子任務的目標晶片頻率,包括:確定第三資料與所述預設映射關係中的多個第一資料中每個第一資料之間的距離,所述第三資料包括所述多個子任務中第一子任務的任務參數和設備資訊;將所述預設映射關係中與所述第三資料距離最近的目標第一資料對應的預設晶片頻率,作為所述第一子任務的目標晶片頻率。
根據本發明的任一實施例,所述獲取多個第一資料和多個第二資料之間的預設映射關係之前,所述方法還包括:獲取多組可選晶片頻率,並獲取採樣得到的離散的多個第一資料;對於所述多個第一資料中的每個所述第一資料,由所述多組可選晶片頻率中選擇一組晶片頻率作為與所述每個第一資料對應的第二資料,並建立所述每個第一資料和選擇的所述第二資料之間的映射關係。
根據本發明的任一實施例,所述預設映射關係中與所述第一資料對應的預設晶片頻率是基於在多組可選晶片頻率中每組可選晶片頻率的條件下所述第一資料對應的性能評估參數,從所述多組可選晶片頻率中選擇的。
根據本發明的任一實施例,所述性能評估參數包括任務處理性能參數和晶片運行功耗;所述預設映射關係中與所述第一資料對應的預設晶片頻率為:所述多組可選晶片頻率中晶片運行功耗低於預設功耗且任務處理性能參數最優的可選晶片頻率。
根據本發明的任一實施例,所述方法還包括:接收用戶輸入的對於所述預設映射關係的配置資訊。
根據本發明的任一實施例,所述基於所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率,包括:基於所述多個子任務中每個子任務對應的任務參數,由多組可選晶片頻率中,選擇能夠使得所述晶片在晶片功耗限制條件下實現任務運行時間最低的晶片頻率,作為所述目標晶片頻率。
根據本發明的任一實施例,所述方法還包括:接收用戶輸入的頻率設置策略資訊;所述基於所述多個子任務中每個子任務對應的任務參數,確定所述每個子任務的目標晶片頻率,包括:基於所述頻率設置策略資訊和所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率。
根據本發明的任一實施例,所述頻率設置策略資訊包括打開或關閉針對子任務的晶片頻率動態設置功能。
根據本發明的任一實施例,所述工作頻率包括如下至少一項:所述晶片的核心頻率、或者儲存裝置頻率。
第二方面,提供一種晶片工作頻率的設置裝置,所述裝置包括:獲取模組,用於獲取目標任務的多個子任務以及每個子任務的任務參數,所述任務參數包括用於表示所述子任務的運算規模的參數;頻率控制模組,用於基於所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率;頻率設置模組,用於根據確定的每個子任務的目標晶片頻率,設置晶片執行所述每個子任務的工作頻率。
第三方面,提供一種電子設備,包括:儲存裝置、處理器,所述儲存裝置用於儲存電腦可讀指令,所述處理器用於調用所述電腦可讀指令,實現本發明第一方面所述的方法。
根據本發明的任一實施例,所述設備還包括:晶片,用於基於所述處理器設置的工作頻率對目標任務中的每個子任務進行處理。
第四方面,提供一種電腦可讀取記錄媒體,其上儲存有電腦程式,所述電腦程式被處理器執行時,促使所述處理器實現本發明第一方面所述的方法。
本發明實施例提供的晶片工作頻率的設置方法和裝置,基於目標任務中的每個子任務的任務參數確定與該子任務的目標晶片頻率,能夠使得晶片在執行該每個子任務時以該子任務的目標晶片頻率運行,這種精細化的頻率設置方式能夠使得執行各個子任務時都盡可能的實現最優的運行性能,從而提高整個任務的運行速度。
為了使本技術領域的人員更好地理解本發明一個或多個實施例中的技術方案,下面將結合本發明一個或多個實施例中的附圖,對本發明一個或多個實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明一個或多個實施例,本領域通常知識者在沒有作出進步性勞動前提下所獲得的所有其他實施例,都應當屬於本發明保護的範圍。
本發明實施例提供一種對終端設備中的晶片的工作頻率進行設置的方法,該方法旨在使得晶片以該設置的工作頻率運行時,設備的運行性能較好,例如,設備上運行的任務能夠以更快的速度處理完成。其中,該晶片可以為人工智慧(Artificial Intelligence,AI)晶片,例如,在智慧手機上應用的AI晶片,在自動駕駛汽車上使用的AI晶片,在物聯網的邊緣設備上使用的AI晶片,等等。也可以為其他類型的晶片,例如CPU(Central Processing Unit)晶片、DSP(Digital Signal Processing)、記憶體晶片等等,本發明實施例對此不做限定。
圖1繪示了本發明一些實施例提供的晶片工作頻率的設置方法的流程圖,如圖1所示,該方法可以包括如下處理。
在步驟100中,獲取目標任務的多個子任務以及每個子任務的任務參數,所述任務參數包括用於表示所述子任務的運算規模的參數。
本步驟中,所述的目標任務可以是在設備上要執行和處理的任務。例如,該任務可以是深度學習模型的訓練任務,或者一個神經網路模型的推理任務,或者,運行一個應用程式等。所述目標任務的執行需要使用到該設備上的晶片,由晶片負責任務執行過程中的計算等部分或全部處理工作。
所述的子任務,可以是目標任務中包括的一個相對獨立的執行單元。例如,目標任務中可以包括多個函數,可以根據函數進行劃分,每個函數作為目標任務中一個獨立的子任務。又例如,也可以將任務程式碼劃分為多個程式碼區塊並根據程式碼區塊劃分子任務,每段程式碼是相對完整的。比如,一個相對完整或獨立的程式碼區塊作為一個子任務。再例如,當目標任務是神經網路模型的訓練或推理任務時,該神經網路模型的每一層或多層可以看作一個子任務;或者,也可以是將每一層的實現過程的程式碼段作為一個子任務。再例如,也可以將多個功能模組中的一個或至少兩個功能模組作為一個子任務,等等。
本發明實施例不限制子任務的劃分方式,可以有多種子任務的劃分方式,比如上述提到的以函數為單位,以程式碼區塊為單位,以網路層或算子為單位,或者以功能模組為單位,等等,需要注意的是,儘管將目標任務劃分成多個子任務可以達到精細粒度的頻率設置,提高設備運行性能,但是過多的子任務數量有可能會造成較為頻繁的頻率設置,對設備運行性能有一定影響,因此,可以平衡子任務數量的設置,比如,目標任務包括的循環體的內部儘量不要再劃分成子任務,以減少頻率設置的次數,等等,具體設置可以基於實際需求進行,這裡不再贅述。
在本發明實施例中,子任務的任務參數,可以包括用於表示子任務的運算規模的參數,例如可以包括用於指示子任務需要占用的一種或多種資源的參數。作為一個例子,該任務參數可以包括但不限於如下至少一項:子任務的計算量、訪存量(訪存量即在子任務執行時晶片要存取儲存裝置的次數和/或存取資料的總量),或者還可以包括其他類型的任務參數,本發明實施例對此不做限定。
在本發明實施例中,可以通過多種方式獲取子任務的任務參數。例如,從其他設備或從系統中的其他功能模組獲取子任務的任務參數,或者,從本地儲存裝置獲取子任務的任務參數,或者,通過對目標任務進行任務解析,得到各個子任務的任務參數,等等。
在一些實施例中,為了更快速地獲取到該任務參數,可以將各個子任務與各自的任務參數的對應關係進行預先儲存。示例性的,可以預先對目標任務進行任務解析處理,得到該目標任務包括的多個子任務以及每個子任務的任務參數,並將該每個子任務及其任務參數進行儲存。這樣後續在目標任務需要運行時可以根據儲存的資訊快速的查找到每個子任務的任務參數。在一些例子中,所述子任務與任務參數之間的對應關係可以通過key-value的形式儲存,例如,可以為多個子任務分別設置對應的任務標識,並將子任務的任務標識儲存為key,將該子任務的任務參數儲存為value。key-value形式的儲存方式,適合通過主鍵進行查詢,查詢速度快,存放資料量大。但本發明不限於此。
在一些實施例中,在獲取每個子任務的任務參數之外,還可進一步獲取晶片所在設備的設備資訊,並依據該設備資訊和任務參數共同確定每個子任務的目標晶片頻率。
其中,上述的設備資訊可以包括晶片所在設備的設備資源資訊,該設備資源資訊用於指示該設備的可用資源的資訊,作為一個例子,該設備資源資訊可以包括但不限於如下的任意一項或多項設備資源資訊:計算單元的數量、頻寬、儲存裝置容量等。在一些實施例中,每個子任務的目標晶片頻率還可以依賴於多個子任務之間的依賴關係或任務執行方式,例如序列、並列、或者部分子任務之間序列且部分子任務之間並列等。例如,如果目標任務劃分得到的各個子任務的執行是序列關係,那麼晶片在執行每個子任務時都可以占用該設備上的所有可用設備資源,比如占用設備上的所有計算單元和所有頻寬,等等,但本發明實施例不限於此。
在步驟102中,基於所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率。
本步驟中,可以根據每個子任務的任務參數確定該子任務的目標晶片頻率。或者,可以基於晶片所在設備的設備資訊和每個子任務的任務參數,共同確定所述每個子任務的目標晶片頻率。
在一些實施例中,可以確定多組可選晶片頻率,並基於一定策略從該多組可選晶片頻率中為每個子任務選取對應的可選晶片頻率。其中,所述的多組可選晶片頻率是設備中的晶片可以設置的特定數量的離散的頻率。例如,以設置晶片的核心頻率為例,該核心頻率可以包括x1、x2….xm等m種頻率值。上述策略可以基於實際需求進行設置,下面將描述幾種示例性策略,但本發明實施例不限於此。
在一些實施例中,可以將所述目標晶片頻率的確定轉化為一個最優化問題,在一些可選實現方式中,可以將任務運行時間作為選擇的主要參考因素,作為一個例子,可以基於每個子任務的任務參數,在可被設置的多組可選晶片頻率中,選擇能夠使得所述晶片在晶片功耗限制條件下實現任務運行時間最低的晶片頻率,作為所述每個子任務的目標晶片頻率。其中,在一些例子中,可以將多個子任務作為一個整體進行分析,來確定目標任務的總體任務運行時間,此時,在確定最短的任務運行時間的條件下,可以同時得到多個子任務中每個子任務的目標晶片頻率。或者,在另一些例子中,可以單獨分析每個子任務的任務運行時間,並基於每個子任務的最短的任務運行時間作為條件來確定該子任務的目標晶片頻率,等等。在另一些可選實現方式中,也可以將任務消耗的系統資源、晶片運行功耗、任務運行速度、任務執行結果的精度等一種或任意多種作為選擇的參考因素,本發明實施例對此不做限定。
下面以根據子任務的任務參數和設備資訊來確定目標晶片頻率為例,示例一種最優化問題的求解原理。以其中一個子任務為例,該子任務的任務參數是(n表示n維空間,如訪存量,計算量等),該子任務對應的設備資訊是(m表示m維空間,比如儲存裝置容量等),並假設晶片頻率是x,其中,該頻率可以為核心頻率、儲存裝置頻率、或是核心頻率與儲存裝置頻率的頻率組合。表示晶片運行功耗,可以看到,該晶片運行功耗與任務參數、設備資訊和晶片頻率有關,即使固定任務參數和設備資訊,晶片頻率變化時P也會隨之變化。表示任務運行時間,同理,即使固定任務參數和設備資訊,晶片頻率變化時T也會隨之變化。那麼可將上述子任務的任務參數和設備資訊分別與多種晶片頻率組合,得到對應的晶片運行功耗和任務運行時間,並基於晶片運行功耗和任務運行時間來從多種晶片頻率中選擇每個子任務的最優晶片頻率。
上述公式(1)表示:在晶片功耗限制條件(不超過PowerLimited
)下實現任務運行時間最低,這就是最優化問題的優化目標。以該優化目標尋找最優的晶片頻率,在晶片可以設置的多個可選晶片頻率中,若採用某一晶片頻率,使得在晶片功耗限制條件下以最短的任務運行時間處理完該子任務,則該晶片頻率就是該子任務的目標晶片頻率。
由於每個子任務的任務參數和設備資訊中的至少一個參數可以是不同的,所以各個子任務的目標晶片頻率也可能不同。本步驟可以尋找到最匹配各個子任務的目標晶片頻率,使得子任務以最快的速度完成且晶片不會功耗超標。
在步驟104中,根據確定的每個子任務的目標晶片頻率,設置晶片執行所述每個子任務時的工作頻率。
本步驟中,在目標任務的運行過程中,當運行到其中一個子任務時,可以將晶片的頻率設置為該子任務的目標晶片頻率,或者,可以基於該目標晶片頻率與設備或晶片在執行該子任務時的當前狀態資訊,例如,設備或晶片在晶片開始執行該子任務時的狀態資訊,如晶片溫度,來設置晶片執行該子任務時的工作頻率。其中,在一些實施例中,上述確定目標晶片頻率的過程可以在執行目標任務之前預先統一執行,並且儲存多個子任務中每個子任務的目標晶片頻率,然後,在運行每個子任務的過程中,將晶片的頻率設置為該子任務的目標晶片頻率。在另一些實施例中,也可以在執行每個子任務之前,確定該子任務的目標晶片頻率,例如,可以基於子任務的任務參數與設備或晶片的當前狀態資訊,確定該子任務的目標晶片頻率,此時,各個子任務的目標晶片頻率的確定可以是在不同時間分別執行的,本發明實施例對此不做限定。
在本發明實施例中,所述的晶片的工作頻率可以包括如下至少一項:所述晶片的核心頻率、或者儲存裝置頻率。比如,可以通過本發明實施例的方法只用於設置晶片的核心頻率,其中,儲存裝置頻率可以設置為固定值或者以目標任務為單位進行設置,或者該方法只用於設置儲存裝置頻率,其中,核心頻率可以設置為固定值或以目標任務為單位進行設置,或者該方法用於設置晶片的核心頻率和儲存裝置頻率,例如將核心頻率和儲存裝置頻率作為一個頻率組合進行設置,每一個子任務的目標晶片頻率是該頻率組合。
其中,儲存裝置的頻率可以為揮發性記憶體的頻率,如SDRAM(Synchronous Dynamic Random Access Memory,同步動態隨機存取記憶體)的頻率。例如,DDR SDRAM(Double Data Rate SDRAM,雙倍速率SDRAM)、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM、DDR5 SDRAM等等。儲存裝置的頻率也可以是非揮發性記憶體的頻率,如快閃記憶體(flash memory)的頻率。
本發明實施例的晶片工作頻率的設置方法,基於目標任務中的每個子任務的任務參數確定與該子任務的目標晶片頻率,能夠使得晶片在執行該每個子任務時以該子任務的目標晶片頻率運行,這種精細化的頻率設置方式能夠使得執行各個子任務時都盡可能的實現最優的運行性能,從而提高整個任務的運行速度。
圖2繪示了本發明一些實施例提供的晶片工作頻率的設置方法的另一流程圖,該方法以根據子任務的任務參數和設備資訊來共同確定的目標晶片頻率為例,示例性地給出了一種確定目標晶片頻率的方式。如圖2所示,該方法可以包括如下處理,其中,與圖1相同的步驟將不再詳述。
在步驟200中,對設備上待運行的目標任務進行任務解析,得到多個子任務以及每個所述子任務的任務參數。例如,每個子任務的任務參數可以包括如下至少一項:該子任務的計算量和訪存量。
在步驟202中,獲取晶片所在設備的設備資訊。
例如,所述的晶片所在設備的設備資訊可以包括設備資源資訊,該設備資源資訊可以包括如下至少一項:頻寬、計算單元的數量和儲存裝置容量等。
在步驟204中,獲取多個第一資料和多個第二資料之間的預設映射關係。
本步驟中,設備可以預先儲存有多個第一資料和多個第二資料之間的映射關係,其中的第一資料包括子任務的預設任務參數和預設設備資訊,第二資料包括預設晶片頻率。例如,該預設晶片頻率可以是晶片的核心頻率。又例如,該預設晶片頻率可以是晶片的核心頻率和儲存裝置頻率的組合。
例如,如下的表1示例了多個第一資料和多個第二資料的預設映射關係:
表1 映射關係示例
第一資料 | 第二資料 | |
預設任務參數 | 預設設備資訊 | 預設晶片頻率 |
k1 | d1 | x1 |
k2 | d2 | x2 |
…… | …… | …… |
如下示例性說明如何建立上述的映射關係。
假設不論設備上執行何種任務,任務參數和設備資訊的取值都會在一定的範圍內,比如,任務參數的取值在範圍F1內,設備資訊的取值在範圍F2內。該F1和F2都可以稱為預設的第一資料取值範圍。那麼,可以在該第一資料取值範圍內採樣,得到一些離散的採樣點,即得到多組第一資料,例如,(k1,d1)、(k2,d2)、(k3,d3)等,其中的k1,k2,k3表示任務參數,d1,d2和d3表示設備資訊。此外,假設要設置的晶片頻率是核心頻率,可以包括晶片可能設置的多組可選晶片頻率,例如,x1,x2,x3等。
具體地,對於其中的每一組第一資料,可以由上述的多組可選晶片頻率中選擇一組晶片頻率作為與該第一資料對應的第二資料,並建立該第一資料和第二資料之間的映射關係。其中,在一些實施例中,在從多組可選晶片頻率中選擇第二資料時,可以是依據性能評估參數來選擇。例如,可以分別確定該第一資料在每組可選晶片頻率的條件下的性能評估參數,比如根據該第一資料與其中一組可選晶片頻率得到一個性能評估參數;根據該第一資料與另一組可選晶片頻率得到另一個性能評估參數,其中,該性能評估參數可以通過模擬、推理、或數學公式運算的方式得到,本發明實施例對此不做限定。
在分別得到該第一資料在各組可選晶片頻率的條件下對應的性能評估參數後,可以根據該性能評估參數從所述多組可選晶片頻率中選擇一組晶片頻率作為該第一資料對應的第二資料。例如,該性能評估參數可以包括任務處理性能參數和晶片運行功耗,可以將上述多組可選晶片頻率中晶片運行功耗低於預設功耗且任務處理性能參數最優的可選晶片頻率作為該第一資料對應的第二資料。示例性的,上述的任務處理性能參數包括但不限於任務處理時間。
圖3繪示了本發明一些實施例提供的預設映射關係的建立過程的另一流程圖。如下通過圖3,示例一種預設映射關係的建立過程,並且,在該示例描述中,以任務處理性能參數是任務運行時間,晶片頻率是核心頻率為例進行說明。
在步驟2041中,遍歷所述多組可選晶片頻率,分別根據每組可選晶片頻率與某一組第一資料得到在所述每組可選晶片頻率和該第一資料的條件下運行時的晶片運行功耗和任務運行時間。
例如,假設晶片有十組可選晶片頻率,針對一組第一資料,可以分別結合該十組晶片頻率,得到十個晶片運行功耗P和十個任務運行時間T。比如,當晶片頻率是x1時,對應的該子任務的晶片運行功耗是P1,任務運行時間是T1;當晶片頻率是x2時,對應的該子任務的晶片運行功耗是P2,任務運行時間是T2。
在一些實施例中,可以根據功耗模型確定P,根據運行時間模型確定T。其中,功耗模型的模型輸入是任務參數、設備資訊和晶片頻率,模型輸出是P。運行時間模型的模型輸入是任務參數、設備資訊和晶片頻率,模型輸出T。
上述的功耗模型和運行時間模型的具體結構可以通過多種方式得到,例如,支持向量機、反饋神經網路、K-means聚合算法等。
下面以功耗模型和運行時間模型都是神經網路模型為例進行說明,該神經網路模型可以通過模型訓練的方式得到。其中,訓練樣本集可以給定固定的任務列表,設備的頻率集合為,這些集合作為神經網路模型的訓練集。比如,對於某一任務,可以得到該任務的任務參數,並獲取該設備的設備資訊,再由上述設備頻率集合中取一個頻率,三者作為功耗模型的輸入,經過功耗模型的處理後輸出晶片運行功耗的預測值。該預測值與設備在輸入的任務參數、設備資訊和頻率條件下的晶片運行功耗的真實值(真實設備運行的結果)之間具有差異,根據該差異進行反向傳播,訓練該功耗模型。同理,運行時間模型也可以按照上述方式訓練,只是將輸出改為任務運行時間,在此不再詳述。
在得到訓練完成的功耗模型和運行時間模型後,向功耗模型輸入第一資料和晶片頻率,就可以得到晶片運行功耗。如,向功耗模型輸入第一資料(k1,d1)和晶片頻率xi,就可以得到晶片運行功耗Pi。向運行時間模型輸入第一資料和晶片頻率,就可以得到任務運行時間。如,向運行時間模型輸入第一資料(k1,d1)和晶片頻率xi,就可以得到任務運行時間Ti。
在步驟2042中,選擇確定晶片運行功耗和任務運行時間最優的晶片頻率,作為該第一資料對應的第二資料。
本步驟中,例如可以根據公式(1)的最優晶片頻率的選擇條件,在多組晶片頻率中,選擇在晶片運行功耗的限制範圍內任務運行時間最低的晶片頻率作為第二資料。例如,在滿足Pi≤PowerLimited
的所有晶片頻率xi中,選擇Ti最小的晶片頻率,如x1,作為第一資料(k1,d1)對應的第二資料。
在步驟2043中,建立該第一資料和該第二資料之間的映射關係。
如上所述的,離散採樣點對應的多組第一資料中,每一組第一資料都可以按照圖3所示的流程得到該第一資料對應的第二資料,即最優的晶片頻率。如此,可以得到多個第一資料中各個第一資料分別對應的第二資料,並據此建立各個映射關係,從而得到映射關係的集合,該集合中可以包括多組映射關係,每一組映射關係都包括一個第一資料和一個對應的第二資料。該映射關係的集合可以是步驟204所述的預設映射關係,如表1的示例。
在步驟206中,根據預設映射關係、設備資訊以及子任務的任務參數,確定所述子任務在預設映射關係中對應的晶片頻率為目標晶片頻率。
此外,由於映射關係表中的第一資料是離散的,有時第一子任務的任務參數和設備資訊並不完全與映射關係中的第一資料一致,這種情況下,作為一種可選實現方式,可以在映射關係表中找到與第一任務的設備資訊和任務參數最接近的第一資料,用該最接近的第一資料對應的晶片頻率作為第一子任務的目標晶片頻率。
例如,假設第一子任務的任務參數和設備資訊可以稱為第三資料,如(k3,d3),可以計算該第三資料與映射關係中的各個第一資料之間的距離。該距離的計算可以是將第三資料和各個第一資料都作為一個向量,計算向量之間的距離,例如,可以是(第三資料的向量和每個第一資料的向量之間的歐式距離或其他距離。可以將與第三資料距離最近的第一資料對應的晶片頻率,作為第一子任務的目標晶片頻率。
其中,在一些實施例中,上述的與第三資料距離最近的第一資料可以是向下取最近的,該向下取最近是指儘量取對應晶片頻率較低的第一資料。比如,假設第三資料的兩個相鄰的第一資料分別是第一資料Y1和第一資料Y2,並且該第一資料Y1和第一資料Y2與第三資料的距離是相等的,第一資料Y1對應的晶片頻率比第二資料Y2對應的晶片頻率要低,那麼可以選擇使用Y1對應的晶片頻率。如果第一資料Y1和第一資料Y2與第三資料的距離不相等,則仍然可以選擇距離較近的第一資料作為目標第一資料。再例如,只要在第一資料Y1和第一資料Y2與第三資料的距離之間的差距在預設範圍內,則優先選擇對應晶片頻率較低的第一資料,該預設範圍可以基於實際需求設置,本發明實施例對此不做限定。
在步驟208中,根據確定的每個子任務的所述目標晶片頻率,設置晶片執行所述每個子任務的工作頻率。
本步驟中,在目標任務的運行過程中,當運行到其中一個子任務時,可以將晶片的頻率設置為該子任務的目標晶片頻率。
本發明實施例的設備晶片的工作頻率的設置方法,對待執行的任務進行分解得到多個子任務,並分別得到各個子任務的目標晶片頻率,這種精細化的頻率設置方式能夠使得讓任務的各個子任務部分都盡可能的實現最優的運行性能,從而提高整個任務的運行速度。並且,通過預先建立任務參數、設備資訊與晶片頻率的映射關係,使得能夠加快晶片頻率的確定速度,提高設備性能。
圖4繪示了本發明一些實施例提供的晶片工作頻率的設置方法的另一流程圖,該示例中,以設置晶片的組合頻率為例進行說明,並且,獲取的設備資訊中還可以包括晶片的晶片溫度,該晶片溫度可以是由晶片所在設備中的溫度傳感器來負責採集。此外,這裡假設要執行的目標任務是一個三層的神經網路模型的推理任務。
其中,對於不同的終端設備,比如GPU(Graphics Processing Unit,圖形處理單元)、CPU或者DSP晶片所在的終端設備,由於設備資訊不同,訓練得到的功耗模型和運行時間模型可能會完全不同。可以針對目標任務運行所在的特定終端設備,離線訓練確定模型。功耗模型和運行時間模型確定之後,可以將該確定的模型以及最優化問題求解引擎儲存到終端設備中。其中,最優化問題求解引擎所做的處理可以參見圖2所示流程描述中的預設映射關係建立的過程,該最優化問題求解引擎可以根據採樣的多組第一資料以及確定的模型,得到各晶片頻率分別對應的晶片運行功耗和任務運行時間,再根據公式(1)選擇出最優的晶片頻率,從而建立起第一資料和第二資料之間的映射關係。可選的,可以由設備來執行預設映射關係的建立,或者也可以由其他設備執行預設映射關係的建立處理,並將預先建立好的映射關係儲存在該目標任務運行所在的設備中,設備在運行目標任務時可以直接查表使用。
在步驟400中,對設備上待運行的目標任務進行任務解析,得到多個子任務以及每個所述子任務的任務參數。
例如,該目標任務是三層的神經網路模型的推理任務,其中的每一層可以是一個子任務。那麼本步驟經過任務解析,可以得到一個子任務列表,該子任務列表中包括三個子任務:子任務1、子任務2和子任務3。並且,本步驟還分析得到每個子任務的任務參數,例如,子任務的訪存量和計算量等。比如,子任務列表中可以包括:<子任務1、任務參數1>、<子任務2、任務參數2>、<子任務3、任務參數3>。其中的任務參數可以表示為(n表示n維空間,比如訪存量,計算量)。子任務1、子任務2和子任務3可以被分別作為第一子任務。
在步驟402中,獲取晶片所在設備的設備資訊。
其中,設備資訊可以包括設備資源資訊。在一個示例中,子任務1、子任務2和子任務3之間是序列關係,這些子任務在運行時占用的設備資源資訊可以是相同的。比如,頻寬、計算單元數量等可以是相同的。
在步驟404中,在確定將要開始執行子任務1之前,採集晶片上的晶片溫度C1,並根據子任務1的任務參數、設備資源資訊和晶片溫度C1,確定子任務1在運行時所述設備上的晶片對應設置的目標晶片頻率。
本發明一些實施例中,設備資訊還可以包括晶片的晶片溫度,因為在執行任務的過程中,溫度過高也會導致晶片採取降頻的措施。也就是說,本發明實施例的設備資訊中不僅包括計算單元數量、頻寬、儲存裝置容量等設備資源資訊,還包括了晶片溫度。並且,該晶片溫度可以是動態獲取的,即在目標任務的運行過程中的每個子任務開始執行前,獲取該子任務對應的晶片溫度,並據此確定該子任務的目標晶片頻率。
在步驟406中,將晶片的工作頻率設置成子任務1的目標晶片頻率,並開始執行子任務1。
在步驟408中,在確定將要開始執行子任務2之前,採集晶片上的晶片溫度C2,並根據子任務2的任務參數、設備資源資訊和晶片溫度C2,確定子任務2在運行時所述設備上的晶片對應設置的目標晶片頻率。
本發明實施例中,在目標任務的運行過程中,晶片的溫度是變化的,那麼可以在該目標任務運行過程中每次要執行一個子任務之前,都採集最新的晶片溫度,並結合該晶片溫度確定該子任務的目標晶片頻率。
還需要說明的是,本發明實施例的晶片頻率可以是一個組合頻率,或者是組合頻率中的一個頻率,即同時設置晶片的核心頻率和儲存裝置頻率。例如,核心頻率是x,儲存裝置頻率是y。比如,當子任務的任務參數和設備資訊是(k1,d1)時(其中的設備資訊可以包括設備資源資訊和晶片溫度),對應採取的晶片頻率可以是(x1,y1);當子任務的任務參數和設備資訊是(k2,d2)時,對應採取的晶片頻率可以是(x2,y2)。
並且,在確定功耗模型和運行時間模型時,例如,功耗模型的輸入可以包括:k1,d1,x1,y1,模型的輸出可以是晶片運行功耗P;同理,運行時間模型的輸入可以包括:k1,d1,x1,y1,模型的輸出可以是任務運行時間T。並且,在訓練該功耗模型和運行時間模型時,設備資訊中可以包括晶片溫度。
在步驟410中,將晶片的工作頻率設置成子任務2的目標晶片頻率,並開始執行子任務2。
在步驟412中,在確定將要開始執行子任務3之前,採集設備上的晶片的晶片溫度C3,並根據子任務3的任務參數、設備資源資訊和晶片溫度C3,確定子任務3在運行時所述設備上的晶片對應設置的目標晶片頻率。
在步驟414中,將晶片的工作頻率設置成子任務3的目標晶片頻率,並開始執行子任務3。
當目標任務包括的所有的子任務都執行結束後,可以將設備晶片的工作頻率重新設置為預設值,目標任務執行結束。
本發明實施例的晶片工作頻率的設置方法,對待執行的任務進行分解得到多個子任務,並分別得到各個子任務的目標晶片頻率,這種精細化的頻率設置方式能夠使得讓任務的各個子任務部分都盡可能的實現最優的運行性能,從而提高整個任務的運行速度。並且,在任務運行的過程中,動態的採集第一子任務執行時的晶片溫度,並綜合該晶片溫度確定第一子任務的目標晶片工作頻率,能夠使得晶片工作頻率的確定考慮因素更加全面,從而頻率設置更加合理,進一步提高設備運行性能。
此外,終端設備也可以提供用戶介面,通過該用戶介面可以接收輸入的對於預設映射關係的配置資訊。比如,用戶可以離線的計算出或者估計出每個子任務應使用的目標晶片頻率,並將該各個子任務與對應目標晶片頻率的預設映射關係儲存在設備中,這樣設備在運行時就根據該配置的預設映射關係設置子任務執行時對應的晶片的工作頻率即可。
上述的用戶介面還可以用於接收頻率設置策略資訊。該頻率設置策略資訊例如可以包括根據任務參數、設備資訊確定晶片運行功耗和任務運行時間的模型、或者還可以包括如何根據功耗模型和任務運行時間模型選擇確定某個子任務的目標晶片頻率。根據所述頻率設置策略資訊,就可以基於該頻率設置策略資訊和多個子任務中每個子任務的任務參數,分別確定每個子任務在運行時所述設備上的晶片對應設置的目標晶片頻率。
此外,該頻率設置策略資訊還可以包括:打開或關閉針對子任務的晶片頻率動態設置功能。當頻率設置策略資訊包括打開針對子任務的晶片頻率動態設置功能時,設備就可以按照本發明前述實施例中所述的晶片工作頻率的設置方法,對目標任務的各個子任務確定的目標晶片頻率,比如,可以採集子任務的任務參數、晶片溫度、設備資源資訊,並根據這些資訊以及功耗模型和任務運行時間模型選擇確定要使用的目標晶片頻率。而當頻率設置策略資訊包括關閉針對子任務的晶片頻率動態設置功能時,設備就可以按照通過用戶介面配置的離線計算出的預設映射關係,直接獲取每個子任務應使用的目標晶片頻率。
通過上述用戶介面,可以提供更為靈活的晶片頻率設置方式,用戶可以更方便的對晶片頻率的確定方式進行更新,使得晶片頻率的確定更為合理和快速。
圖5繪示了本發明一些實施例提供的晶片工作頻率的設置裝置的方塊圖,如圖5所示,該裝置可以包括:獲取模組51、頻率控制模組52和頻率設置模組53。
獲取模組51,用於獲取目標任務的多個子任務以及每個子任務的任務參數,所述任務參數包括用於表示所述子任務的運算規模的參數。示例性的,所述任務參數包括如下至少一項:所述子任務的計算量、子任務的訪存量。
頻率控制模組52,用於基於所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率。
頻率設置模組53,用於根據確定的每個子任務的目標晶片頻率,設置晶片執行所述每個子任務的工作頻率。
圖6繪示了本發明一些實施例提供的晶片工作頻率的設置裝置的另一方塊圖。在一個例子中,如圖6所示,該裝置還可以包括:任務解析模組54,用於對所述目標任務進行任務解析處理,得到所述多個子任務以及每個子任務的任務參數;並儲存所述多個子任務中每個子任務與所述每個子任務的任務參數的對應關係。獲取模組51,在用於獲取目標任務的多個子任務以及每個子任務的任務參數時,包括:從儲存的所述對應關係中查找每個子任務的任務參數。
例如,在實際實施中,要開始運行一個目標任務時,可以先由任務解析模組54對目標任務進行任務解析處理,比如解析得到多個子任務,再分別對多個子任務中的每個子任務進行解析得到各個子任務的任務參數。任務解析模組54可以將解析得到的每個子任務及其任務參數的對應關係進行儲存。
獲取模組51可以負責控制目標任務的運行過程,例如,獲取模組51可以獲取上述任務解析模組54解析並儲存得到的對應關係,控制逐個執行其中的各個子任務。示例性的,假設有三個子任務,當要開始執行第一個子任務時,獲取模組51可以由對應關係中獲取到該第一個子任務的任務參數,並將任務參數以及晶片所在設備的設備資訊發送至頻率控制模組52,由頻率控制模組52根據任務參數和設備資訊確定第一個子任務的目標晶片頻率。
接著,頻率控制模組52可以將確定的目標晶片頻率發送至頻率設置模組53,該頻率設置模組53可以將晶片的工作頻率設置為所述的目標晶片頻率。並且,頻率設置模組53在設置晶片的工作頻率完成後,可以向獲取模組51發送一個反饋信號,以通知獲取模組51頻率設置已經完成。那麼,獲取模組51根據該反饋信號,就可以開始執行第一個子任務。
當第一個子任務執行結束後,獲取模組51可以開始準備執行第二個子任務,同樣的,在第二個子任務開始執行前,獲取模組51可以由任務解析模組54得到的對應關係中獲得第二個子任務的任務參數,發送至頻率控制模組52確定第二個子任務的目標晶片頻率。當頻率設置模組53反饋晶片頻率設置完成後,獲取模組51開始執行第二個子任務。第三個子任務的執行同理,不再詳述。當獲取模組51確認目標任務的所有子任務都執行結束後,可以向頻率控制模組52發送頻率重置信號,頻率控制模組52據此再向頻率設置模組53發送頻率重置信號,頻率設置模組53可以將晶片的工作頻率設置為預設值。此時目標任務執行結束。
在一個例子中,頻率控制模組52,在用於基於所述多個子任務中每個子任務的任務參數確定所述每個子任務的目標晶片頻率時,包括:獲取所述晶片所在設備的設備資訊,所述設備資訊包括設備資源資訊;基於所述設備資訊和所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率。例如,該設備資源資訊包括以下中的任意一項或多項:計算單元的數量、頻寬、儲存裝置容量。
在一個例子中,所述設備資訊還包括:所述晶片的晶片溫度;頻率控制模組52,還用於:基於所述多個子任務中的第一子任務的任務參數、所述設備資源資訊和所述第一子任務執行時的晶片溫度,確定所述第一子任務的目標晶片頻率。
在一個例子中,頻率控制模組52,用於:獲取多個第一資料和多個第二資料之間的預設映射關係,所述第一資料包括預設任務參數和預設設備資訊,所述第二資料包括預設晶片頻率;根據所述預設映射關係、所述設備資訊以及每個子任務的任務參數,確定所述每個子任務的目標晶片頻率。
在一個例子中,頻率控制模組52,在用於根據所述預設映射關係、所述設備資訊以及每個子任務的任務參數,確定所述每個子任務的目標晶片頻率時,包括:確定第三資料與所述預設映射關係中的多個第一資料中每個第一資料之間的距離,所述第三資料包括所述多個子任務中第一子任務的任務參數和設備資訊;將所述預設映射關係中與所述第三資料距離最近的目標第一資料對應的預設晶片頻率,作為所述第一子任務的目標晶片頻率。
在一個例子中,頻率控制模組52,還用於在獲取多個第一資料和多個第二資料之間的預設映射關係之前,獲取多組可選晶片頻率,並獲取採樣得到的離散的多個第一資料;對於所述多個第一資料中的每個所述第一資料,由所述多組可選晶片頻率中選擇一組晶片頻率作為與所述每個第一資料對應的第二資料,並建立所述每個第一資料和選擇的所述第二資料之間的映射關係。
在一個例子中,預設所述預設映射關係中與所述第一資料對應的預設晶片頻率是基於在多組可選晶片頻率中每組可選晶片頻率的條件下所述第一資料對應的性能評估參數,從所述多組可選晶片頻率中選擇的。
在一個例子中,所述性能評估參數包括任務處理性能參數和晶片運行功耗;所述預設映射關係中與所述第一資料對應的預設晶片頻率為:所述多組可選晶片頻率中晶片運行功耗低於預設功耗且任務處理性能參數最優的可選晶片頻率。
在一個例子中,如圖6所示,該裝置還可以包括:介面模組55,用於接收用戶輸入的對於所述預設映射關係的配置資訊。
在一個例子中,頻率控制模組52,在用於基於所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率時,包括:基於所述多個子任務中每個子任務的任務參數,由多組可選晶片頻率中,選擇能夠使得所述晶片在晶片功耗限制條件下實現任務運行時間最低的晶片頻率,作為所述目標晶片頻率。
在一個例子中,介面模組55,還用於:接收用戶輸入的頻率設置策略資訊;所述頻率控制模組52,還用於:基於所述頻率設置策略資訊和所述多個子任務中每個子任務的任務參數,確定所述每個子任務的目標晶片頻率。
在一個例子中,所述頻率設置策略資訊包括打開或關閉針對子任務的晶片頻率動態設置功能。
在一個例子中,所述工作頻率包括如下至少一項:所述晶片的核心頻率、或者儲存裝置頻率。
在一些實施例中,上述裝置可以用於執行上文所述的對應任意方法,為了簡潔,這裡不再贅述。
圖7繪示了本發明一些實施例提供的晶片工作頻率的電子設備的方塊圖。本發明實施例還提供了一種電子設備,如圖7所示,電子設備700包括儲存裝置710、處理器720,所述儲存裝置710用於儲存電腦可讀指令711,所述處理器720用於調用所述電腦可讀指令711,實現本說明書任一實施例的晶片工作頻率的設置方法。其中,晶片工作頻率設置的目標晶片可以是儲存裝置710和/或處理器720。在一個例子中,該電子設備700還可以包括通訊介面730和匯流排740。儲存裝置710、處理器720以及通訊介面730通過匯流排740相互連接。在一個例子中,該電子設備700還可以包括晶片750,該晶片750用於基於所述處理器720設置的工作頻率對目標任務中的每個子任務進行處理。
本發明實施例還提供了一種電腦可讀取記錄媒體,其上儲存有電腦程式,所述電腦程式被處理器執行時,促使所述處理器實現本說明書任一實施例的晶片工作頻率的設置方法。在一個例子中,該電腦可讀取記錄媒體可以是圖7中的儲存裝置710。
本領域技術人員應明白,本發明一個或多個實施例可提供為方法、系統或電腦程式產品。因此,本發明一個或多個實施例可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本發明一個或多個實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可讀取記錄媒體(包括但不限於磁碟儲存裝置、CD-ROM、光學儲存裝置等)上實施的計算機程式產品的形式。
其中,本發明實施例所述的“和/或”表示至少具有兩者中的其中一個,例如,“多和/或B”包括三種方案:多、B、以及“多和B”。
本發明中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於資料處理設備實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
上述對本發明特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的行為或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求繪示的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和並列處理也是可以的或者可能是有利的。
本發明中描述的主題及功能操作的實施例可以在以下中實現:數位電子電路、有形體現的電腦軟體或韌體、包括本發明中公開的結構及其結構性等同物的電腦硬體、或者它們中的一個或多個的組合。本發明中描述的主題的實施例可以實現為一個或多個電腦程式,即編碼在有形非暫時性程式載體上以被資料處理裝置執行或控制資料處理裝置的操作的電腦程式指令中的一個或多個模組。可替代地或附加地,程式指令可以被編碼在人工生成的傳播信號上,例如機器生成的電、光或電磁信號,該信號被生成以將資訊編碼並傳輸到合適的接收機裝置以由資料處理裝置執行。電腦可讀取記錄媒體可以是電腦可讀儲存設備、電腦可讀儲存基板、隨機或序列存取儲存裝置設備、或它們中的一個或多個的組合。
本發明中描述的處理及邏輯流程可以由執行一個或多個計算機程式的一個或多個可編程計算機執行,以通過根據輸入資料進行操作並生成輸出來執行相應的功能。所述處理及邏輯流程還可以由專用邏輯電路—例如FPGA(現場可程式閘陣列)或ASIC(特殊應用積體電路)來執行,並且裝置也可以實現為專用邏輯電路。
適合用於執行電腦程式的電腦包括,例如通用和/或專用微處理器,或任何其他類型的中央處理單元。通常,中央處理單元將從唯讀記憶體和/或隨機存取記憶體接收指令和資料。電腦的基本組件包括用於實施或執行指令的中央處理單元以及用於儲存指令和資料的一個或多個儲存裝置設備。通常,電腦還將包括用於儲存資料的一個或多個大容量儲存設備,例如磁碟、磁光碟或光碟等,或者電腦將可操作地與此大容量儲存設備耦接以從其接收資料或向其傳送資料,抑或兩種情況兼而有之。然而,電腦不是必須具有這樣的設備。此外,電腦可以嵌入在另一設備中,例如行動電話、個人數位助理(PDA)、移動音訊或視訊播放器、遊戲操縱臺、全球定位系統(GPS)接收機、或例如通用序列匯流排(USB)快閃記憶體驅動器的便攜式儲存設備,僅舉幾例。
適合於儲存電腦程式指令和資料的電腦可讀取記錄媒體包括所有形式的非揮發性記憶體、媒介和儲存裝置設備,例如包括半導體儲存裝置設備(例如EPROM、EEPROM和快閃記憶體設備)、磁碟(例如內部硬碟或行動硬碟)、磁光碟以及CD ROM和DVD-ROM。處理器和儲存裝置可由專用邏輯電路補充或併入專用邏輯電路中。
雖然本發明包含許多具體實施細節,但是這些不應被解釋為限制任何公開的範圍或所要求保護的範圍,而是主要用於描述特定公開的具體實施例的特徵。本發明內在多個實施例中描述的某些特徵也可以在單個實施例中被組合實施。另一方面,在單個實施例中描述的各種特徵也可以在多個實施例中分開實施或以任何合適的子組合來實施。此外,雖然特徵可以如上所述在某些組合中起作用並且甚至最初如此要求保護,但是來自所要求保護的組合中的一個或多個特徵在一些情況下可以從該組合中去除,並且所要求保護的組合可以指向子組合或子組合的變型。
類似地,雖然在附圖中以特定順序描繪了操作,但是這不應被理解為要求這些操作以所示的特定順序執行或順次執行、或者要求所有例示的操作被執行,以實現期望的結果。在某些情況下,多任務和平行化處理可能是有利的。此外,上述實施例中各種系統模組和組件的分離不應被理解為在所有實施例中均需要這樣的分離,並且應當理解,所描述的程式組件和系統通常可以一起集成在單個軟體產品中,或封裝成多個軟體產品。
由此,主題的特定實施例已被描述。其他實施例在所附申請專利範圍的範圍以內。在某些情況下,申請專利範圍中記載的動作可以以不同的順序執行並且仍實現期望的結果。此外,附圖中描繪的處理並非必需所示的特定順序或順次順序,以實現期望的結果。在某些實現中,多任務和平行化處理可能是有利的。
以上所述僅為本發明一個或多個實施例的較佳實施例而已,並不用以限制本發明一個或多個實施例,凡在本發明一個或多個實施例的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明一個或多個實施例保護的範圍之內。
100~104, 200~208, 2041~2043, 400~414:步驟
51:獲取模組
52:頻率控制模組
53:頻率設置模組
54:任務解析模組
55:介面模組
700:電子設備
710:儲存裝置
711:指令
720:處理器
730:通訊介面
740:匯流排
750:晶片
圖1繪示了本發明一些實施例提供的晶片工作頻率的設置方法的流程圖。
圖2繪示了本發明一些實施例提供的晶片工作頻率的設置方法的另一流程圖。
圖3繪示了本發明一些實施例提供的預設映射關係的建立過程的另一流程圖。
圖4繪示了本發明一些實施例提供的晶片工作頻率的設置方法的另一流程圖。
圖5繪示了本發明一些實施例提供的晶片工作頻率的設置裝置的方塊圖。
圖6繪示了本發明一些實施例提供的晶片工作頻率的設置裝置的另一方塊圖。
圖7繪示了本發明一些實施例提供的晶片工作頻率的電子設備的方塊圖。
100~104:步驟
Claims (15)
- 一種晶片工作頻率的設置方法,所述方法包括:獲取目標任務的多個子任務以及每個子任務的任務參數,所述任務參數包括用於表示所述子任務的運算規模的參數;基於所述多個子任務中所述每個子任務的所述任務參數,確定所述每個子任務的目標晶片頻率;根據確定的所述每個子任務的所述目標晶片頻率,設置晶片執行所述每個子任務的工作頻率。
- 如請求項1所述的方法,其中所述方法還包括:對所述目標任務進行任務解析處理,得到所述多個子任務以及所述每個子任務的所述任務參數;儲存所述多個子任務中所述每個子任務與所述每個子任務的所述任務參數的對應關係;其中獲取所述目標任務的所述多個子任務以及所述每個子任務的所述任務參數的步驟包括:從儲存的所述對應關係中查找所述每個子任務的所述任務參數。
- 如請求項1或2所述的方法,其中所述任務參數包括如下至少一項:所述子任務的計算量、所述子任務的訪存量。
- 如請求項1所述的方法,其中基於所述多個子任務中所述每個子任務的所述任務參數,確定所述每個子任務的所述目標晶片頻率的步驟包括:獲取所述晶片所在設備的設備資訊,所述設備資訊包括設備 資源資訊;基於所述設備資訊和所述多個子任務中所述每個子任務的所述任務參數,確定所述每個子任務的所述目標晶片頻率。
- 如請求項4所述的方法,其中所述設備資訊還包括:所述晶片的晶片溫度;其中基於所述設備資訊和所述多個子任務中所述每個子任務的所述任務參數,確定所述每個子任務的所述目標晶片頻率的步驟包括:基於所述多個子任務中第一子任務的任務參數、設備資源資訊和所述第一子任務執行時的晶片溫度,確定所述第一子任務的目標晶片頻率。
- 如請求項4或5所述的方法,其中基於所述設備資訊和所述多個子任務中所述每個子任務的所述任務參數,確定所述每個子任務的所述目標晶片頻率的步驟包括:獲取多個第一資料和多個第二資料之間的預設映射關係,所述第一資料包括預設任務參數和預設設備資訊,所述第二資料包括預設晶片頻率;根據所述預設映射關係、所述設備資訊以及所述每個子任務的所述任務參數,確定所述每個子任務的所述目標晶片頻率。
- 如請求項6所述的方法,其中根據所述預設映射關係、所述設備資訊以及所述每個子任務的所述任務參數,確定所述每個子任務的所述目標晶片頻率的步驟包括: 確定第三資料與所述預設映射關係中的所述多個第一資料中每個第一資料之間的距離,所述第三資料包括所述多個子任務中所述第一子任務的所述任務參數和所述設備資訊;將所述預設映射關係中與所述第三資料距離最近的所述第一資料對應的預設晶片頻率,作為所述第一子任務的所述目標晶片頻率。
- 如請求項6所述的方法,其中在獲取所述多個第一資料和所述多個第二資料之間的所述預設映射關係的步驟之前,所述方法還包括:獲取多組可選晶片頻率,並獲取採樣得到的離散的所述多個第一資料;對於所述多個第一資料中的每個所述第一資料,由所述多組可選晶片頻率中選擇一組晶片頻率作為與每個所述第一資料對應的第二資料,並建立每個所述第一資料和選擇的所述第二資料之間的映射關係。
- 如請求項6所述的方法,其中所述預設映射關係中與所述第一資料對應的預設晶片頻率是基於在多組可選晶片頻率中每組可選晶片頻率的條件下所述第一資料對應的性能評估參數,從所述多組可選晶片頻率中選擇的。
- 如請求項1、2、4或5任一項所述的方法,其中基於所述多個子任務中所述每個子任務的所述任務參數,確定所述每個子任務的所述目標晶片頻率的步驟包括: 基於所述多個子任務中所述每個子任務的所述任務參數,由多組可選晶片頻率中,選擇能夠使得所述晶片在晶片功耗限制條件下實現任務運行時間最低的晶片頻率,作為所述目標晶片頻率。
- 如請求項1、2、4或5任一項所述的方法,其中所述方法還包括:接收用戶輸入的頻率設置策略資訊;其中基於所述多個子任務中所述每個子任務的所述任務參數,確定所述每個子任務的所述目標晶片頻率的步驟包括:基於所述頻率設置策略資訊和所述多個子任務中所述每個子任務的所述任務參數,確定所述每個子任務的所述目標晶片頻率。
- 如請求項1、2、4或5任一項所述的方法,其中所述工作頻率包括如下至少一項:所述晶片的核心頻率、或者儲存裝置頻率。
- 一種晶片工作頻率的設置裝置,其中所述裝置包括:獲取模組,用於獲取目標任務的多個子任務以及每個所述子任務的任務參數,所述任務參數包括用於表示所述子任務的運算規模的參數;頻率控制模組,用於基於所述多個子任務中所述每個子任務的所述任務參數,確定所述每個子任務的目標晶片頻率;頻率設置模組,用於根據確定的所述每個子任務的所述目標 晶片頻率,設置晶片執行所述每個子任務的工作頻率。
- 一種用於設置晶片工作頻率的電子設備,包括:儲存裝置、處理器,所述儲存裝置用於儲存電腦可讀指令,所述處理器用於調用所述電腦可讀指令,實現請求項1至12任一項所述的方法。
- 一種用於設置晶片工作頻率的電腦可讀取記錄媒體,其上儲存有電腦程式,其中所述電腦程式被處理器執行時,所述處理器實現請求項1至12任一項所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911201455.9 | 2019-11-29 | ||
CN201911201455.9A CN112882819B (zh) | 2019-11-29 | 2019-11-29 | 芯片工作频率的设置方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202121116A TW202121116A (zh) | 2021-06-01 |
TWI743934B true TWI743934B (zh) | 2021-10-21 |
Family
ID=76038734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109127158A TWI743934B (zh) | 2019-11-29 | 2020-08-11 | 晶片工作頻率的設置方法和裝置、電子設備及記錄媒體 |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP2022516549A (zh) |
KR (1) | KR20210098508A (zh) |
CN (1) | CN112882819B (zh) |
TW (1) | TWI743934B (zh) |
WO (1) | WO2021103618A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785376B (zh) * | 2022-05-06 | 2023-07-21 | Oppo广东移动通信有限公司 | 频压预配置方法和相关装置 |
CN114779879B (zh) * | 2022-05-06 | 2024-04-30 | Oppo广东移动通信有限公司 | 频压调节方法和相关装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100064124A1 (en) * | 2006-11-16 | 2010-03-11 | Karl Rinne | Digital power controller |
TWI336453B (en) * | 2006-12-18 | 2011-01-21 | Asustek Comp Inc | Method for adjusting working frequency of chip |
CN102169357A (zh) * | 2011-02-23 | 2011-08-31 | 北京大学深圳研究生院 | 可调工作电压和时钟频率的dsp及其调节方法 |
TW201329703A (zh) * | 2012-01-04 | 2013-07-16 | Samsung Electronics Co Ltd | 溫度管理電路、包含該電路的系統晶片以及管理溫度的方法 |
CN104871110A (zh) * | 2012-12-21 | 2015-08-26 | 瑞萨电子株式会社 | 半导体器件及其控制方法 |
CN105045702A (zh) * | 2015-07-22 | 2015-11-11 | Tcl移动通信科技(宁波)有限公司 | 一种根据芯片温度来保护芯片的方法、***及芯片 |
JP5902218B2 (ja) * | 2013-03-15 | 2016-04-13 | インテル・コーポレーション | 高温イベントにおける動作を保証するべく動作頻度情報を持つプロセッサ |
CN107562682A (zh) * | 2017-08-01 | 2018-01-09 | 华南理工大学 | 基于众核芯片上核心间热能的通信方法 |
US20180260017A1 (en) * | 2017-03-06 | 2018-09-13 | Sonics, Inc. | Hardware-based operating point controller for circuit regions in an integrated circuit |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2003083693A1 (ja) * | 2002-04-03 | 2005-08-04 | 富士通株式会社 | 分散処理システムにおけるタスクスケジューリング装置 |
US7206950B2 (en) * | 2004-06-16 | 2007-04-17 | Matsushita Electric Industrial Co., Ltd. | Processor system, instruction sequence optimization device, and instruction sequence optimization program |
JP4082439B2 (ja) * | 2004-07-26 | 2008-04-30 | 三菱電機株式会社 | 並列計算機 |
EP2202605B1 (en) * | 2007-10-11 | 2013-02-27 | Fujitsu Limited | Information processor, operation control method, and operation control program |
EP2362297B1 (en) * | 2010-02-25 | 2014-05-14 | Telefonaktiebolaget L M Ericsson (publ) | Technique for selecting a frequency of operation in a processor system |
US8381004B2 (en) * | 2010-05-26 | 2013-02-19 | International Business Machines Corporation | Optimizing energy consumption and application performance in a multi-core multi-threaded processor system |
US9400518B2 (en) * | 2013-06-05 | 2016-07-26 | Qualcomm Innovation Center, Inc. | Temporary frequency adjustment of mobile device processors based on task migration |
CN103955264B (zh) * | 2014-05-15 | 2016-10-12 | 乐视致新电子科技(天津)有限公司 | 动态调节处理器工作频率的方法及*** |
CN104407690B (zh) * | 2014-12-19 | 2018-03-06 | 中科创达软件股份有限公司 | 调节cpu工作频率的方法、装置及移动终端 |
CN106527653A (zh) * | 2016-10-12 | 2017-03-22 | 东软集团股份有限公司 | 调整cpu频率的方法及装置 |
JP2018106591A (ja) * | 2016-12-28 | 2018-07-05 | ルネサスエレクトロニクス株式会社 | 半導体装置、動作制御方法、及びプログラム |
CN108334405A (zh) * | 2017-01-20 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 频率异构cpu,频率异构实现方法、装置及任务调度方法 |
CN107357658A (zh) * | 2017-06-29 | 2017-11-17 | 上海斐讯数据通信技术有限公司 | 一种调节移动终端cpu频率的方法及*** |
CN109212306B (zh) * | 2017-07-06 | 2021-02-26 | 龙芯中科技术股份有限公司 | 芯片功耗的调节方法、电路与装置 |
CN107678855B (zh) * | 2017-09-19 | 2020-06-12 | 中国电子产品可靠性与环境试验研究所 | 处理器动态调节方法、装置及处理器芯片 |
CN108268265A (zh) * | 2018-01-24 | 2018-07-10 | 深圳市道通科技股份有限公司 | 公共代码库的链接映射方法、软件代码烧录方法及烧录主机 |
-
2019
- 2019-11-29 CN CN201911201455.9A patent/CN112882819B/zh active Active
-
2020
- 2020-07-28 KR KR1020217020535A patent/KR20210098508A/ko not_active Application Discontinuation
- 2020-07-28 WO PCT/CN2020/105195 patent/WO2021103618A1/zh active Application Filing
- 2020-07-28 JP JP2021538698A patent/JP2022516549A/ja active Pending
- 2020-08-11 TW TW109127158A patent/TWI743934B/zh active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100064124A1 (en) * | 2006-11-16 | 2010-03-11 | Karl Rinne | Digital power controller |
TWI336453B (en) * | 2006-12-18 | 2011-01-21 | Asustek Comp Inc | Method for adjusting working frequency of chip |
CN102169357A (zh) * | 2011-02-23 | 2011-08-31 | 北京大学深圳研究生院 | 可调工作电压和时钟频率的dsp及其调节方法 |
TW201329703A (zh) * | 2012-01-04 | 2013-07-16 | Samsung Electronics Co Ltd | 溫度管理電路、包含該電路的系統晶片以及管理溫度的方法 |
CN104871110A (zh) * | 2012-12-21 | 2015-08-26 | 瑞萨电子株式会社 | 半导体器件及其控制方法 |
JP5902218B2 (ja) * | 2013-03-15 | 2016-04-13 | インテル・コーポレーション | 高温イベントにおける動作を保証するべく動作頻度情報を持つプロセッサ |
CN105045702A (zh) * | 2015-07-22 | 2015-11-11 | Tcl移动通信科技(宁波)有限公司 | 一种根据芯片温度来保护芯片的方法、***及芯片 |
US20180260017A1 (en) * | 2017-03-06 | 2018-09-13 | Sonics, Inc. | Hardware-based operating point controller for circuit regions in an integrated circuit |
CN107562682A (zh) * | 2017-08-01 | 2018-01-09 | 华南理工大学 | 基于众核芯片上核心间热能的通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112882819B (zh) | 2022-03-08 |
WO2021103618A1 (zh) | 2021-06-03 |
JP2022516549A (ja) | 2022-02-28 |
KR20210098508A (ko) | 2021-08-10 |
TW202121116A (zh) | 2021-06-01 |
CN112882819A (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI743934B (zh) | 晶片工作頻率的設置方法和裝置、電子設備及記錄媒體 | |
CN112513886B (zh) | 信息处理方法、信息处理装置和信息处理程序 | |
CN110069284B (zh) | 一种基于opu指令集的编译方法及编译器 | |
CN111523642B (zh) | 用于卷积运算的数据重用方法、运算方法及装置、芯片 | |
CN104935523B (zh) | 一种负载均衡的处理方法和设备 | |
CN105488134A (zh) | 大数据处理方法及大数据处理装置 | |
CN104035747A (zh) | 用于并行计算的方法和装置 | |
CN114429195A (zh) | 混合专家模型训练的性能优化方法和装置 | |
CN112988275B (zh) | 一种基于任务感知的移动边缘计算多用户计算卸载方法 | |
CN108897619B (zh) | 一种用于超级计算机的多层级资源柔性配置方法 | |
CN115883391A (zh) | 单用户服务选择方法及装置 | |
CN116014764A (zh) | 一种分布式储能优化处理方法及装置 | |
JPWO2018168695A1 (ja) | 分散機械学習装置、分散機械学習方法および分散機械学習プログラム | |
CN115309502A (zh) | 一种容器调度方法及装置 | |
CN112100446B (zh) | 搜索方法、可读存储介质和电子设备 | |
WO2021180190A1 (zh) | 一种单指令多数据simd指令的生成、处理方法以及相关设备 | |
CN111461328B (zh) | 一种神经网络的训练方法 | |
US20210004717A1 (en) | Learning method and recording medium | |
JP6492779B2 (ja) | マッピング情報生成プログラム、マッピング情報生成方法、及びマッピング情報生成装置 | |
US20200004503A1 (en) | Information processing device, information processing method, and computer readable medium | |
CN116187265B (zh) | 一种芯片设计方法及终端 | |
CN108958793B (zh) | 一种基于改进gn算法的程序控制流图划分方法 | |
US20240249150A1 (en) | System for allocating deep neural network to processing unit based on reinforcement learning and operation method of the system | |
CN114115804B (zh) | 一种乘法器转换方法、***、设备以及介质 | |
WO2024159976A1 (zh) | 模型训练方法、电子设备和计算机可读存储介质 |