JP2015509249A5 - - Google Patents

Download PDF

Info

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
Application number
JP2014553295A
Other languages
English (en)
Other versions
JP6017586B2 (ja
JP2015509249A (ja
Filing date
Publication date
Priority claimed from US13/414,402 external-priority patent/US9256408B2/en
Application filed filed Critical
Publication of JP2015509249A publication Critical patent/JP2015509249A/ja
Publication of JP2015509249A5 publication Critical patent/JP2015509249A5/ja
Application granted granted Critical
Publication of JP6017586B2 publication Critical patent/JP6017586B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (40)

  1. 低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルする方法であって、
    コンピューティングデバイスを用いて、1つまたは複数の関連するテクスチャロード命令を有する高レベル(HL)制御フロー(CF)命令のセットを識別することと、ここにおいて前記1つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてHL CF命令の前記セットが1つまたは複数の分岐を備える、
    前記1つまたは複数の関連するテクスチャロード命令が、前記1つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断することと、
    対称またはほぼ対称である前記1つまたは複数のテクスチャロード命令に基づいて、前記コンピューティングデバイスを用いて、HL CF命令の前記識別されたセットを、述語構造を有する低レベル(LL)命令に変換することと、ここにおいて前記述語構造を有する前記LL命令は分岐することなしに実行可能である、
    対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記HL CF命令が変換されないように、HL CF命令の前記識別されたセットを変換することを控えることと、
    前記述語構造を有する前記変換されたLL命令またはHL CF命令の前記変換されていないセットを出力することとを備える、方法。
  2. 前記1つまたは複数のテクスチャロード命令の実行が、前記テクスチャをグラフィックス処理ユニットのローカルメモリに転送させる、請求項1に記載の方法。
  3. 前記HL CF命令を変換することが、前記変換された低レベル命令の無条件直列実行を可能にするために前記1つまたは複数の分岐を削除することを備える、請求項1に記載の方法。
  4. 前記1つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるか判断すること前記1つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別することを備える、請求項1に記載の方法。
  5. HL CF命令の前記識別されたセットを変換することが、LL命令のセットを生成することを備え、ここにおいてLL命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項1に記載の方法。
  6. HL CF命令の前記セットを識別することが、条件を有するIF−ELSE文を識別することを備え、ここにおいて前記条件が真である場合、HL CF命令の前記セットが第1のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、HL CF命令の前記セットが第2のメモリアドレスから前記テクスチャをロードさせる、請求項1に記載の方法。
  7. HL CF命令の前記セットを変換することが、LL命令のセットを生成することを備え、ここにおいてLL命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項6に記載の方法。
  8. 前記変換されたLL命令を出力することが、前記変換されたLL命令をメモリに記憶することを備える、請求項1に記載の方法。
  9. 前記HL命令を変換することが、前記LL命令を生成するために前記HL命令をランタイムコンパイルすることを備え、グラフィックス処理ユニット上で前記出力されたLL命令を実行することをさらに備える、請求項1に記載の方法。
  10. 前記出力されたLL命令を実行することが、前記コンパイルされた命令を、前記HL CF命令の条件と前記出力されたLL命令の座標とが依存しない命令より前に実行されるようにスケジュールすることを備える、請求項9に記載の方法。
  11. 低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルするための装置であって、
    1つまたは複数の関連するテクスチャロード命令を有する高レベル(HL)制御フロー(CF)命令のセットを識別することと、ここにおいて前記1つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてHL CF命令の前記セットが1つまたは複数の分岐を備える、
    前記1つまたは複数の関連するテクスチャロード命令が、前記1つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断することと、
    対称またはほぼ対称である前記1つまたは複数のテクスチャロード命令に基づいて、HL CF命令の前記識別されたセットを、述語構造を有する低レベル(LL)命令に変換することと、ここにおいて前記述語構造を有する前記LL命令は、分岐することなしに実行される、
    対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記HL CF命令が変換されないように、HL CF命令の前記識別されたセットを変換することを控えることと、
    前記述語構造を有する前記変換された(LL)命令またはHL CF命令の前記変換されていないセットを出力することと
    を行うように構成された1つまたは複数の処理ユニットを備える、装置。
  12. ローカルメモリをさらに備え、前記1つまたは複数のテクスチャロード命令の実行が、前記テクスチャを前記装置のローカルメモリに転送させる、請求項11に記載の装置。
  13. 前記HL CF命令を変換するために、前記1つまたは複数のプロセッサが、前記変換された低レベル命令の無条件直列実行を可能にするために前記1つまたは複数の分岐を削除するように構成された、請求項11に記載の装置。
  14. 前記1つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断するために、前記1つまたは複数の処理ユニットが、前記1つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別するように構成された、請求項11に記載の装置。
  15. HL CF命令の前記識別されたセットを変換するために、前記1つまたは複数のプロセッサが、LL命令のセットを生成するように構成され、LL命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項11に記載の装置。
  16. HL CF命令の前記セットを識別するために、前記1つまたは複数のプロセッサが、条件を有するIF−ELSE文を識別するように構成され、前記条件が真である場合、HL CF命令の前記セットが第1のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、HL CF命令の前記セットが第2のメモリアドレスから前記テクスチャをロードさせる、請求項11に記載の装置。
  17. HL CF命令の前記セットを変換するために、前記1つまたは複数のプロセッサが、LL命令のセットを生成するように構成され、LL命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項16に記載の装置。
  18. 前記変換されたLL命令を出力するために、前記1つまたは複数のプロセッサが、前記変換されたLL命令をメモリに記憶するように構成された、請求項11に記載の装置。
  19. 前記HL命令を変換するために、前記1つまたは複数のプロセッサが、前記LL命令を生成するために前記HL命令をランタイムコンパイルするように構成され、前記出力されたLL命令を実行することをさらに備える、請求項11に記載の装置。
  20. 前記出力されたLL命令を実行するために、前記1つまたは複数のプロセッサが、前記コンパイルされた命令を、前記HL CF命令の条件と前記出力されたLL命令の座標とが依存しない命令より前に実行されるようにスケジュールするように構成された、請求項19に記載の装置。
  21. 低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルするためのコンピュータプログラム製品であって、実行されたとき、
    1つまたは複数の関連するテクスチャロード命令を有する高レベル(HL)制御フロー(CF)命令のセットを識別することと、ここにおいて前記1つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてHL CF命令の前記セットが1つまたは複数の分岐を備える、
    前記1つまたは複数の関連するテクスチャロード命令が、前記1つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断することと、
    対称またはほぼ対称である前記1つまたは複数のテクスチャロード命令に基づいて、HL CF命令の前記識別されたセットを、述語構造を有する低レベル(LL)命令に変換することと、ここにおいて前記述語構造を有する前記LL命令は分岐することなしに実行される、
    対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記HL CF命令が変換されないように、HL CF命令の前記識別されたセットを変換することを控えることと、
    前記述語構造を有する前記変換された(LL)命令またはHL CF命令の前記変換されていないセットを出力することと
    を1つまたは複数のプロセッサに行わせる命令を記憶する、コンピュータプログラム製品。
  22. 前記1つまたは複数のテクスチャロード命令の実行が、前記テクスチャをグラフィックス処理ユニットのローカルメモリに転送させる、請求項21に記載のコンピュータプログラム製品。
  23. 前記HL CF命令を変換することが、前記変換された低レベル命令の無条件直列実行を可能にするために前記1つまたは複数の分岐を削除することを備える、請求項21に記載のコンピュータプログラム製品。
  24. 前記1つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断することために、前記命令が、前記1つまたは複数のプロセッサに、前記1つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別させる、請求項21に記載のコンピュータプログラム製品。
  25. HL CF命令の前記識別されたセットを変換することが、LL命令のセットを生成することを備え、ここにおいてLL命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項21に記載のコンピュータプログラム製品
  26. HL CF命令の前記セットを識別することが、条件を有するIF−ELSE文を識別することを備え、ここにおいて前記条件が真である場合、HL CF命令の前記セットが第1のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、HL CF命令の前記セットが第2のメモリアドレスから前記テクスチャをロードさせる、請求項21に記載のコンピュータプログラム製品
  27. HL CF命令の前記セットを変換することが、LL命令のセットを生成することを備え、ここにおいてLL命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項26に記載のコンピュータプログラム製品
  28. 前記変換されたLL命令を出力することが、前記変換されたLL命令をメモリに記憶することを備える、請求項21に記載のコンピュータプログラム製品。
  29. 前記HL命令を変換することが、前記LL命令を生成するために前記HL命令をランタイムコンパイルすることを備え、実行されたとき、グラフィックス処理ユニット上で前記出力されたLL命令を実行することを前記1つまたは複数のプロセッサに行わせる命令をさらに備える、請求項21に記載のコンピュータプログラム製品。
  30. 前記出力されたLL命令を実行することが、前記コンパイルされた命令を、前記HL CF命令の条件と前記出力されたLL命令の座標とが依存しない命令より前に実行されるようにスケジュールすることを備える、請求項29に記載のコンピュータプログラム製品。
  31. 低レベルソフトウェア命令を生成するために高レベルソフトウェア命令をコンパイルするための装置であって、
    1つまたは複数の関連するテクスチャロード命令を有する高レベル(HL)制御フロー(CF)命令のセットを識別するための手段と、ここにおいて前記1つまたは複数のテクスチャロード命令の実行がテクスチャをメモリにロードさせる、ここにおいてHL CF命令の前記セットが1つまたは複数の分岐を備える、
    前記1つまたは複数の関連するテクスチャロード命令が、前記1つまたは複数の分岐に関連するテクスチャロード命令の数に関して対称であるか、ほぼ対称であるかを判断するための手段と、
    対称またはほぼ対称である前記1つまたは複数のテクスチャロード命令に基づいて、HL CF命令の前記識別されたセットを、述語構造を有する低レベル(LL)命令に変換するための手段と、ここにおいて前記述語構造を有する前記LL命令は分岐することなしに実行可能である、
    対称またはほぼ対称ではない前記テクスチャロード命令に基づいて、前記HL CF命令が変換されないように、HL CF命令の前記識別されたセットを変換することを控えるための手段と、
    前記述語構造を有する前記変換されたLL命令またはHL CF命令の前記変換されていないセットを出力するための手段とを備える、装置。
  32. 前記1つまたは複数のテクスチャロード命令の実行が、前記テクスチャをグラフィックス処理ユニットのローカルメモリに転送させる、請求項31に記載の装置。
  33. 前記HL CF命令を変換するための前記手段が、前記変換された低レベル命令の無条件直列実行を可能にするために前記1つまたは複数の分岐を削除するための手段を備える、請求項31に記載の装置。
  34. 前記1つまたは複数の関連するテクスチャロード命令が対称であるか、ほぼ対称であるかを判断するための前記手段が、前記1つまたは複数の分岐の各分岐に関連する等しい数のテクスチャロード命令を識別するための手段を備える、請求項31に記載の装置。
  35. HL CF命令の前記識別されたセットを変換するための前記手段が、LL命令のセットを生成するための手段を備え、LL命令の前記セットの実行が、選択関数の結果に基づいてアドレスを割り当てさせ、前記割り当てられたアドレスからテクスチャをロードさせる、請求項31に記載の装置。
  36. HL CF命令の前記セットを識別するための前記手段が、条件を有するIF−ELSE文を識別するための手段を備え、前記条件が真である場合、HL CF命令の前記セットが第1のメモリアドレスからテクスチャをロードさせ、前記条件が偽である場合、HL CF命令の前記セットが第2のメモリアドレスから前記テクスチャをロードさせる、請求項31に記載の装置。
  37. HL CF命令の前記セットを変換するための前記手段が、LL命令のセットを生成するための手段を備え、LL命令の前記セットが、前記条件の結果に基づいてアドレスを予約させ、前記予約されたアドレスから前記テクスチャをロードさせる、請求項36に記載の装置。
  38. 前記変換されたLL命令を出力するための前記手段が、前記変換されたLL命令をメモリに記憶するための手段を備える、請求項31に記載の装置。
  39. 前記HL命令を変換するための前記手段が、前記LL命令を生成するために前記HL命令をランタイムコンパイルするための手段を備え、グラフィックス処理ユニット上で前記出力されたLL命令を実行することをさらに備える、請求項31に記載の装置。
  40. 前記出力されたLL命令を実行するための前記手段が、前記コンパイルされた命令を、前記HL CF命令の条件と前記出力されたLL命令の座標とが依存しない命令より前に実行されるようにスケジュールするための手段を備える、請求項39に記載の装置。
JP2014553295A 2012-01-20 2012-12-06 グラフィックス処理ユニットのための関連するテクスチャロード命令を有する制御フロー命令のプレディケーション Expired - Fee Related JP6017586B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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