IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 北京字跳▲網▼絡技▲術▼有限公司の特許一覧

特表2025-501722タスク実行方法、装置、設備及び媒体
<>
  • 特表-タスク実行方法、装置、設備及び媒体 図1
  • 特表-タスク実行方法、装置、設備及び媒体 図2
  • 特表-タスク実行方法、装置、設備及び媒体 図3
  • 特表-タスク実行方法、装置、設備及び媒体 図4
  • 特表-タスク実行方法、装置、設備及び媒体 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-23
(54)【発明の名称】タスク実行方法、装置、設備及び媒体
(51)【国際特許分類】
   G06F 9/50 20060101AFI20250116BHJP
【FI】
G06F9/50 120A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024535833
(86)(22)【出願日】2022-12-07
(85)【翻訳文提出日】2024-06-21
(86)【国際出願番号】 CN2022137230
(87)【国際公開番号】W WO2023109613
(87)【国際公開日】2023-06-22
(31)【優先権主張番号】202111539442.X
(32)【優先日】2021-12-15
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
(71)【出願人】
【識別番号】521431088
【氏名又は名称】北京字跳▲網▼絡技▲術▼有限公司
【氏名又は名称原語表記】Beijing Zitiao Network Technology Co., Ltd.
【住所又は居所原語表記】0207, 2/F, Building 4, Zijin Digital Park, Haidian District, Beijing,P. R. China
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【弁理士】
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】ワン,ショアイ
(57)【要約】
本開示は、タスク実行方法、装置、設備及び媒体を提供する。該方法は、GPUが配置されたターゲット設備に応用される。該方法は、指定タスクの実行指令を受信したことに応答して、プロファイルを取得することであって、指定タスクは、GPUに基づいて実行されるタスクであり、プロファイルは、設備種別と好適なGPU子スレッド数とのマッピング関係を含み、好適なGPU子スレッド数は、設備種別における1種類の代表設備がそのGPUに基づいて指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数であることと、プロファイルに基づいてターゲット設備が属するターゲット設備種別を決定することと、前記ターゲット設備種別に対応する好適なGPU子スレッド数を採用して前記指定タスクを実行することと、を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
グラフィックスプロセッシングユニットGPUが配置されたターゲット設備に応用されるタスク実行方法であって、
指定タスクの実行指令を受信したことに応答して、プロファイルを取得することであって、前記指定タスクは、GPUに基づいて実行されるタスクであり、前記プロファイルは、設備種別と好適なGPU子スレッド数とのマッピング関係を含み、前記好適なGPU子スレッド数は、前記設備種別における1種類の代表設備がそのGPUに基づいて前記指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数であることと、
前記プロファイルに基づいて前記ターゲット設備が属するターゲット設備種別を決定することと、
前記ターゲット設備種別に対応する好適なGPU子スレッド数を採用して、前記指定タスクを実行することと、を含む、タスク実行方法。
【請求項2】
前記プロファイルには、前記設備種別毎に対応する複数種類の設備の設備識別子が記録され、
前記プロファイルに基づいて前記ターゲット設備が属するターゲット設備種別を決定するステップは、
前記プロファイルにおいて前記ターゲット設備の設備識別子に対応する設備種別を検索し、検索された前記設備種別を前記ターゲット設備が属するターゲット設備種別とすることを含む、請求項1に記載のタスク実行方法。
【請求項3】
前記プロファイルには、前記設備種別の区分方式が記録され、前記区分方式は、GPUメーカー名に従う区分又はGPU型番に従う区分を含み、
前記プロファイルに基づいて前記ターゲット設備が属するターゲット設備種別を決定するステップは、
前記プロファイルに記録された前記設備種別の区分方式及び前記ターゲット設備のGPU情報に基づいて、前記ターゲット設備が属するターゲット設備種別を決定することを含む、請求項1に記載のタスク実行方法。
【請求項4】
前記GPU情報は、GPUメーカー名又はGPU型番を含む、請求項3に記載のタスク実行方法。
【請求項5】
設備種別毎に対応する全ての設備は、特定のGPU共通性を有し、異なる設備種別に対応するGPU共通性は異なる、請求項1に記載のタスク実行方法。
【請求項6】
前記プロファイルは、
複数種類の設備のGPU情報を取得することであって、前記設備は、いずれもGPUが配置された設備であることと、
前記GPU情報に基づいて前記複数種類の設備を区分して複数の設備種別とし、設備種別毎に、いずれも複数種類の設備が対応していることと、
設備種別毎に、該設備種別に対応する全ての設備から1種類の代表設備を選出し、該設備種別の代表設備に対応する好適なGPU子スレッド数を取得し、前記好適なGPU子スレッド数を該設備種別に対応する好適なGPU子スレッド数とすることと、
各種類の設備種別と好適なGPU子スレッド数とのマッピング関係に基づいてプロファイルを生成することと、
により生成される、請求項1~5のいずれか1項に記載のタスク実行方法。
【請求項7】
該設備種別の代表設備に対応する好適なGPU子スレッド数を取得するステップは、
複数の候補GPU子スレッド数を取得することと、
前記候補GPU子スレッド数毎に、該候補GPU子スレッド数を所定のオープン計算言語OpenCLプログラムのパラメータとし、該設備種別の代表設備が前記所定のOpenCLプログラムを採用して前記指定タスクを実行するために要する時間を取得することと、
所要時間が最も短い対応する候補GPU子スレッド数を該設備種別の代表設備に対応する好適なGPU子スレッド数とすることと、を含む、請求項6に記載のタスク実行方法。
【請求項8】
前記GPU情報は、GPUメーカー名を含み、
前記GPU情報に基づいて前記複数種類の設備を区分して複数の設備種別とするステップは、各種類の設備のGPUメーカー名に基づいて前記複数種類の設備を区分して複数のメーカー種別とすることを含み、メーカー種別毎に対応する全ての設備は、同じメーカー名を有する、請求項6に記載のタスク実行方法。
【請求項9】
前記GPU情報は、GPU型番を含み、
前記GPU情報に基づいて前記複数種類の設備を区分して複数の設備種別とするステップは、各種類の設備のGPU型番に基づいて前記複数種類の設備を区分して複数のGPU型番種別とすることを含み、GPU型番種別毎に対応する全ての設備は、同じGPU型番を有する、請求項6に記載のタスク実行方法。
【請求項10】
該設備種別に対応する全ての設備から1種類の代表設備を選出するステップは、
所定の計量指標に基づいて、該設備種別に対応する各設備の指標データを取得することであって、前記計量指標は、市場カバレッジ及び/又は設備性能を含むことと、
前記各設備の指標データに基づいて、該設備種別に対応する全ての設備から1種類の代表設備を選出することと、を含む、請求項6に記載のタスク実行方法。
【請求項11】
前記各設備の指標データに基づいて、該設備種別に対応する全ての設備から1種類の代表設備を選出することは、各設備の指標データを照合することにより、該設備種別における全ての設備のうち最も典型的な設備を代表設備とすることを含む、請求項10に記載のタスク実行方法。
【請求項12】
前記各設備の指標データに基づいて、該設備種別に対応する全ての設備から1種類の代表設備を選出するステップは、
前記各設備の指標データに基づいて、該設備種別に対応する全ての設備の指標データの中間値を決定することと、
該設備種別に対応する全ての設備から、指標データが前記中間値に最も近い設備を選出し、選出された設備を該設備種別の代表設備とすることと、を含む、請求項10に記載のタスク実行方法。
【請求項13】
GPUが配置されたターゲット設備に応用されるタスク実行装置であって、
指定タスクの実行指令を受信したことに応答して、プロファイルを取得するためのファイル取得モジュールであって、前記指定タスクは、GPUに基づいて実行されるタスクであり、前記プロファイルは、設備種別と好適なGPU子スレッド数とのマッピング関係を含み、前記好適なGPU子スレッド数は、前記設備種別における1種類の代表設備がそのGPUに基づいて前記指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数であるファイル取得モジュールと、
前記プロファイルに基づいて前記ターゲット設備が属するターゲット設備種別を決定するための種別決定モジュールと、
前記ターゲット設備種別に対応する好適なGPU子スレッド数を採用して、前記指定タスクを実行するためのタスク実行モジュールと、を含む、タスク実行装置。
【請求項14】
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと、を含み、
前記プロセッサは、前記メモリから前記実行可能な命令を読み出し、前記命令を実行して前記請求項1~5のいずれか1項に記載のタスク実行方法を実現させるためのものである、電子設備。
【請求項15】
前記請求項1~5のいずれか1項に記載のタスク実行方法を実行させるためのコンピュータプログラムが記憶された、コンピュータ可読記憶媒体。
【請求項16】
プロセッサによって実行されると、前記プロセッサに請求項1~5のいずれか1項に記載のタスク実行方法を実行させる命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、出願番号が202111539442.Xであり、出願日が2021年12月15日である中国出願を基礎としており、その優先権を主張し、該中国出願の開示内容の全てが参照によって本出願に取り込まれる。
【0002】
本開示は、コンピュータ技術分野に関し、特にタスク実行方法、装置、設備及び媒体に関する。
【背景技術】
【0003】
モバイル端末、デスクトップ端末などの様々な設備には、いずれもGPU(Graphics Processing Unit、グラフィックスプロセッシングユニット)が配置される。いくつかのシナリオでは、画像レンダリングなどの指定タスクを実行する際に必要とされるパラメータは、GPU子スレッド数に係る。GPU子スレッド数は、local work sizeとも呼ばれ、具体的には、同じワープ(warp)における対応する子スレッドの数を指す。
【発明の概要】
【0004】
本開示の実施例は、GPUが配置されたターゲット設備に応用されるタスク実行方法を提供し、前記方法は、指定タスクの実行指令を受信したことに応答して、プロファイルを取得することであって、前記指定タスクは、GPUに基づいて実行されるタスクであり、前記プロファイルは、設備種別と好適なGPU子スレッド数とのマッピング関係を含み、前記好適なGPU子スレッド数は、前記設備種別における1種類の代表設備がそのGPUに基づいて前記指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数であることと、前記プロファイルに基づいて前記ターゲット設備が属するターゲット設備種別を決定することと、前記ターゲット設備種別に対応する好適なGPU子スレッド数を採用して前記指定タスクを実行することと、を含む。
【0005】
いくつかの実施例では、前記プロファイルには、前記設備種別毎に対応する複数種類の設備の設備識別子が記録され、前記プロファイルに基づいて前記ターゲット設備が属するターゲット設備種別を決定するステップは、前記プロファイルにおいて前記ターゲット設備の設備識別子に対応する設備種別を検索し、検索された前記設備種別を前記ターゲット設備が属するターゲット設備種別とすることを含む。
【0006】
いくつかの実施例では、前記プロファイルには、前記設備種別の区分方式が記録され、前記区分方式は、GPUメーカー名に従う区分又はGPU型番に従う区分を含み、前記プロファイルに基づいて前記ターゲット設備が属するターゲット設備種別を決定するステップは、前記プロファイルに記録された前記設備種別の区分方式及び前記ターゲット設備のGPU情報に基づいて、前記ターゲット設備が属するターゲット設備種別を決定することを含む。
【0007】
いくつかの実施例では、前記GPU情報は、GPUメーカー名又はGPU型番を含む。
【0008】
いくつかの実施例では、設備種別毎に対応する全ての設備は、特定のGPU共通性を有し、異なる設備種別に対応するGPU共通性は異なる。
【0009】
いくつかの実施例では、前記プロファイルは、複数種類の設備のGPU情報を取得することであって、前記設備は、いずれもGPUが配置された設備であることと、前記GPU情報に基づいて前記複数種類の設備を区分して複数の設備種別とし、設備種別毎に、いずれも複数種類の設備が対応していることと、設備種別毎に、該設備種別に対応する全ての設備から1種類の代表設備を選出し、該設備種別の代表設備に対応する好適なGPU子スレッド数を取得し、前記好適なGPU子スレッド数を該設備種別に対応する好適なGPU子スレッド数とすることと、各種類の設備種別と好適なGPU子スレッド数とのマッピング関係に基づいてプロファイルを生成することと、により生成される。
【0010】
いくつかの実施例では、該設備種別の代表設備に対応する好適なGPU子スレッド数を取得するステップは、複数の候補GPU子スレッド数を取得することと、前記候補GPU子スレッド数毎に、該候補GPU子スレッド数を所定のOpenCLプログラムのパラメータとし、該設備種別の代表設備が前記所定のOpenCLプログラムを採用して前記指定タスクを実行するために要する時間を取得することと、所要時間が最も短い対応する候補GPU子スレッド数を該設備種別の代表設備に対応する好適なGPU子スレッド数とすることと、を含む。
【0011】
いくつかの実施例では、前記GPU情報は、GPUメーカー名を含み、前記GPU情報に基づいて前記複数種類の設備を区分して複数の設備種別とするステップは、各種類の設備のGPUメーカー名に基づいて前記複数種類の設備を区分して複数のメーカー種別とすることを含み、メーカー種別毎に対応する全ての設備は、同じメーカー名を有する。
【0012】
いくつかの実施例では、前記GPU情報は、GPU型番を含み、前記GPU情報に基づいて前記複数種類の設備を区分して複数の設備種別とするステップは、各種類の設備のGPU型番に基づいて前記複数種類の設備を区分して複数のGPU型番種別とすることを含み、GPU型番種別毎に対応する全ての設備は、同じGPU型番を有する。
【0013】
いくつかの実施例では、該設備種別に対応する全ての設備から1種類の代表設備を選出するステップは、所定の計量指標に基づいて、該設備種別に対応する各設備の指標データを取得することであって、前記計量指標は、市場カバレッジ及び/又は設備性能を含むことと、前記各設備の指標データに基づいて、該設備種別に対応する全ての設備から1種類の代表設備を選出することと、を含む。
【0014】
いくつかの実施例では、前記各設備の指標データに基づいて、該設備種別に対応する全ての設備から1種類の代表設備を選出することは、各設備の指標データを照合することにより、該設備種別における全ての設備のうち最も典型的な設備を代表設備とすることを含む。
【0015】
いくつかの実施例では、前記各設備の指標データに基づいて、該設備種別に対応する全ての設備から1種類の代表設備を選出するステップは、前記各設備の指標データに基づいて、該設備種別に対応する全ての設備の指標データの中間値を決定することと、該設備種別に対応する全ての設備から、指標データが前記中間値に最も近い設備を選出し、選出された設備を該設備種別の代表設備とすることと、を含む。
【0016】
本開示の実施例は、GPUが配置されたターゲット設備に応用されるタスク実行装置を提供し、前記装置は、指定タスクの実行指令を受信したことに応答して、プロファイルを取得するためのファイル取得モジュールであって、前記指定タスクは、GPUに基づいて実行されるタスクであり、前記プロファイルは、設備種別と好適なGPU子スレッド数とのマッピング関係を含み、前記好適なGPU子スレッド数は、前記設備種別における1種類の代表設備がそのGPUに基づいて前記指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数であるファイル取得モジュールと、前記プロファイルに基づいて前記ターゲット設備が属するターゲット設備種別を決定するための種別決定モジュールと、前記ターゲット設備種別に対応する好適なGPU子スレッド数を採用して前記指定タスクを実行するためのタスク実行モジュールと、を含む。
【0017】
本開示の実施例は、プロセッサと、前記プロセッサが実行可能な命令を記憶するためのメモリと、を含み、前記プロセッサは、前記メモリから前記実行可能な命令を読み出し、前記命令を実行して本開示の実施例によるタスク実行方法を実現させるためのものである、電子設備をさらに提供する。
【0018】
本開示の実施例は、本開示の実施例によるタスク実行方法を実行するためのコンピュータプログラムが記憶された、コンピュータ可読記憶媒体をさらに提供する。
【0019】
本開示の実施例は、プロセッサによって実行されると、前記プロセッサに本開示の実施例によるタスク実行方法を実行させる命令を含む、コンピュータプログラムをさらに提供する。
【0020】
この部分に説明された内容は、本開示の実施例の肝心又は重要な特徴を特定することを意図しておらず、本開示の範囲を制限するものでもないことを理解されたい。本開示の他の特徴は、以下の明細書によって容易に理解できるようになる。
【図面の簡単な説明】
【0021】
ここの図面は、明細書に組み込まれて本明細書の一部を構成し、本開示に適する実施例を示しており、明細書と共に本開示の原理の解釈に用いられる。
【0022】
本開示の実施例又は従来技術における技術案をより明確に説明するために、以下では、実施例又は従来技術の説明において使用される必要がある図面を簡単に紹介する。自明なことに、当業者であれば、創造的な労力を払うことなく、それらの図面に基づき、他の図面を得ることもできる。
【0023】
図1】本開示の実施例によるタスク実行方法の流れを示す概略図である。
図2】本開示の実施例によるプロファイルの生成方法の流れを示す概略図である。
図3】本開示の実施例によるプロファイルの生成方法の流れを示す概略図である。
図4】本開示の実施例によるタスク実行装置の構成概略図である。
図5】本開示の実施例による電子設備の構成概略図である。
【発明を実施するための形態】
【0024】
本開示の上記目的、特徴及び利点をより明確に理解できるように、以下は、本開示の態様についてさらに説明する。なお、矛盾しない限り、本開示の実施例及び実施例における特徴は、互いに組み合わせることができる。
【0025】
本開示を十分に理解するために、以下の説明において、多くの具体的な詳細が説明されているが、本開示は、ここで説明されている形態と異なる他の形態で実施されてもよい。明らかに、明細書における実施例は、本開示の一部の実施例に過ぎず、全ての実施例ではない。
【0026】
本開示の発明者は、検討により、GPU子スレッド数は、タスク実行効果に影響を与え、例えば、タスクを完成させるために要する時間に影響を与えることを発見した。また、市場に出回る、GPUが配置された設備の種類数は非常に多く、携帯電話のみを例にすると、千をもって数えられる。関連技術では、多大なコストを費やして、各種類の設備に対して、対応する適切なGPU子スレッド数をそれぞれ決定するのが困難である。従って、単に各設備に統一されたデフォルトのGPU子スレッド数を採用してタスクを実行させるだけでは、タスク実行効果が良くない。
【0027】
具体的には、本開示の発明者は、検討により、GPU子スレッド数(即ち、local work size)は、GPUが画像レンダリングなどの指定タスクを実行する効果に影響を与えることを発見した。GPU子スレッド数はOpenCL(Open Computing Langugae、オープン計算言語)のコアパラメータでもある。GPUは、高度にスレッド化された並列処理タスクを実行することに特化する。一方、OpenCLは、汎用的な並列計算言語に属し、モバイル端末設備やデスクトップ端末設備など、GPUが配置された複数種類の設備を広くサポートする。換言すれば、OpenCLは、異なるタイプのGPUを広くサポートすることができ、GPU子スレッド数は、OpenCLの性能に比較的大きい影響を与え、例えば、10%~70%の性能に影響を与え得る。その性能影響は、主に、タスク実行効果が影響されることに表れる。具体的に、このタスク実行効果は、主にタスク実行所要時間であり、例えば、不適切なGPU子スレッド数は、OpenCLを採用して指定タスクを実行するために要する時間を直接的に増加させる。従って、各種類の設備に対して好適なGPU子スレッド数を見出すことが必要であり得る。しかしながら、市場では、GPUが配置された設備は種類が多く、携帯電話だけでも型番が百千という多数に登り、各種類の設備毎に、好適なGPU子スレッド数をそれぞれ取得するには膨大な労力を要し、現実的ではない。関連技術で採用される方式は、単に多くの設備に統一されたデフォルトのGPU子スレッド数を採用してタスクを実行させるだけであり、タスク実行効果の向上が待たれている。
【0028】
そこで、本開示の実施例は、タスク実行方法、装置、設備及び媒体を提供する。理解を容易にするために、以下で詳細に説明する。
【0029】
また、関連技術に存在する欠点も、出願人が実践し鋭意検討した結果である。このため、上記欠点の発見過程、及び上記欠点に対し本出願の実施例が以下に提案する解決策は、いずれも出願人による本出願に対する貢献と見なされるべきである。
【0030】
図1は、本開示の実施例によるタスク実行方法の流れを示す概略図である。該方法は、GPUが配置されたターゲット設備に応用される。例えば、ターゲット設備は、携帯電話などのモバイル端末、コンピュータなどである。図1に示すように、この方法は主に以下のステップS102~ステップS106を含む。
【0031】
ステップS102では、指定タスクの実行指令を受信したことに応答して、プロファイルを取得する。指定タスクは、GPUに基づいて実行されるタスクである。プロファイルは、設備種別と好適なGPU子スレッド数とのマッピング関係を含み、好適なGPU子スレッド数は、設備種別における1種類の代表設備がそのGPUに基づいて指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数である。ここで、上記設備種別は、設備が属する種別である。
【0032】
上記指定タスクは、例えば、画像レンダリングタスクであってもよい。一具体例では、OpenCLのGPUへの高い汎用性を考慮して、指定タスクは、OpenCLプログラムを採用して実行されるタスクであってもよい。本開示の実施例は、具体的な指定タスクについて限定しない。例示的に、OpenCLに基づいて実行される任意のタスクは、いずれも指定タスクとされてもよい。上記指定タスクの実行指令は、ユーザによって直接的に開始されてもよいし、指定タスクに関連するシステム/プラットフォームによって、必要な時に自動的に開始されてもよい。
【0033】
いくつかの実施形態では、ターゲット設備は、指定方式でプロファイルを取得してもよい。指定方式でプロファイルをダウンロードする際に、ユーザ設定に基づいて、指定タスクを実行する時にプロファイルを自動的にダウンロードしてもよく、プロファイルを自らダウンロードすることをユーザに提示してもよく、ユーザによってプロファイルをターゲット設備に直接的にインポートし、プロファイルを指定位置に記憶してもよい。前述した説明に基づき、ターゲット設備は、指定タスクの実行指令を受信すると、指定位置からプロファイルを直接的に読み取ればよい。別のいくつかの実施形態では、ターゲット設備は、指定タスクの実行指令を受信した後に、前述した指定方式でプロファイルをダウンロードする。
【0034】
上記プロファイルは、予め生成されてもよく、主に、設備種別と好適なGPU子スレッド数とのマッピング関係(対応関係とも呼ばれる)を含む。具体的には、プロファイルは、複数種類の設備種別を含み、各種類の設備種別は、いずれも1つの好適なGPU子スレッド数に対応する。本開示の実施例では、GPUが配置された複数種類の設備を複数の設備種別に区分することができ、各設備種別は、いずれも複数種類の設備に対応し、各設備種別に対応する全ての設備は、特定のGPU共通性を有し、異なる設備種別に対応するGPU共通性は異なる。いくつかの実施形態では、プロファイルは、設備種別と好適なGPU子スレッド数とのマッピング関係を含む他、各設備種別における全ての設備の設備識別子をさらに含む。別のいくつかの実施形態では、プロファイルは、設備種別と好適なGPU子スレッド数とのマッピング関係を含む他、設備種別の区分方式をさらに含み、例えば、GPUメーカーに従って区分して複数の設備種別を得て、各設備種別は、いずれもGPUメーカー名に対応し、GPU型番に従って区分して複数の設備種別を得て、各設備種別は、いずれもGPU型番に対応する。
【0035】
上記プロファイルにおいて、各設備種別に対応する好適なGPU子スレッド数は、該設備種別における1種類の代表設備がそのGPU(即ち、該代表設備のGPU)に基づいて指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数であり、そして、代表設備に対応する好適なGPU子スレッド数を設備種別に対応する好適なGPU子スレッド数とし、即ち、設備種別における全ての設備に対応する好適なGPU子スレッド数とする。既存のGPUが配置された設備の種類数が非常に多く、各種類の設備に対して、対応するより適切なGPU子スレッド数をそれぞれ決定するために要するコストが膨大であることを考慮して、本開示の実施例によるプロファイルは、複数種類の設備を複数の種別に区分し、種別毎に1つの代表設備を選出し、該代表設備に対応する好適なGPU子スレッド数のみを決定すればよく、該代表設備に対応する好適なGPU子スレッド数を設備種別に対応する好適なGPU子スレッド数とし、より便利で実行可能であり、低いコストで実現することができる。
【0036】
いくつかの実施形態では、設備種別に対応する代表設備は、該設備種別における全ての設備のうち最も典型的な設備であってもよい。例示的に、各設備種別における中級設備を代表設備としてもよい。実際の応用では、各設備種別に対応する代表設備を人為的に指定してもよく、各設備種別における全ての設備の設備情報を取得して、設備情報を照合することにより、その中から所定のルールに合致する設備を自動的に選別してもよく、選別された設備は、代表設備である。該所定のルールは、ニーズに応じて設定されてもよい。例えば、設備種別における全ての設備のうち、あるGPU性能パラメータが中間に位置する設備を代表設備とする。いくつかの実施形態では、代表設備に所定のOpenCLプログラムを実行させて、複数種類のGPU子スレッド数(例えば、列挙できる全ての可能なスレッド数)をトラバースし、所要時間が最も少ないGPU子スレッド数を見出し、見出されたスレッド数を、代表設備の好適なGPU子スレッド数としてもよい。
【0037】
ステップS104では、プロファイルに基づいてターゲット設備が属するターゲット設備種別を決定する。
【0038】
いくつかの実施形態では、プロファイルには、各設備種別に対応する複数種類の設備の設備識別子が記録される。この場合、プロファイルにおいてターゲット設備の設備識別子に対応する設備種別を検索し、検索された設備種別をターゲット設備が属するターゲット設備種別としてもよい。例えば、プロファイルには、3つの設備種別(それぞれ種別A、種別B、種別Cである)が記録され、種別Aに属する設備識別子a1、a2、a3~a85、種別Bに属する設備識別子b1、b2、b3~b70、種別Cに属する設備識別子c1、c2、c3~c121が記録される。ターゲット設備の設備識別子がb35である場合、対応する設備種別は、種別Bである。
【0039】
別のいくつかの実施形態では、プロファイルには、設備種別の区分方式が記録される。区分方式は、GPUメーカー名に従う区分又はGPU型番に従う区分を含む。この場合、プロファイルに記録された設備種別の区分方式及びターゲット設備のGPU情報に基づいて、ターゲット設備が属するターゲット設備種別を決定してもよい。例えば、プロファイルには、GPUメーカー名に従って区分された3つの設備種別が記録されており、種別Aは、メーカーAに対応し、種別Bは、メーカーBに対応し、種別Cは、メーカーCに対応する。一方、ターゲット設備のGPU情報は、ターゲット設備のメーカーがAであることを示すと、ターゲット設備に対応する設備種別は、種別Aである。
【0040】
以上はいずれも例示的説明であり、制限と見なされるべきではない。
【0041】
ステップS106では、ターゲット設備種別に対応する好適なGPU子スレッド数を採用して、指定タスクを実行する。
【0042】
理解できるように、同じ設備種別における設備は、通常、一定の共通性を有するため、ターゲット設備が、該設備種別における代表設備に対応する好適なGPU子スレッド数を採用してタスクを実行する場合に要する時間も通常短い。デフォルトのGPU子スレッド数を採用する場合に比べて、上記方式は、容易に実現され、しかもタスク実行効果を有効に向上させることができる。
【0043】
ここまで、本開示のいくつかの実施例によるタスク実行方法が提供される。該方法では、GPUが配置されたターゲット設備は、指定タスクの実行指令を受信したことに応答して、プロファイルを取得し、プロファイルは、設備種別と好適なGPU子スレッド数とのマッピング関係を含み、好適なGPU子スレッド数は、設備種別における1種類の代表設備がそのGPUに基づいて指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数である。そして、プロファイルに基づいてターゲット設備が属するターゲット設備種別を決定し、ターゲット設備種別に対応する好適なGPU子スレッド数を採用して指定タスクを実行する。上記方式によれば、指定タスクを実行する際に、設備種別と好適なGPU子スレッド数とのマッピング関係が記録されたプロファイルを取得し、ターゲット設備が属するターゲット設備種別に対応する好適なGPU子スレッド数を採用して指定タスクを実行することができる。ターゲット設備種別に対応する好適なGPU子スレッド数は、該設備種別における代表設備が指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数である。同じ設備種別における設備は、通常、一定の共通性を有するため、ターゲット設備が、該設備種別における代表設備に対応する好適なGPU子スレッド数を採用してタスクを実行する場合に要する時間も通常短い。デフォルトのGPU子スレッド数を採用する場合に比べて、上記方式は、容易に実現され、しかもタスク実行効果を有効に向上させることができる。前述した説明に基づき、本開示の実施例は、プロファイルの生成方法をさらに提供する。図2は、本開示の実施例によるプロファイルの生成方法の流れを示す概略図である。該方法は、以下のステップS202~ステップS208を含む。
【0044】
ステップS202では、複数種類の設備のGPU情報を取得する。該設備は、いずれもGPUが配置された設備である。
【0045】
実際の応用では、上記設備の種類数は、ニーズに応じて設定されてもよく、ここでは制限を加えない。例えば、現在市場における携帯電話、コンピュータなどの主流設備に基づいて、このような主流設備の、指定期間内(例えば、近5年)に市場で流通する様々な設備型番に対応するGPU情報を取得してもよいし、現在ネットワーク又は市場に存在する全ての知ることが可能となる様々な設備のGPU情報を取得してもよい。いくつかの実施形態では、GPU情報は、GPUメーカー名又はGPU型番を含む。GPUメーカー名は、例えば、クアルコム、mali、powerVRなどがあり、GPU型番は、例えば、mali G77、mali G76、adreno510などである。
【0046】
ステップS204では、GPU情報に基づいて複数種類の設備を区分して複数の設備種別とし、設備種別毎に、いずれも複数種類の設備が対応している。
【0047】
設備毎にGPU情報が対応しているため、GPU情報に基づいて設備を複数種類に区分することができ、種別毎にいずれも複数種類の設備が対応しており、種別毎に対応している全ての設備は、一定のGPU共通性を有し、異なる種別に対応する共通性は異なる。例えば、いくつかの実施形態では、複数種類の設備があり、各種類の設備にいずれもGPUが配置されているが、現在のGPUメーカーは、指折り数えることができるほど数が少なく、多くの設備に採用されたGPUは、いずれも同じメーカーによって製造される。従って、GPUメーカーに基づいて、複数種類の設備を区分して複数の種別とすることができる。また、例えば、既存のGPU型番の数も設備の種類に比べて遥かに少なく、いくつかの設備に採用されたGPU型番も同じである。このため、GPU型番に基づいて複数種類の設備を区分して複数の種別とすることができる。
【0048】
ステップS206では、設備種別毎に、該設備種別に対応する全ての設備から1種類の代表設備を選出し、該設備種別の代表設備に対応する好適なGPU子スレッド数を取得し、好適なGPU子スレッド数を該設備種別に対応する好適なGPU子スレッド数とする。つまり、該設備種別の代表設備に対応する好適なGPU子スレッド数を、該設備種別に対応する全ての設備の好適なGPU子スレッド数とする。ここで、好適なGPU子スレッド数は、代表設備のGPUが指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数である。タスク実行効果は、主に、タスク所要時間に反映されているため、本開示の実施例は、指定タスクを実行するために要する時間に基づいてGPU子スレッド数が好適であるか否かを判別することができる。いくつかの実施形態では、全ての可能なGPU子スレッド数を列挙し、そして、代表設備が可能なGPU子スレッド数を1つずつ採用して指定タスクを実行して、各GPU子スレッド数に対応する所要時間を判断し、所要時間が最も短いGPU子スレッド数を代表設備の好適なGPU子スレッド数とするようにしてもよく、実際にはそれを代表設備の最適なGPU子スレッド数と呼んでもよい。
【0049】
前述したステップは、各設備のGPU情報に基づいて分類し、各種別に対応する全ての設備は、実際には一定のGPU共通性を有し、例えば、GPUメーカーに従って区分した種別又はGPU型番に従って区分した種別であり、同じ種別における全ての設備の各々のGPUは、実はその差異が大きくなく、大抵がGPUの一部の特性の更迭改進にあり、大部分の特性が一致する。このため、種別毎に、代表設備の好適なGPU子スレッド数は、ある程度、同じ種別の他の設備の比較的好適なGPU子スレッド数でもある。必ずしも最適ではないが、統一されたデフォルトのGPU子スレッド数に比べて、設備自身のGPU特性に近いため、タスク実行効果はより良好であり、所要時間は、通常、統一されたデフォルトのGPU子スレッド数による所要時間よりも少ない。
【0050】
ステップS208では、各種類の設備種別と好適なGPU子スレッド数とのマッピング関係に基づいてプロファイルを生成する。具体的には、各種類の設備種別と好適なGPU子スレッド数とのマッピング関係(対応関係)を1つのファイルに記録し、該ファイルをプロファイルとしてもよい。
【0051】
実際の応用では、ネットワークなどの方式により該プロファイルを配信してもよく、各設備は、GPUを採用してGPU子スレッド数を必要とする指定タスクを実行する際に、例えばネットワークダウンロード、データインポートなどの方式により、該プロファイルを取得し、そして、プロファイルから該設備に対応する好適なGPU子スレッド数を照会してもよい。いくつかの実施形態では、プロファイルは、1つの大きなファイルであってもよく、該ファイルには、各種別に対応する好適なGPU子スレッド数及び各種別に対応する設備識別子(設備型番)が記録され、同じ種別における全ての設備に対応する好適なGPU子スレッド数は、いずれも同じである。別のいくつかの実施形態では、プロファイルは、複数のサブファイルを含んでもよく、各サブファイルには、1つの種別に対応する好適なGPU子スレッド数及び該種別における設備識別子が記録される。ターゲット設備は、プロファイルを取得した後、自身の識別子に基づいて、プロファイルから、それに対応する好適なGPU子スレッド数を直接的に検索することができる。既存の複数種類の設備は、いずれもプロファイルにより自身に対応する好適なGPU子スレッド数を取得することができるため、該プロファイルは、多機種互換性を有し、各設備は、プロファイルを読み取ることにより、機種自動適合を実現することができる。
【0052】
本開示の実施例による上記プロファイルの生成方法は、GPU情報に従って種別区分を行い、区分された各種別に対応する設備は、通常、一定のGPU共通性を有する。このため、代表設備が指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数(代表設備の好適なGPU子スレッド数)を該種別における他の設備の好適なGPU子スレッド数とすることもでき、即ち、各種類の設備に対応する好適なGPU子スレッド数を得ることができる。関連技術のようにデフォルトのGPU子スレッド数を統一的に採用する場合に比べて、本開示の実施例による上記方式は、各種類の設備に対応する好適なGPU子スレッド数を容易かつ迅速に得て、プロファイルに記録することができ、後続の各設備のタスク実行効果の向上に寄与する。また、本開示の実施例は、各種別の代表設備の好適なGPU子スレッド数を取得するので、数が多い設備に対して好適なGPU子スレッド数をそれぞれ取得する方式に比べて、実現可能性が高く、要するコストが低い。
【0053】
本開示の実施例は、GPU情報に基づいて複数種類の設備を区分して複数の設備種別とする実施形態を示した。設備種別は、メーカー種別又はGPU型番種別であってもよく、具体的には、下記の(1)と(2)を参照して実現されてもよい。
【0054】
(1)GPU情報がGPUメーカー名である場合、各種類の設備のGPUメーカー名に基づいて複数種類の設備を区分して複数のメーカー種別とし、メーカー種別毎に対応する全ての設備は、同じメーカー名を有する。例えば、モバイル端末のアンドロイド(登録商標)陣営を例にして、主にクアルコム、mali、powerVRという3つの大きなメーカーに区分することができる。理解できるように、既存のGPUメーカーは数が少ないため、複数種類の設備を大まかに区分して複数のメーカー種別とすることができ、例えば、クアルコムメーカー製のGPUを採用した設備はいずれもクアルコム種別に属し、maliメーカー製のGPUを採用した設備はいずれもmali種別に属するなどである。
【0055】
つまり、いくつかの実施例では、前記GPU情報はGPUメーカー名を含み、前記GPU情報に基づいて前記複数種類の設備を区分して複数の設備種別とするステップは、各種類の設備のGPUメーカー名に基づいて前記複数種類の設備を区分して複数のメーカー種別とすることを含み、メーカー種別毎に対応する全ての設備は、同じメーカー名を有する。
【0056】
(2)GPU情報がGPU型番である場合、各種類の設備のGPU型番に基づいて複数種類の設備を区分して複数のGPU型番種別とし、GPU型番種別毎に対応する全ての設備は、同じGPU型番を有する。理解できるように、既存の設備は数が多いが、多くの設備はいずれも同じGPU型番を採用しているので、複数種類の設備を細かく区分して複数のGPU型番種別とすることも可能である。
【0057】
つまり、いくつかの実施例では、前記GPU情報はGPU型番を含み、前記GPU情報に基づいて前記複数種類の設備を区分して複数の設備種別とするステップは、各種類の設備のGPU型番に基づいて前記複数種類の設備を区分して複数のGPU型番種別とすることを含み、GPU型番種別毎に対応する全ての設備は、同じGPU型番を有する。
【0058】
理解できるように、上記の(1)は、粗粒度(coarse-grained)区分方式である。例えば、主流のメーカーは、主に3、4社あるため、区分種別は、指折り数えることができるほど数が少ない。上記の(2)は、細粒度(fine-grained)区分方式である。例えば、主流のGPU型番は、約50数個あるため、区分種別は相対的に多いが、依然として千をもって数えられる設備の数よりも遥かに小さい。実際の応用では、ニーズに応じて、上記の(1)又は(2)を柔軟に選択することができる。例えば、GPUが指定タスクを実行するために要する時間に対する要求が高くない場合、簡単に上記の(1)を採用してもよい。タスク所要時間に対する要求が高い場合、上記の(2)を採用して区分することができる。以上は例示的説明に過ぎなく、制限と見なされるべきではない。実際の応用では、さらに、GPU情報に基づいて、例えば同じGPUメーカーにおけるシリーズ種類従って区分し、例えば、mali5シリーズ種別、mali6シリーズ種別などに区分することも可能である。
【0059】
区分して複数の設備種別とした後、設備種別毎に、該設備種別に対応する全ての設備から1種類の代表設備を選出してもよい。例示的に、次のステップ1とステップ2を参照して実現されてもよい。
【0060】
ステップ1では、所定の計量指標に基づいて、該設備種別に対応する各設備の指標データを取得し、計量指標は、市場カバレッジ及び/又は設備性能を含む。市場カバレッジは、市場占有率とも呼ばれ、ネットワーク統計方式により得ることができる。いくつかの実施形態では、設備性能は、設備がタスクを実行するために要する時間によって反映され得る。例えば、同じタスクを実行する際に、所要時間が短いほど、設備性能は良くなる。実際の応用では、各設備はいずれも市場で公開的に使用され、設備性能もいずれも公開パラメータであるため、ネットワーク方式により各設備の性能を容易に直接的に取得することができる。
【0061】
ステップ2では、各設備の指標データに基づいて、該設備種別に対応する全ての設備から1種類の代表設備を選出する。
【0062】
各設備の指標データを照合することにより、その中から最も典型的な設備を見出して代表設備とし、即ち、該設備種別における全ての設備のうち最も典型的な設備を代表設備とすることができる。いくつかの実現例では、各種別における中級設備を代表設備としてもよい。この場合、各設備の指標データに基づいて、該種別に対応する全ての設備の指標データの中間値を決定し、そして、該種別に対応する全ての設備から、指標データが中間値に最も近い設備を選出し、選出された設備を該種別の代表設備としてもよい。指標データが中間値である(又は中間値に最も近い)設備は、中級設備である。理解できるように、各種別の中級設備は、通常、該種別の一般特性を有し、該種別では、低級設備であっても、高級設備であっても、ある程度いずれも中級設備のGPU性能に近い。従って、中級設備を選択して該種別の全ての設備を客観的に代表して、そして、中級設備の好適なGPU子スレッド数を、同じ種別における他の設備に対応する好適なGPU子スレッド数とすることができる。
【0063】
さらに、本開示の実施例は、該設備種別の代表設備に対応する好適なGPU子スレッド数を取得する具体的な実施形態を提供し、以下のステップa~ステップcを含む。
【0064】
ステップaでは、複数の候補GPU子スレッド数を取得する。いくつかの実施形態では、列挙法に基づいて複数の候補GPU子スレッド数を決定してもよく、つまり、全てを列挙することにより、可能なGPU子スレッド数を列挙してもよい。
【0065】
ステップbでは、候補GPU子スレッド数毎に、該候補GPU子スレッド数を所定のOpenCLプログラムのパラメータとし、該設備種別の代表設備が所定のOpenCLプログラムを採用して指定タスクを実行するために要する時間を取得する。OpenCLは、GPUを広くサポートするため、所定のOpenCLプログラムを採用して指定タスクを実行することができる。GPU子スレッド数は、OpenCLプログラムが必要とするパラメータであり、具体的には、OpenCLのカーネル関数(kernel)パラメータであり、OpenCLプログラムがタスクを実行する性能(所要時間)に直接的に影響を与える。従って、本開示の実施例における設備は、いずれも所定のOpenCLプログラムを採用して指定タスクを実行することができる。実際の応用では、所定の計時方式を採用して指定タスクを実行するために要する時間を決定し、例えば、clGetEventProfilingInfo関数を採用して計時してもよい。
【0066】
ステップcでは、所要時間が最も短い対応する候補GPU子スレッド数を該設備種別の代表設備に対応する好適なGPU子スレッド数とする。
【0067】
所要時間が最も短い対応する候補GPU子スレッド数は、実際には、代表設備に対応する最適なGPU子スレッド数でもある。つまり、他の候補GPU子スレッド数に比べて、最も良いタスク実行効果を有する。また、実際の応用では、GPU子スレッド数はOpenCLのカーネル関数パラメータであり、カーネル関数は複数種類あり得るため、各種類のカーネル関数に対して、それに応じた好適なGPU子スレッド数を1つずつ決定してもよい。つまり、各種類のカーネル関数に対して、いずれも上記ステップa~ステップcを実行し、最後に得られる代表設備の好適なGPU子スレッド数は、複数のカーネル関数にそれぞれ対応する好適なGPU子スレッド数を含む。
【0068】
前述した説明に基づき、本開示の実施例は、プロファイルの生成方法をさらに提供する。図3は、本開示の実施例によるプロファイルの生成方法の流れを示す概略図である。主に以下のステップS302~ステップS310を含む。
【0069】
ステップS302では、複数種類の設備のGPU情報を取得する。設備は、いずれもGPUが配置された設備である。GPU情報がGPUメーカー名である場合、ステップS304を実行し、GPU情報がGPU型番である場合、ステップS306を実行する。
【0070】
ステップS304では、各種類の設備のGPUメーカー名に基づいて複数種類の設備を区分して複数のメーカー種別とする。
【0071】
ステップS306では、各種類の設備のGPU型番に基づいて複数種類の設備を区分して複数のGPU型番種別とする。
【0072】
ステップS308では、種別毎に、該種別に対応する全ての設備から1種類の代表設備を選出し、該種別の代表設備に対応する好適なGPU子スレッド数を取得し、好適なGPU子スレッド数を該種別に対応する全ての設備の好適なGPU子スレッド数とする。
【0073】
ステップS310では、各種類の設備と好適なGPU子スレッド数とのマッピング関係をプロファイルに保存する。このように、後でプロファイルを、指定タスクを実行するターゲット設備に直接的に提供することができ、ターゲット設備のGPUは、プロファイルに記録された、それに応じた好適なGPU子スレッド数に基づいて指定タスクを実行することができる。
【0074】
実際の応用では、上記ステップS304とステップS306のいずれか1つを選択して実行してもよいし、両方を実行してもよく、且つ、異なる種別に対して2つのプロファイルを生成し、1つはメーカーに従って区分された粗粒度プロファイルであり、もう1つはGPU型番に従って区分された細粒度プロファイルである。そして、設備は、タスクを実行するために要する時間ニーズに基づいて、どのプロファイルにおける好適なGPU子スレッド数を採用するかを判断してもよい。例えば、時間に対する要求が高くない場合、粗粒度プロファイルにおける好適なGPU子スレッド数を採用してもよく、時間に対する要求が高い場合、細粒度プロファイルにおける好適なGPU子スレッド数を採用してもよい。
【0075】
本開示の実施例により提案される図3における上記ステップ及び有する有益な効果は、前述した関連内容を参照して実現されてもよいため、ここではこれ以上説明しない。
【0076】
また、実際の応用では、GPUは、グラフィックカードにおける1枚のチップであり、いくつかの実施形態では、GPU型番とグラフィックカード型番とを直接的に同等にしてもよい。従って、本開示の実施例による上記方式では、係るGPU型番は、グラフィックカード型番であってもよく、例えば、Adrenoグラフィックカード、Maliグラフィックカード、powerVRグラフィックカード、AMDグラフィックカード、intelグラフィックカードとAMDグラフィックカード、Nvidiaグラフィックカードなどであってもよい。OpenCLは、異なるタイプのGPUを広くサポートすることができ、OpenCLは、異なるタイプのグラフィックカードを広くサポートするともいえる。
【0077】
以上の通り、本開示の実施例による上記タスク実行方法では、GPUが配置されたターゲット設備は、指定タスクを実行する際に、設備種別と好適なGPU子スレッド数とのマッピング関係が記録されたプロファイルを取得し、ターゲット設備が属するターゲット設備種別に対応する好適なGPU子スレッド数を採用して指定タスクを実行することができる。ターゲット設備種別に対応する好適なGPU子スレッド数は、該設備種別における代表設備が指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数である。同じ設備種別における設備は、通常、一定の共通性を有するため、ターゲット設備が、該設備種別における代表設備に対応する好適なGPU子スレッド数を採用してタスクを実行する場合に要する時間も通常短い。従って、デフォルトのGPU子スレッド数を採用する場合に比べて、上記方式は、容易に実現され、しかもタスク実行効果を有効に向上させることができる。
【0078】
上記方法は、OpenCLに係るシナリオ(GPU子スレッド数を用いる必要がある)に良く適用され、OpenCLに基づいてタスクを実行する性能を有効に向上させることができ、検討によれば、10%~70%の性能収益を達成することができる。
【0079】
本開示の実施例による前記タスク実行方法に対応して、本開示の実施例は、タスク実行装置を提供する。該装置は、GPUが配置されたターゲット設備に応用される。図4に示すタスク実行装置の構成概略図を参照すると、タスク実行装置は、ファイル取得モジュール402と、種別決定モジュール404と、タスク実行モジュール406とを含む。
【0080】
ファイル取得モジュール402は、指定タスクの実行指令を受信したことに応答して、プロファイルを取得するためのものであり、前記指定タスクは、GPUに基づいて実行されるタスクであり、前記プロファイルは、設備種別と好適なGPU子スレッド数とのマッピング関係を含み、前記好適なGPU子スレッド数は、前記設備種別における1種類の代表設備がそのGPUに基づいて前記指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数である。
【0081】
種別決定モジュール404は、前記プロファイルに基づいて前記ターゲット設備が属するターゲット設備種別を決定するためのものである。
【0082】
タスク実行モジュール406は、前記ターゲット設備種別に対応する好適なGPU子スレッド数を採用して、前記指定タスクを実行するためのものである。
【0083】
本開示の実施例による上記装置は、指定タスクを実行する際に、設備種別と好適なGPU子スレッド数とのマッピング関係が記録されたプロファイルを取得し、ターゲット設備が属するターゲット設備種別に対応する好適なGPU子スレッド数を採用して指定タスクを実行することができる。ターゲット設備種別に対応する好適なGPU子スレッド数は、該設備種別における代表設備が指定タスクを実行するために要する時間が最も短い場合に採用されるGPU子スレッド数である。同じ設備種別における設備は、通常、一定の共通性を有するため、ターゲット設備が該設備種別における代表設備に対応する好適なGPU子スレッド数を採用してタスクを実行する場合に要する時間も通常短い。デフォルトのGPU子スレッド数を採用する場合に比べて、上記方式は、容易に実現され、しかもタスク実行効果を有効に向上させることができる。
【0084】
いくつかの実施形態では、前記プロファイルには、各前記設備種別に対応する複数種類の設備の設備識別子が記録され、種別決定モジュールは、具体的には、前記プロファイルにおいて前記ターゲット設備の設備識別子に対応する設備種別を検索し、検索された前記設備種別を前記ターゲット設備が属するターゲット設備種別とするためのものである。
【0085】
いくつかの実施形態では、前記プロファイルには、前記設備種別の区分方式が記録され、前記区分方式は、GPUメーカー名に従う区分又はGPU型番に従う区分を含み、種別決定モジュールは、具体的には、前記プロファイルに記録された前記設備種別の区分方式及び前記ターゲット設備のGPU情報に基づいて、前記ターゲット設備が属するターゲット設備種別を決定するためのものである。
【0086】
いくつかの実施形態では、前記GPU情報は、GPUメーカー名又はGPU型番を含む。
【0087】
いくつかの実施形態では、各設備種別に対応する全ての設備は、特定のGPU共通性を有し、異なる設備種別に対応するGPU共通性は異なる。
【0088】
いくつかの実施形態では、前記装置は、いずれもGPUが配置された複数種類の設備のGPU情報を取得することと、前記GPU情報に基づいて前記複数種類の設備を区分して複数の設備種別とし、設備種別毎に、いずれも複数種類の設備が対応していることと、設備種別毎に、該設備種別に対応する全ての設備から1種類の代表設備を選出し、該設備種別の代表設備に対応する好適なGPU子スレッド数を取得し、前記好適なGPU子スレッド数を該設備種別に対応する好適なGPU子スレッド数とすることと、各種類の設備種別と好適なGPU子スレッド数とのマッピング関係に基づいてプロファイルを生成することと、に用いられるファイル生成モジュールをさらに含む。
【0089】
いくつかの実施形態では、ファイル生成モジュールは、具体的には、複数の候補GPU子スレッド数を取得することと、前記候補GPU子スレッド数毎に、該候補GPU子スレッド数を所定のOpenCLプログラムのパラメータとし、該設備種別の代表設備が前記所定のOpenCLプログラムを採用して前記指定タスクを実行するために要する時間を取得することと、所要時間が最も短い対応する候補GPU子スレッド数を該設備種別の代表設備に対応する好適なGPU子スレッド数とすることと、に用いられる。いくつかの実施形態では、前記GPU情報は、GPUメーカー名を含む。ファイル生成モジュールは、各種類の設備のGPUメーカー名に基づいて前記複数種類の設備を区分して複数のメーカー種別とするためのものであり、メーカー種別毎に対応する全ての設備は、同じメーカー名を有する。
【0090】
いくつかの実施形態では、前記GPU情報は、GPU型番を含む。ファイル生成モジュールは、各種類の設備のGPU型番に基づいて前記複数種類の設備を区分して複数のGPU型番種別とするためのものであり、GPU型番種別毎に対応する全ての設備は、同じGPU型番を有する。
【0091】
いくつかの実施形態では、前記GPU情報は、GPUメーカー名又はGPU型番を含み、ファイル生成モジュールは、具体的には、前記GPU情報がGPUメーカー名である場合、各種類の設備のGPUメーカー名に基づいて前記複数種類の設備を区分して複数のメーカー種別とすることであって、メーカー種別毎に対応する全ての設備は、同じメーカー名を有することと、前記GPU情報がGPU型番である場合、各種類の設備のGPU型番に基づいて前記複数種類の設備を区分して複数のGPU型番種別とすることであって、GPU型番種別毎に対応する全ての設備は、同じGPU型番を有することと、に用いられる。
【0092】
いくつかの実施形態では、ファイル生成モジュールは、具体的には、所定の計量指標に基づいて、該設備種別に対応する各設備の指標データを取得することであって、前記計量指標は、市場カバレッジ及び/又は設備性能を含むことと、前記各設備の指標データに基づいて、該設備種別に対応する全ての設備から1種類の代表設備を選出することと、に用いられる。
【0093】
いくつかの実施形態では、ファイル生成モジュールは、各設備の指標データを照合することにより、該設備種別における全ての設備のうち最も典型的な設備を代表設備とするためのものである。
【0094】
いくつかの実施形態では、ファイル生成モジュールは、具体的には、前記各設備の指標データに基づいて、該設備種別に対応する全ての設備の指標データの中間値を決定することと、該設備種別に対応する全ての設備から、指標データが前記中間値に最も近い設備を選出し、選出された設備を該設備種別の代表設備とすることと、に用いられる。
【0095】
本開示の実施例によるタスク実行装置は、本開示の任意の実施例によるタスク実行方法を実行することができ、方法の実行に対応する機能モジュールと有益な効果を有する。
【0096】
当業者が明確に理解できるように、説明の利便性及び簡潔性のために、以上に説明された装置実施例の具体的な作動プロセスは、相応な方法の実施例における対応するプロセスを参照すればよいため、ここではこれ以上説明しない。
【0097】
本開示の実施例は、プロセッサが実行可能な命令を記憶するためのメモリと、メモリから実行可能な命令を読み出し、命令を実行して上記タスク実行方法を実現させるためのプロセッサと、を含む電子設備をさらに提供する。
【0098】
図5は、本開示の実施例による電子設備の構成概略図である。図5に示すように、電子設備500は、1つ又は複数のプロセッサ501とメモリ502とを含む。
【0099】
プロセッサ501は、中央処理ユニット(CPU)、又はデータ処理能力及び/又は命令実行能力を有する他の形態の処理ユニットであってもよく、電子設備500における他の構成要素を制御して所望の機能を実行することができる。
【0100】
メモリ502は、例えば揮発性メモリ及び/又は不揮発性メモリのような様々な形態のコンピュータ可読記憶媒体を含み得る1つ又は複数のコンピュータプログラム製品を含んでもよい。前記揮発性メモリは、例えば、ランダムアクセスメモリ(RAM)及び/又はキャッシュメモリ(cache)などを含んでもよい。前記不揮発性メモリは、例えば、リードオンリーメモリ(ROM)、ハードディスク、フラッシュメモリなどを含んでもよい。前記コンピュータ可読記憶媒体には、1つ又は複数のコンピュータプログラム命令が記憶されてもよく、プロセッサ501は、前記プログラム命令を運行して上記で説明された本開示の実施例のタスク実行方法及び/又は他の所望の機能を実現させることができる。前記コンピュータ可読記憶媒体には、例えば、入力信号、信号成分、ノイズ成分など様々な内容がさらに記憶されてもよい。
【0101】
一例では、電子設備500は、入力装置503と出力装置504をさらに含んでもよく、これらの構成要素は、バスシステム及び/又は他の形態の接続機構(図示せず)によって相互に接続される。
【0102】
また、該入力装置503は、例えば、キーボード、マウスなどをさらに含んでもよい。
【0103】
該出力装置504は、決定された距離情報、方向情報などを含む様々な情報を外部に出力することができる。該出力装置504は、例えば、ディスプレイ、スピーカ、プリンタ、通信ネットワーク及びそれに接続された遠隔出力設備などを含んでもよい。
【0104】
もちろん、簡略化のため、図5では、該電子設備500における、本開示に関係する構成要素のうちの一部のみを示しており、バス、入出力インタフェースなどの構成要素を省略している。なお、具体的な応用状況に応じて、電子設備500は、他の任意の適切な構成要素をさらに含んでもよい。
【0105】
上記方法と設備に加えて、本開示の実施例は、プロセッサによって運行されると、前記プロセッサに本開示の実施例によるタスク実行方法を実行させるコンピュータプログラム命令を含むコンピュータプログラム製品であってもよい。
【0106】
前記コンピュータプログラム製品は、本開示の実施例の操作を実行するためのプログラムコードを1種類又は複数種類のプログラミング言語の任意の組み合わせを用いて書くことが可能であり、前記プログラミング言語は、例えばJava、C++などのようなオブジェクト指向のプログラミング言語を含み、さらに、例えば「C」言語又は類似的なプログラミング言語のような一般の手続き型プログラミング言語を含む。プログラムコードは、完全にユーザコンピューティングデバイスで実行したり、部分的にユーザデバイスで実行したり、独立したソフトウェアパッケージとして実行したり、一部をユーザコンピューティングデバイスで一部をリモートコンピューティングデバイスで実行したり、完全にリモートコンピューティングデバイス又はサーバで実行したりすることができる。
【0107】
また、本開示の実施例は、プロセッサによって運行されると、前記プロセッサに本開示の実施例によるタスク実行方法を実行させるコンピュータプログラム命令が記憶されたコンピュータ可読記憶媒体(例えば、非一時的コンピュータ可読記憶媒体)であってもよい。
【0108】
前記コンピュータ可読記憶媒体は、1つ又は複数の可読媒体の任意の組み合わせを採用してもよい。可読媒体は、可読信号媒体又は可読記憶媒体であり得る。可読記憶媒体は、例えば、電気、磁気、光、電磁、赤外線、又は半導体のシステム、装置或いはデバイス、又はそれらの任意の組み合わせを含んでもよいが、これらに限らない。可読記憶媒体は、より具体的な例(非網羅的リスト)として、1つ又は複数の導線を有する電気接続、携帯型ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバー、携帯型コンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又はそれらの任意の適切な組み合わせを含む。
【0109】
本開示の実施例は、プロセッサによって実行されると、本開示の実施例におけるタスク実行方法を実現させるコンピュータプログラム又は命令を含むコンピュータプログラム製品をさらに提供する。
【0110】
本開示の実施例は、プロセッサによって実行されると、前記プロセッサに本開示の実施例におけるタスク実行方法を実行させる命令を含むコンピュータプログラムをさらに提供する。
【0111】
なお、本明細書において、「第1」及び「第2」などのような関係用語は、単に一のエンティティ又は動作を他のエンティティ又は動作と区別する目的だけに用いられ、これらエンティティ又は動作間にこのような実際の関係又は順序が存在することを要求又は暗示するものではない。さらに、用語「含む」、「包含する」又はその任意の他の変体は、非排他的な含有を示すことで、一系列の要素を含む過程、方法、物品又は設備は、それらの要素だけでなく、明示されていない他の要素も含み、又はこのような過程、方法、物品又は設備に固有の要素も含む。さらに多い制限がない場合に、「1つの・・・を含む」によって限定される要素は、前記要素を含む過程、方法、物品又は設備に他の同じ要素も含むことを除外しない。
【0112】
以上は本開示の具体的な実施形態にすぎず、当業者が本開示を理解又は実現することを可能にするために用いられる。これらの実施例に対する様々な修正は、当業者にとって自明となり、本明細書で定義される一般原理は、本開示の趣旨又は範囲から逸脱することなく他の実施例において実現され得る。従って、本開示は、本明細書のこれら実施例に限定されるものではなく、本明細書で開示される原理及び新規の特徴に適合する最も広い範囲を有する。
図1
図2
図3
図4
図5
【国際調査報告】