JP2011514598A - 効率的な同期および並列リダクション演算を可能にするベクトル命令 - Google Patents
効率的な同期および並列リダクション演算を可能にするベクトル命令 Download PDFInfo
- Publication number
- JP2011514598A JP2011514598A JP2010548946A JP2010548946A JP2011514598A JP 2011514598 A JP2011514598 A JP 2011514598A JP 2010548946 A JP2010548946 A JP 2010548946A JP 2010548946 A JP2010548946 A JP 2010548946A JP 2011514598 A JP2011514598 A JP 2011514598A
- Authority
- JP
- Japan
- Prior art keywords
- mask
- simd
- data elements
- vector
- instruction
- 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
- 230000009467 reduction Effects 0.000 title description 25
- 230000001360 synchronised effect Effects 0.000 title description 2
- 230000004044 response Effects 0.000 claims abstract 4
- 230000015654 memory Effects 0.000 claims description 53
- 238000000034 method Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/40—Image enhancement or restoration by the use of histogram techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/40—Picture signal circuits
- H04N1/407—Control or modification of tonal gradation or of extreme levels, e.g. background level
- H04N1/4072—Control or modification of tonal gradation or of extreme levels, e.g. background level dependent on the contents of the original
- H04N1/4074—Control or modification of tonal gradation or of extreme levels, e.g. background level dependent on the contents of the original using histograms
Abstract
Description
vgather base, Addr, Dst
これは、VLEN個のデータ要素を、VLEN個(必ずしも連続的でなく、可能性としては重複がある)のメモリ位置から収集させる。それらのメモリ位置のアドレスはbaseおよびAddr(base[Addr[0]],…,base[Addr[VLEN−1]])から計算され、宛先(destination)Dstに連続的に記憶される。AddrおよびDstはメモリ内、あるいはSIMDレジスタ内のいずれかにあることができる。
vscatter base, Addr, Src
この命令は、ソースSrcからのVLEN個の連続的なデータ要素をVLEN個(必ずしも連続的ではないが一意的)のメモリ位置に分散させる。それらのメモリ位置のアドレスは、アドレス・オペランドAddrに記憶されている。vgather命令の場合と同様、AddrおよびSrcはメモリ内またはSIMDレジスタ内のいずれかにあることができる。
vscattercondは次の外的振る舞いをもつべきである。
初期状態(「‐」はどうでもいい値を表す)、SC=Shuffle_Controlはスカラー・オペランドだが、ここでは理解の簡単のためベクトルとして表している。
Claims (15)
- 第一のベクトル命令、各アドレスが複数のデータ要素をもつベクトルの対応するデータ要素を有する記憶位置へのアドレスである複数のアドレスおよび前記ベクトルに関連付けられたマスク情報を受け取り、前記マスク情報によって示されるように前記複数のアドレスの各アドレスに対応する記憶位置から取得されたデータ要素をロードし、それらの記憶位置をその後の動作のためにリザーブする論理を有する、
プロセッサ。 - 前記論理は、取得が成功しなかったデータ要素のそれぞれに対応する無効インジケータをもって前記マスク情報を更新する、請求項1記載のプロセッサ。
- 前記論理は、取得が成功したデータ要素に対応する、前記複数のデータ要素の部分集合をロードし、リザーブする、請求項2記載のプロセッサ。
- 請求項1記載のプロセッサであって、前記論理は、第二のベクトル命令、各アドレスが前記ベクトルの対応するデータ要素を有する記憶位置へのアドレスである第二の複数のアドレスおよび第二のマスク情報を受け取り、ソース記憶装置からのデータ要素を、前記第二のマスク情報によって示されるように前記第二の複数のアドレスの各アドレスに対応する記憶位置に、その記憶位置がまだリザーブされている場合に、条件付きで書き込む、プロセッサ。
- 前記論理は、もはやリザーブされていなかった記憶位置のそれぞれに対応する無効インジケータをもって、前記第二のマスク情報からの出力マスクを生成する、請求項4記載のプロセッサ。
- 単一の命令に応答して複数のデータ要素に対して動作を実行する単一命令複数データ(SIMD)ユニットと;
前記SIMDユニットに前記複数のデータ要素を与えるよう前記SIMDユニットに結合された制御ユニットとを有する装置であって、前記制御ユニットは、第一のマスクのもとで実行される第一のSIMD命令および第二のマスクのもとで実行される第二のSIMD命令に応答して前記複数のデータ要素の少なくともいくつかに対して原子的なSIMD動作が実行されることを可能にする、装置。 - 前記第一のSIMD命令が、前記第一のマスクに対応する入力マスクに従って、第一の諸メモリ位置から前記複数のデータ要素を取得し、前記第一の諸メモリ位置をリザーブする、請求項6記載の装置。
- 前記第二のSIMD命令が、前記第二のマスクに対応する入力マスクに従って、ソース位置からの第二の複数のデータ要素をリザーブされている前記第一の諸メモリ位置に記憶し、前記第一のSIMD命令が前記第二のマスクの生成を引き起こす、請求項7記載の装置。
- 前記制御ユニットが、第二の複数のデータ要素を有する第二のベクトルを比較して、同じ値をもつデータ要素の群を示すシャッフル・コントロールを出力し、一意的でないデータ要素を示すために第三のマスクのインジケータを設定する第三のSIMD命令を前記SIMDユニットが実行することを可能にする、請求項6記載の装置。
- 前記制御ユニットが、第三の複数のデータ要素を有する第三のベクトルの同一の要素の計数値を生成して、各一意的な要素についての計数値を宛先記憶装置に記憶し、さらに各一意的な要素を示す第四のマスクのインジケータを書き込む第四のSIMD命令を前記SIMDユニットが実行することを可能にする、請求項6記載の装置。
- プロセッサと;
前記プロセッサに結合された動的ランダム・アクセス・メモリ(DRAM)とを有するシステムであって、
前記プロセッサは、第一のマスクに従って、ベクトルのデータ要素の少なくとも部分集合を、対応する複数の、可能性としては非連続的なソース位置から取得して、前記部分集合の前記可能性としては非連続的なソース位置をその後の動作のためにリザーブする第一の単一命令複数データ(SIMD)命令を実行し、前記データ要素の部分集合を使って原子的なSIMD動作を実行し、第二のマスクに従って、データ要素の少なくとも第二の部分集合を、前記対応する複数の、可能性としては非連続的なソース位置に書き込む第二のSIMD命令を実行する論理を含む、
システム。 - 前記プロセッサは、データ要素の前記第二の部分集合を、前記対応する、可能性としては非連続的なソース位置のうちでいまだリザーブされている位置に書き込むよう前記第二のSIMD命令を実行する、請求項11記載のシステム。
- 前記プロセッサは、取得が成功しなかったデータ要素のそれぞれに対応する無効インジケータをもって前記第一のマスクを更新する、請求項11記載のシステム。
- 前記プロセッサが、第二の複数のデータ要素を有する第二のベクトルを解析し、同じ値をもつ前記第二の複数のデータ要素の群を示すシャッフル・コントロールを出力し、一意的でないデータ要素を示すために第三のマスクのインジケータを設定する第三のSIMD命令を実行する、請求項11記載のシステム。
- 前記プロセッサが、第三の複数のデータ要素を有する第三のベクトルの同一の要素の計数値を生成して、各一意的な要素についての計数値を宛先記憶装置に記憶する第四のSIMD命令を実行する、請求項11記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/079,774 US9513905B2 (en) | 2008-03-28 | 2008-03-28 | Vector instructions to enable efficient synchronization and parallel reduction operations |
US12/079,774 | 2008-03-28 | ||
PCT/US2009/038596 WO2009120981A2 (en) | 2008-03-28 | 2009-03-27 | Vector instructions to enable efficient synchronization and parallel reduction operations |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014001279A Division JP5902209B2 (ja) | 2008-03-28 | 2014-01-07 | 効率的な同期および並列リダクション演算を可能にするベクトル命令 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011514598A true JP2011514598A (ja) | 2011-05-06 |
JP5455936B2 JP5455936B2 (ja) | 2014-03-26 |
Family
ID=41114780
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010548946A Expired - Fee Related JP5455936B2 (ja) | 2008-03-28 | 2009-03-27 | 効率的な同期および並列リダクション演算を可能にするベクトル命令 |
JP2014001279A Active JP5902209B2 (ja) | 2008-03-28 | 2014-01-07 | 効率的な同期および並列リダクション演算を可能にするベクトル命令 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014001279A Active JP5902209B2 (ja) | 2008-03-28 | 2014-01-07 | 効率的な同期および並列リダクション演算を可能にするベクトル命令 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9513905B2 (ja) |
JP (2) | JP5455936B2 (ja) |
CN (2) | CN101978350B (ja) |
DE (1) | DE112009000741B4 (ja) |
WO (1) | WO2009120981A2 (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014526757A (ja) * | 2011-09-26 | 2014-10-06 | インテル・コーポレーション | ベクトル散乱演算機能及びベクトル収集演算機能を提供する命令及びロジック |
JP2014526758A (ja) * | 2011-09-26 | 2014-10-06 | インテル・コーポレーション | ストライド機能を有するベクトルロード演算/ストア演算を提供する命令及びロジック |
JP2014530429A (ja) * | 2011-09-23 | 2014-11-17 | クアルコム,インコーポレイテッド | トランザクションメモリ動作を実行するように構成されたプロセッサ |
JP2016157479A (ja) * | 2016-05-02 | 2016-09-01 | インテル・コーポレーション | ベクトル散乱演算機能及びベクトル収集演算機能を提供する命令及びロジック |
WO2016136197A1 (ja) * | 2015-02-25 | 2016-09-01 | 日本電気株式会社 | データ処理装置、データ処理方法及び記録媒体 |
JP2016527650A (ja) * | 2013-08-06 | 2016-09-08 | インテル・コーポレーション | ベクトルポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック |
JP2016529617A (ja) * | 2013-08-06 | 2016-09-23 | インテル・コーポレーション | ゲノム配列決定および配列比較のためのポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック |
US9477465B2 (en) | 2012-11-27 | 2016-10-25 | Fujitsu Limited | Arithmetic processing apparatus, control method of arithmetic processing apparatus, and a computer-readable storage medium storing a control program for controlling an arithmetic processing apparatus |
JP2020529658A (ja) * | 2017-08-01 | 2020-10-08 | エイアールエム リミテッド | データ処理装置におけるデータ項目内のカウント要素 |
JP7006858B1 (ja) * | 2020-03-18 | 2022-01-24 | 日本電気株式会社 | 情報処理装置及び情報処理方法 |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327115B2 (en) | 2006-04-12 | 2012-12-04 | Soft Machines, Inc. | Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode |
CN107368285B (zh) | 2006-11-14 | 2020-10-09 | 英特尔公司 | 多线程架构 |
US20090138680A1 (en) * | 2007-11-28 | 2009-05-28 | Johnson Timothy J | Vector atomic memory operations |
US9513905B2 (en) * | 2008-03-28 | 2016-12-06 | Intel Corporation | Vector instructions to enable efficient synchronization and parallel reduction operations |
US8904153B2 (en) | 2010-09-07 | 2014-12-02 | International Business Machines Corporation | Vector loads with multiple vector elements from a same cache line in a scattered load operation |
EP3156896B1 (en) | 2010-09-17 | 2020-04-08 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
CN102004672B (zh) * | 2010-11-25 | 2012-12-05 | 中国人民解放军国防科学技术大学 | 一种可配置归约目标自增间隔的归约装置 |
US8688957B2 (en) * | 2010-12-21 | 2014-04-01 | Intel Corporation | Mechanism for conflict detection using SIMD |
US8972698B2 (en) | 2010-12-22 | 2015-03-03 | Intel Corporation | Vector conflict instructions |
KR101826121B1 (ko) | 2011-03-25 | 2018-02-06 | 인텔 코포레이션 | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 |
US9766893B2 (en) | 2011-03-25 | 2017-09-19 | Intel Corporation | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
WO2012135041A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN103460178B (zh) * | 2011-03-30 | 2017-05-31 | 英特尔公司 | 包括掩码上的数学操作的simd整数加法 |
US20120254591A1 (en) * | 2011-04-01 | 2012-10-04 | Hughes Christopher J | Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements |
CN102156637A (zh) * | 2011-05-04 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 向量交叉多线程处理方法及向量交叉多线程微处理器 |
CN107729267B (zh) | 2011-05-20 | 2022-01-25 | 英特尔公司 | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 |
TWI548994B (zh) | 2011-05-20 | 2016-09-11 | 軟體機器公司 | 以複數個引擎支援指令序列的執行之互連結構 |
US8521705B2 (en) * | 2011-07-11 | 2013-08-27 | Dell Products L.P. | Accelerated deduplication |
CN106293631B (zh) * | 2011-09-26 | 2020-04-10 | 英特尔公司 | 用于提供向量分散操作和聚集操作功能的指令和逻辑 |
CN104040492B (zh) * | 2011-11-22 | 2017-02-15 | 索夫特机械公司 | 微处理器加速的代码优化器和依赖性重排序方法 |
US10191746B2 (en) | 2011-11-22 | 2019-01-29 | Intel Corporation | Accelerated code optimizer for a multiengine microprocessor |
KR101703400B1 (ko) | 2011-11-22 | 2017-02-06 | 소프트 머신즈, 인크. | 마이크로프로세서 가속 코드 최적화기 |
US10318291B2 (en) | 2011-11-30 | 2019-06-11 | Intel Corporation | Providing vector horizontal compare functionality within a vector register |
CN105955704B (zh) * | 2011-11-30 | 2018-12-04 | 英特尔公司 | 用于提供向量横向比较功能的指令和逻辑 |
CN103959240B (zh) * | 2011-12-15 | 2017-05-17 | 英特尔公司 | 使用混洗表和掩码存储表经由矢量指令优化程序循环的方法 |
WO2013095592A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Apparatus and method for vector compute and accumulate |
CN104040489B (zh) * | 2011-12-23 | 2016-11-23 | 英特尔公司 | 多寄存器收集指令 |
WO2013095608A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method for vectorization with speculation support |
CN104137054A (zh) * | 2011-12-23 | 2014-11-05 | 英特尔公司 | 用于执行从索引值列表向掩码值的转换的系统、装置和方法 |
CN104137059B (zh) * | 2011-12-23 | 2018-10-09 | 英特尔公司 | 多寄存器分散指令 |
WO2013101132A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions |
EP2798465B1 (en) * | 2011-12-30 | 2018-11-14 | Intel Corporation | Unique packed data element identification processors, methods, systems, and instructions |
US9575753B2 (en) | 2012-03-15 | 2017-02-21 | International Business Machines Corporation | SIMD compare instruction using permute logic for distributed register files |
US9298456B2 (en) * | 2012-08-21 | 2016-03-29 | Apple Inc. | Mechanism for performing speculative predicated instructions |
US9400650B2 (en) * | 2012-09-28 | 2016-07-26 | Intel Corporation | Read and write masks update instruction for vectorization of recursive computations over interdependent data |
US9804839B2 (en) * | 2012-12-28 | 2017-10-31 | Intel Corporation | Instruction for determining histograms |
US10545757B2 (en) * | 2012-12-28 | 2020-01-28 | Intel Corporation | Instruction for determining equality of all packed data elements in a source operand |
US9372692B2 (en) | 2012-12-29 | 2016-06-21 | Intel Corporation | Methods, apparatus, instructions, and logic to provide permute controls with leading zero count functionality |
US9411584B2 (en) * | 2012-12-29 | 2016-08-09 | Intel Corporation | Methods, apparatus, instructions, and logic to provide vector address conflict detection functionality |
US9411592B2 (en) * | 2012-12-29 | 2016-08-09 | Intel Corporation | Vector address conflict resolution with vector population count functionality |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
EP2972836B1 (en) | 2013-03-15 | 2022-11-09 | Intel Corporation | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9639503B2 (en) * | 2013-03-15 | 2017-05-02 | Qualcomm Incorporated | Vector indirect element vertical addressing mode with horizontal permute |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
KR101708591B1 (ko) | 2013-03-15 | 2017-02-20 | 소프트 머신즈, 인크. | 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법 |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9817663B2 (en) | 2013-03-19 | 2017-11-14 | Apple Inc. | Enhanced Macroscalar predicate operations |
US9348589B2 (en) | 2013-03-19 | 2016-05-24 | Apple Inc. | Enhanced predicate registers having predicates corresponding to element widths |
US9552205B2 (en) * | 2013-09-27 | 2017-01-24 | Intel Corporation | Vector indexed memory access plus arithmetic and/or logical operation processors, methods, systems, and instructions |
JP6329412B2 (ja) * | 2014-03-26 | 2018-05-23 | 株式会社メガチップス | Simdプロセッサ |
US20160026607A1 (en) * | 2014-07-25 | 2016-01-28 | Qualcomm Incorporated | Parallelization of scalar operations by vector processors using data-indexed accumulators in vector register files, and related circuits, methods, and computer-readable media |
US20170046156A1 (en) * | 2015-08-14 | 2017-02-16 | Qualcomm Incorporated | Table lookup using simd instructions |
CN105159766B (zh) * | 2015-08-31 | 2018-05-25 | 安一恒通(北京)科技有限公司 | 数据的同步访问方法和同步访问装置 |
WO2017087001A1 (en) * | 2015-11-20 | 2017-05-26 | Hewlett Packard Enterprise Development Lp | Distributed data shuffling |
CN105487839A (zh) * | 2015-11-24 | 2016-04-13 | 无锡江南计算技术研究所 | 一种面向连续不对界向量数据访问的编译优化方法 |
US10152321B2 (en) | 2015-12-18 | 2018-12-11 | Intel Corporation | Instructions and logic for blend and permute operation sequences |
GB2546510B (en) * | 2016-01-20 | 2018-09-26 | Advanced Risc Mach Ltd | Vector atomic memory update instruction |
US10248419B2 (en) * | 2016-03-09 | 2019-04-02 | International Business Machines Corporation | In-memory/register vector radix sort |
US20180005059A1 (en) * | 2016-07-01 | 2018-01-04 | Google Inc. | Statistics Operations On Two Dimensional Image Processor |
US10564964B2 (en) | 2016-08-23 | 2020-02-18 | International Business Machines Corporation | Vector cross-compare count and sequence instructions |
US10810208B2 (en) | 2016-09-12 | 2020-10-20 | Oracle International Corporation | Efficient evaluation of queries with multiple predicate expressions |
CN107844359A (zh) * | 2016-09-20 | 2018-03-27 | 杭州华为数字技术有限公司 | 一种仿真方法及装置 |
GB2554096B (en) * | 2016-09-20 | 2019-03-20 | Advanced Risc Mach Ltd | Handling of inter-element address hazards for vector instructions |
US10474461B2 (en) | 2016-09-22 | 2019-11-12 | Qualcomm Incorporated | Instruction-based synchronization of operations including at least one SIMD scatter operation |
US10268479B2 (en) * | 2016-12-30 | 2019-04-23 | Intel Corporation | Systems, apparatuses, and methods for broadcast compare addition |
CN108416730B (zh) * | 2017-02-09 | 2020-11-10 | 深圳市中兴微电子技术有限公司 | 一种图像处理方法及装置 |
US10360034B2 (en) | 2017-04-18 | 2019-07-23 | Samsung Electronics Co., Ltd. | System and method for maintaining data in a low-power structure |
US10437593B2 (en) * | 2017-04-27 | 2019-10-08 | Nvidia Corporation | Techniques for comprehensively synchronizing execution threads |
US11436010B2 (en) | 2017-06-30 | 2022-09-06 | Intel Corporation | Method and apparatus for vectorizing indirect update loops |
US11675761B2 (en) | 2017-09-30 | 2023-06-13 | Oracle International Corporation | Performing in-memory columnar analytic queries on externally resident data |
US10133573B1 (en) | 2017-12-12 | 2018-11-20 | Google Llc | Multivalue reductions using serial initial reductions in multiple register spaces and parallel subsequent reductions in a single register space |
US10713046B2 (en) * | 2017-12-20 | 2020-07-14 | Exten Technologies, Inc. | System memory controller with atomic operations |
US10831500B2 (en) | 2018-06-10 | 2020-11-10 | International Business Machines Corporation | Adaptive locking in elastic threading systems |
JP7124608B2 (ja) * | 2018-09-28 | 2022-08-24 | 日本電気株式会社 | 計算機および計算方法 |
US10929145B2 (en) * | 2018-12-28 | 2021-02-23 | Intel Corporation | Mask generation using reduction operators and scatter use thereof |
CN112083954A (zh) * | 2019-06-13 | 2020-12-15 | 华夏芯(北京)通用处理器技术有限公司 | 一种gpu中显式独立掩码寄存器的掩码操作方法 |
CN112215986A (zh) * | 2020-09-09 | 2021-01-12 | 苏州工业园区凌志软件股份有限公司 | 一种智能锁的物联网控制系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108699A (ja) * | 1991-10-15 | 1993-04-30 | Hitachi Ltd | 共有データのベクトル処理方法 |
US5872987A (en) * | 1992-08-07 | 1999-02-16 | Thinking Machines Corporation | Massively parallel computer including auxiliary vector processor |
JP2000057111A (ja) * | 1998-08-04 | 2000-02-25 | Hitachi Ltd | 並列処理プロセッサ、および、並列処理方法 |
US7421565B1 (en) * | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
US7627723B1 (en) * | 2006-09-21 | 2009-12-01 | Nvidia Corporation | Atomic memory operators in a parallel processor |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513353A (en) * | 1987-09-30 | 1996-04-30 | Kabushiki Kaisha Toshiba | Cache control system which permanently inhibits local but not global parameter data writes to main memory |
US4953101A (en) | 1987-11-24 | 1990-08-28 | Digital Equipment Corporation | Software configurable memory architecture for data processing system having graphics capability |
JPH09511078A (ja) * | 1993-12-12 | 1997-11-04 | エーエスピー ソルーション ユーエスエイ インコーポレイション | 信号処理方法および装置 |
JPH07271764A (ja) * | 1994-03-24 | 1995-10-20 | Internatl Business Mach Corp <Ibm> | 計算機プロセッサ及びシステム |
JP3179290B2 (ja) * | 1994-07-28 | 2001-06-25 | シャープ株式会社 | ディジタル画像形成装置 |
US5818443A (en) * | 1996-05-06 | 1998-10-06 | Cognex Corporation | Single step coarse registration and inspection of circular objects |
US6865295B2 (en) * | 2001-05-11 | 2005-03-08 | Koninklijke Philips Electronics N.V. | Palette-based histogram matching with recursive histogram vector generation |
US7032082B1 (en) | 2001-08-31 | 2006-04-18 | Juniper Networks, Inc. | Centralized memory allocation with write pointer drift correction |
US20040054877A1 (en) * | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US6944744B2 (en) | 2002-08-27 | 2005-09-13 | Advanced Micro Devices, Inc. | Apparatus and method for independently schedulable functional units with issue lock mechanism in a processor |
US20040236920A1 (en) | 2003-05-20 | 2004-11-25 | Sheaffer Gad S. | Methods and apparatus for gathering and scattering data associated with a single-instruction-multiple-data (SIMD) operation |
CN100502511C (zh) | 2004-09-14 | 2009-06-17 | 华为技术有限公司 | 用于分数像素精度运动预测的插值图像内存组织方法 |
CN101061460B (zh) | 2004-09-21 | 2011-03-30 | Nxp股份有限公司 | 用于混移运算的微处理器设备和方法 |
US7433513B2 (en) * | 2005-01-07 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | Scaling an array of luminace values |
JP2007334563A (ja) | 2006-06-14 | 2007-12-27 | Nec Corp | マスク付きベクトル演算処理装置 |
DE602006006990D1 (de) | 2006-06-28 | 2009-07-09 | St Microelectronics Nv | SIMD-Prozessorarchitektur mit gruppierten Verarbeitungseinheiten |
US20080071851A1 (en) | 2006-09-20 | 2008-03-20 | Ronen Zohar | Instruction and logic for performing a dot-product operation |
US8081823B2 (en) * | 2007-11-20 | 2011-12-20 | Seiko Epson Corporation | Segmenting a string using similarity values |
US9529592B2 (en) * | 2007-12-27 | 2016-12-27 | Intel Corporation | Vector mask memory access instructions to perform individual and sequential memory access operations if an exception occurs during a full width memory access operation |
US9513905B2 (en) * | 2008-03-28 | 2016-12-06 | Intel Corporation | Vector instructions to enable efficient synchronization and parallel reduction operations |
-
2008
- 2008-03-28 US US12/079,774 patent/US9513905B2/en not_active Expired - Fee Related
-
2009
- 2009-03-27 CN CN200980110598.7A patent/CN101978350B/zh active Active
- 2009-03-27 WO PCT/US2009/038596 patent/WO2009120981A2/en active Application Filing
- 2009-03-27 CN CN201410196526.1A patent/CN103970506B/zh active Active
- 2009-03-27 DE DE112009000741.4T patent/DE112009000741B4/de active Active
- 2009-03-27 JP JP2010548946A patent/JP5455936B2/ja not_active Expired - Fee Related
-
2013
- 2013-03-12 US US13/795,234 patent/US9678750B2/en active Active
-
2014
- 2014-01-07 JP JP2014001279A patent/JP5902209B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108699A (ja) * | 1991-10-15 | 1993-04-30 | Hitachi Ltd | 共有データのベクトル処理方法 |
US5872987A (en) * | 1992-08-07 | 1999-02-16 | Thinking Machines Corporation | Massively parallel computer including auxiliary vector processor |
JP2000057111A (ja) * | 1998-08-04 | 2000-02-25 | Hitachi Ltd | 並列処理プロセッサ、および、並列処理方法 |
US7421565B1 (en) * | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
US7627723B1 (en) * | 2006-09-21 | 2009-12-01 | Nvidia Corporation | Atomic memory operators in a parallel processor |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014530429A (ja) * | 2011-09-23 | 2014-11-17 | クアルコム,インコーポレイテッド | トランザクションメモリ動作を実行するように構成されたプロセッサ |
JP2016149164A (ja) * | 2011-09-23 | 2016-08-18 | クアルコム,インコーポレイテッド | トランザクションメモリ動作を実行するように構成されたプロセッサ |
JP2014526758A (ja) * | 2011-09-26 | 2014-10-06 | インテル・コーポレーション | ストライド機能を有するベクトルロード演算/ストア演算を提供する命令及びロジック |
JP2014526757A (ja) * | 2011-09-26 | 2014-10-06 | インテル・コーポレーション | ベクトル散乱演算機能及びベクトル収集演算機能を提供する命令及びロジック |
US9804844B2 (en) | 2011-09-26 | 2017-10-31 | Intel Corporation | Instruction and logic to provide stride-based vector load-op functionality with mask duplication |
US9747101B2 (en) | 2011-09-26 | 2017-08-29 | Intel Corporation | Gather-op instruction to duplicate a mask and perform an operation on vector elements gathered via tracked offset-based gathering |
US9477465B2 (en) | 2012-11-27 | 2016-10-25 | Fujitsu Limited | Arithmetic processing apparatus, control method of arithmetic processing apparatus, and a computer-readable storage medium storing a control program for controlling an arithmetic processing apparatus |
JP2019050039A (ja) * | 2013-08-06 | 2019-03-28 | インテル・コーポレーション | ゲノム配列決定および配列比較のためのポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック |
JP2016529617A (ja) * | 2013-08-06 | 2016-09-23 | インテル・コーポレーション | ゲノム配列決定および配列比較のためのポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック |
JP2016527650A (ja) * | 2013-08-06 | 2016-09-08 | インテル・コーポレーション | ベクトルポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック |
US10223120B2 (en) | 2013-08-06 | 2019-03-05 | Intel Corporation | Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment |
US10678546B2 (en) | 2013-08-06 | 2020-06-09 | Intel Corporation | Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment |
WO2016136197A1 (ja) * | 2015-02-25 | 2016-09-01 | 日本電気株式会社 | データ処理装置、データ処理方法及び記録媒体 |
JP2016157479A (ja) * | 2016-05-02 | 2016-09-01 | インテル・コーポレーション | ベクトル散乱演算機能及びベクトル収集演算機能を提供する命令及びロジック |
JP2020529658A (ja) * | 2017-08-01 | 2020-10-08 | エイアールエム リミテッド | データ処理装置におけるデータ項目内のカウント要素 |
JP7335225B2 (ja) | 2017-08-01 | 2023-08-29 | アーム・リミテッド | データ処理装置におけるデータ項目内のカウント要素 |
JP7006858B1 (ja) * | 2020-03-18 | 2022-01-24 | 日本電気株式会社 | 情報処理装置及び情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140068226A1 (en) | 2014-03-06 |
US20090249026A1 (en) | 2009-10-01 |
CN101978350A (zh) | 2011-02-16 |
DE112009000741T5 (de) | 2012-01-26 |
JP5902209B2 (ja) | 2016-04-13 |
CN103970506A (zh) | 2014-08-06 |
JP5455936B2 (ja) | 2014-03-26 |
DE112009000741B4 (de) | 2023-11-30 |
US9513905B2 (en) | 2016-12-06 |
CN103970506B (zh) | 2017-07-14 |
WO2009120981A2 (en) | 2009-10-01 |
WO2009120981A3 (en) | 2009-12-17 |
US9678750B2 (en) | 2017-06-13 |
CN101978350B (zh) | 2014-06-11 |
JP2014099194A (ja) | 2014-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5902209B2 (ja) | 効率的な同期および並列リダクション演算を可能にするベクトル命令 | |
JP5035277B2 (ja) | 共有メモリに対するアトミックな更新を可能にするロックメカニズム | |
CN107003837B (zh) | 用于推测性编译器优化的轻量级受限事务存储器 | |
JP6159825B2 (ja) | ハードウェアポインタを使用したsimdコア内での分岐ブランチに対するソリューション | |
US9477465B2 (en) | Arithmetic processing apparatus, control method of arithmetic processing apparatus, and a computer-readable storage medium storing a control program for controlling an arithmetic processing apparatus | |
US8583898B2 (en) | System and method for managing processor-in-memory (PIM) operations | |
US20100332765A1 (en) | Hierarchical bloom filters for facilitating concurrency control | |
KR102379894B1 (ko) | 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법 | |
Elteir et al. | Performance characterization and optimization of atomic operations on amd gpus | |
Lemaitre et al. | Cholesky factorization on SIMD multi-core architectures | |
JP5326314B2 (ja) | プロセサおよび情報処理装置 | |
Zhang et al. | GPU-TLS: An efficient runtime for speculative loop parallelization on gpus | |
KR100837400B1 (ko) | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 | |
Villegas et al. | Hardware support for scratchpad memory transactions on GPU architectures | |
Pedrero et al. | A comparative analysis of STM approaches to reduction operations in irregular applications | |
Mogill et al. | A comparison of shared memory parallel programming models | |
Villegas Fernández et al. | Improvements in hardware transactional memory for gpu architectures | |
Feng et al. | Optimistic parallelism on GPUs | |
Che | Accelerating Graph Structural Clustering Algorithms on Heterogeneous Processors | |
Del Barrio | Optimizing Signatures in Hardware Transactional Memory Systems | |
CN115905786A (zh) | 用于加速史密斯-沃特曼序列对齐的技术 | |
Baldassin et al. | A transactional runtime system for the Cell/BE architecture | |
CN115910208A (zh) | 用于在加速史密斯-沃特曼序列对齐时存储子对齐数据的技术 | |
CN115910207A (zh) | 实现用于加速史密斯-沃特曼序列对齐的专用指令 | |
Ballard et al. | GPU Computing for Tensor Eigenvalues. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130314 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130820 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131114 |
|
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: 20131210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140107 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |