JP2015509249A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2015509249A5 JP2015509249A5 JP2014553295A JP2014553295A JP2015509249A5 JP 2015509249 A5 JP2015509249 A5 JP 2015509249A5 JP 2014553295 A JP2014553295 A JP 2014553295A JP 2014553295 A JP2014553295 A JP 2014553295A JP 2015509249 A5 JP2015509249 A5 JP 2015509249A5
- Authority
- JP
- Japan
- Prior art keywords
- instructions
- instruction
- texture
- symmetric
- condition
- 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.)
- Granted
Links
- 238000004590 computer program Methods 0.000 claims 12
Claims (40)
- 低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルする方法であって、
コンピューティングデバイスを用いて、1つまたは複数の関連するテクスチャロード命令を有する高レベル(HL)制御フロー(CF)命令のセットを識別することと、ここにおいて前記1つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてHL CF命令の前記セットが1つまたは複数の分岐を備える、
前記1つまたは複数の関連するテクスチャロード命令が、前記1つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断することと、
対称またはほぼ対称である前記1つまたは複数のテクスチャロード命令に基づいて、前記コンピューティングデバイスを用いて、HL CF命令の前記識別されたセットを、述語構造を有する低レベル(LL)命令に変換することと、ここにおいて前記述語構造を有する前記LL命令は分岐することなしに実行可能である、
対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記HL CF命令が変換されないように、HL CF命令の前記識別されたセットを変換することを控えることと、
前記述語構造を有する前記変換されたLL命令またはHL CF命令の前記変換されていないセットを出力することとを備える、方法。 - 前記1つまたは複数のテクスチャロード命令の実行が、前記テクスチャをグラフィックス処理ユニットのローカルメモリに転送させる、請求項1に記載の方法。
- 前記HL CF命令を変換することが、前記変換された低レベル命令の無条件直列実行を可能にするために前記1つまたは複数の分岐を削除することを備える、請求項1に記載の方法。
- 前記1つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断することが、前記1つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別することを備える、請求項1に記載の方法。
- HL CF命令の前記識別されたセットを変換することが、LL命令のセットを生成することを備え、ここにおいてLL命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項1に記載の方法。
- HL CF命令の前記セットを識別することが、条件を有するIF−ELSE文を識別することを備え、ここにおいて前記条件が真である場合、HL CF命令の前記セットが第1のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、HL CF命令の前記セットが第2のメモリアドレスから前記テクスチャをロードさせる、請求項1に記載の方法。
- HL CF命令の前記セットを変換することが、LL命令のセットを生成することを備え、ここにおいてLL命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項6に記載の方法。
- 前記変換されたLL命令を出力することが、前記変換されたLL命令をメモリに記憶することを備える、請求項1に記載の方法。
- 前記HL命令を変換することが、前記LL命令を生成するために前記HL命令をランタイムコンパイルすることを備え、グラフィックス処理ユニット上で前記出力されたLL命令を実行することをさらに備える、請求項1に記載の方法。
- 前記出力されたLL命令を実行することが、前記コンパイルされた命令を、前記HL CF命令の条件と前記出力されたLL命令の座標とが依存しない命令より前に実行されるようにスケジュールすることを備える、請求項9に記載の方法。
- 低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルするための装置であって、
1つまたは複数の関連するテクスチャロード命令を有する高レベル(HL)制御フロー(CF)命令のセットを識別することと、ここにおいて前記1つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてHL CF命令の前記セットが1つまたは複数の分岐を備える、
前記1つまたは複数の関連するテクスチャロード命令が、前記1つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断することと、
対称またはほぼ対称である前記1つまたは複数のテクスチャロード命令に基づいて、HL CF命令の前記識別されたセットを、述語構造を有する低レベル(LL)命令に変換することと、ここにおいて前記述語構造を有する前記LL命令は、分岐することなしに実行される、
対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記HL CF命令が変換されないように、HL CF命令の前記識別されたセットを変換することを控えることと、
前記述語構造を有する前記変換された(LL)命令またはHL CF命令の前記変換されていないセットを出力することと
を行うように構成された1つまたは複数の処理ユニットを備える、装置。 - ローカルメモリをさらに備え、前記1つまたは複数のテクスチャロード命令の実行が、前記テクスチャを前記装置のローカルメモリに転送させる、請求項11に記載の装置。
- 前記HL CF命令を変換するために、前記1つまたは複数のプロセッサが、前記変換された低レベル命令の無条件直列実行を可能にするために前記1つまたは複数の分岐を削除するように構成された、請求項11に記載の装置。
- 前記1つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断するために、前記1つまたは複数の処理ユニットが、前記1つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別するように構成された、請求項11に記載の装置。
- HL CF命令の前記識別されたセットを変換するために、前記1つまたは複数のプロセッサが、LL命令のセットを生成するように構成され、LL命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項11に記載の装置。
- HL CF命令の前記セットを識別するために、前記1つまたは複数のプロセッサが、条件を有するIF−ELSE文を識別するように構成され、前記条件が真である場合、HL CF命令の前記セットが第1のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、HL CF命令の前記セットが第2のメモリアドレスから前記テクスチャをロードさせる、請求項11に記載の装置。
- HL CF命令の前記セットを変換するために、前記1つまたは複数のプロセッサが、LL命令のセットを生成するように構成され、LL命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項16に記載の装置。
- 前記変換されたLL命令を出力するために、前記1つまたは複数のプロセッサが、前記変換されたLL命令をメモリに記憶するように構成された、請求項11に記載の装置。
- 前記HL命令を変換するために、前記1つまたは複数のプロセッサが、前記LL命令を生成するために前記HL命令をランタイムコンパイルするように構成され、前記出力されたLL命令を実行することをさらに備える、請求項11に記載の装置。
- 前記出力されたLL命令を実行するために、前記1つまたは複数のプロセッサが、前記コンパイルされた命令を、前記HL CF命令の条件と前記出力されたLL命令の座標とが依存しない命令より前に実行されるようにスケジュールするように構成された、請求項19に記載の装置。
- 低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルするためのコンピュータプログラム製品であって、実行されたとき、
1つまたは複数の関連するテクスチャロード命令を有する高レベル(HL)制御フロー(CF)命令のセットを識別することと、ここにおいて前記1つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてHL CF命令の前記セットが1つまたは複数の分岐を備える、
前記1つまたは複数の関連するテクスチャロード命令が、前記1つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断することと、
対称またはほぼ対称である前記1つまたは複数のテクスチャロード命令に基づいて、HL CF命令の前記識別されたセットを、述語構造を有する低レベル(LL)命令に変換することと、ここにおいて前記述語構造を有する前記LL命令は分岐することなしに実行される、
対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記HL CF命令が変換されないように、HL CF命令の前記識別されたセットを変換することを控えることと、
前記述語構造を有する前記変換された(LL)命令またはHL CF命令の前記変換されていないセットを出力することと
を1つまたは複数のプロセッサに行わせる命令を記憶する、コンピュータプログラム製品。 - 前記1つまたは複数のテクスチャロード命令の実行が、前記テクスチャをグラフィックス処理ユニットのローカルメモリに転送させる、請求項21に記載のコンピュータプログラム製品。
- 前記HL CF命令を変換することが、前記変換された低レベル命令の無条件直列実行を可能にするために前記1つまたは複数の分岐を削除することを備える、請求項21に記載のコンピュータプログラム製品。
- 前記1つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断することために、前記命令が、前記1つまたは複数のプロセッサに、前記1つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別させる、請求項21に記載のコンピュータプログラム製品。
- HL CF命令の前記識別されたセットを変換することが、LL命令のセットを生成することを備え、ここにおいてLL命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項21に記載のコンピュータプログラム製品。
- HL CF命令の前記セットを識別することが、条件を有するIF−ELSE文を識別することを備え、ここにおいて前記条件が真である場合、HL CF命令の前記セットが第1のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、HL CF命令の前記セットが第2のメモリアドレスから前記テクスチャをロードさせる、請求項21に記載のコンピュータプログラム製品。
- HL CF命令の前記セットを変換することが、LL命令のセットを生成することを備え、ここにおいてLL命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項26に記載のコンピュータプログラム製品。
- 前記変換されたLL命令を出力することが、前記変換されたLL命令をメモリに記憶することを備える、請求項21に記載のコンピュータプログラム製品。
- 前記HL命令を変換することが、前記LL命令を生成するために前記HL命令をランタイムコンパイルすることを備え、実行されたとき、グラフィックス処理ユニット上で前記出力されたLL命令を実行することを前記1つまたは複数のプロセッサに行わせる命令をさらに備える、請求項21に記載のコンピュータプログラム製品。
- 前記出力されたLL命令を実行することが、前記コンパイルされた命令を、前記HL CF命令の条件と前記出力されたLL命令の座標とが依存しない命令より前に実行されるようにスケジュールすることを備える、請求項29に記載のコンピュータプログラム製品。
- 低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルするための装置であって、
1つまたは複数の関連するテクスチャロード命令を有する高レベル(HL)制御フロー(CF)命令のセットを識別するための手段と、ここにおいて前記1つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてHL CF命令の前記セットが1つまたは複数の分岐を備える、
前記1つまたは複数の関連するテクスチャロード命令が、前記1つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断するための手段と、
対称またはほぼ対称である前記1つまたは複数のテクスチャロード命令に基づいて、HL CF命令の前記識別されたセットを、述語構造を有する低レベル(LL)命令に変換するための手段と、ここにおいて前記述語構造を有する前記LL命令は分岐することなしに実行可能である、
対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記HL CF命令が変換されないように、HL CF命令の前記識別されたセットを変換することを控えるための手段と、
前記述語構造を有する前記変換されたLL命令またはHL CF命令の前記変換されていないセットを出力するための手段とを備える、装置。 - 前記1つまたは複数のテクスチャロード命令の実行が、前記テクスチャをグラフィックス処理ユニットのローカルメモリに転送させる、請求項31に記載の装置。
- 前記HL CF命令を変換するための前記手段が、前記変換された低レベル命令の無条件直列実行を可能にするために前記1つまたは複数の分岐を削除するための手段を備える、請求項31に記載の装置。
- 前記1つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断するための前記手段が、前記1つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別するための手段を備える、請求項31に記載の装置。
- HL CF命令の前記識別されたセットを変換するための前記手段が、LL命令のセットを生成するための手段を備え、LL命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項31に記載の装置。
- HL CF命令の前記セットを識別するための前記手段が、条件を有するIF−ELSE文を識別するための手段を備え、前記条件が真である場合、HL CF命令の前記セットが第1のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、HL CF命令の前記セットが第2のメモリアドレスから前記テクスチャをロードさせる、請求項31に記載の装置。
- HL CF命令の前記セットを変換するための前記手段が、LL命令のセットを生成するための手段を備え、LL命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項36に記載の装置。
- 前記変換されたLL命令を出力するための前記手段が、前記変換されたLL命令をメモリに記憶するための手段を備える、請求項31に記載の装置。
- 前記HL命令を変換するための前記手段が、前記LL命令を生成するために前記HL命令をランタイムコンパイルするための手段を備え、グラフィックス処理ユニット上で前記出力されたLL命令を実行することをさらに備える、請求項31に記載の装置。
- 前記出力されたLL命令を実行するための前記手段が、前記コンパイルされた命令を、前記HL CF命令の条件と前記出力されたLL命令の座標とが依存しない命令より前に実行されるようにスケジュールするための手段を備える、請求項39に記載の装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261589072P | 2012-01-20 | 2012-01-20 | |
US61/589,072 | 2012-01-20 | ||
US13/414,402 | 2012-03-07 | ||
US13/414,402 US9256408B2 (en) | 2012-01-20 | 2012-03-07 | Optimizing texture commands for graphics processing unit |
PCT/US2012/068203 WO2013109353A1 (en) | 2012-01-20 | 2012-12-06 | Predication of control flow instructions having associated texture load instructions for a graphics processing unit |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015509249A JP2015509249A (ja) | 2015-03-26 |
JP2015509249A5 true JP2015509249A5 (ja) | 2016-05-26 |
JP6017586B2 JP6017586B2 (ja) | 2016-11-02 |
Family
ID=48798315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014553295A Expired - Fee Related JP6017586B2 (ja) | 2012-01-20 | 2012-12-06 | グラフィックス処理ユニットのための関連するテクスチャロード命令を有する制御フロー命令のプレディケーション |
Country Status (5)
Country | Link |
---|---|
US (1) | US9256408B2 (ja) |
EP (1) | EP2805232B1 (ja) |
JP (1) | JP6017586B2 (ja) |
CN (1) | CN104067225B (ja) |
WO (1) | WO2013109353A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762972B2 (en) * | 2011-02-08 | 2014-06-24 | Nokia Corporation | Methods and apparatuses for facilitating execution of applications requiring runtime compilation |
US9665393B1 (en) * | 2012-04-17 | 2017-05-30 | Facebook, Inc. | Storage and privacy service |
US9164743B2 (en) | 2012-07-02 | 2015-10-20 | International Business Machines Corporation | Strength reduction compiler optimizations for operations with unknown strides |
CN104915180B (zh) * | 2014-03-10 | 2017-12-22 | 华为技术有限公司 | 一种数据操作的方法和设备 |
US9911175B2 (en) | 2015-09-03 | 2018-03-06 | Qualcomm Incorporated | Modification of graphical command tokens |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
DE102016223484B4 (de) * | 2016-11-25 | 2021-04-15 | Fujitsu Limited | Bestimmen von Ähnlichkeiten in Computersoftwarecodes zur Leistungsanalyse |
US10235272B2 (en) * | 2017-03-06 | 2019-03-19 | Xilinx, Inc. | Debugging system and method |
US10635439B2 (en) * | 2018-06-13 | 2020-04-28 | Samsung Electronics Co., Ltd. | Efficient interface and transport mechanism for binding bindless shader programs to run-time specified graphics pipeline configurations and objects |
WO2020181670A1 (en) * | 2019-03-11 | 2020-09-17 | Huawei Technologies Co., Ltd. | Control flow optimization in graphics processing unit |
CN116048531B (zh) * | 2023-03-30 | 2023-08-08 | 南京砺算科技有限公司 | 指令编译方法及图形处理装置、存储介质、终端设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453459B1 (en) * | 1998-01-21 | 2002-09-17 | Apple Computer, Inc. | Menu authoring system and method for automatically performing low-level DVD configuration functions and thereby ease an author's job |
US6745384B1 (en) * | 1998-05-29 | 2004-06-01 | Microsoft Corporation | Anticipatory optimization with composite folding |
US6662294B1 (en) | 2000-09-28 | 2003-12-09 | International Business Machines Corporation | Converting short branches to predicated instructions |
JP4044756B2 (ja) * | 2001-12-11 | 2008-02-06 | 松下電器産業株式会社 | プログラム変換装置、プログラム変換方法、及び当該プログラム変換装置を実現するプログラム |
JP3847672B2 (ja) * | 2002-07-03 | 2006-11-22 | 松下電器産業株式会社 | コンパイラ装置及びコンパイル方法 |
US7299458B2 (en) * | 2002-10-31 | 2007-11-20 | Src Computers, Inc. | System and method for converting control flow graph representations to control-dataflow graph representations |
WO2004072796A2 (en) * | 2003-02-05 | 2004-08-26 | Arizona Board Of Regents | Reconfigurable processing |
US8823718B2 (en) | 2003-11-14 | 2014-09-02 | Microsoft Corporation | Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques |
US7847800B2 (en) * | 2004-04-16 | 2010-12-07 | Apple Inc. | System for emulating graphics operations |
US7793079B2 (en) | 2007-06-27 | 2010-09-07 | Qualcomm Incorporated | Method and system for expanding a conditional instruction into a unconditional instruction and a select instruction |
US20100262813A1 (en) | 2009-04-14 | 2010-10-14 | International Business Machines Corporation | Detecting and Handling Short Forward Branch Conversion Candidates |
US10360039B2 (en) | 2009-09-28 | 2019-07-23 | Nvidia Corporation | Predicted instruction execution in parallel processors with reduced per-thread state information including choosing a minimum or maximum of two operands based on a predicate value |
US20110078424A1 (en) * | 2009-09-30 | 2011-03-31 | International Business Machines Corporation | Optimizing program code using branch elimination |
US9495136B2 (en) * | 2011-01-28 | 2016-11-15 | International Business Machines Corporation | Using aliasing information for dynamic binary optimization |
-
2012
- 2012-03-07 US US13/414,402 patent/US9256408B2/en not_active Expired - Fee Related
- 2012-12-06 JP JP2014553295A patent/JP6017586B2/ja not_active Expired - Fee Related
- 2012-12-06 EP EP12809421.6A patent/EP2805232B1/en active Active
- 2012-12-06 WO PCT/US2012/068203 patent/WO2013109353A1/en active Application Filing
- 2012-12-06 CN CN201280067461.XA patent/CN104067225B/zh not_active Expired - Fee Related
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015509249A5 (ja) | ||
US9354944B2 (en) | Mapping processing logic having data-parallel threads across processors | |
JP6329274B2 (ja) | コンパイラ最適化のためのメモリ参照メタデータ | |
JP6411477B2 (ja) | Gpu発散バリア | |
US8782645B2 (en) | Automatic load balancing for heterogeneous cores | |
JP2015526821A5 (ja) | ||
WO2015105606A1 (en) | Register allocation for vectors | |
CN101551761A (zh) | 一种异构多处理器中共享流内存的方法 | |
WO2015032311A1 (zh) | 一种代码生成方法、编译器、调度方法、装置及调度系统 | |
Membarth et al. | Code generation for embedded heterogeneous architectures on Android | |
Mikushin et al. | KernelGen--The Design and Implementation of a Next Generation Compiler Platform for Accelerating Numerical Models on GPUs | |
KR20210021263A (ko) | 작업부하의 정적 매핑의 비순차적 파이프라이닝된 실행을 가능하게 하기 위한 방법들 및 장치 | |
JP2014523569A5 (ja) | ||
Nomizu et al. | Implementation of xcalablemp device acceleration extention with opencl | |
Clarkson et al. | Towards practical heterogeneous virtual machines | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
Yang et al. | The support of an experimental OpenCL compiler on HSA environments | |
Ivutin et al. | The Automatic Algorithms' Adaptation Method for Embedded Multi-Core Configurations | |
CN117591242B (zh) | 基于底层虚拟机的编译优化方法、系统、存储介质及终端 | |
US9286090B2 (en) | Method and system for compiler identification of code for parallel execution | |
Chard et al. | Productive Parallel Programming with Parsl | |
US20170192759A1 (en) | Method and system for generation of machine-executable code on the basis of at least dual-core predictive latency | |
SEKHAR et al. | Harnessing The Potential Of Opencl For Heterogeneous Computing | |
Liao et al. | A profile-guided synergistic computation framework for Halide | |
Melnyk et al. | Android-built code generation modelling for heterogeneous architecture |