JP7410186B2 - Gpuにおける明示的な個別マスクレジスタのマスク操作方法 - Google Patents

Gpuにおける明示的な個別マスクレジスタのマスク操作方法 Download PDF

Info

Publication number
JP7410186B2
JP7410186B2 JP2021573736A JP2021573736A JP7410186B2 JP 7410186 B2 JP7410186 B2 JP 7410186B2 JP 2021573736 A JP2021573736 A JP 2021573736A JP 2021573736 A JP2021573736 A JP 2021573736A JP 7410186 B2 JP7410186 B2 JP 7410186B2
Authority
JP
Japan
Prior art keywords
mask
command
register
gpu
vector
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.)
Active
Application number
JP2021573736A
Other languages
English (en)
Other versions
JP2022535982A (ja
Inventor
イン,チョンシン
ワン,レイ
Original Assignee
フアシア ジェネラル プロセッサー テクノロジーズ インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by フアシア ジェネラル プロセッサー テクノロジーズ インコーポレイテッド filed Critical フアシア ジェネラル プロセッサー テクノロジーズ インコーポレイテッド
Publication of JP2022535982A publication Critical patent/JP2022535982A/ja
Application granted granted Critical
Publication of JP7410186B2 publication Critical patent/JP7410186B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

本開示はグラフィックス処理ユニットの技術分野に関し、具体的にはGPUにおける明示的な個別マスクレジスタのマスク操作方法に関する。
<関連出願の相互参照>
本開示は、2019年6月13日に出願された、出願番号201910512317.6、発明の名称「GPUにおける明示的な個別マスクレジスタのマスク操作方法」の特許出願の優先権主張出願であり、その全部の内容が援用により本開示に組み込まれる。
高度なグラフィックスプロセッサはshaderコードを実行するための多くのプログラマブルプロセッサコア及びグラフィックス専用ハードウェアアクセラレータを含む。最初にこれらのプロセッサコアはグラフィックスアプリケーションにおけるshaderコードを実行するために用いられたが、後に非グラフィックス計算集約型のアプリケーションを良好に処理できることが発見され、汎用グラフィックスプロセッサに発展してきた。
グラフィックアプリケーションにおいてGPUは数が膨大な頂点及びセグメントを処理しなければならず、これらのオブジェクトに対してそれぞれ単独でコードを作成することは不可能である。従ってGPUプログラミングモデルにおいて頂点を処理するためのshader及びセグメントを処理するためのshaderを定義する。ユーザはshaderにおいて頂点及びセグメントを処理するアルゴリズムを記述することができる。GPGPUアプリケーションに対して類似の方法を使用して、プログラミングモデルにおいて数が膨大な処理オブジェクトを定義しており、これらのオブジェクトはワークアイテムと呼ばれ、ユーザはkernelを指定することによりこれらのワークアイテムをどのように処理するかを記述する。
グラフィックスプロセッサは複数の頂点又はkernelにおけるワークアイテムをスレッドに組み合わせ、シングルインストラクションマルチプルデータ(SIMD)に従って対応するshaderプログラム及びkernelプログラムを実行し、プログラム内に条件制御コードが存在する場合、SIMD実現方式においてこの問題を解決する一つの方法は実行マスクにより実行結果の出力を制御し、マスクにおける対応ビットにおける値が0x1である場合のみ、対応する目的オペランドを書き換えるものであり、GPUコマンドワードの符号化空間を節約するため、該方法は、グラフィックスプロセッサにおいては単一の隠しマスクレジスタの方式により実現することが多いが、図1に示すように、shader又はkernelコードにおける条件制御ステートメントが多いか又はネストが発生した場合、単一の隠しマスクレジスタ($exec)により現在のコマンドのマスクレジスタを変更することができず、隠しマスクレジスタと汎用レジスタとの間のデータが頻繁に移動することになってしまい、これにより、プログラムのコマンド数が増加するだけでなく、プログラムの実行遅延が増えて、同時にレジスタ間の読み書きが追加されて、プログラマブルプロセッサコアの消費電力が上昇する。
本開示の目的は、GPUにおける明示的な個別マスクレジスタのマスク操作方法を提供することにより、上記背景技術において提出された、グラフィックスプロセッサは複数の頂点又はkernelにおけるワークアイテムをスレッドに組み合わせ、シングルインストラクションマルチプルデータ方式に従って対応するshaderプログラム及びkernelプログラムを実行し、プログラム内に条件制御コードが存在する場合、この問題を解決するSIMD実現方式による一つの方法は実行マスクにより実行結果の出力を制御し、マスクにおける対応ビットにおける値が0x1である場合のみ、対応する目的オペランドを書き換えるものであり、GPUコマンドワードの符号化空間を節約するため、グラフィックスプロセッサにおいては単一の隠しマスクレジスタの方式により実現することが多いが、shader又はkernelコードにおける条件制御ステートメントが多いか又はネストが発生した場合、単一の隠しマスクレジスタ($exec)により現在のコマンドのマスクレジスタを変更することができず、隠しマスクレジスタと汎用レジスタとの間のデータが頻繁に移動することになってしまい、これにより、プログラムのコマンド数が増加するだけでなく、プログラムの実行遅延が増えて、同時にレジスタ間の読み書きが追加されて、プログラマブルプロセッサコアの消費電力が上昇する、という課題を解決することである。
上記目的を実現するために、本開示は以下の技術的解決手段を提供する。GPUにおける明示的な個別マスクレジスタのマスク操作方法は、
各GPUハードウェアスレッドはそれぞれの$m0~$m7と記す8つの128ビット幅の個別マスクレジスタにアクセスすることができるステップS1と、
前記$m0におけるデータはGPUハードウェアスレッドコマンドの実行マスクをデフォルトとし、プログラムコードにおけるコマンドのマスクアドレスフィールドMSAを変更することにより、現在のコマンドの実行マスクを指定することができるステップS2と、
コマンドによりそれぞれマスクレジスタに対するリダクション演算と、拡張演算と、論理演算及び汎用ベクトルレジスタとの間のデータ移動を実現し、対応するマスクレジスタを指定する必要があり、同時に最近の親要素のマスクレジスタを保持し、且つ二分木の方式で子要素と親要素のマスク関係を処理するステップS3と、
前記マスクレジスタの使用が8を超える場合、移動コマンドを介して、一時的に使用しないマスクオペランドを前記汎用ベクトルレジスタに記憶し、必要がある時に前記汎用ベクトルレジスタから再度取得するステップS4と、
ベクトル実行ユニットによりマスクリダクション操作を実現し、マスクリダクションの汎用及び明示的な読み取りを完了し、コマンド送信によるオーバーヘッドを防止し、ユーザはアプリケーションプログラムを解析した後、前記リダクション操作を追加するか否かを決定するステップS5と、
明示的な前記マスクレジスタは、処理条件を制御する時、後段の条件コードを前記マスクレジスタに記憶し、さらに真の分岐のコマンドシーケンスのマスク及び偽の分岐のコマンドシーケンスの条件コードを生成し、明示的なマスクにより、単一のマスクが上書きされ、上書き後にリセットされるという問題を防止し、前記ベクトル汎用レジスタと前記マスクレジスタとの間のデータ移動を減少させるステップS6と、を含む。
好ましくは、前記128ビットのマスク及びベクトル実行ユニットは、SIMD16の並列方式で割り当てられ、1つの前記マスクレジスタはベクトルユニットの実行を8回確保することができることである。
好ましくは、前記ベクトルユニットのベクトルコマンドを送信する時、該コマンドのマスクレジスタが全てゼロであるか否かを判断し、全てゼロであれば該コマンドがいかなる有効な出力も発生させないことを示し、対応するコマンドの読み取り及び実行の操作をいずれも省略することができることである。
好ましくは、前記SIMD16の幅をリダクションする必要があり、リダクション結果がゼロでない場合はオペランドを読み取り、コマンドを送信し、それによりSIMD16のマスク処理を完了させることができることである。
好ましくは、前記マスクリダクションコマンドはユーザが解析した後に、コマンドを送信する前の効率が低いリダクション操作をさらに防止することができ、それによりリダクションは前述した性能及び消費電力の最適化効果を必ず発揮することができることである。
従来技術に比べて、本開示の有益な効果は、該GPUにおける明示的な独立マスクレジスタ及びマスク操作コマンドは、グラフィックスプロセッサにおいて実現される明示的な独立マスクレジスタ及び操作マスクレジスタのコマンドを提供し、GPUにおける各ハードウェアスレッドはそれぞれの$m0~$m7と記す8つの128ビット幅の個別マスクレジスタにアクセスすることができる。ただし、$m0におけるデータはGPUハードウェアスレッドコマンドの実行マスクをデフォルトとし、コマンドのマスクアドレスフィールドMSAを変更することによって現在のコマンドの実行マスクを指定することもできる。ユーザが使用可能な4つのマスク操作コマンドを有し、それぞれマスクレジスタに対するリダクション演算と、拡張演算と、論理演算及び汎用ベクトルレジスタとの間のデータ移動を実現することができる。コマンドにより、条件制御における分岐マスクを生成し、同時にマスク値を求め、プログラマブルコアにおけるコマンド送信プロセスを最適化することができる。これにより、無効なオペランドの読み取り及びパイプライン操作の実行を防止し、プログラマブル消費電力を低減することができる。
図1は本開示の黙示的なユニットマスクレジスタの概略図である。 図2は本開示の第1リダクションプログラマブルプロセッサコアの概略図である。 図3は本開示の第2リダクションプログラマブルプロセッサコアの概略図である。 図4は本開示の黙示的な送信プロセスの概略図である。
以下に本開示の実施例における図面を参照しながら、本開示の実施例における技術的解決手段を明確、且つ完全に説明するが、明らかな点として、説明される実施例は本開示の一部の実施例に過ぎず、全ての実施例ではない。本開示の実施例に基づき、当業者が創造的な労力を要することなく取得した全ての他の実施例は、いずれも本開示の保護範囲に属する。
本開示は以下の技術的解決手段を提供する。図2及び図3に示すように、GPUにおける明示的な個別マスクレジスタのマスク操作方法は、
各GPUハードウェアスレッドはそれぞれの$m0~$m7と記す8つの128ビット幅の個別マスクレジスタにアクセスすることができるステップS1と、
$m0におけるデータはGPUハードウェアスレッドコマンドの実行マスクをデフォルトとし、プログラムコードにおけるコマンドのマスクアドレスフィールドMSAを変更することにより、現在のコマンドの実行マスクを指定することができるステップS2と、
コマンドによりそれぞれマスクレジスタに対するリダクション演算と、拡張演算と、論理演算及び汎用ベクトルレジスタとの間のデータ移動を実現し、対応するマスクレジスタを指定する必要があり、同時に最近の親要素のマスクレジスタを保持し、且つ二分木の方式で子要素と親要素のマスク関係を処理するステップS3と、
マスクレジスタの使用が8を超える場合、移動コマンドを介して、一時的に使用しないマスクオペランドを汎用ベクトルレジスタに記憶し、必要がある時に汎用ベクトルレジスタから再度取得するステップS4と、
ベクトル実行ユニットによりマスクリダクション操作を実現し、マスクリダクションの汎用及び明示的な読み取りを完了し、コマンド送信によるオーバーヘッドを防止し、ユーザはアプリケーションプログラムを解析した後、リダクション操作を追加するか否かを決定するステップS5と、
明示的なマスクレジスタは、処理条件を制御する時、後段の条件コードをマスクレジスタに記憶し、さらに真の分岐のコマンドシーケンスのマスク及び偽の分岐のコマンドシーケンスの条件コードを生成し、明示的なマスクにより、単一のマスクが上書きされ、上書き後にリセットされるという問題を防止し、ベクトル汎用レジスタとマスクレジスタとの間のデータ移動を減少させるステップS6と、を含む。
ここで、128ビットのマスク及びベクトル実行ユニットは、SIMD16の並列方式で割り当てられる。1つのマスクレジスタはベクトルユニットの実行を8回確保することができる。ベクトルユニットのベクトルコマンドを送信する時、該コマンドのマスクレジスタが全てゼロであるか否かを判断し、全てゼロであれば該コマンドがいかなる有効な出力も発生させないことを示し、対応するコマンドの読み取り及び実行の操作をいずれも省略することができる。SIMD16の幅をリダクションする必要があり、リダクション結果がゼロでない場合はオペランドを読み取り、コマンドを送信し、それによりSIMD16のマスク処理を完了させることができる。マスクリダクションコマンドはユーザが解析した後に、コマンドを送信する前の効率が低いリダクション操作をさらに防止することができ、それによりリダクションは前記性能及び消費電力の最適化効果を必ず発揮することができる。
具体的な使用においては、図4に示すように、まず明示的なマスクレジスタは、処理条件を制御する時、後段の条件コードをマスクレジスタに記憶し、さらに論理積、クリア、論理操作に従い真の分岐のコマンドシーケンスのマスク及び偽の分岐のコマンドシーケンスの条件コードを生成し、本開示のプログラマブルプロセッサコアにおいて、個別マスクレジスタと比較し、個別マスクレジスタ及びマスクリダクションにより誘導されるコマンド送信ユニットを追加し、128ビットのマスク$mに対して、ベクトル実行ユニットはSIMD16の並列方式に従って割り当てられ、1つのマスクレジスタはベクトルユニットの実行を8回確保することができる。これにより、コマンドフェッチの負荷を低減させる。ベクトルコマンドを送信する時、該コマンドのマスクレジスタが全てゼロであるか否かを優先的に判断する。全てゼロである場合、該コマンドがいかなる有効な出力も発生させないことを示す。このようにしてコマンドに対応するソースオペランドの読み取り及び実行をいずれも省略することができる。データ依存の発生を防止するために、依存フラグをクリーンアップすべきである。マスクにおける一部が全てゼロである場合、リダクション操作の結果は表現できず、この場合マスクを16ビットの幅に合わせてリダクションする必要があり、現在の16ビットのリダクション結果がゼロでない場合、オペランドを読み取るとともにコマンド送信をする必要があり、そうでなければ通常なコマンド送信のフローに応じて処理し、このようにマスクがカバーする全てのSIMD16のマスク処理が完了するまで実行して、コマンド送信を終了する。
以上、実施例を参照して本開示を説明したが、本開示の範囲を逸脱することなく、種々の改良を行い、その構成要素を等価物に置換することができる。特に、本開示で示された実施例におけるそれぞれの特徴は、構造的矛盾がない限り、いずれも任意の方法で互いに組み合わせて使用されてもよく、本明細書においてそれらを組み合わせた状況を包括的に説明していないのは、単に文章の省略及び資源の節約を考慮したに過ぎない。したがって、本開示は、本明細書に開示された特定の実施例に限定されず、特許請求の範囲に含まれる全ての技術的解決手段を含む。

Claims (4)

  1. GPUにおける明示的な個別マスクレジスタのマスク操作方法であって、
    各GPUハードウェアスレッドはそれぞれの$m0~$m7と記す8つの128ビット幅の個別マスクレジスタにアクセスすることができるステップS1と、
    前記$m0におけるデータはGPUハードウェアスレッドコマンドの実行マスクをデフォルトとし、プログラムコードにおけるコマンドのマスクアドレスフィールドMSAを変更することにより、現在のコマンドの実行マスクを指定することができるステップS2と、
    コマンドによりそれぞれマスクレジスタに対するリダクション演算と、拡張演算と、論理演算及び汎用ベクトルレジスタとの間のデータ移動を実現し、対応するマスクレジスタを指定する必要があり、同時に最近の親要素のマスクレジスタを保持し、且つ二分木の方式で子要素と親要素のマスク関係を処理するステップS3と、
    前記マスクレジスタの使用が8を超える場合、移動コマンドを介して、一時的に使用しないマスクオペランドを前記汎用ベクトルレジスタに記憶し、必要がある時に前記汎用ベクトルレジスタから再度取得するステップS4と、
    ベクトル実行ユニットによりマスクリダクション操作を実現し、マスクリダクションの汎用及び明示的な読み取りを完了し、コマンド送信によるオーバーヘッドを防止し、ユーザはアプリケーションプログラムを解析した後、前記リダクション操作を追加するか否かを決定するステップS5と、
    明示的な前記マスクレジスタは、処理条件を制御する時、後段の条件コードを前記マスクレジスタに記憶し、さらに真の分岐のコマンドシーケンスのマスク及び偽の分岐のコマンドシーケンスの条件コードを生成し、明示的なマスクにより、単一のマスクが上書きされ、上書き後にリセットされるという問題を防止し、前記汎用ベクトルレジスタと前記マスクレジスタとの間のデータ移動を減少させるステップS6と、を含むことを特徴とする、GPUにおける明示的な個別マスクレジスタのマスク操作方法。
  2. 前記128ビットのマスク及びベクトル実行ユニットは、SIMD16の並列方式で割り当てられ、1つの前記マスクレジスタはベクトルユニットの実行を8回確保することができる、ことを特徴とする、請求項1に記載のGPUにおける明示的な個別マスクレジスタのマスク操作方法。
  3. 前記ベクトルユニットのベクトルコマンドを送信する時、該コマンドのマスクレジスタが全てゼロであるか否かを判断し、全てゼロであれば該コマンドがいかなる有効な出力も発生させないことを示し、対応するコマンドの読み取り及び実行の操作をいずれも省略することができる、ことを特徴とする、請求項2に記載のGPUにおける明示的な個別マスクレジスタのマスク操作方法。
  4. 前記SIMD16の幅をリダクションする必要があり、リダクション結果がゼロでない場合はオペランドを読み取り、コマンドを送信し、それによりSIMD16のマスク処理を完了させることができる、ことを特徴とする、請求項2に記載のGPUにおける明示的な個別マスクレジスタのマスク操作方法。
JP2021573736A 2019-06-13 2020-06-11 Gpuにおける明示的な個別マスクレジスタのマスク操作方法 Active JP7410186B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910512317.6A CN112083954A (zh) 2019-06-13 2019-06-13 一种gpu中显式独立掩码寄存器的掩码操作方法
CN201910512317.6 2019-06-13
PCT/CN2020/095649 WO2020249052A1 (zh) 2019-06-13 2020-06-11 一种gpu中显式独立掩码寄存器的掩码操作方法

Publications (2)

Publication Number Publication Date
JP2022535982A JP2022535982A (ja) 2022-08-10
JP7410186B2 true JP7410186B2 (ja) 2024-01-09

Family

ID=73733747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021573736A Active JP7410186B2 (ja) 2019-06-13 2020-06-11 Gpuにおける明示的な個別マスクレジスタのマスク操作方法

Country Status (6)

Country Link
US (1) US11853754B2 (ja)
EP (1) EP3985503A4 (ja)
JP (1) JP7410186B2 (ja)
KR (1) KR20220016993A (ja)
CN (1) CN112083954A (ja)
WO (1) WO2020249052A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489792B (zh) * 2021-03-25 2022-10-11 沐曦集成电路(上海)有限公司 处理器装置及其指令执行方法
CN114253821B (zh) * 2022-03-01 2022-05-27 西安芯瞳半导体技术有限公司 一种分析gpu性能的方法、装置及计算机存储介质
CN117311988B (zh) * 2023-11-27 2024-03-12 沐曦集成电路(南京)有限公司 一种带掩码的规约操作优化方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334563A (ja) 2006-06-14 2007-12-27 Nec Corp マスク付きベクトル演算処理装置
JP2014510351A (ja) 2011-04-01 2014-04-24 インテル・コーポレーション マスクレジスタを用いてジャンプを行うシステム、装置、および方法
US20140297991A1 (en) 2011-12-22 2014-10-02 Jesus Corbal Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210839A (en) * 1990-12-21 1993-05-11 Sun Microsystems, Inc. Method and apparatus for providing a memory address from a computer instruction using a mask register
GB2379140B (en) * 2001-08-22 2004-11-10 Ubinetics Ltd Code generation
US7523370B1 (en) * 2003-09-15 2009-04-21 Cadence Design Systems, Inc. Channel masking during integrated circuit testing
US9513905B2 (en) * 2008-03-28 2016-12-06 Intel Corporation Vector instructions to enable efficient synchronization and parallel reduction operations
US9384713B1 (en) * 2009-07-27 2016-07-05 Nvidia Corporation System and method for masking transistions between graphics processing units in a hybrid graphics system
US8725989B2 (en) * 2010-12-09 2014-05-13 Intel Corporation Performing function calls using single instruction multiple data (SIMD) registers
US20130151822A1 (en) * 2011-12-09 2013-06-13 International Business Machines Corporation Efficient Enqueuing of Values in SIMD Engines with Permute Unit
US9619236B2 (en) * 2011-12-23 2017-04-11 Intel Corporation Apparatus and method of improved insert instructions
WO2014105057A1 (en) * 2012-12-28 2014-07-03 Intel Corporation Instruction to reduce elements in a vector register with strided access pattern
US9501276B2 (en) * 2012-12-31 2016-11-22 Intel Corporation Instructions and logic to vectorize conditional loops
US10061591B2 (en) * 2014-06-27 2018-08-28 Samsung Electronics Company, Ltd. Redundancy elimination in single instruction multiple data/thread (SIMD/T) execution processing
US20160179520A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Method and apparatus for variably expanding between mask and vector registers
KR20180037839A (ko) * 2016-10-05 2018-04-13 삼성전자주식회사 그래픽스 프로세싱 장치 및 인스트럭션의 실행 방법
US20190278605A1 (en) * 2017-02-22 2019-09-12 Advanced Micro Devices, Inc. Software-controlled variable wavefront size execution at gpu

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334563A (ja) 2006-06-14 2007-12-27 Nec Corp マスク付きベクトル演算処理装置
JP2014510351A (ja) 2011-04-01 2014-04-24 インテル・コーポレーション マスクレジスタを用いてジャンプを行うシステム、装置、および方法
US20140297991A1 (en) 2011-12-22 2014-10-02 Jesus Corbal Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks

Also Published As

Publication number Publication date
WO2020249052A1 (zh) 2020-12-17
CN112083954A (zh) 2020-12-15
EP3985503A4 (en) 2023-06-28
EP3985503A1 (en) 2022-04-20
US20220236988A1 (en) 2022-07-28
US11853754B2 (en) 2023-12-26
JP2022535982A (ja) 2022-08-10
KR20220016993A (ko) 2022-02-10

Similar Documents

Publication Publication Date Title
JP7410186B2 (ja) Gpuにおける明示的な個別マスクレジスタのマスク操作方法
JP5701487B2 (ja) 同期並列スレッドプロセッサにおける間接的な関数呼び出し命令
US9830156B2 (en) Temporal SIMT execution optimization through elimination of redundant operations
JP6373425B2 (ja) 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令
JP2018500657A5 (ja)
JP2011508918A (ja) 一般作業負荷およびグラフィックス作業負荷を処理するための統合プロセッサアーキテクチャ
US20180052685A1 (en) Processor and method for executing instructions on processor
JP2017538213A (ja) アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置
TW201741867A (zh) 記憶體複製指令、處理器、方法及系統
US20230084523A1 (en) Data Processing Method and Device, and Storage Medium
JP3749233B2 (ja) パイプラインでの命令実行方法及び装置
US11042502B2 (en) Vector processing core shared by a plurality of scalar processing cores for scheduling and executing vector instructions
JP2004529405A (ja) 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
EP3729286B1 (en) System and method for executing instructions
KR100837400B1 (ko) 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치
US11481250B2 (en) Cooperative workgroup scheduling and context prefetching based on predicted modification of signal values
JP7048612B2 (ja) ベクトル生成命令
US20160246598A1 (en) Pessimistic dependency handling
CN113015958A (zh) 实现掩蔽向量指令的***和方法
JP2021515929A (ja) データ処理
US11593114B1 (en) Iterating group sum of multiple accumulate operations
US11347506B1 (en) Memory copy size determining instruction and data transfer instruction
JP4528993B2 (ja) マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法
KR102631214B1 (ko) 대규모 언어 모델 추론을 가속화하기 위한 효율적인 데이터 포워딩 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230606

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231102

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: 20231121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231221

R150 Certificate of patent or registration of utility model

Ref document number: 7410186

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150