JP5985766B2 - 過度のコンパイル時間の低減 - Google Patents
過度のコンパイル時間の低減 Download PDFInfo
- Publication number
- JP5985766B2 JP5985766B2 JP2015561348A JP2015561348A JP5985766B2 JP 5985766 B2 JP5985766 B2 JP 5985766B2 JP 2015561348 A JP2015561348 A JP 2015561348A JP 2015561348 A JP2015561348 A JP 2015561348A JP 5985766 B2 JP5985766 B2 JP 5985766B2
- Authority
- JP
- Japan
- Prior art keywords
- optimization
- execution
- time
- path
- pass
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ソフトウェアプログラムのコードを最適化するための最適化パスの実行のための割り当て時間を決定することと、
前記コードで前記最適化パスの少なくともいくつかの命令を実行することと、
前記最適化パスの実行のための実時間が実行のための前記割り当て時間を超えたという決定に応答して、前記最適化パスのその後の命令の実行を防ぐことと
を備える、方法。
[C2]
前記最適化パスが、複数の最適化パスのうちの第2の最適化パスを備え、そして、前記第2の最適化パスの実行のための実時間が、実行のための第2の実時間を備え、前記方法がさらに、
前記最適化パスの第1の最適化パスの実行のための第1の実時間を決定すること
を備え、ここにおいて、前記実行のための割り当て時間を決定することが、前記第1の最適化パスの実行のための前記第1の実時間に少なくとも部分的に基づいて前記第2の最適化パスの前記実行のための割り当て時間を決定することを備える、C1に記載の方法。
[C3]
前記実行のための割り当て時間を決定することがさらに、実行のための前記第1の実時間が前記第1の最適化パスの実行のための予算の時間を超えたかどうかを決定することを備える、C2に記載の方法。
[C4]
前記割り当て時間を決定することが、前記最適化パスの優先度、全体の最適化時間予算内の残りの時間の量、前記最適化パスを実行するデバイスの電力状態、前記プログラムの最適化に割り当てられる重要性値、およびユーザ選択のうちの少なくとも1つに基づいて前記割り当て時間を決定することを備える、C1に記載の方法。
[C5]
実行のための前記実時間に基づいて1つまたは複数のその後の最適化パスのための割り当て時間を調整することをさらに備える、C1に記載の方法。
[C6]
前記最適化パスが、現在の最適化パスを備え、
前記現在の最適化パスを含む複数の最適化パスを実行するための時間予算を決定することと、
前記複数の最適化パスに前記時間予算の部分を割り当てることと
をさらに備える、C1に記載の方法。
[C7]
前記最適化パスが、現在の最適化パスを備え、
前記現在の最適化パスの実行に先立って、
前記ソフトウェアプログラムの前記コードのための最適化パス構成データのセットを決定することと、ここにおいて、前記最適化パス構成データは、コンパイル中に前記プログラムの最適化パスのシーケンスを定義し、ここにおいて、最適化パスの前記シーケンスは前記現在の最適化パスを含む、
最適化パスの前記シーケンスを実行するための時間予算を決定することと、
前記現在の最適化パスが前記シーケンス内の最後の最適化パスではないときに、および前記現在の最適化パスの実行を終了した後に、前記最適化パス構成データのセットに基づいて最適化パスの前記シーケンス内の次の最適化パスを実行することと
をさらに備える、C1に記載の方法。
[C8]
前記コードで前記最適化パスの少なくともいくつかの命令を実行することが、最適化されたコードを作り出し、前記方法がさらに、前記最適化されたコードから前記ソフトウェアプログラムのオブジェクトコードを生成することを備える、C1に記載の方法。
[C9]
ソフトウェアプログラムのコードを最適化するための最適化パスの実行のための割り当て時間を決定することと、前記コードで前記最適化パスの少なくともいくつかの命令を実行することと、前記最適化パスの実行のための実時間が実行のための前記割り当て時間を超えたという決定に応答して、前記最適化パスのその後の命令の実行をプリベンティングすることとを行うように構成された1つまたは複数のプロセッサを備える、デバイス。
[C10]
前記最適化パスが、複数の最適化パスのうちの第2の最適化パスを備え、そして、前記第2の最適化パスの実行のための実時間が、実行のための第2の実時間を備え、そして、前記1つまたは複数のプロセッサがさらに、前記最適化パスの第1の最適化パスの実行のための第1の実時間を決定することと、前記第1の最適化パスの実行のための前記第1の実時間に少なくとも部分的に基づいて前記第2の最適化パスの実行のための割り当て時間を決定することとを行うように構成された、C9に記載のデバイス。
[C11]
実行のための前記割り当て時間を決定するために、前記1つまたは複数のプロセッサがさらに、実行のための前記第1の実時間が前記第1の最適化パスの実行のための予算時間を超えたかどうかを決定するように構成された、C10に記載のデバイス。
[C12]
前記1つまたは複数のプロセッサが、前記最適化パスの優先度、全体の最適化時間予算内の残りの時間の量、前記デバイスの電力状態、前記プログラムの最適化に割り当てられる重要性値、およびユーザ選択のうちの少なくとも1つに基づいて前記割り当て時間を決定するように構成された、C9に記載のデバイス。
[C13]
前記1つまたは複数のプロセッサがさらに、実行のための前記実時間に基づいて1つまたは複数のその後の最適化パスのための割り当て時間を調整するように構成された、C9に記載のデバイス。
[C14]
前記最適化パスが、現在の最適化パスを備え、そして、前記1つまたは複数のプロセッサがさらに、前記現在の最適化パスを含む複数の最適化パスを実行するための時間予算を決定することと、前記複数の最適化パスに前記時間予算の部分を割り当てることとを行うように構成された、C9に記載のデバイス。
[C15]
前記最適化パスが、現在の最適化パスを備え、そして、前記1つまたは複数のプロセッサがさらに、前記現在の最適化パスの実行に先立って、前記ソフトウェアプログラムの前記コードのための最適化パス構成データのセットを決定することと、ここにおいて、前記最適化パス構成データは、コンパイル中に前記プログラムの最適化パスのシーケンスを定義し、ここにおいて、最適化パスの前記シーケンスは前記現在の最適化パスを含む、最適化パスの前記シーケンスを実行するための時間予算を決定することとを行うように構成され、ここにおいて、前記現在の最適化パスが前記シーケンス内の最後の最適化パスではないときおよび前記現在の最適化パスの実行を終了した後に、前記1つまたは複数のプロセッサが、前記最適化パス構成データの前記セットに基づいて最適化パスの前記シーケンス内の次の最適化パスを実行するように構成された、C9に記載のデバイス。
[C16]
グラフィックス処理ユニット(GPU)をさらに備え、ここにおいて、前記ソフトウェアプログラムが前記GPUのためのシェーダプログラムを備え、そして、前記1つまたは複数のプロセッサが、前記GPUに前記シェーダプログラムのためのコンパイルされたコードを提供するように構成された、C9に記載のデバイス。
[C17]
ソフトウェアプログラムのコードを最適化するための最適化パスの実行のための割り当て時間を決定するための手段と、
前記コードで前記最適化パスの少なくともいくつかの命令を実行するための手段と、
前記最適化パスの実行のための実時間が実行のための割り当て時間を超えたという決定に応答して、前記最適化パスのその後の命令の実行を防ぐための手段と
を備える、デバイス。
[C18]
前記最適化パスが、複数の最適化パスのうちの第2の最適化パスを備え、そして、前記第2の最適化パスの実行のための実時間が、実行のための第2の実時間を備え、
前記最適化パスのうちの第1の最適化パスの実行のための第1の実時間を決定するための手段
をさらに備え、ここにおいて、実行のための前記割り当て時間を決定するための前記手段が、前記第1の最適化パスの実行のための前記第1の実時間に少なくとも部分的に基づいて前記第2の最適化パスの実行のための割り当て時間を決定するための手段を備える、C17に記載のデバイス。
[C19]
前記実行のための割り当て時間を決定するための前記手段が、実行のための前記第1の実時間が前記第1の最適化パスの実行のための予算時間を超えたかどうかを決定するための手段をさらに備える、C18に記載のデバイス。
[C20]
前記割り当て時間を決定するための前記手段が、前記最適化パスの優先度、全体の最適化時間予算内の残りの時間の量、前記最適化パスを実行するデバイスの電力状態、前記プログラムの最適化に割り当てられる重要性値、およびユーザ選択のうちの少なくとも1つに基づいて前記割り当て時間を決定するための手段を備える、C17に記載のデバイス。
[C21]
実行のための前記実時間に基づいて1つまたは複数のその後の最適化パスのための割り当て時間を調整するための手段をさらに備える、C17に記載のデバイス。
[C22]
前記最適化パスが、現在の最適化パスを備え、
前記現在の最適化パスを含む複数の最適化パスを実行するための時間予算を決定するための手段と、
前記複数の最適化パスに前記時間予算の部分を割り当てるための手段と
さらに備える、C17に記載のデバイス。
[C23]
前記最適化パスが、現在の最適化パスを備え、
前記現在の最適化パスの実行に先立って、前記ソフトウェアプログラムの前記コードのための最適化パス構成データのセットを決定するための手段と、ここにおいて、前記最適化パス構成データは、コンパイル中に前記プログラムの最適化パスのシーケンスを定義し、ここにおいて、最適化パスの前記シーケンスは前記現在の最適化パスを含む、
最適化パスの前記シーケンスを実行するための時間予算を決定するための手段と、
前記現在の最適化パスが前記シーケンス内の最後の最適化パスではないときにおよび前記現在の最適化パスの実行を終了した後に、最適化パス構成データの前記セットに基づいて最適化パスの前記シーケンス内の次の最適化パスを実行するための手段と
をさらに備える、C17に記載のデバイス。
[C24]
実行されるときに、プロセッサに
ソフトウェアプログラムのコードを最適化するための最適化パスの実行のための割り当て時間を決定することと、
前記コードで前記最適化パスの少なくともいくつかの命令を実行することと、
前記最適化パスの実行のための実時間が実行のための割り当て時間を超えたという決定に応答して、前記最適化パスのその後の命令の実行を防ぐことと
を行わせる命令がそこに記憶された、コンピュータ可読記憶媒体。
[C25]
前記最適化パスが、複数の最適化パスのうちの第2の最適化パスを備え、そして、前記第2の最適化パスの実行のための実時間が実行のための第2の実時間を備え、前記プロセッサに
前記最適化パスの第1の最適化パスの実行のための第1の実時間を決定させる
命令をさらに備え、
ここにおいて、前記プロセッサに実行のための前記割り当て時間を決定させる前記命令が、前記プロセッサに前記第1の最適化パスの実行のための前記第1の実時間に少なくとも部分的に基づいて前記第2の最適化パスの実行のための前記割り当て時間を決定させる命令を備える
C24に記載のコンピュータ可読記憶媒体。
[C26]
前記プロセッサに実行のための前記割り当て時間を決定させる前記命令がさらに、実行のための前記第1の実時間が前記第1の最適化パスの実行のための期待された時間を超えたかどうかを前記プロセッサに決定させる命令を備える、C25に記載のコンピュータ可読記憶媒体。
[C27]
前記割り当て時間を前記プロセッサに決定させる前記命令が、前記最適化パスの優先度、全体の最適化時間予算内の残りの時間の量、前記最適化パスを実行するデバイスの電力状態、前記プログラムの最適化に割り当てられる重要性値、およびユーザ選択のうちの少なくとも1つに基づいて前記割り当て時間を前記プロセッサに決定させる命令を備える、C24に記載のコンピュータ可読記憶媒体。
[C28]
実行のための前記実時間に基づいて1つまたは複数のその後の最適化パスのための割り当て時間を前記プロセッサに調整させる命令をさらに備える、C24に記載のコンピュータ可読記憶媒体。
[C29]
前記最適化パスが、現在の最適化パスを備え、
前記現在の最適化パスを含む複数の最適化パスを実行するための時間予算を決定することと、
前記時間予算の部分を前記複数の最適化パスに割り当てることと
を前記プロセッサに行わせる命令をさらに備える、C24に記載のコンピュータ可読記憶媒体。
[C30]
前記最適化パスが、現在の最適化パスを備え、
前記現在の最適化パスの実行に先立って、
前記ソフトウェアプログラムの前記コードのための最適化パス構成データのセットを決定することと、ここにおいて、前記最適化パス構成データはコンパイル中に前記プログラムの最適化パスのシーケンスを定義し、ここにおいて、最適化パスの前記シーケンスは前記現在の最適化パスを含む、
最適化パスの前記シーケンスを実行するための時間予算を決定することと、
前記現在の最適化パスが前記シーケンス内の最後の最適化パスではないときにおよび前記現在の最適化パスの実行を終了した後に、最適化パス構成データの前記セットに基づいて最適化パスの前記シーケンス内の次の最適化パスを実行することと
を前記プロセッサに行わせる命令をさらに備える、C24に記載のコンピュータ可読記憶媒体。
Claims (21)
- プロセッサが、ソフトウェアプログラムのコードのコンパイルの最適化フェーズ中に前記コードを最適化するための複数の最適化パスのうちの第1の最適化パスの実行のための予算時間を決定することと、
前記プロセッサが、前記第1の最適化パスの実行のための第1の実時間を決定することと、
前記プロセッサが、実行のための前記第1の実時間が前記第1の最適化パスの実行のための前記予算時間を超えたかどうかに少なくとも部分的に基づいて、前記複数の最適化パスのうちの第2の最適化パスの実行のための割り当て時間を決定することと、ここにおいて、前記第2の最適化パスは、第1の数の命令を定義する、と、
前記プロセッサが、前記ソフトウェアプログラムの前記コードから最適化されたコードを作り出すために前記コードで前記第2の最適化パスの第2の数の前記命令を実行することと、ここにおいて、前記第2の数は前記第1の数よりも少ない、と、
前記第2の最適化パスの実行のための実時間が実行のための前記割り当て時間を超えたという決定に応答して、前記プロセッサが、前記第2の最適化パスのその後の命令の実行を防ぐことと、
前記その後の命令の実行を防いだ後に、前記最適化されたコードから前記ソフトウェアプログラムのオブジェクトコードを生成することと
を備える、方法。 - 前記割り当て時間を決定することが、前記第2の最適化パスの優先度、全体の最適化時間予算内の残りの時間の量、前記第2の最適化パスを実行するデバイスの電力状態、前記ソフトウェアプログラムの最適化に割り当てられる重要性値、およびユーザ選択のうちの少なくとも1つに基づいて前記割り当て時間を決定することを備える、請求項1に記載の方法。
- 前記第1の最適化パスの実行のための前記第1の実時間に基づいて前記最適化フェーズの1つまたは複数のその後の最適化パスのための割り当て時間を調整することをさらに備える、請求項1に記載の方法。
- 前記最適化フェーズの前記複数の最適化パスを実行するための時間予算を決定することと、
前記複数の最適化パスに前記時間予算の部分を割り当てることと
をさらに備える、請求項1に記載の方法。 - 前記第2の最適化パスが、現在の最適化パスであり、
前記現在の最適化パスの実行に先立って、
前記ソフトウェアプログラムの前記コードのための最適化パス構成データのセットを決定することと、ここにおいて、前記最適化パス構成データは、コンパイルの前記最適化フェーズ中に前記ソフトウェアプログラムの前記複数の最適化パスのうちの最適化パスのシーケンスを定義し、ここにおいて、最適化パスの前記シーケンスは前記現在の最適化パスを含む、と、
最適化パスの前記シーケンスを実行するための時間予算を決定することと、
前記現在の最適化パスが前記シーケンス内の最後の最適化パスではないときに、および前記現在の最適化パスの実行を終了した後に、前記最適化パス構成データのセットに基づいて最適化パスの前記シーケンス内の次の最適化パスを実行することと
をさらに備える、請求項1に記載の方法。 - ソフトウェアプログラムのコードのコンパイルの最適化フェーズ中に前記コードを最適化するための複数の最適化パスのうちの第1の最適化パスの実行のための予算の時間を決定することと、
前記最適化パスのうちの第1の最適化パスの実行のための第1の実時間を決定することと、
実行のための前記第1の実時間が前記第1の最適化パスの実行のための前記予算の時間を超えたかどうかに少なくとも部分的に基づいて、前記複数の最適化パスのうちの第2の最適化パスの実行のための割り当て時間を決定することと、ここにおいて、前記第2の最適化パスは、第1の数の命令を定義する、と、
前記ソフトウェアプログラムの前記コードから最適化されたコードを作り出すために前記コードで前記第2の最適化パスの第2の数の前記命令を実行することと、ここにおいて、前記第2の数は前記第1の数よりも少ない、と、
前記第2の最適化パスの実行のための実時間が実行のための前記割り当て時間を超えたという決定に応答して、前記第2の最適化パスのその後の命令の実行を防ぐことと、
前記その後の命令の実行を防いだ後に、前記最適化されたコードから前記ソフトウェアプログラムのオブジェクトコードを生成することと
を行うように構成された1つまたは複数のプロセッサを備える、デバイス。 - 前記1つまたは複数のプロセッサが、前記第2の最適化パスの優先度、全体の最適化時間予算内の残りの時間の量、前記デバイスの電力状態、前記ソフトウェアプログラムの最適化に割り当てられる重要性値、およびユーザ選択のうちの少なくとも1つに基づいて前記割り当て時間を決定するように構成された、請求項6に記載のデバイス。
- 前記1つまたは複数のプロセッサがさらに、前記第1の最適化パスの実行のための前記第1の実時間に基づいて前記最適化フェーズの1つまたは複数のその後の最適化パスのための割り当て時間を調整するように構成された、請求項6に記載のデバイス。
- 前記1つまたは複数のプロセッサがさらに、前記最適化フェーズの前記複数の最適化パスを実行するための時間予算を決定することと、前記複数の最適化パスに前記時間予算の部分を割り当てることとを行うように構成された、請求項6に記載のデバイス。
- 前記第2の最適化パスが、現在の最適化パスであり、そして、前記1つまたは複数のプロセッサがさらに、前記現在の最適化パスの実行に先立って、前記ソフトウェアプログラムの前記コードのための最適化パス構成データのセットを決定することと、ここにおいて、前記最適化パス構成データは、コンパイルの前記最適化フェーズ中に前記ソフトウェアプログラムの前記複数の最適化パスのうちの最適化パスのシーケンスを定義し、最適化パスの前記シーケンスは前記現在の最適化パスを含み、最適化パスの前記シーケンスを実行するための時間予算を決定することとを行うように構成され、前記現在の最適化パスが前記シーケンス内の最後の最適化パスではないときおよび前記現在の最適化パスの実行を終了した後に、前記1つまたは複数のプロセッサが、前記最適化パス構成データの前記セットに基づいて最適化パスの前記シーケンス内の次の最適化パスを実行するように構成された、請求項6に記載のデバイス。
- グラフィックス処理ユニット(GPU)をさらに備え、ここにおいて、前記ソフトウェアプログラムが前記GPUのためのシェーダプログラムを備え、そして、前記1つまたは複数のプロセッサが、前記GPUに前記シェーダプログラムのためのコンパイルされたコードを提供するように構成された、請求項6に記載のデバイス。
- ソフトウェアプログラムのコードのコンパイルの最適化フェーズ中に前記コードを最適化するための複数の最適化パスのうちの第1の最適化パスの実行のための予算の時間を決定するための手段と、
前記第1の最適化パスの実行のための第1の実時間を決定するための手段と、
実行のための前記第1の実時間が前記第1の最適化パスの実行のための前記予算の時間を超えたかどうかに少なくとも部分的に基づいて、前記複数の最適化パスのうちの第2の最適化パスの実行のための割り当て時間を決定するための手段と、ここにおいて、前記第2の最適化パスは、第1の数の命令を定義する、と、
前記ソフトウェアプログラムの前記コードから最適化されたコードを作り出すために前記コードで前記第2の最適化パスの第2の数の前記命令を実行するための手段と、ここにおいて、前記第2の数は前記第1の数よりも少ない、と、
前記第2の最適化パスの実行のための実時間が実行のための前記割り当て時間を超えたという決定に応答して、前記第2の最適化パスのその後の命令の実行を防ぐための手段と、
前記その後の命令の実行を防いだ後に、前記最適化されたコードから前記ソフトウェアプログラムのオブジェクトコードを生成するための手段と
を備える、デバイス。 - 前記割り当て時間を決定するための前記手段が、前記第2の最適化パスの優先度、全体の最適化時間予算内の残りの時間の量、前記第2の最適化パスを実行するデバイスの電力状態、前記ソフトウェアプログラムの最適化に割り当てられる重要性値、およびユーザ選択のうちの少なくとも1つに基づいて前記割り当て時間を決定するための手段を備える、請求項12に記載のデバイス。
- 前記第1の最適化パスの実行のための前記第1の実時間に基づいて前記最適化フェーズの1つまたは複数のその後の最適化パスのための割り当て時間を調整するための手段をさらに備える、請求項12に記載のデバイス。
- 前記最適化フェーズの前記複数の最適化パスを実行するための時間予算を決定するための手段と、
前記複数の最適化パスに前記時間予算の部分を割り当てるための手段と
をさらに備える、請求項12に記載のデバイス。 - 前記第2の最適化パスが、現在の最適化パスであり、
前記現在の最適化パスの実行に先立って、前記ソフトウェアプログラムの前記コードのための最適化パス構成データのセットを決定するための手段と、ここにおいて、前記最適化パス構成データは、コンパイルの前記最適化フェーズ中に前記ソフトウェアプログラムの前記複数の最適化パスのうちの最適化パスのシーケンスを定義し、最適化パスの前記シーケンスは前記現在の最適化パスを含む、と、
最適化パスの前記シーケンスを実行するための時間予算を決定するための手段と、
前記現在の最適化パスが前記シーケンス内の最後の最適化パスではないときにおよび前記現在の最適化パスの実行を終了した後に、最適化パス構成データの前記セットに基づいて最適化パスの前記シーケンス内の次の最適化パスを実行するための手段と
をさらに備える、請求項12に記載のデバイス。 - 実行されるときに、プロセッサに
ソフトウェアプログラムのコードのコンパイルの最適化フェーズ中に前記コードを最適化するための複数の最適化パスのうちの第1の最適化パスの実行のための予算の時間を決定することと、
前記第1の最適化パスの実行のための第1の実時間を決定することと、
実行のための前記第1の実時間が前記第1の最適化パスの実行のための前記予算の時間を超えたかどうかに少なくとも部分的に基づいて、前記複数の最適化パスのうちの第2の最適化パスの実行のための割り当て時間を決定することと、ここにおいて、前記第2の最適化パスは、第1の数の命令を定義する、と、
前記ソフトウェアプログラムの前記コードから最適化されたコードを作り出すために前記コードで前記第2の最適化パスの第2の数の前記命令を実行することと、ここにおいて、前記第2の数は前記第1の数よりも少ない、と、
前記第2の最適化パスの実行のための実時間が実行のための前記割り当て時間を超えたという決定に応答して、前記第2の最適化パスのその後の命令の実行を防ぐことと、
前記その後の命令の実行を防いだ後に、前記最適化されたコードから前記ソフトウェアプログラムのオブジェクトコードを生成することと
を行わせる命令が記憶された、コンピュータ可読記憶媒体。 - 前記割り当て時間を前記プロセッサに決定させる前記命令が、前記第2の最適化パスの優先度、全体の最適化時間予算内の残りの時間の量、前記第2の最適化パスを実行するデバイスの電力状態、前記ソフトウェアプログラムの最適化に割り当てられる重要性値、およびユーザ選択のうちの少なくとも1つに基づいて前記割り当て時間を前記プロセッサに決定させる命令を備える、請求項17に記載のコンピュータ可読記憶媒体。
- 前記第1の最適化パスの実行のための前記第1の実時間に基づいて前記最適化フェーズの1つまたは複数のその後の最適化パスのための割り当て時間を前記プロセッサに調整させる命令をさらに備える、請求項17に記載のコンピュータ可読記憶媒体。
- 前記最適化フェーズの前記複数の最適化パスを実行するための時間予算を決定することと、
前記複数の最適化パスに前記時間予算の部分を割り当てることと
を前記プロセッサに行わせる命令をさらに備える、請求項17に記載のコンピュータ可読記憶媒体。 - 前記第2の最適化パスが、現在の最適化パスであり、
前記現在の最適化パスの実行に先立って、
前記ソフトウェアプログラムの前記コードのための最適化パス構成データのセットを決定することと、ここにおいて、前記最適化パス構成データは前記コンパイルの前記最適化フェーズ中に前記ソフトウェアプログラムの前記複数の最適化パスのうちの最適化パスのシーケンスを定義し、最適化パスの前記シーケンスは前記現在の最適化パスを含む、と、
最適化パスの前記シーケンスを実行するための時間予算を決定することと、
前記現在の最適化パスが前記シーケンス内の最後の最適化パスではないときにおよび前記現在の最適化パスの実行を終了した後に、最適化パス構成データの前記セットに基づいて最適化パスの前記シーケンス内の次の最適化パスを実行することと
を前記プロセッサに行わせる命令をさらに備える、請求項17に記載のコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/787,485 | 2013-03-06 | ||
US13/787,485 US9027007B2 (en) | 2013-03-06 | 2013-03-06 | Reducing excessive compilation times |
PCT/US2014/014597 WO2014137521A1 (en) | 2013-03-06 | 2014-02-04 | Reducing excessive compilation times |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016510919A JP2016510919A (ja) | 2016-04-11 |
JP5985766B2 true JP5985766B2 (ja) | 2016-09-06 |
Family
ID=50156916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015561348A Expired - Fee Related JP5985766B2 (ja) | 2013-03-06 | 2014-02-04 | 過度のコンパイル時間の低減 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9027007B2 (ja) |
EP (1) | EP2965198B1 (ja) |
JP (1) | JP5985766B2 (ja) |
CN (1) | CN105009082B (ja) |
WO (1) | WO2014137521A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9727339B2 (en) * | 2013-07-18 | 2017-08-08 | Nvidia Corporation | Method and system for distributed shader optimization |
GB201405755D0 (en) * | 2014-03-31 | 2014-05-14 | Irdeto Bv | Optimizing and protecting software |
US9223551B1 (en) * | 2014-07-22 | 2015-12-29 | Here Global B.V. | Rendergraph compilation method and use thereof for low-latency execution |
US9747084B2 (en) * | 2014-09-09 | 2017-08-29 | Google Inc. | Offline shader compilation |
US10419483B1 (en) * | 2014-09-17 | 2019-09-17 | Amazon Technologies, Inc. | Time-bounded execution for privileged code |
US9690928B2 (en) * | 2014-10-25 | 2017-06-27 | Mcafee, Inc. | Computing platform security methods and apparatus |
US10163179B2 (en) * | 2015-03-27 | 2018-12-25 | Intel Corporation | Method and apparatus for intelligent cloud-based graphics updates |
US10133559B2 (en) * | 2016-06-03 | 2018-11-20 | International Business Machines Corporation | Generating executable files through compiler optimization |
AU2016228166A1 (en) * | 2016-09-13 | 2018-03-29 | Canon Kabushiki Kaisha | Visualisation for guided algorithm design to create hardware friendly algorithms |
CN106598579B (zh) * | 2016-12-06 | 2020-12-25 | 北京果仁宝科技有限公司 | 区块链上集成动态类型编程语言方法和装置 |
EP3593305A4 (en) | 2017-03-08 | 2020-10-21 | IP Oversight Corporation | SYSTEM AND PROCEDURE FOR GENERATING TOKENS SECURED BY THE VALUE OF GOODS FROM RESERVES |
CN106933665B (zh) * | 2017-03-09 | 2020-06-26 | 中国科学技术大学 | 预测mpi程序运行时间的方法 |
CN111324353B (zh) * | 2018-12-14 | 2022-09-13 | 中移(杭州)信息技术有限公司 | 一种持续集成任务的优化方法及装置 |
JP7339537B2 (ja) | 2020-01-10 | 2023-09-06 | 富士通株式会社 | 情報処理装置、情報処理プログラム、及び情報処理方法 |
CN111488155B (zh) * | 2020-06-15 | 2020-09-22 | 完美世界(北京)软件科技发展有限公司 | 着色语言翻译方法 |
US11487565B2 (en) * | 2020-10-29 | 2022-11-01 | Hewlett Packard Enterprise Development Lp | Instances of just-in-time (JIT) compilation of code using different compilation settings |
US11934255B2 (en) | 2022-01-04 | 2024-03-19 | Bank Of America Corporation | System and method for improving memory resource allocations in database blocks for executing tasks |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2834171B2 (ja) * | 1989-02-06 | 1998-12-09 | 株式会社日立製作所 | コンパイル方法 |
JP3190773B2 (ja) * | 1993-09-30 | 2001-07-23 | 日本電気株式会社 | 言語処理プログラムのコンパイル処理方法 |
CA2102089C (en) * | 1993-10-29 | 1999-05-25 | David M. Gillies | Recompilation of computer programs for enhanced optimization |
US5970249A (en) | 1997-10-06 | 1999-10-19 | Sun Microsystems, Inc. | Method and apparatus for performing byte-code optimization during pauses |
JP2000047879A (ja) * | 1998-07-06 | 2000-02-18 | Internatl Business Mach Corp <Ibm> | コンパイル方法及び装置、実行方法、及びプログラム実行装置 |
US6438741B1 (en) * | 1998-09-28 | 2002-08-20 | Compaq Computer Corporation | System and method for eliminating compile time explosion in a top down rule based system using selective sampling |
JP2001318742A (ja) * | 2000-05-08 | 2001-11-16 | Mitsubishi Electric Corp | コンピュータシステムおよびコンピュータ読み取り可能な記録媒体 |
US20030237080A1 (en) | 2002-06-19 | 2003-12-25 | Carol Thompson | System and method for improved register allocation in an optimizing compiler |
JP3847672B2 (ja) | 2002-07-03 | 2006-11-22 | 松下電器産業株式会社 | コンパイラ装置及びコンパイル方法 |
US7340448B2 (en) * | 2003-11-13 | 2008-03-04 | International Business Machines Corporation | Method, apparatus, and computer program product for implementing enhanced query governor functions |
US7428731B2 (en) | 2004-03-31 | 2008-09-23 | Intel Corporation | Continuous trip count profiling for loop optimizations in two-phase dynamic binary translators |
US7290240B1 (en) | 2004-07-30 | 2007-10-30 | Altera Corporation | Leveraging combinations of synthesis, placement and incremental optimizations |
JP2006127302A (ja) | 2004-10-29 | 2006-05-18 | Internatl Business Mach Corp <Ibm> | 情報処理装置、コンパイラ、及びコンパイラプログラム |
JP2006139413A (ja) * | 2004-11-10 | 2006-06-01 | Hitachi Ltd | プログラム、プログラムコードの合理化方法、プログラムコードの生成方法、プログラムコード、及び情報処理装置 |
US20060236310A1 (en) | 2005-04-19 | 2006-10-19 | Domeika Max J | Methods and apparatus to iteratively compile software to meet user-defined criteria |
US7844960B2 (en) * | 2005-09-14 | 2010-11-30 | International Business Machines Corporation | Optimizing software program execution during class loading phase |
US7784041B2 (en) * | 2006-03-30 | 2010-08-24 | Oracle America, Inc. | Mechanism for reducing detectable pauses in dynamic output caused by dynamic compilation |
US8539467B2 (en) * | 2006-07-27 | 2013-09-17 | International Business Machines Corporation | Method and data processing system for solving resource conflicts in assembler programs |
US9117071B2 (en) * | 2009-06-03 | 2015-08-25 | Apple Inc. | Methods and apparatuses for secure compilation |
US8635606B2 (en) * | 2009-10-13 | 2014-01-21 | Empire Technology Development Llc | Dynamic optimization using a resource cost registry |
US8321851B2 (en) * | 2009-12-22 | 2012-11-27 | International Business Machines Corporation | Determining compiler efficiency |
US9996325B2 (en) * | 2013-03-06 | 2018-06-12 | Qualcomm Incorporated | Dynamic reconfigurable compiler |
US9274931B2 (en) * | 2013-05-06 | 2016-03-01 | International Business Machines Corporation | Inserting implicit sequence points into computer program code to support debug operations |
-
2013
- 2013-03-06 US US13/787,485 patent/US9027007B2/en active Active
-
2014
- 2014-02-04 EP EP14706176.6A patent/EP2965198B1/en active Active
- 2014-02-04 JP JP2015561348A patent/JP5985766B2/ja not_active Expired - Fee Related
- 2014-02-04 CN CN201480011933.9A patent/CN105009082B/zh not_active Expired - Fee Related
- 2014-02-04 WO PCT/US2014/014597 patent/WO2014137521A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP2965198B1 (en) | 2019-04-17 |
CN105009082A (zh) | 2015-10-28 |
WO2014137521A1 (en) | 2014-09-12 |
US20140258996A1 (en) | 2014-09-11 |
EP2965198A1 (en) | 2016-01-13 |
JP2016510919A (ja) | 2016-04-11 |
CN105009082B (zh) | 2017-03-29 |
US9027007B2 (en) | 2015-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5985766B2 (ja) | 過度のコンパイル時間の低減 | |
US9996325B2 (en) | Dynamic reconfigurable compiler | |
US8615747B2 (en) | Method and apparatus for dynamic code optimization | |
US7543282B2 (en) | Method and apparatus for selectively executing different executable code versions which are optimized in different ways | |
US8543993B2 (en) | Compiler, compile method, and processor core control method and processor | |
US8893104B2 (en) | Method and apparatus for register spill minimization | |
US10445118B2 (en) | Methods and apparatus to facilitate field-programmable gate array support during runtime execution of computer readable instructions | |
US8479185B2 (en) | Method and system for utilizing parallelism across loops | |
US20190121625A1 (en) | Dynamic compiler parallelism techniques | |
EP3137985B1 (en) | Method and system to create a rendering pipeline | |
KR20160143489A (ko) | 인터리빙을 수행하는 방법 및 장치. | |
US20160070549A1 (en) | Offline shader compilation | |
JP2010113724A (ja) | グラフィックオペレーションのための高レベルプログラムインターフェース | |
US20150046684A1 (en) | Technique for grouping instructions into independent strands | |
Zhu et al. | DISC: A dynamic shape compiler for machine learning workloads | |
Khaldi et al. | Parallelizing with BDSC, a resource-constrained scheduling algorithm for shared and distributed memory systems | |
CN113204412A (zh) | 用于任务调度的方法、电子设备和计算机存储介质 | |
JP2011138494A (ja) | 仮想タスクを使用したマルチコアプロセッサの性能解析のための関係モデル化 | |
CN115699072A (zh) | 用于工作负载处理的任务图调度 | |
Tagliavini et al. | Enabling OpenVX support in mW-scale parallel accelerators | |
CN110990151A (zh) | 一种基于异构计算平台的业务处理方法 | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
CN111767046A (zh) | 一种着色器代码复用方法及终端 | |
KR101393152B1 (ko) | 자바 가상 머신이 탑재된 장치 및 상기 자바 가상 머신이 탑재된 장치에서 바이트코드를 네이티브 코드로 선택적으로 컴파일하는 방법 | |
JP2010140344A (ja) | コンパイルシステム及びコンパイル方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20160119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160308 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160607 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160705 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160803 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5985766 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |