(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-02-28
(54)【発明の名称】チップ動作周波数の設定
(51)【国際特許分類】
G06F 1/324 20190101AFI20220218BHJP
G06F 1/3206 20190101ALI20220218BHJP
G06F 1/3228 20190101ALI20220218BHJP
G06F 9/50 20060101ALI20220218BHJP
【FI】
G06F1/324
G06F1/3206
G06F1/3228
G06F9/50 120A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021538698
(86)(22)【出願日】2020-07-28
(85)【翻訳文提出日】2021-06-30
(86)【国際出願番号】 CN2020105195
(87)【国際公開番号】W WO2021103618
(87)【国際公開日】2021-06-03
(31)【優先権主張番号】201911201455.9
(32)【優先日】2019-11-29
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】520180323
【氏名又は名称】上▲海▼商▲湯▼智能科技有限公司
【氏名又は名称原語表記】SHANGHAI SENSETIME INTELLIGENT TECHNOLOGY CO., LTD.
【住所又は居所原語表記】Room 1605A, Building 3, 391 Guiping Road, Xuhui District, Shanghai 200233 China
(74)【代理人】
【識別番号】110000729
【氏名又は名称】特許業務法人 ユニアス国際特許事務所
(72)【発明者】
【氏名】李 天健
(72)【発明者】
【氏名】戴 彦
(72)【発明者】
【氏名】王 迎瑞
(72)【発明者】
【氏名】侯 宇▲樂▼
(72)【発明者】
【氏名】▲楊▼ 修▲齊▼
【テーマコード(参考)】
5B011
【Fターム(参考)】
5B011EA08
5B011LL13
(57)【要約】
本発明の実施例は、チップ動作周波数設定方法、及び装置を提供し、前記方法は、目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得することと、前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することと、根据確定された各サブタスクに対応する前記目標チップ周波数、チップが前記各サブタスクを実行するときの動作周波数を設定することと、を含み、前記タスクパラメータは、前記サブタスクの演算規模を示すためのパラメータを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
チップ動作周波数設定方法であって、
目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得することと、
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することと、
確定された各サブタスクの目標チップ周波数に基づいて、チップが前記各サブタスクを実行するときの動作周波数を設定することと、を含み、
前記タスクパラメータは、前記サブタスクの演算規模を示すためのパラメータを含む
ことを特徴とするチップ動作周波数設定方法。
【請求項2】
前記目標タスクに対してタスク解析処理を実行して、前記複数のサブタスクおよび各サブタスクのタスクパラメータを得ることと、
前記複数のサブタスクの中の各サブタスクと前記各サブタスクのタスクパラメータとの対応関係を記憶することと、をさらに含み、
前記目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得することは、
記憶した前記対応関係から各サブタスクのタスクパラメータを検索することを含む
ことを特徴とする請求項1に記載のチップ動作周波数設定方法。
【請求項3】
前記タスクパラメータは、前記サブタスクの計算量、および、前記サブタスクのメモリアクセス量の中の少なくとも1つを含む
ことを特徴とする請求項1または2に記載のチップ動作周波数設定方法。
【請求項4】
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
前記チップが配置されているデバイスのデバイス情報を取得することと、
前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することと、を含み、
前記デバイス情報は、デバイスリソース情報を含む
ことを特徴とする請求項1から3のいずれかに記載のチップ動作周波数設定方法。
【請求項5】
前記デバイスリソース情報は、計算ユニットの数、帯域幅、および、メモリ容量の中の任意の1つまたは複数を含む
ことを特徴とする請求項4に記載のチップ動作周波数設定方法。
【請求項6】
前記デバイス情報は、前記チップのチップ温度をさらに含み、
前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
前記複数のサブタスクの中の第1サブタスクのタスクパラメータ、前記デバイスリソース情報、および、前記第1サブタスクを実行するときのチップ温度に基づいて、前記第1サブタスクの目標チップ周波数を確定することを含む
ことを特徴とする請求項4または5に記載のチップ動作周波数設定方法。
【請求項7】
前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
複数の第1データと複数の第2データとの間の所定のマッピング関係を取得することであって、前記第1データは、所定のタスクパラメータおよび所定のデバイス情報を含み、前記第2データは、所定のチップ周波数を含むことと、
前記所定のマッピング関係、前記デバイス情報、および、各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することと、を含む
ことを特徴とする請求項4から6のいずれかに記載のチップ動作周波数設定方法。
【請求項8】
前記所定のマッピング関係、前記デバイス情報、および、各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
第3データと前記所定のマッピング関係中の複数の第1データの中の各第1データとの間の距離を確定することであって、前記第3データは、前記複数のサブタスクの中の第1サブタスクのタスクパラメータおよびデバイス情報を含むことと、
前記所定のマッピング関係中の前記第3データとの距離が一番近い第1データに対応する所定のチップ周波数を、前記第1サブタスクの目標チップ周波数として確定することと、を含む
ことを特徴とする請求項7に記載のチップ動作周波数設定方法。
【請求項9】
複数の第1データと複数の第2データとの間の所定のマッピング関係を取得する前に、
チップ動作周波数設定方法は、
複数の組の選択可能なチップ周波数を取得し、サンプリングによって得られた離散的な複数の第1データを取得することと、
前記複数の第1データの中の各前記第1データに対して、前記各第1データに対応する第2データとして、前記複数の組の選択可能なチップ周波数の中から1組のチップ周波数を選択し、前記各第1データと選択した前記第2データとの間のマッピング関係を構築することと、を含む
ことを特徴とする請求項7または8に記載のチップ動作周波数設定方法。
【請求項10】
前記所定のマッピング関係中の前記第1データに対応する所定のチップ周波数は、複数の組の選択可能なチップ周波数の中の各組の選択可能なチップ周波数の条件での前記第1データに対応する性能評価パラメータに基づいて、前記複数の組の選択可能なチップ周波数の中から選択したものである
ことを特徴とする請求項7から9のいずれかに記載のチップ動作周波数設定方法。
【請求項11】
前記性能評価パラメータは、タスク処理性能パラメータおよびチップ動作消費電力を含み、
前記所定のマッピング関係中の前記第1データに対応する所定のチップ周波数は、前記複数の組の選択可能なチップ周波数の中のチップ動作消費電力が所定の消費電力未満であり、かつ、タスク処理性能パラメータが一番良い選択可能なチップ周波数である
ことを特徴とする請求項10に記載のチップ動作周波数設定方法。
【請求項12】
ユーザが入力した、前記所定のマッピング関係に対する構成情報を、受信することをさらに含む
ことを特徴とする請求項7から11のいずれかに記載のチップ動作周波数設定方法。
【請求項13】
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、複数の組の選択可能なチップ周波数の中から、前記目標チップ周波数として、前記チップのチップ消費電力制限条件でタスクを実現するための動作時間が一番短くすることができるチップ周波数を選択することを含む
ことを特徴とする請求項1から12のいずれかに記載のチップ動作周波数設定方法。
【請求項14】
ユーザが入力した、周波数設定戦略情報を、受信することをさらに含み、
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
前記周波数設定戦略情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することを含む
ことを特徴とする請求項1から13のいずれかに記載のチップ動作周波数設定方法。
【請求項15】
前記周波数設定戦略情報は、サブタスクに対するチップ周波数動的設定機能をオンまたはオフすることを含む
ことを特徴とする請求項14に記載のチップ動作周波数設定方法。
【請求項16】
前記動作周波数は、前記チップのコア周波数、または、メモリ周波数の中の少なくとも1つを含む
ことを特徴とする請求項1から15のいずれかに記載のチップ動作周波数設定方法。
【請求項17】
チップ動作周波数設定装置であって、
目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得するための取得モジュールと、
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定するための周波数制御モジュールと、
確定された各サブタスクの目標チップ周波数に基づいて、チップが前記各サブタスクを実行するときの動作周波数を設定するための周波数設定モジュールと、を備え、
前記タスクパラメータは、前記サブタスクの演算規模を示すためのパラメータを含む
ことを特徴とするチップ動作周波数設定装置。
【請求項18】
前記目標タスクに対してタスク解析処理を実行して、前記複数のサブタスクおよび各サブタスクのタスクパラメータを得、前記複数のサブタスクの中の各サブタスクと前記各サブタスクのタスクパラメータとの対応関係を記憶するためのタスク解析モジュールと、をさらに備え、
前記取得モジュールは、さらに、記憶した前記対応関係から各サブタスクのタスクパラメータを検索する
ことを特徴とする請求項17に記載のチップ動作周波数設定装置。
【請求項19】
前記タスクパラメータは、前記サブタスクの計算量、および、前記サブタスクのメモリアクセス量の中の少なくとも1つを含む
ことを特徴とする請求項17または18に記載のチップ動作周波数設定装置。
【請求項20】
前記周波数制御モジュールは、さらに、
前記チップが配置されているデバイスのデバイス情報を取得し、
前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定し、
前記デバイス情報は、デバイスリソース情報を含む
ことを特徴とする請求項17から19のいずれかに記載のチップ動作周波数設定装置。
【請求項21】
前記デバイスリソース情報は、計算ユニットの数、帯域幅、および、メモリ容量の中の任意の1つまたは複数を含む
ことを特徴とする請求項20に記載のチップ動作周波数設定装置。
【請求項22】
前記デバイス情報は、前記チップのチップ温度をさらに含み、
前記周波数制御モジュールは、さらに、前記複数のサブタスクの中の第1サブタスクのタスクパラメータ、前記デバイスリソース情報、および、前記第1サブタスクを実行するときのチップ温度に基づいて、前記第1サブタスクの目標チップ周波数を確定する
ことを特徴とする請求項20または21に記載のチップ動作周波数設定装置。
【請求項23】
前記周波数制御モジュールは、さらに、
複数の第1データと複数の第2データとの間の所定のマッピング関係を取得し、ここで、前記第1データは、所定のタスクパラメータおよび所定のデバイス情報を含み、前記第2データは、所定のチップ周波数を含み、
また、前記所定のマッピング関係、前記デバイス情報、および、各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定する
ことを特徴とする請求項20から22のいずれかに記載のチップ動作周波数設定装置。
【請求項24】
前記周波数制御モジュールは、さらに、
第3データと前記所定のマッピング関係中の複数の第1データの中の各第1データとの間の距離を確定し、ここで、前記第3データは、前記複数のサブタスクの中の第1サブタスクのタスクパラメータおよびデバイス情報を含み、
また、前記所定のマッピング関係中の前記第3データとの距離が一番近い第1データに対応する所定のチップ周波数を、前記第1サブタスクの目標チップ周波数として確定する
ことを特徴とする請求項22に記載のチップ動作周波数設定装置。
【請求項25】
前記周波数制御モジュールは、さらに、:
複数の第1データと複数の第2データとの間の所定のマッピング関係を取得する前に、複数の組の選択可能なチップ周波数を取得し、サンプリングによって得られた離散的な複数の第1データを取得し、
前記複数の第1データの中の各前記第1データに対して、前記各第1データに対応する第2データとして、前記複数の組の選択可能なチップ周波数の中から1組のチップ周波数を選択し、前記各第1データと選択した前記第2データとの間のマッピング関係を構築する
ことを特徴とする請求項23または24に記載のチップ動作周波数設定装置。
【請求項26】
所定の前記所定のマッピング関係中の前記第1データに対応する所定のチップ周波数は、複数の組の選択可能なチップ周波数の中の各組の選択可能なチップ周波数の条件での前記第1データに対応する性能評価パラメータに基づいて、前記複数の組の選択可能なチップ周波数の中から選択したものである
ことを特徴とする請求項23から25のいずれかに記載のチップ動作周波数設定装置。
【請求項27】
前記性能評価パラメータは、タスク処理性能パラメータおよびチップ動作消費電力を含み、
前記所定のマッピング関係中の前記第1データに対応する所定のチップ周波数は、前記複数の組の選択可能なチップ周波数の中のチップ動作消費電力が所定の消費電力未満であり、かつ、タスク処理性能パラメータが一番良い選択可能なチップ周波数である
ことを特徴とする請求項26に記載のチップ動作周波数設定装置。
【請求項28】
ユーザが入力した、前記所定のマッピング関係に対する構成情報を、受信するためのインターフェースモジュールをさらに備える
ことを特徴とする請求項23から27のいずれかに記載のチップ動作周波数設定装置。
【請求項29】
前記周波数制御モジュールは、さらに、
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、複数の組の選択可能なチップ周波数の中から、前記目標チップ周波数として、前記チップのチップ消費電力制限条件でタスクを実現するための動作時間が一番短くすることができるチップ周波数を選択する
ことを特徴とする請求項17から28のいずれかに記載のチップ動作周波数設定装置。
【請求項30】
前記インターフェースモジュールは、さらに、ユーザが入力した、周波数設定戦略情報を、受信し、
前記周波数制御モジュールは、さらに、前記周波数設定戦略情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定する
ことを特徴とする請求項28に記載のチップ動作周波数設定装置。
【請求項31】
前記周波数設定戦略情報は、サブタスクに対するチップ周波数動的設定機能をオンまたはオフすることを含む
ことを特徴とする請求項30に記載のチップ動作周波数設定装置。
【請求項32】
前記動作周波数は、前記チップのコア周波数、または、メモリ周波数の中の少なくとも1つを含む
ことを特徴とする請求項17から31のいずれかに記載のチップ動作周波数設定装置。
【請求項33】
電子デバイスであって、
メモリと、プロセッサと、を備え、
前記メモリは、機械可読命令を記憶し、
前記プロセッサは、前記機械可読命令を呼び出して、請求項1から16のいずれかに記載のチップ動作周波数設定方法を実現する
ことを特徴とする電子デバイス。
【請求項34】
前記プロセッサが設定した動作周波数で目標タスク中の各サブタスクに対して処理を実行するチップをさらに備える
ことを特徴とする請求項33に記載の電子デバイス。
【請求項35】
コンピュータプログラムが記録されているコンピュータ可読記録媒体であって、
前記プログラムがプロセッサによって実行されるときに、前記プロセッサが請求項1から16のいずれかに記載のチップ動作周波数設定方法を実現するようにする
ことを特徴とするコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スマートデバイス技術に関し、具体的には、チップ動作周波数設定方法、及び装置に関する。
【背景技術】
【0002】
5Gおよび人工知能技術の発展に伴い、エンドデバイス(たとえば、スマートフォン、スマートカメラなど)は、より多いコンピューティング要件を与えられ、より多いタスクを実行する必要がある。しかしながら、エンドデバイスに含まれるコンピューティング処理に使用されるチップのほとんどには消費電力の制限があり、デバイスのコンピューティングピーク能力を十分に活用することができない。周波数低減は、現在、チップの過度の消費電力を防ぐための主要な方法の1つである。周波数低減技術は、主にチップの動作周波数(frequency)を一時的に下げることによってチップの消費電力を低減する。
【0003】
一部の技術では、エンドデバイスでアプリケーションを実行する前に、1つの初期動作周波数を設定し、チップを当該初期動作周波数で動作させてアプリケーションのコンピューティング処理を行う場合がある。また、アプリケーションの動作過程で、チップの消費電力が標準を超える場合、チップに対して一定の周波数低減戦略を採用することができる。たとえば、チップの動作周波数を一定の比例で低減するか、または、どの動作周波数を一定の数値までに低減させる。
【発明の概要】
【0004】
本発明の実施例は、少なくとも、チップ動作周波数設定方法、及び装置を提供する。
【0005】
第1の態様によると、チップ動作周波数設定方法を提供し、当該方法は、目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得することと、前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することと、確定された各サブタスクの目標チップ周波数に基づいて、チップが前記各サブタスクを実行するときの動作周波数を設定することと、を含み、前記タスクパラメータは、前記サブタスクの演算規模を示すためのパラメータを含む。
【0006】
本発明の任意の実施例によると、前記方法は、前記目標タスクに対してタスク解析処理を実行して、前記複数のサブタスクおよび各サブタスクのタスクパラメータを得ることと、前記複数のサブタスクの中の各サブタスクと前記各サブタスクのタスクパラメータとの対応関係を記憶することと、をさらに含み、前記目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得することは、記憶した前記対応関係から各サブタスクのタスクパラメータを検索することを含む。
【0007】
本発明の任意の実施例によると、前記タスクパラメータは、前記サブタスクの計算量、および、前記サブタスクのメモリアクセス量の中の少なくとも1つを含む。
【0008】
本発明の任意の実施例によると、前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、前記チップが配置されているデバイスのデバイス情報を取得することと、前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することと、を含み、前記デバイス情報は、デバイスリソース情報を含む。
【0009】
本発明の任意の実施例によると、前記デバイスリソース情報は、計算ユニットの数、帯域幅、および、メモリ容量の中の任意の1つまたは複数を含む。
【0010】
本発明の任意の実施例によると、前記デバイス情報は、前記チップのチップ温度をさらに含み、前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、前記複数のサブタスクの中の第1サブタスクのタスクパラメータ、前記デバイスリソース情報、および、前記第1サブタスクを実行するときのチップ温度に基づいて、前記第1サブタスクの目標チップ周波数を確定することを含む。
【0011】
本発明の任意の実施例によると、前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、複数の第1データと複数の第2データとの間の所定のマッピング関係を取得することであって、前記第1データは、所定のタスクパラメータおよび所定のデバイス情報を含み、前記第2データは、所定のチップ周波数を含むことと、前記所定のマッピング関係、前記デバイス情報、および、各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することと、を含む。
【0012】
本発明の任意の実施例によると、前記所定のマッピング関係、前記デバイス情報、および、各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、第3データと前記所定のマッピング関係中の複数の第1データの中の各第1データとの間の距離を確定することであって、前記第3データは、前記複数のサブタスクの中の第1サブタスクのタスクパラメータおよびデバイス情報を含むことと、前記所定のマッピング関係中の前記第3データとの距離が一番近い目標第1データに対応する所定のチップ周波数を、前記第1サブタスクの目標チップ周波数として確定することと、を含む。
【0013】
本発明の任意の実施例によると、複数の第1データと複数の第2データとの間の所定のマッピング関係を取得する前に、前記方法は、複数の組の選択可能なチップ周波数を取得し、サンプリングによって得られた離散的な複数の第1データを取得することと、前記複数の第1データの中の各前記第1データに対して、前記各第1データに対応する第2データとして、前記複数の組の選択可能なチップ周波数の中から1組のチップ周波数を選択し、前記各第1データと選択した前記第2データとの間のマッピング関係を構築することと、を含む。
【0014】
本発明の任意の実施例によると、前記所定のマッピング関係中の前記第1データに対応する所定のチップ周波数は、複数の組の選択可能なチップ周波数の中の各組の選択可能なチップ周波数の条件での前記第1データに対応する性能評価パラメータに基づいて、前記複数の組の選択可能なチップ周波数の中から選択したものである。
【0015】
本発明の任意の実施例によると、前記性能評価パラメータは、タスク処理性能パラメータおよびチップ動作消費電力を含み、前記所定のマッピング関係中の前記第1データに対応する所定のチップ周波数は、前記複数の組の選択可能なチップ周波数の中のチップ動作消費電力が所定の消費電力未満であり、かつ、タスク処理性能パラメータが一番良い選択可能なチップ周波数である。
【0016】
本発明の任意の実施例によると、前記方法は、ユーザが入力した、前記所定のマッピング関係に対する構成情報を、受信することをさらに含む。
【0017】
本発明の任意の実施例によると、前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、前記複数のサブタスクの中の各サブタスクに対応するタスクパラメータに基づいて、複数の組の選択可能なチップ周波数の中から、前記目標チップ周波数として、前記チップのチップ消費電力制限条件でタスクを実現するための動作時間が一番短くすることができるチップ周波数を選択することを含む。
【0018】
本発明の任意の実施例によると、前記方法は、ユーザが入力した、周波数設定戦略情報を、受信することをさらに含み、前記複数のサブタスクの中の各サブタスクに対応するタスクパラメータに基づいて前記各サブタスクの目標チップ周波数を確定することは、前記周波数設定戦略情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することを含む。
【0019】
本発明の任意の実施例によると、前記周波数設定戦略情報は、サブタスクに対するチップ周波数動的設定機能をオンまたはオフすることを含む。
【0020】
本発明の任意の実施例によると、前記動作周波数は、前記チップのコア周波数、または、メモリ周波数の中の少なくとも1つを含む。
【0021】
第2の態様によると、チップ動作周波数設定装置を提供し、前記装置は、目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得するための取得モジュールと、前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定するための周波数制御モジュールと、確定された各サブタスクの目標チップ周波数に基づいて、チップが前記各サブタスクを実行するときの動作周波数を設定するための周波数設定モジュールと、を備え、前記タスクパラメータは、前記サブタスクの演算規模を示すためのパラメータを含む。
【0022】
第3の態様によると、電子デバイスを提供し、当該電子デバイスは、メモリと、プロセッサと、を備え、前記メモリは、機械可読命令を記憶し、前記プロセッサは、前記機械可読命令を呼び出して、本発明の第1態様に記載の方法を実装する。
【0023】
本発明の任意の実施例によると、前記デバイスは、前記プロセッサが設定した動作周波数で目標タスク中の各サブタスクに対して処理を実行するチップをさらに備える。
【0024】
第4の態様によると、コンピュータプログラムが記録されているコンピュータ可読記録媒体を提供し、前記プログラムがプロセッサによって実行されるときに、前記プロセッサが本発明の第1態様に記載の方法を実行するようにする。
【0025】
本発明の実施例によって提供されるチップ動作周波数設定方法および装置によると、目標タスク中の各サブタスクのタスクパラメータに基づいて当該サブタスクの目標チップ周波数を確定することによって、チップが当該各サブタスクを実行するときに当該サブタスクの目標チップ周波数で動作するようにすることができる。このような洗練された周波数設定方法は、各々のサブタスクを実行するときにいずれも可能な限り一番良い動作性能を実現するようにし、タスク全体の動作速度を向上させることができる。
【図面の簡単な説明】
【0026】
【
図1】本発明のいくつかの実施例によって提供されるチップ動作周波数設定方法を示すフローチャートである。
【
図2】本発明のいくつかの実施例によって提供されるチップ動作周波数設定方法を示すもう1つのフローチャートである。
【
図3】本発明のいくつかの実施例によって提供される所定のマッピング関係の構築過程を示すもう1つのフローチャートである。
【
図4】本発明のいくつかの実施例によって提供されるチップ動作周波数設定方法を示すもう1つのフローチャートである。
【
図5】本発明のいくつかの実施例によって提供されるチップ動作周波数設定装置を示すブロック図である。
【
図6】本発明のいくつかの実施例によって提供されるチップ動作周波数設定装置を示すもう1ブロック図である。
【
図7】本発明のいくつかの実施例によって提供されるチップ動作周波数の電子デバイスを示すブロック図である。
【発明を実施するための形態】
【0027】
以下、当業者が本発明の1つまたは複数の実施例の技術的解決策をより良く理解するようにするために、本発明の1つまたは複数の実施例中の図面を参照して、本発明の1つまたは複数の実施例の技術的解決策を明確かつ完全に説明する。当然ながら、説明される実施例は、本発明の一部の実施例に過ぎず、全部の実施例ではない。当業者によって本発明の1つまたは複数の実施例に基づいて創造的な作業なしに得られたすべての他の実施例は、いずれも本発明の保護範囲に含まれるものとする。
【0028】
本発明の実施例は、エンドデバイス中のチップの動作周波数を設定する方法を提供する。当該方法は、チップが当該設定した動作周波数で動作するときにデバイスの動作性能をより良くすることを目的とする。たとえば、デバイス上で実行中のタスクをより高速に処理して完了することができる。ここで、当該チップは、人工知能(Artificial Intelligence、AI)チップであり得、たとえば、スマートフォンで使用されるAIチップ、自動運転車両で使用されるAIチップ、モノのインターネットのエッジデバイスで使用されるAIチップなどであり得る。また、CPU(Central Processing Unit)チップ、DSP(Digital Signal Processing)、メモリチップなどの他のタイプのチップであり得、本発明の実施例はこれに対して限定しない。
【0029】
図1は、本発明のいくつかの実施例によって提供されるチップ動作周波数設定方法を示すフローチャートであり、
図1に示すように、当該方法は、以下のような処理を含む。
【0030】
ステップ100において、目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得し、前記タスクパラメータは、前記サブタスクの演算規模を示すためのパラメータを含む。
【0031】
本ステップにおいて、前記の目標タスクは、デバイスで実行および処理するタスクであり得る。たとえば、当該タスクは、深層学習モデルのトレーニングタスク、ニューラルネットワークモデルの推論タスク、または、アプリケーションの運行などであり得る。前記目標タスクの実行は、当該デバイス上のチップを使用する必要があり、チップは、タスク実行過程での計算などの一部または全部の処理動作を担当する。
【0032】
前記のサブタスクは、目標タスクに含まれている1つの比較的独立した実行ユニットであり得る。たとえば、目標タスクは、複数の関数を含み得、目標タスクを関数に従って分割することができ、各関数を目標タスクの1つの独立したサブタスクとして使用する。また、たとえば、タスクコードを複数のコードブロックに分割し、コードブロックに従ってサブタスクを分割し、各セグメントのコードは、比較的完全である。たとえば、1つの比較的完全なコードブロックまたは独立したコードブロックを、1つのサブタスクとして使用する。また、たとえば、目標タスクがニューラルネットワークモデルのトレーニングまたは推論タスクである場合、当該ニューラルネットワークモデルの各層または複数の層を1つのサブタスクと見なすことができる。または、各層の実現過程のコードセグメントを1つのサブタスクとして使用することができる。また、たとえば、複数の機能モジュールの中の1つまたは少なくとも2つの機能モジュールを1つのサブタスクとして使用することができる。
【0033】
本発明の実施例は、サブタスクの分割方法に対して限定しない。サブタスクの分割方法は、複数あり得、たとえば、上記に言及した、関数、コードブロック、ネットワーク層、または、オペレータを単位として分割するか、または、機能モジュールを単位として分割することができる。目標タスクを複数のサブタスクに分割すると、きめ細かい周波数設定を実現し、デバイスの動作性能を向上させることができるが、多すぎるサブタスク数は、より頻繁な周波数設定をもたらし、デバイスの動作性能に一定の影響を与える可能性があることに注意する必要がある。したがって、サブタスク数の設定のバランスをとることができ、たとえば、目標タスクに含まれたループ本体の内部をできるだけさらにサブタスクに分割しなく、このようにして周波数設定の回数を減らすことができる。具体的には、于実際の要求に応じて設定することができ、ここでは繰り返して説明しない。
【0034】
本発明の実施例において、サブタスクのタスクパラメータは、サブタスクの演算規模を示すパラメータを含み得、たとえば、サブタスクが占有する必要のある1つまたは複数のリソースのパラメータを含み得る。1例として、当該タスクパラメータは、サブタスクの計算量、メモリアクセス量(メモリアクセス量は、サブタスクを実行するときにチップがメモリをアクセルする回数および/またはアクセスデータの合計量である)の中の少なくとも1つを含み得るがこれらに限定されない。または、他のタイプのタスクパラメータをさらに含み得、本発明の実施例はこれに対して限定しない。
【0035】
本発明の実施例において、複数の方法によって、サブタスクのタスクパラメータを取得することができる。たとえば、他のデバイスまたはシステム中の他の機能モジュールからサブタスクのタスクパラメータを取得してもよいし、ローカルメモリからサブタスクのタスクパラメータを取得してもよいし、目標タスクに対してタスク解析を実行して各々のサブタスクのタスクパラメータを取得してもよい。
【0036】
いくつかの実施例において、当該タスクパラメータをより高速に取得するために、各々のサブタスクとそれぞれのタスクパラメータとの対応関係を事前に記憶することができる。例示的に、事前に目標タスクタスクに対して解析処理を実行して、当該目標タスクに含まれた複数のサブタスクおよび各サブタスクのタスクパラメータを得、当該各サブタスクおよびそのタスクパラメータを記憶することができる。このようにして後続で、目標タスクが動作する必要があるときに、記憶した情報に基づいて各サブタスクのタスクパラメータを高速に検索することができる。いくつかの例において、前記サブタスクとタスクパラメータとの間の対応関係は、key-valueの形態で記憶することができる。たとえば、複数のサブタスクに対して、それぞれ対応するタスク識別子を設定し、サブタスクのタスク識別子をkeyとして記憶し、当該サブタスクのタスクパラメータをvalueとして記憶する。key-valueの形態の記憶方法は、主キーを介した照会に適しており、照会速度が速く、保存するデータ量が大きい。しかし、本発明はこれに限定されない。
【0037】
いくつかの実施例において、各サブタスクのタスクパラメータに加えて、さらにチップが配置されているデバイスのデバイス情報を取得し、当該デバイス情報およびタスクパラメータに基づいて共同で各サブタスクの目標チップ周波数を確定することができる。
【0038】
ここで、前記のデバイス情報は、チップが配置されているデバイスのデバイスリソース情報を含み得、当該デバイスリソース情報は、当該デバイスの使用可能なリソースの情報を示すために使用される。1例として、当該デバイスリソース情報は、計算ユニットの数、帯域幅、メモリ容量の中の任意の1つまたは複数を含み得るがこれらに限定されない。いくつかの実施例において、各サブタスクの目標チップ周波数は、複数のサブタスク同士の間の依存関係またはタスク実行方法に依存することができ、たとえば、シリアル、パラレル、または、一部のサブタスク間でシリアルもう一部のサブタスク間でパラレルであるモードに依存することができる。たとえば、目標タスクを分割して得た各々のサブタスクの実行がシリアル関係であると、チップは各サブタスクを実行するときに、いずれも当該デバイス上のすべての使用可能なデバイスリソースを占有することができ、たとえば、デバイス上のすべての計算ユニットとすべての帯域幅を占有することができるが、本発明の実施例はこれに限定されない。
【0039】
ステップ102において、前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定する。
【0040】
本ステップにおいて、各サブタスクのタスクパラメータに基づいて当該サブタスクの目標チップ周波数を確定することができる。または、チップが配置されているデバイスのデバイス情報および各サブタスクのタスクパラメータに基づいて、共同で前記各サブタスクの目標チップ周波数を確定することができる。
【0041】
いくつかの実施例において、複数の組の選択可能なチップ周波数を確定し、特定の戦略に従って当該複数の組の選択可能なチップ周波数の中から、各サブタスクに対して、対応する選択可能なチップ周波数を選択することができる。ここで、前記の複数の組の選択可能なチップ周波数は、デバイスのチップに対して設定することができ特定の数の離散的な周波数であり得る。たとえば、チップのコア周波数を設定する例をとると、当該コア周波数は、x1、x2、…、xMなどのM種の周波数値を含み得る。前記戦略は、実際の要求に応じて設定することができる。以下、いくつかの例示的な戦略を説明するが、本発明の実施例はこれに限定されない。
【0042】
いくつかの実施例において、前記目標チップ周波数の確定を最適化問題に変換することができ、いくつかの選択可能な実施形態において、タスク運行時間を選択する主な参考要素として確定することができる。1例として、各サブタスクのタスクパラメータに基づいて、設定可能な複数の組の選択可能なチップ周波数の中から、前記各サブタスクの目標チップ周波数として、前記チップのチップ消費電力制限条件でタスクを実現するための動作時間が一番短くすることができるチップ周波数を選択することができる。ここで、いくつかの例において、複数のサブタスクを全体として分析して、目標タスクの全体的なタスク運行時間を確定することができる。この場合、一番短いタスク運行時間を確定した後に、複数のサブタスクの中の各サブタスクの目標チップ周波数を同時に得ることができる。または、もういくつかの例において、各サブタスクのタスク運行時間を個別に分析し、各サブタスクの一番短いタスク運行時間を条件として当該サブタスクの目標チップ周波数を確定することができる。もういくつかの選択可能な実施形態において、タスクによって消費されるシステムリソース、チップ動作消費電力、タスク運行速度、タスク実行結果の精度の中の1つまたは任意の複数を選択する参考要素として使用することができ、本発明の実施例はこれに対して限定しない。
【0043】
以下、サブタスクのタスクパラメータおよびデバイス情報に基づいて目標チップ周波数を確定する例をとって、最適化問題の解決原理を例示する。ここで、1つのサブタスクの例をとると、当該サブタスクのタスクパラメータは、kn(nは、n次元の空間を示し、たとえばメモリアクセス量、計算量などである)であり、当該サブタスクに対応するデバイス情報は、dM(Mは、M次元の空間を示し、たとえばメモリ容量などである)である。チップ周波数がxであると想定し、ここで、当該周波数は、コア周波数、メモリ周波数、または、コア周波数とメモリ周波数の周波数の組み合わせであり得る。P(kn、dM、x)は、チップ動作消費電力を示し、当該チップ動作消費電力は、タスクパラメータ、デバイス情報、および、チップ周波数と関係があることを分かる。タスクパラメータおよびデバイス情報が固定されていても、チップ周波数が変化するとPもこれに応じて変化される。T(kn、dM、x)は、タスク運行時間を示し、同様に、タスクパラメータおよびデバイス情報が固定されていても、チップ周波数が変化するとTもこれに応じて変化される。この場合、前記サブタスクのタスクパラメータおよびデバイス情報をそれぞれ複数のチップ周波数と組み合わせて、対応するチップ動作消費電力およびタスク運行時間を得、チップ動作消費電力およびタスク運行時間に基づいて複数のチップ周波数の中から各サブタスクの最適なチップ周波数を選択することができる。
【0044】
たとえば、以下の式(1)に従って一番良いチップ周波数を選択することができる。
【数1】
【0045】
前記式(1)は、チップ消費電力制限条件(PowerLimited)でタスクを実現するための動作時間が一番短いことを示し、これが最適化問題の最適化目標である。当該最適化目標で一番良いチップ周波数を見つける。チップに設定可能な複数の選択可能なチップ周波数の中から、特定のチップ周波数を採用して、チップ消費電力制限条件で一番短いタスク運行時間で当該サブタスクの処理を完了することができると、当該チップ周波数が当該サブタスクの目標チップ周波数である。
【0046】
各サブタスクのタスクパラメータおよびデバイス情報の中の少なくとも1つのパラメータが互いに異なることができるため、各々のサブタスクの目標チップ周波数も互いに異なる可能性がある。本ステップは、各々のサブタスクに最適な目標チップ周波数を見つけることができ、サブタスクが一番速い速度で完了することができ、また、チップの消費電力は標準を超えない。
【0047】
ステップ104において、確定された各サブタスクの目標チップ周波数に基づいて、チップが前記各サブタスクを実行するときの動作周波数を設定する。
【0048】
本ステップにおいて、目標タスクの運行過程で、その中の1つのサブタスクまでに運行されたときに、チップの周波数を当該サブタスクの目標チップ周波数に設定するか、または、当該目標チップ周波数、および、デバイスまたはチップが当該サブタスクを実行し始めるときのチップ温度などの現在状態情報に基づいて、チップが当該サブタスクを実行するときの動作周波数を設定することができる。ここで、いくつかの実施例において、前記目標チップ周波数を確定する過程は、目標タスクを実行する前に事前に実行することができ、また複数のサブタスクの中の各サブタスクの目標チップ周波数を記憶することができる。その後に、各サブタスクの運行過程で、チップの周波数を当該サブタスクの目標チップ周波数に設定することができる。もういくつかの実施例において、各サブタスクを実行する前に、当該サブタスクの目標チップ周波数を確定することができる。たとえば、サブタスクのタスクパラメータおよびデバイスまたはチップの現在状態情報に基づいて、当該サブタスクの目標チップ周波数を確定することができる。この場合、各々のサブタスクの目標チップ周波数の確定は、互いに異なる時点でそれぞれ実行することができ、本発明の実施例はこれに対して限定しない。
【0049】
本発明の実施例において、前記のチップの動作周波数は、前記チップのコア周波数、または、メモリ周波数の中の少なくとも1つを含み得る。たとえば、本発明の実施例の方法は、チップのコア周波数の設定にのみ利用されることができ、ここで、メモリ周波数は、固定された値に設定されるか、目標タスクを単位として設定されることができる。または、当該方法は、メモリ周波数の設定にのみ利用されることができ、ここで、コア周波数は、固定された値に設定されるか、目標タスクを単位として設定されることができる。または、当該方法は、チップのコア周波数およびメモリ周波数の設定に利用され、たとえばコア周波数およびメモリ周波数を1つの周波数の組み合わせとして設定することができ、各サブタスクの目標チップ周波数が当該周波数の組み合わせである。
【0050】
ここで、メモリの周波数は、揮発性メモリの周波数であり得、たとえば、SDRAM(SynchrOnOus DynaMic RandOM Access memory、同期動的ランダムアクセスメモリ)の周波数であり得る。たとえば、DDR SDRAM(DOuble Data Rate SDRAM、ダブルデータレートSDRAM)、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM、DDR5 SDRAMなどであり得る。メモリの周波数は、さらに、不揮発性メモリの周波数であり得、フラッシュメモリ(flash memory)の周波数であり得る。
【0051】
本発明の実施例のチップ動作周波数設定方法によると、目標タスク中の各サブタスクのタスクパラメータに基づいて当該サブタスクの目標チップ周波数を確定することによって、チップが当該各サブタスクを実行するときに当該サブタスクの目標チップ周波数で動作するようにすることができる。このような洗練された周波数設定方法は、各々のサブタスクを実行するときにいずれも可能な限り一番良い動作性能を実現するようにし、タスク全体の動作速度を向上させることができる。
【0052】
図2は、本発明のいくつかの実施例のチップ動作周波数設定方法を示すもう1つのフローチャートであり、当該方法は、サブタスクのタスクパラメータおよびデバイス情報に基づいて共同で目標チップ周波数を確定する例をとって、例示的に、目標チップ周波数を確定する方法を提案する。
図2に示すように、当該方法は、以下の処理を含み得、ここで、
図1と同様なステップに対しては繰り返して説明しない。
【0053】
ステップ200において、デバイス上で運行しようとする目標タスクに対してタスク解析を実行して、複数のサブタスクおよび各前記サブタスクのタスクパラメータを得る。たとえば、各サブタスクのタスクパラメータは、当該サブタスクの計算量およびメモリアクセス量の中の少なくとも1つを含み得る。
【0054】
ステップ202において、チップが配置されているデバイスのデバイス情報を取得する。
【0055】
たとえば、前記のチップが配置されているデバイスのデバイス情報は、デバイスリソース情報を含み得、当該デバイスリソース情報は、帯域幅、計算ユニットの数、および、メモリ容量の中の少なくとも1つを含み得る。
【0056】
ステップ204において、複数の第1データと複数の第2データとの間の所定のマッピング関係を取得する。
【0057】
本ステップにおいて、デバイスには、事前に、複数の第1データと複数の第2データとの間のマッピング関係が記憶されていてもよく、その中の第1データは、サブタスクの所定のタスクパラメータおよび所定のデバイス情報を含み、第2データは、所定のチップ周波数を含む。たとえば、当該所定のチップ周波数は、チップのコア周波数であり得る。また、たとえば、当該所定のチップ周波数は、チップのコア周波数とメモリ周波数の組み合わせであり得る。
【0058】
たとえば、以下の表1は、複数の第1データと複数の第2データとの所定のマッピング関係を示す。
【表1】
【0059】
以下のように、前記のマッピング関係をどのように構築するかを例示的に説明する。
【0060】
デバイスで実行されるタスクの種類に関係なく、タスクパラメータおよびデバイス情報の値は、特定の範囲内にあると想定する。たとえば、タスクパラメータの値は、範囲F1内にあり、デバイス情報の値は、範囲F2内にある。当該F1とF2は、いずれも所定の第1データ値の範囲と呼ばれることができる。この場合、当該第1データ値の範囲内でサンプリングして、いくつかの離散的なサンプリング点を得ることができ、すなわち、(k1、d1)、(k2、d2)、(k3、d3)などの複数の組の第1データを得ることができる。その中のk1、k2、k3は、タスクパラメータを示し、d1、d2、および、d3は、デバイス情報を示す。なお、設定しようとするチップ周波数がコア周波数であると想定すると、チップに設定可能な複数の組の選択可能なチップ周波数を含み得、たとえば、x1、x2、x3などを含み得る。
【0061】
具体的に、その中の各組の第1データに対して、当該第1データに対応する第2データとして、前記の複数の組の選択可能なチップ周波数の中から1組のチップ周波数を選択し、当該第1データと第2データとの間のマッピング関係を構築することができる。ここで、いくつかの実施例において、複数の組の選択可能なチップ周波数の中から第2データを選択するときに、性能評価パラメータに基づいて選択することができる。たとえば、当該第1データの各組の選択可能なチップ周波数の条件での性能評価パラメータをそれぞれ確定することができ、たとえば、当該第1データとその中の1組の選択可能なチップ周波数に基づいて1つの性能評価パラメータを得、当該第1データともう1組の選択可能なチップ周波数に基づいてもう1つの性能評価パラメータを得ることができる。ここで、当該性能評価パラメータは、シミュレーション、推論、または、数式演算の方法によって、得ることができ、本発明の実施例はこれに対して限定しない。
【0062】
当該第1データの各組の選択可能なチップ周波数の条件での対応する性能評価パラメータをそれぞれ得た後、当該性能評価パラメータに基づいて前記複数の組の選択可能なチップ周波数の中から、当該第1データに対応する第2データとして、1組のチップ周波数を選択することができる。たとえば、当該性能評価パラメータは、タスク処理性能パラメータおよびチップ動作消費電力を含み得、前記複数の組の選択可能なチップ周波数の中のチップ動作消費電力が所定の消費電力未満であり、かつ、タスク処理性能パラメータが一番良い選択可能なチップ周波数を、当該第1データに対応する第2データとして使用することができる。例示的に、前記のタスク処理性能パラメータは、タスク処理時間を含むが、これに限定されない。
【0063】
以下の
図3は、所定のマッピング関係の構築過程を例示し、また、当該例の説明において、タスク処理性能パラメータがタスク運行時間であり、チップ周波数がコア周波数である例をとって説明する。
【0064】
ステップ2041において、前記複数の組の選択可能なチップ周波数に対して、それぞれ各組の選択可能なチップ周波数と特定の1組の第1データに基づいて、前記各組の選択可能なチップ周波数で当該第1データの条件で動作するときのチップ動作消費電力およびタスク運行時間を得る。
【0065】
たとえば、チップに10組の選択可能なチップ周波数があり、1組の第1データに対して、それぞれ当該10組のチップ周波数と組み合わせて、10個のチップ動作消費電力Pおよび10個のタスク運行時間Tを得る。たとえば、チップ周波数がx1であると、対応する当該サブタスクのチップ動作消費電力はP1であり、タスク運行時間はT1であり、チップ周波数がx2であると、対応する当該サブタスクのチップ動作消費電力はP2であり、タスク運行時間はT2である。
【0066】
いくつかの実施例において、消費電力モデルに基づいてPを確定し、動作時間モデルに基づいてTを確定することができる。ここで、消費電力モデルのモデル入力は、タスクパラメータ、デバイス情報、および、チップ周波数であり、モデル出力は、Pである。動作時間モデルのモデル入力は、タスクパラメータ、デバイス情報、および、チップ周波数であり、モデル出力は、Tである。
【0067】
前記の消費電力モデルおよび動作時間モデルの具体的な構成は、複数の方法によって得ることができ、たとえば、ベクターマシン、フィードバックニューラルネットワーク、K-Means集約アルゴリズムなどをサポートする。
【0068】
以下、以消費電力モデルと動作時間モデルがいずれもニューラルネットワークモデルである例をとって説明し、当該ニューラルネットワークモデルはモデルトレーニングの方法によって得ることができる。ここで、トレーニングサンプルセットは、固定されたタスクリストX={r1,r2,・・・rp}であり、デバイスの周波数セットは、X={r1,r2,・・・rq}であり、これらセットをニューラルネットワークモデルのトレーニングセットとして使用する。たとえば、特定のタスクr1に対して、当該タスクのタスクパラメータを得、当該デバイスのデバイス情報を取得し、前記デバイス周波数セットから1つの周波数x1を得て、この3つを消費電力モデルの入力として確定し、消費電力モデルの処理を経てチップ動作消費電力の予測値が出力される。当該予測値と、デバイスの入力したタスクパラメータ、デバイス情報、および、周波数x1の条件でのチップ動作消費電力の実際の値(実際のデバイス動作の結果)との間には、差異があり、該差異に基づいて逆伝播を実行して、当該消費電力モデルをトレーニングする。同様に、動作時間モデルも、前記方法によってトレーニングすることができ、ただ、出力をタスク運行時間に変更すればよく、ここで繰り返して説明しない。
【0069】
トレーニングが完了された消費電力モデルおよび動作時間モデルを得た後に、消費電力モデルに第1データおよびチップ周波数を入力すれば、チップ動作消費電力を得ることができる。たとえば、消費電力モデルに第1データ(k1、d1)およびチップ周波数xiを入力すれば、チップ動作消費電力Piを得ることができる。動作時間モデルに第1データおよびチップ周波数を入力すれば、タスク運行時間を得ることができる。たとえば、動作時間モデルに第1データ(k1、d1)およびチップ周波数xiを入力すれば、タスク運行時間Tiを得ることができる。
【0070】
ステップ2042において、当該第1データに対応する第2データとして、チップ動作消費電力およびタスク運行時間が一番良いチップ周波数を選択する。
【0071】
本ステップにおいて、たとえば、式(1)の最適なチップ周波数の選択条件に従って、複数の組のチップ周波数の中から、第2データとして、チップ動作消費電力の制限範囲内でタスク運行時間が一番短いチップ周波数を選択する。たとえば、Pi≦POwerLiMitedを満たすすべてのチップ周波数xiの中で、Tiが一番小さいチップ周波数を選択し、たとえば第1データ(k1、d1)に対応する第2データとしてx1を選択する。
【0072】
ステップ2043において、当該第1データと当該第2データとの間のマッピング関係を構築する。
【0073】
上記のように、離散的なサンプリング点に対応する複数の組の第1データのうち、各組の第1データに対して、いずれも、
図3に示したプロセスに従って当該第1データに対応する第2データを得、すなわち一番良いチップ周波数を得ることができる。このようにして、複数の第1データの中の各々の第1データそれぞれに対応する第2データを得、これに基づいて各々のマッピング関係を構築することによって、マッピング関係のセットを得ることができる。当該セットは、複数の組のマッピング関係を含み、各組のマッピング関係は、いずれも、1つの第1データおよび1つの対応する第2データを含む。当該マッピング関係のセットは、ステップ204に記載の所定のマッピング関係であり得、たとえば表1の例のとおりである。
【0074】
ステップ206において、所定のマッピング関係、デバイス情報、および、サブタスクのタスクパラメータに基づいて、前記サブタスクの所定のマッピング関係中の対応するチップ周波数を目標チップ周波数として確定する。
【0075】
たとえば、あるサブタスクのタスクパラメータがk1であり、当該サブタスクに対応するデバイス情報がd1であり、表1を検索して得られる目標チップ周波数がx1であると想定する。当該サブタスクは、第1サブタスクと呼ばれる。
【0076】
なお、マッピング関係テーブル中の第1データが離散的なものであるため、第1サブタスクのタスクパラメータおよびデバイス情報がマッピング関係中の第1データと完全に一致しない場合があり、このような場合、選択可能な実施形態として、マッピング関係テーブルで第1タスクのデバイス情報およびタスクパラメータと一番接近する第1データを検索することができ、当該一番接近する第1データに対応するチップ周波数を第1サブタスクの目標チップ周波数として確定する。
【0077】
たとえば、第1サブタスクのタスクパラメータおよびデバイス情報を、第3データと呼び、たとえば(k3,d3)であると、当該第3データとマッピング関係中の各々の第1データとの間の距離を計算することができる。当該距離の計算は、第3データと各々の第1データとをすべて1つのベクトルとして、ベクトル同士の間の距離を計算することができる。たとえば、第3データのベクトルと各第1データのベクトルとの間のユークリッド距離または他の距離であり得る。第3データと距離が一番近い第1データに対応するチップ周波数を、第1サブタスクの目標チップ周波数として確定することができる。
【0078】
ここで、いくつかの実施例において、前記の第3データとの距離が一番近い第1データは、下向きで一番近いデータであり得、当該下向きで一番近いデータは、対応するチップ周波数がより低い第1データであり得る。たとえば、第3データの2つの隣接する第1データがそれぞれ第1データY1および第1データY2であり、また当該第1データY1および第1データY2と第3データとの距離が等しいし、第1データY1に対応するチップ周波数が第2データY2に対応するチップ周波数よりも低いと、Y1に対応するチップ周波数を選択する。第1データY1および第1データY2と第3データとの距離が等しくないと、依然として、距離がより近い第1データを目標第1データとして選択する。また、たとえば、第1データY1および第1データY2と第3データとの距離間の差異が所定の範囲内にあると、優先的に、対応するチップ周波数がより低い第1データを選択する。当該所定の範囲は、実際の要求に応じて設定することができ、本発明の実施例はこれに対して限定しない。
【0079】
ステップ208において、確定された各サブタスクの前記目標チップ周波数に基づいて、チップが前記各サブタスクを実行するときの動作周波数を設定する。
【0080】
本ステップにおいて、目標タスクの運行過程で、その中の1つのサブタスクまでに運行したときに、チップの周波数を当該サブタスクの目標チップ周波数と設定することができる。
【0081】
本発明の実施例のデバイスチップの動作周波数の設定方法によると、実行待ちのタスクを分解して複数のサブタスクを得、各々のサブタスクの目標チップ周波数をそれぞれ得る。このような洗練された周波数設定方法は、タスクの各々のサブタスクがいずれも可能な限り一番良い動作性能を実現するようにすることができ、タスク全体の動作速度を向上させることができる。また、事前に、タスクパラメータとデバイス情報とチップ周波数とのマッピング関係を構築することによって、チップ周波数の確定速度を速くして、デバイス性能を向上させることができる。
【0082】
図4は、本発明のいくつかの実施例のチップ動作周波数設定方法を示すもう1つのフローチャートであり、当該例において、チップの組み合わせ周波数を設定する例をとって説明する。また、取得したデバイス情報は、チップのチップ温度をさらに含み得、当該チップ温度は、チップが配置されているデバイス中の温度センサによって収集される。なお、ここでは、実行しようとする目標タスクは、3層のニューラルネットワークモデルの推論タスクである。
【0083】
ここで、GPU(Graphics Processing Unit、グラフィックスプロセッシングユニット)、CPU、または、DSPチップが配置されているエンドデバイスのような、互いに異なるエンドデバイスの場合、デバイス情報が互いに異なるため、トレーニングして得られる消費電力モデルおよび動作時間モデルが完全に互いに異なる可能性がある。目標タスクが運行されている特定のエンドデバイスに対して、確定モデルをオフラインでトレーニングすることができる。消費電力モデルおよび動作時間モデルが確定された後に、当該確定されたモデルおよび最適化問題解決エンジンをエンドデバイスに記憶する。ここで、最適化問題解決エンジンによって行われる処理は、
図2に示すプロセスの説明中の所定のマッピング関係を構築する過程を参照すればよい。当該最適化問題解決エンジンは、サンプリングした複数の組の第1データおよび確定されたモデルに基づいて、各チップ周波数それぞれに対応するチップ動作消費電力およびタスク運行時間を得、さらに、式(1)に従って一番良いチップ周波数を選択することによって、第1データと第2データとの間のマッピング関係を構築することができる。オプションとして、デバイスを利用して所定のマッピング関係の構築を実行することができ、または、他のデバイスを利用して所定のマッピング関係の構築処理を実行して、事前に構築されたマッピング関係を当該目標タスクが運行されているデバイスに記憶することができる。デバイスは、目標タスクを運行させるときに直接表を検索して使用することができる。
【0084】
ステップ400において、デバイスで運行しようとする目標タスクに対してタスク解析を実行して、複数のサブタスクおよび各前記サブタスクのタスクパラメータを得る。
【0085】
たとえば、当該目標タスクは、3層のニューラルネットワークモデルの推論タスクであり、その中の各層は、1つのサブタスクであり得る。この場合、本ステップは、タスク解析を通じて、1つのサブタスクリストを得ることができ、当該サブタスクリストには、サブタスク1、サブタスク2、および、サブタスク3のような、3つのサブタスクが含まれる。また、本ステップは、さらに、サブタスクのメモリアクセス量および計算量などの、各サブタスクのタスクパラメータを分析して得る。たとえば、サブタスクリストは、<サブタスク1、タスクパラメータ1>、<サブタスク2、タスクパラメータ2>、および、<サブタスク3、タスクパラメータ3>を含み得る。その中のタスクパラメータは、kn(nはn次元の空間を示し、たとえばメモリアクセス量または計算量である)で示すことができる。サブタスク1、サブタスク2、および、サブタスク3は、それぞれ第1サブタスクとして使用されることができる。
【0086】
ステップ402において、チップが配置されているデバイスのデバイス情報を取得する。
【0087】
ここで、デバイス情報は、デバイスリソース情報を含み得る。1例において、サブタスク1とサブタスク2とサブタスク3との間は、シリアル関係であり、これらサブタスクが運行されるときに占有されるデバイスリソース情報は、同一である。たとえば、帯域幅、計算ユニット数などが同一であり得る。
【0088】
デバイス情報は、dM(MはM次元の空間を示し、たとえば帯域幅またはメモリ容量である)で示すことができる。
【0089】
ステップ404において、サブタスク1を実行し始める前に、チップのチップ温度C1を収集し、サブタスク1のタスクパラメータ、デバイスリソース情報、および、チップ温度C1に基づいて、サブタスク1を運行するときの前記デバイスのチップに設定する目標チップ周波数を確定する。
【0090】
本発明のいくつかの実施例において、デバイス情報は、チップのチップ温度をさらに含み得、これは、タスクを実行する過程で温度が高すぎるとチップの周波数を下げるための措置をとることになるためである。つまり、本発明の実施例のデバイス情報は、計算ユニット数、帯域幅、メモリ容量などのデバイスリソース情報に加えて、さらに、チップ温度を含む。また、当該チップ温度は、動的に取得したものであり得、すなわち目標タスクの運行過程での各サブタスクを実行する前に、当該サブタスクに対応するチップ温度を取得し、これに基づいて当該サブタスクの目標チップ周波数を確定することができる。
【0091】
ステップ406において、チップの動作周波数をサブタスク1の目標チップ周波数に設定し、サブタスク1を実行し始める。
【0092】
ステップ408において、サブタスク2を実行し始める前に、チップのチップ温度C2を収集し、サブタスク2のタスクパラメータ、デバイスリソース情報、および、チップ温度C2に基づいて、サブタスク2を運行するときの前記デバイスのチップに設定する目標チップ周波数を確定する。
【0093】
本発明の実施例において、目標タスクの運行過程で、チップの温度が変化されると、当該目標タスク運行過程で1つのサブタスクを実行しようとするたびに、いずれも最新のチップ温度を収集し、当該チップ温度を組み合わせて当該サブタスクの目標チップ周波数を確定する。
【0094】
本発明の実施例のチップ周波数は、1つの組み合わせ周波数または組み合わせ周波数中の1つの周波数であり得、すなわちチップのコア周波数およびメモリ周波数を同時に設定することができることを説明する必要がある。たとえば、コア周波数はxであり、メモリ周波数はyである。たとえば、サブタスクのタスクパラメータおよびデバイス情報が(k1、d1)であると(その中のデバイス情報はデバイスリソース情報およびチップ温度を含み得る)、採用するチップ周波数は(x1、y1)であり得、サブタスクのタスクパラメータおよびデバイス情報が(k2、d2)であると、採用するチップ周波数は(x2,y2)であり得る。
【0095】
また、消費電力モデルおよび動作時間モデルを確定するときに、たとえば、消費電力モデルの入力は、k1、d1、x1、y1を含み得、モデルの出力は、チップ動作消費電力Pであり得、同様に、動作時間モデルの入力は、k1、d1、x1、y1を含み得、モデルの出力は、タスク運行時間Tであり得る。また、当該消費電力モデルおよび動作時間モデルをトレーニングするときに、デバイス情報はチップ温度を含み得る。
【0096】
ステップ410において、チップの動作周波数をサブタスク2の目標チップ周波数に設定し、サブタスク2を実行し始める。
【0097】
ステップ412において、サブタスク3を実行し始める前に、チップのチップ温度C3を収集し、サブタスク3のタスクパラメータ、デバイスリソース情報、および、チップ温度C3に基づいて、サブタスク3を運行するときの前記デバイスのチップに設定する目標チップ周波数を確定する。
【0098】
ステップ414において、チップの動作周波数をサブタスク3の目標チップ周波数に設定し、サブタスク3を実行し始める。
【0099】
目標タスクに含まれたすべてのサブタスクの実行が終了した後、デバイスチップの動作周波数をデフォルト値にリセットでき、目標タスクの実行を終了することができる。
【0100】
本発明の実施例のチップ動作周波数設定方法によると、実行待ちのタスクを分解して複数のサブタスクを得、各々のサブタスクの目標チップ周波数をそれぞれ得ることができる。このような洗練された周波数設定方法は、タスクの各々のサブタスクがいずれも可能な限り一番良い動作性能を実現するようにすることができ、タスク全体の動作速度を向上させることができる。また、タスクを運行する過程で、第1サブタスクを実行するときのチップ温度を動的に収集し、当該チップ温度に組み合わせて第1サブタスクの目標チップ動作周波数を確定することによって、チップ動作周波数の確定するための考慮要素をより全面的にすることができ、周波数の設定がより合理的であり、デバイス動作性能をさらに向上させることができる。
【0101】
なお、エンドデバイスは、さらに、ユーザインターフェースを提供することができ、当該ユーザインターフェースを介して、入力された所定のマッピング関係に対する構成情報を受信することができる。たとえば、ユーザは、各サブタスクに使用する必要がある目標チップ周波数をオフラインで計算または推定し、当該各々のサブタスクと対応する目標チップ周波数との所定のマッピング関係をデバイスに記憶することができる。このようにして、デバイスは、動作するときに、当該配置した所定のマッピング関係に基づいてサブタスクを運行するときの対応するチップの動作周波数を設定することができる。
【0102】
前記のユーザインターフェースは、さらに、周波数設定戦略情報を受信することができる。当該周波数設定戦略情報は、たとえば、タスクパラメータおよびデバイス情報に基づいてチップ動作消費電力およびタスク運行時間を確定するモデルを含み得、または、消費電力モデルおよびタスク運行時間モデルに基づいてどのように特定のサブタスクの目標チップ周波数を選択するかをさらに含んでもよい。前記周波数設定戦略情報および複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、各サブタスクを運行するときの前記デバイスのチップに設定する目標チップ周波数をそれぞれ確定することができる。
【0103】
なお、当該周波数設定戦略情報は、サブタスクに対するチップ周波数動的設定機能をオンまたはオフにすることをさらに含み得る。周波数設定戦略情報にサブタスクに対するチップ周波数動的設定機能をオンにすることを含まれていると、デバイスは本発明の前述した実施例に記載のチップ動作周波数設定方法によって、目標タスクの各々のサブタスクに対して目標チップ周波数を確定することができる。たとえば、サブタスクのタスクパラメータ、チップ温度、および、デバイスリソース情報を収集し、これら情報、および、消費電力モデルおよびタスク運行時間モデルに基づいて、使用しようとする目標チップ周波数を選択することができる。周波数設定戦略情報にサブタスクに対するチップ周波数動的設定機能をオフにすることが含まれていると、デバイスは、ユーザインターフェースに構成されたオフラインで計算した所定のマッピング関係に従って、各サブタスクが使用する必要がある目標チップ周波数を直接取得する。
【0104】
前記ユーザインターフェースを介して、より柔軟なチップ周波数設定方法を提供することができ、ユーザがチップ周波数の確定方法をより便利に更新して、チップ周波数の確定をより合理的かつ迅速にすることができる。
【0105】
図5は、本発明の実施例によって提供されるチップ動作周波数設定装置の1つの例示的な構成図であり、
図5に示すように、当該装置は、取得モジュール51と、周波数制御モジュール52と、周波数設定モジュール53と、を備え得る。
【0106】
取得モジュール51は、目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得し、ここで、前記タスクパラメータは、前記サブタスクの演算規模を示すためのパラメータを含む。例示的に、前記タスクパラメータは、前記サブタスクの計算量、および、サブタスクのメモリアクセス量の中の少なくとも1つを含む。
【0107】
周波数制御モジュール52は、前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定する。
【0108】
周波数設定モジュール53は、確定された各サブタスクの目標チップ周波数に基づいて、チップが前記各サブタスクを実行するときの動作周波数を設定する。
【0109】
1例において、
図6に示すように、当該装置は、前記目標タスクに対してタスク解析処理を実行して、前記複数のサブタスクおよび各サブタスクのタスクパラメータを得、また、前記複数のサブタスクの中の各サブタスクと前記各サブタスクのタスクパラメータとの対応関係を記憶するためのタスク解析モジュール54と、をさらに含み得る。取得モジュール51は、目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得するときに、記憶した前記対応関係から各サブタスクのタスクパラメータを検索する。
【0110】
たとえば、実際の実施において、1つの目標タスクを動作させようとするときに、まず、タスク解析モジュール54により、目標タスクタスクに対して解析処理を実行して、たとえば複数のサブタスクを解析して得てから、それぞれ複数のサブタスクの中の各サブタスクを解析して、各々のサブタスクのタスクパラメータを得る。タスク解析モジュール54は、解析して得た各サブタスクとそのタスクパラメータとの対応関係を記憶することができる。
【0111】
取得モジュール51は、目標タスクの運行過程の制御を担当し、たとえば、取得モジュール51は、前記タスク解析モジュール54により解析して記憶した対応関係を取得し、その中の各々のサブタスクの実行を1つずつ制御する。例示的に、3つのサブタスクがあり、1番目のサブタスクを実行し始めようとするときに、取得モジュール51により対応関係から当該1番目のサブタスクのタスクパラメータを取得し、タスクパラメータおよびチップが配置されているデバイスのデバイス情報を周波数制御モジュール52に送信し、周波数制御モジュール52によりタスクパラメータおよびデバイス情報に基づいて1番目のサブタスクの目標チップ周波数を確定する。
【0112】
次に、周波数制御モジュール52により、確定された目標チップ周波数を周波数設定モジュール53に送信し、当該周波数設定モジュール53によりチップの動作周波数を前記の目標チップ周波数として設定することができる。また、周波数設定モジュール53によりチップの動作周波数を設定した後に、取得モジュール51にフィードバック信号を送信することによって、周波数設定が既に完了されたことを、取得モジュール51に通知することができる。そして、取得モジュール51は、当該フィードバック信号に基づいて、1番目のサブタスクを実行し始めることができる。
【0113】
1番目のサブタスクの実行が終了された後、取得モジュール51により2番目のサブタスクを実行し始めようとし、同様に、2番目のサブタスクを実行し始める前に、取得モジュール51により、タスク解析モジュール54によって得られた対応関係から2番目のサブタスクのタスクパラメータを得て、周波数制御モジュール52に送信して2番目のサブタスクの目標チップ周波数を確定する。周波数設定モジュール53によりチップ周波数設定完了をフィードバックした後に、取得モジュール51により2番目のサブタスクを実行し始める。3番目のサブタスクの実行は同様であり、繰り返して説明しない。取得モジュール51により目標タスクのすべてのサブタスクの実行がすべて終了されたことを確認した後に、周波数リセット信号を周波数制御モジュール52に送信し、周波数制御モジュール52により、これに応じて周波数設定モジュール53に周波数リセット信号を送信し、周波数設定モジュール53によりチップの動作周波数をデフォルト値に設定することができる。この時点で、目標タスクの実行を終了する。
【0114】
1例において、周波数制御モジュール52は、前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて前記各サブタスクの目標チップ周波数を確定するときに、前記チップが配置されているデバイスのデバイス情報を取得し、前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定し、ここで、前記デバイス情報は、デバイスリソース情報を含む。たとえば、当該デバイスリソース情報は、計算ユニットの数、帯域幅、および、メモリ容量の中の任意の1つまたは複数を含む。
【0115】
1例において、前記デバイス情報は、前記チップのチップ温度をさらに含み、周波数制御モジュール52は、さらに、前記複数のサブタスクの中の第1サブタスクのタスクパラメータ、前記デバイスリソース情報、および、前記第1サブタスクを実行するときのチップ温度に基づいて、前記第1サブタスクの目標チップ周波数を確定する。
【0116】
1例において、周波数制御モジュール52は、複数の第1データと複数の第2データとの間の所定のマッピング関係を取得し、前記所定のマッピング関係、前記デバイス情報、および、各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定し、ここで、前記第1データは、所定のタスクパラメータおよび所定のデバイス情報を含み、前記第2データは、所定のチップ周波数を含む。
【0117】
1例において、周波数制御モジュール52は、前記所定のマッピング関係、前記デバイス情報、および、各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定するときに、第3データと前記所定のマッピング関係中の複数の第1データの中の各第1データとの間の距離を確定し、前記所定のマッピング関係中の前記第3データとの距離が一番近い目標第1データに対応する所定のチップ周波数を、前記第1サブタスクの目標チップ周波数として確定し、ここで、前記第3データは、前記複数のサブタスクの中の第1サブタスクのタスクパラメータおよびデバイス情報を含む。
【0118】
1例において、周波数制御モジュール52は、さらに、複数の第1データと複数の第2データとの間の所定のマッピング関係を取得する前に、複数の組の選択可能なチップ周波数を取得し、サンプリングによって得られた離散的な複数の第1データを取得し、また、前記複数の第1データの中の各前記第1データに対して、前記各第1データに対応する第2データとして、前記複数の組の選択可能なチップ周波数の中から1組のチップ周波数を選択し、前記各第1データと選択した前記第2データとの間のマッピング関係を構築する。
【0119】
1例において、所定の前記所定のマッピング関係中の前記第1データに対応する所定のチップ周波数は、複数の組の選択可能なチップ周波数の中の各組の選択可能なチップ周波数の条件での前記第1データに対応する性能評価パラメータに基づいて、前記複数の組の選択可能なチップ周波数の中から選択したものである。
【0120】
1例において、前記性能評価パラメータは、タスク処理性能パラメータおよびチップ動作消費電力を含み、前記所定のマッピング関係中の前記第1データに対応する所定のチップ周波数は、前記複数の組の選択可能なチップ周波数の中のチップ動作消費電力が所定の消費電力未満であり、かつ、タスク処理性能パラメータが一番良い選択可能なチップ周波数である。
【0121】
1例において、
図6に示すように、当該装置は、ユーザが入力した、前記所定のマッピング関係に対する構成情報を、受信するためのインターフェースモジュール55をさらに備え得る。
【0122】
1例において、周波数制御モジュール52は、前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定するときに、前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、複数の組の選択可能なチップ周波数の中から、前記目標チップ周波数として、前記チップのチップ消費電力制限条件でタスクを実現するための動作時間が一番短くすることができるチップ周波数を選択する。
【0123】
1例において、インターフェースモジュール55は、さらに、ユーザが入力した、周波数設定戦略情報を、受信し、前記周波数制御モジュール52は、さらに、前記周波数設定戦略情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定する。
【0124】
1例において、前記周波数設定戦略情報は、サブタスクに対するチップ周波数動的設定機能をオンまたはオフすることを含む。
【0125】
1例において、前記動作周波数は、前記チップのコア周波数、または、メモリ周波数の中の少なくとも1つを含む。
【0126】
いくつかの実施例において、前記装置は、上記に記載の対応する任意の方法を実行することができ、簡素化のために、ここでは繰り返して説明しない。
【0127】
本発明の実施例は、電子デバイスをさらに提供し、
図7に示すように、電子デバイス700は、メモリ710と、プロセッサ720と、を備え、前記メモリ710は、機械可読命令711を記憶し、前記プロセッサ720は、前記機械可読命令711を呼び出して、本明細書の任意の実施例のチップ動作周波数設定方法を実装する。ここで、チップ動作周波数を設定するための目標チップは、メモリ710および/またはプロセッサ720であり得る。1例において、当該電子デバイス700は、通信インターフェース730とバス740とをさらに備え得る。メモリ710、プロセッサ720、および、通信インターフェース730は、バス740を介して互いに接続される。1例において、当該電子デバイス700は、チップ750をさらに備え得、当該チップ750は、前記プロセッサ720が設定した動作周波数で目標タスク中の各サブタスクに対して処理を実行する。
【0128】
本発明の実施例は、コンピュータプログラムが記録されているコンピュータ可読記録媒体をさらに提供し、前記プログラムがプロセッサによって実行されるときに、前記プロセッサが、本明細書の任意の実施例のチップ動作周波数設定方法を実装するようにする。1例において、当該コンピュータ可読記録媒体は、
図7中のメモリ710であり得る。
【0129】
当業者は、本発明の1つまたは複数の実施例は、方法、システム、または、コンピュータプログラム製品として提供することができることを了解すべきである。したがって、本発明の1つまたは複数の実施例は、完全なハードウェアの実施例、完全なソフトウェアの実施例、または、ソフトウェアとハードウェアを組み合わせる実施例の形式を使用することができる。また、本発明の1つまたは複数の実施例は、コンピュータ利用可能なプログラムコードを含む1つまたは複数のコンピュータ利用可能な記憶媒体(ディスクメモリ、CD-ROM、光学メモリなどを含むが、これらに限定されない)上で実施されるコンピュータプログラム製品の形式を使用することができる。
【0130】
ここで、本発明の実施例に記載の「および/または」は、少なくとも両社の中の1つを有することを意味し、たとえば、「Aおよび/またはB」は、A、B、および、「AとB」のような3つの場合を含む。
【0131】
本発明における各実施例は、いずれも、漸進的な方法を使用して叙述され、各実施例同士の間の同一または類似な部分は互いに参照することができ、各々の実施例では他の実施例との異なるところに焦点を合わせて説明した。特に、データ処理デバイスの実施例の場合、基本的に方法の実施例と類似であるため、相対的に簡単に叙述したが、関連するところは方法の実施例の部分の説明を参照すればよい。
【0132】
上記で本発明の特定の実施例を叙述した。他の実施例は、添付する「特許請求の範囲」の範囲内にいる。いくつかの場合、特許請求の範囲に記載の行為またはステップは、実施例と異なる順序に従って実行されることができ、このときにも依然として期待する結果が実現されることができる。また、図面で描かれた過程は、期待する結果するために、必ずとしても、示された特定の順序または連続的な順序を必要としない。いくつかの実施形態において、マルチタスク処理および並列処理も可能であるか、または、有利であり得る。
【0133】
本発明における主題および機能操作の実施例は、デジタル電子回路、有形コンピュータソフトウェアまたはファームウェア、本発明に開示される構成およびその構造的同等物を含むコンピュータハードウェア、または、それらの1つまたは複数の組み合わせで、実現されることができる。本発明における主題の実施例は、1つまたは複数のコンピュータプログラムとして実現されることができ、すなわち、有形の非一時的プログラムキャリア上に符号化されて、データ処理装置によって実行されるか、または、データ処理装置の操作を制御するための、コンピュータプログラム命令中の1つまたは複数のモジュールとして実現されることができる。代替的または追加的に、プログラム命令は、手動で生成する伝播信号上に符号化されることができ、例えば、機械が生成する電気信号、光信号、または、電磁信号に符号化されることができる。当該信号は、情報を符号化して適切な受信機装置に伝送して、データ処理装置によって実行されるようにするために、生成される。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムにまたはシリアルアクセスメモリデバイス、または、それらの1つまたは複数の組み合わせであり得る。
【0134】
本発明における処理と論理フローは、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なコンピュータによって実行されることができ、入力データに基づいて操作を実行して出力を生成することによって該当する機能を実行する。前記処理と論理フローは、さらに、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(専用集積回路)などの専用論理回路によって実行されることができ、また、装置も専用論理回路として実現されることができる。
【0135】
コンピュータプログラムの実行に適したコンピュータは、例えば、汎用、および/または、専用マイクロプロセッサ、または、いかなる他の種類の中央処理ユニットを含む。一般的に、中央処理ユニットは、読み取り専用メモリ、および/または、ランダムアクセスメモリから、命令とデータを受信することになる。コンピュータの基本コンポーネントは、命令を実施または実行するための中央処理ユニット、および、命令とデータを記憶するための1つまたは複数のメモリデバイスを含む。一般的に、コンピュータは、磁気ディスク、磁気光学ディスク、または、光ディスクなどの、データを記憶するための1つまたは複数の大容量記憶デバイスをさらに含むか、または、操作可能に当該大容量記憶デバイスと結合されてデータを受信するかまたはデータを伝送するか、または、その両方を兼有する。しかしながら、コンピュータは、必ずとして、このようなデバイスを有するわけではない。なお、コンピュータは、もう1デバイスに埋め込まれることができ、例えば、携帯電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオまたはビデオおプレーヤー、ゲームコンソール、グローバルポジショニングシステム(GPS)レジーバー、または、汎用シリアルバス(USB)フラッシュドライブなどのポータブル記憶デバイスに埋め込まれることができ、これらデバイスはいくつかの例に過ぎない。
【0136】
コンピュータプログラム命令とデータの記憶に適したコンピュータ可読媒体は、すべての形式の不揮発性メモリ、媒介、および、メモリデバイスを含み、例えば、半導体メモリデバイス(例えば、EPROM、EEPROM、および、フラッシュデバイス)、磁気ディスク(例えば、内部ハードディスクまたは移動可能ディスク)、磁気光学ディスク、および、CD ROM、および、DVD-ROMディスクを含む。プロセッサとメモリは、専用論理回路によって補完されるかまたは専用論理回路に組み込まれることができる。
【0137】
本発明は、多くの具体的な実施の細部を含むが、これらを本発明の範囲または保護しようとする範囲を限定するものとして解釈すべきではなく、主に本発明のいくつかの実施例の特徴を叙述するために使用される。本発明の複数の実施例中の特定の特徴は、単一の実施例に組み合わせて実施されることもできる。他方、単一の実施例中の各種の特徴は、複数の実施例で別々に実施されるかまたはいかなる適切なサブ組み合わせで実施されることもできる。なお、特徴が上記のように特定の組み合わせで役割を果たし、また最初からこのように保護すると主張したが、保護すると主張した組み合わせからの1つまたは複数の特徴は、場合によって当該組み合わせから除外されることができ、また保護すると主張した組み合わせはサブ組み合わせるまたはサブ組み合わせの変形に向けることができる。
【0138】
類似的に、図面で特定の順序に従って操作を描いたが、これはこれら操作を示した特定の順序にしたがって実行するかまたは順次に実行するように要求するか、または、例示したすべての操作が実行されることによって期待する結果が実現されると要求することであると理解すべきではない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。なお、上記の実施例中の各種のシステムモジュールとコンポーネントの分離は、すべての実施例でいずれもこのように分離されなければならないと理解すべきではないし、また、叙述したプログラムコンポーネントとシステムは、一般的に、一緒に単一のソフトウェア製品に統合されるか、または、複数のソフトウェア製品にパッケージされることができることを理解すべきである。
【0139】
したがって、主題の特定の実施例がすでに叙述された。他の実施例は、添付する「特許請求の範囲」の範囲内にある。場合によっては、特許請求の範囲に記載されている動作は、異なる順序によって実行されても、依然として期待する結果が実現されることができる。なお、図面で描かれた処理は、期待する結果を実現するために、必ずとして、示めされた特定の順序または順次を必要としない。一部の実現において、マルチタスクおよび並列処理が有利である可能性がある。
【0140】
上記は、本発明のいくつかの実施例に過ぎず、本発明を限定するために使用されるものではない。本発明の精神と原則の範囲内で行われたいかなる修正、同等の置換、改良などは、いずれも本発明の範囲に含まれるべきである。
【手続補正書】
【提出日】2021-06-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
チップ動作周波数設定方法であって、
目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得することと、
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することと、
確定された各サブタスクの目標チップ周波数に基づいて、チップが前記各サブタスクを実行するときの動作周波数を設定することと、を含み、
前記タスクパラメータは、前記サブタスクの演算規模を示すためのパラメータを含む
ことを特徴とするチップ動作周波数設定方法。
【請求項2】
前記目標タスクに対してタスク解析処理を実行して、前記複数のサブタスクおよび各サブタスクのタスクパラメータを得ることと、
前記複数のサブタスクの中の各サブタスクと前記各サブタスクのタスクパラメータとの対応関係を記憶することと、をさらに含み、
前記目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得することは、
記憶した前記対応関係から各サブタスクのタスクパラメータを検索することを含む
ことを特徴とする請求項1に記載のチップ動作周波数設定方法。
【請求項3】
前記タスクパラメータは、前記サブタスクの計算量、および、前記サブタスクのメモリアクセス量の中の少なくとも1つを含む
ことを特徴とする請求項1または2に記載のチップ動作周波数設定方法。
【請求項4】
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
前記チップが配置されているデバイスのデバイス情報を取得することと、
前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することと、を含み、
前記デバイス情報は、デバイスリソース情報を含む
ことを特徴とする請求項1から3のいずれかに記載のチップ動作周波数設定方法。
【請求項5】
前記デバイスリソース情報は、計算ユニットの数、帯域幅、および、メモリ容量の中の任意の1つまたは複数を含む
ことを特徴とする請求項4に記載のチップ動作周波数設定方法。
【請求項6】
前記デバイス情報は、前記チップのチップ温度をさらに含み、
前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
前記複数のサブタスクの中の第1サブタスクのタスクパラメータ、前記デバイスリソース情報、および、前記第1サブタスクを実行するときのチップ温度に基づいて、前記第1サブタスクの目標チップ周波数を確定することを含む
ことを特徴とする請求項4または5に記載のチップ動作周波数設定方法。
【請求項7】
前記デバイス情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
複数の第1データと複数の第2データとの間の所定のマッピング関係を取得することであって、前記第1データは、所定のタスクパラメータおよび所定のデバイス情報を含み、前記第2データは、所定のチップ周波数を含むことと、
前記所定のマッピング関係、前記デバイス情報、および、各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することと、を含む
ことを特徴とする請求項4から6のいずれかに記載のチップ動作周波数設定方法。
【請求項8】
前記所定のマッピング関係、前記デバイス情報、および、各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
第3データと前記所定のマッピング関係中の複数の第1データの中の各第1データとの間の距離を確定することであって、前記第3データは、前記複数のサブタスクの中の第1サブタスクのタスクパラメータおよびデバイス情報を含むことと、
前記所定のマッピング関係中の前記第3データとの距離が一番近い第1データに対応する所定のチップ周波数を、前記第1サブタスクの目標チップ周波数として確定することと、を含む
ことを特徴とする請求項7に記載のチップ動作周波数設定方法。
【請求項9】
複数の第1データと複数の第2データとの間の所定のマッピング関係を取得する前に、
チップ動作周波数設定方法は、
複数の組の選択可能なチップ周波数を取得し、サンプリングによって得られた離散的な複数の第1データを取得することと、
前記複数の第1データの中の各前記第1データに対して、前記各第1データに対応する第2データとして、前記複数の組の選択可能なチップ周波数の中から1組のチップ周波数を選択し、前記各第1データと選択した前記第2データとの間のマッピング関係を構築することと、を含む
ことを特徴とする請求項7または8に記載のチップ動作周波数設定方法。
【請求項10】
前記所定のマッピング関係中の前記第1データに対応する所定のチップ周波数は、複数の組の選択可能なチップ周波数の中の各組の選択可能なチップ周波数の条件での前記第1データに対応する性能評価パラメータに基づいて、前記複数の組の選択可能なチップ周波数の中から選択したものである
ことを特徴とする請求項7から9のいずれかに記載のチップ動作周波数設定方法。
【請求項11】
前記性能評価パラメータは、タスク処理性能パラメータおよびチップ動作消費電力を含み、
前記所定のマッピング関係中の前記第1データに対応する所定のチップ周波数は、前記複数の組の選択可能なチップ周波数の中のチップ動作消費電力が所定の消費電力未満であり、かつ、タスク処理性能パラメータが一番良い選択可能なチップ周波数である
ことを特徴とする請求項10に記載のチップ動作周波数設定方法。
【請求項12】
ユーザが入力した、前記所定のマッピング関係に対する構成情報を、受信することをさらに含む
ことを特徴とする請求項7から11のいずれかに記載のチップ動作周波数設定方法。
【請求項13】
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、複数の組の選択可能なチップ周波数の中から、前記目標チップ周波数として、前記チップのチップ消費電力制限条件でタスクを実現するための動作時間が一番短くすることができるチップ周波数を選択することを含む
ことを特徴とする請求項1から12のいずれかに記載のチップ動作周波数設定方法。
【請求項14】
ユーザが入力した、周波数設定戦略情報を、受信することをさらに含み、
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することは、
前記周波数設定戦略情報および前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定することを含む
ことを特徴とする請求項1から13のいずれかに記載のチップ動作周波数設定方法。
【請求項15】
前記周波数設定戦略情報は、サブタスクに対するチップ周波数動的設定機能をオンまたはオフすることを含む
ことを特徴とする請求項14に記載のチップ動作周波数設定方法。
【請求項16】
前記動作周波数は、前記チップのコア周波数、または、メモリ周波数の中の少なくとも1つを含む
ことを特徴とする請求項1から15のいずれかに記載のチップ動作周波数設定方法。
【請求項17】
チップ動作周波数設定装置であって、
目標タスクの複数のサブタスクおよび各サブタスクのタスクパラメータを取得するための取得モジュールと、
前記複数のサブタスクの中の各サブタスクのタスクパラメータに基づいて、前記各サブタスクの目標チップ周波数を確定するための周波数制御モジュールと、
確定された各サブタスクの目標チップ周波数に基づいて、チップが前記各サブタスクを実行するときの動作周波数を設定するための周波数設定モジュールと、を備え、
前記タスクパラメータは、前記サブタスクの演算規模を示すためのパラメータを含む
ことを特徴とするチップ動作周波数設定装置。
【請求項18】
電子デバイスであって、
メモリと、プロセッサと、を備え、
前記メモリは、機械可読命令を記憶し、
前記プロセッサは、前記機械可読命令を呼び出して、請求項1から16のいずれかに記載のチップ動作周波数設定方法を実現する
ことを特徴とする電子デバイス。
【請求項19】
前記プロセッサが設定した動作周波数で目標タスク中の各サブタスクに対して処理を実行するチップをさらに備える
ことを特徴とする請求項18に記載の電子デバイス。
【請求項20】
コンピュータプログラムが記録されているコンピュータ可読記録媒体であって、
前記プログラムがプロセッサによって実行されるときに、前記プロセッサが請求項1から16のいずれかに記載のチップ動作周波数設定方法を実現するようにする
ことを特徴とするコンピュータ可読記録媒体。
【国際調査報告】