JP7419629B2 - データ表現間の一貫性のある変換を加速するプロセッサ、方法、プログラム、コンピュータ可読記憶媒体、および装置 - Google Patents
データ表現間の一貫性のある変換を加速するプロセッサ、方法、プログラム、コンピュータ可読記憶媒体、および装置 Download PDFInfo
- Publication number
- JP7419629B2 JP7419629B2 JP2019091787A JP2019091787A JP7419629B2 JP 7419629 B2 JP7419629 B2 JP 7419629B2 JP 2019091787 A JP2019091787 A JP 2019091787A JP 2019091787 A JP2019091787 A JP 2019091787A JP 7419629 B2 JP7419629 B2 JP 7419629B2
- Authority
- JP
- Japan
- Prior art keywords
- tensor
- blocks
- source
- destination
- bits
- 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
Links
- 238000006243 chemical reaction Methods 0.000 title claims description 38
- 238000000034 method Methods 0.000 title claims description 34
- 230000015654 memory Effects 0.000 claims description 200
- 230000009466 transformation Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 8
- 230000007704 transition Effects 0.000 claims description 6
- 238000013135 deep learning Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 34
- 239000000306 component Substances 0.000 description 20
- 238000007667 floating Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 238000006467 substitution reaction Methods 0.000 description 10
- 239000000872 buffer Substances 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000013519 translation Methods 0.000 description 8
- 230000014616 translation Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000000873 masking effect Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000013501 data transformation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000011343 solid material Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000011232 storage material Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
Description
[例示的なプロセッサアーキテクチャ、命令フォーマット、およびデータタイプ]
[データ表現間の一貫性のある変換を加速する装置および方法]
[他の可能性のある請求項]
(項目1)
ソーステンソルデータ構造のソーステンソルブロックを記憶するための第1ストレージであって、各ソーステンソルブロックは、第1数値表現を含む複数のソーステンソルデータ要素を有し、上記ソーステンソルデータ構造はソーステンソルブロックの事前定義された構造配置を有する、第1ストレージと、
第1テンソル変換命令を復号するためのデコーダと、
上記第1テンソル変換命令の実行に応答して、上記ソーステンソルブロックを、上記第1数値表現とは異なる第2数値表現を含む複数のデスティネーションテンソルデータ要素を有するデスティネーションテンソルブロックに変換するための実行回路であって、上記実行回路は、上記第1数値表現および上記第2数値表現に基づいて指定された順序で1または複数のソーステンソルブロックのセットを1または複数の対応するデスティネーションテンソルブロックに変換し、上記ソーステンソルブロックの上記事前定義された構造配置との一貫性を維持するために、それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶する、実行回路と、
を備えるプロセッサ。
(項目2)
上記デスティネーションテンソルブロックの一部が生成されると、上記デスティネーションテンソルブロックのうち2つ以上が、メモリ内の1または複数のデスティネーションブロックサイズのギャップによって分離される、項目1に記載のプロセッサ。
(項目3)
上記第1数値表現は上記第2数値表現よりも少ないビットを備える、項目1に記載のプロセッサ。
(項目4)
上記実行回路は、各ソーステンソルブロックを複数のデスティネーションテンソルブロックに変換する、項目3に記載のプロセッサ。
(項目5)
上記実行回路は、N個のソーステンソルブロックを2N個または4N個のデスティネーションテンソルブロックに変換する、項目4に記載のプロセッサ。
(項目6)
上記第1数値表現は上記第2数値表現よりも多くのビットを備える、項目1に記載のプロセッサ。
(項目7)
上記実行回路は、複数のソーステンソルブロックを各デスティネーションテンソルブロックに変換する、項目6に記載のプロセッサ。
(項目8)
上記実行回路は、N個のソーステンソルブロックをN/2個またはN/4個のデスティネーションテンソルブロックに変換する、項目7に記載のプロセッサ。
(項目9)
ソーステンソルデータ構造のソーステンソルブロックをフェッチするステップであって、各ソーステンソルブロックは、第1数値表現を含む複数のソーステンソルデータ要素を有し、上記ソーステンソルデータ構造はソーステンソルブロックの事前定義された構造配置を有する、ステップと、
1または複数の上記ソーステンソルブロックを、上記第1数値表現とは異なる第2数値表現を含む複数のデスティネーションテンソルデータ要素を有する1または複数のデスティネーションテンソルブロックに変換するステップであって、上記1または複数のソーステンソルブロックのセットは、上記第1数値表現および上記第2数値表現に基づいて指定された順序で1または複数の対応するデスティネーションテンソルブロックに変換される、ステップと、
上記ソーステンソルブロックの上記事前定義された構造配置との一貫性を維持するために、それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶するステップと、
を備える方法。
(項目10)
上記デスティネーションテンソルブロックの一部が生成されると、上記デスティネーションテンソルブロックのうち2つ以上が、メモリ内の1または複数のデスティネーションブロックサイズのギャップによって分離される、項目9に記載の方法。
(項目11)
上記第1数値表現は上記第2数値表現よりも少ないビットを備える、項目9に記載の方法。
(項目12)
各ソーステンソルブロックが複数のデスティネーションテンソルブロックに変換される、項目11に記載の方法。
(項目13)
N個のソーステンソルブロックが2N個または4N個のデスティネーションテンソルブロックに変換される、項目12に記載の方法。
(項目14)
上記第1数値表現は上記第2数値表現よりも多くのビットを備える、項目9に記載の方法。
(項目15)
複数のソーステンソルブロックが各デスティネーションテンソルブロックに変換される、項目14に記載の方法。
(項目16)
N個のソーステンソルブロックがN/2個またはN/4個のデスティネーションテンソルブロックに変換される、項目15に記載の方法。
(項目17)
機械によって実行されると、
ソーステンソルデータ構造のソーステンソルブロックをフェッチするオペレーションであって、各ソーステンソルブロックは、第1数値表現を含む複数のソーステンソルデータ要素を有し、上記ソーステンソルデータ構造はソーステンソルブロックの事前定義された構造配置を有する、オペレーションと、
1または複数の上記ソーステンソルブロックを、上記第1数値表現とは異なる第2数値表現を含む複数のデスティネーションテンソルデータ要素を有する1または複数のデスティネーションテンソルブロックに変換するオペレーションであって、上記1または複数のソーステンソルブロックのセットは、上記第1数値表現および上記第2数値表現に基づいて指定された順序で1または複数の対応するデスティネーションテンソルブロックに変換される、オペレーションと、
上記ソーステンソルブロックの上記事前定義された構造配置との一貫性を維持するために、それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶するオペレーションと、
を上記機械に実行させる、プログラムコードを記憶した機械可読媒体。
(項目18)
上記デスティネーションテンソルブロックの一部が生成されると、上記デスティネーションテンソルブロックのうち2つ以上が、メモリ内の1または複数のデスティネーションブロックサイズのギャップによって分離される、項目17に記載の機械可読媒体。
(項目19)
上記第1数値表現は上記第2数値表現よりも少ないビットを備える、項目17に記載の機械可読媒体。
(項目20)
各ソーステンソルブロックが複数のデスティネーションテンソルブロックに変換される、項目19に記載の機械可読媒体。
(項目21)
N個のソーステンソルブロックが2N個または4N個のデスティネーションテンソルブロックに変換される、項目20に記載の機械可読媒体。
(項目22)
上記第1数値表現は上記第2数値表現よりも多くのビットを備える、項目17に記載の機械可読媒体。
(項目23)
複数のソーステンソルブロックが各デスティネーションテンソルブロックに変換される、項目22に記載の機械可読媒体。
(項目24)
N個のソーステンソルブロックがN/2個またはN/4個のデスティネーションテンソルブロックに変換される、項目23に記載の機械可読媒体。
Claims (15)
- 複数のソーステンソルブロックを含むソーステンソルデータ構造を記憶するための第1ストレージであって、各ソーステンソルブロックは、第1ビット数で表現される第1数値表現を含む複数のソーステンソルデータ要素を有し、前記ソーステンソルデータ構造は、複数のソーステンソルブロックの事前定義された構造配置を有する、第1ストレージと、
第1テンソル変換命令を復号するためのデコーダと、
前記第1テンソル変換命令の実行に応答して、前記複数のソーステンソルブロックを、前記第1ビット数とは異なる第2ビット数で表現される第2数値表現を含む複数のデスティネーションテンソルデータ要素を有する複数のデスティネーションテンソルブロックに変換するための実行回路であって、前記実行回路は、前記複数のソーステンソルブロックの前記事前定義された構造配置との一貫性を維持するために、前記第1ビット数および前記第2ビット数の比率に応じて1つのソーステンソルブロックを複数の対応するデスティネーションテンソルブロックに変換し、それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶する、実行回路と、
を備え、
前記第1ビット数は前記第2ビット数の1/2倍であり、
前記実行回路は、1つのソーステンソルブロックを2つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックを2N個のデスティネーションテンソルブロックに変換する、または、1つのソーステンソルブロックを4つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックを4N個のデスティネーションテンソルブロックに変換する、
プロセッサ。 - 前記複数のデスティネーションテンソルブロックの一部が生成されると、前記複数のデスティネーションテンソルブロックのうち2つ以上が、1または複数のデスティネーションブロックサイズのギャップによってメモリ内で分離される、請求項1に記載のプロセッサ。
- 複数のソーステンソルブロックを含むソーステンソルデータ構造を記憶するための第1ストレージであって、各ソーステンソルブロックは、第1ビット数で表現される第1数値表現を含む複数のソーステンソルデータ要素を有し、前記ソーステンソルデータ構造は、複数のソーステンソルブロックの事前定義された構造配置を有する、第1ストレージと、
第1テンソル変換命令を復号するためのデコーダと、
前記第1テンソル変換命令の実行に応答して、前記複数のソーステンソルブロックを、前記第1ビット数とは異なる第2ビット数で表現される第2数値表現を含む複数のデスティネーションテンソルデータ要素を有する複数のデスティネーションテンソルブロックに変換するための実行回路であって、前記実行回路は、前記複数のソーステンソルブロックの前記事前定義された構造配置との一貫性を維持するために、前記第1ビット数および前記第2ビット数の比率に応じて複数のソーステンソルブロックのセットを1つの対応するデスティネーションテンソルブロックに変換し、それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶する、実行回路と、
を備え、
前記第1ビット数は前記第2ビット数の2倍であり、
前記実行回路は、2つのソーステンソルブロックのセットを1つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックをN/2個のデスティネーションテンソルブロックに変換する、または、4つのソーステンソルブロックのセットを1つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックをN/4個のデスティネーションテンソルブロックに変換する、
プロセッサ。 - 前記実行回路は、ディープラーニングの作業が一のフェーズから他のフェーズへ推移するとき、前記複数のソーステンソルブロックを前記複数のデスティネーションテンソルブロックに変換する、請求項1から3のいずれか一項に記載のプロセッサ。
- 複数のソーステンソルブロックを含むソーステンソルデータ構造をフェッチするステップであって、各ソーステンソルブロックは、第1ビット数で表現される第1数値表現を含む複数のソーステンソルデータ要素を有し、前記ソーステンソルデータ構造は、複数のソーステンソルブロックの事前定義された構造配置を有する、ステップと、
前記複数のソーステンソルブロックを、前記第1ビット数とは異なる第2ビット数で表現される第2数値表現を含む複数のデスティネーションテンソルデータ要素を有する複数のデスティネーションテンソルブロックに変換するステップであって、前記複数のソーステンソルブロックの前記事前定義された構造配置との一貫性を維持するために、1つのソーステンソルブロックが、前記第1ビット数および前記第2ビット数の比率に応じて複数の対応するデスティネーションテンソルブロックに変換される、ステップと、
それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶するステップと、
を備え、
前記第1ビット数は前記第2ビット数の1/2倍であり、
前記変換するステップは、1つのソーステンソルブロックを2つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックを2N個のデスティネーションテンソルブロックに変換する、または、1つのソーステンソルブロックを4つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックを4N個のデスティネーションテンソルブロックに変換する、
方法。 - 前記複数のデスティネーションテンソルブロックの一部が生成されると、前記複数のデスティネーションテンソルブロックのうち2つ以上が、1または複数のデスティネーションブロックサイズのギャップによってメモリ内で分離される、請求項5に記載の方法。
- 複数のソーステンソルブロックを含むソーステンソルデータ構造をフェッチするステップであって、各ソーステンソルブロックは、第1ビット数で表現される第1数値表現を含む複数のソーステンソルデータ要素を有し、前記ソーステンソルデータ構造は、複数のソーステンソルブロックの事前定義された構造配置を有する、ステップと、
前記複数のソーステンソルブロックを、前記第1ビット数とは異なる第2ビット数で表現される第2数値表現を含む複数のデスティネーションテンソルデータ要素を有する複数のデスティネーションテンソルブロックに変換するステップであって、前記複数のソーステンソルブロックの前記事前定義された構造配置との一貫性を維持するために、複数のソーステンソルブロックのセットが、前記第1ビット数および前記第2ビット数の比率に応じて1つの対応するデスティネーションテンソルブロックに変換される、ステップと、
それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶するステップと、
を備え、
前記第1ビット数は前記第2ビット数の2倍であり、
前記変換するステップは、2つのソーステンソルブロックのセットを1つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックをN/2個のデスティネーションテンソルブロックに変換する、または、4つのソーステンソルブロックのセットを1つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックをN/4個のデスティネーションテンソルブロックに変換する、
方法。 - 前記変換するステップは、ディープラーニングの作業が一のフェーズから他のフェーズへ推移するとき、前記複数のソーステンソルブロックを前記複数のデスティネーションテンソルブロックに変換する、請求項5から7のいずれか一項に記載の方法。
- 複数のソーステンソルブロックを含むソーステンソルデータ構造をフェッチするオペレーションであって、各ソーステンソルブロックは、第1ビット数で表現される第1数値表現を含む複数のソーステンソルデータ要素を有し、前記ソーステンソルデータ構造は、複数のソーステンソルブロックの事前定義された構造配置を有する、オペレーションと、
前記複数のソーステンソルブロックを、前記第1ビット数とは異なる第2ビット数で表現される第2数値表現を含む複数のデスティネーションテンソルデータ要素を有する複数のデスティネーションテンソルブロックに変換するオペレーションであって、前記複数のソーステンソルブロックの前記事前定義された構造配置との一貫性を維持するために、1つのソーステンソルブロックが、前記第1ビット数および前記第2ビット数の比率に応じて複数の対応するデスティネーションテンソルブロックに変換される、オペレーションと、
それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶するオペレーションと、
を機械に実行させるためのプログラムであって、
前記第1ビット数は前記第2ビット数の1/2倍であり、
前記変換するオペレーションは、1つのソーステンソルブロックを2つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックを2N個のデスティネーションテンソルブロックに変換する、または、1つのソーステンソルブロックを4つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックを4N個のデスティネーションテンソルブロックに変換する、
プログラム。 - 前記複数のデスティネーションテンソルブロックの一部が生成されると、前記複数のデスティネーションテンソルブロックのうち2つ以上が、1または複数のデスティネーションブロックサイズのギャップによってメモリ内で分離される、請求項9に記載のプログラム。
- 複数のソーステンソルブロックを含むソーステンソルデータ構造をフェッチするオペレーションであって、各ソーステンソルブロックは、第1ビット数で表現される第1数値表現を含む複数のソーステンソルデータ要素を有し、前記ソーステンソルデータ構造は、複数のソーステンソルブロックの事前定義された構造配置を有する、オペレーションと、
前記複数のソーステンソルブロックを、前記第1ビット数とは異なる第2ビット数で表現される第2数値表現を含む複数のデスティネーションテンソルデータ要素を有する複数のデスティネーションテンソルブロックに変換するオペレーションであって、前記複数のソーステンソルブロックの前記事前定義された構造配置との一貫性を維持するために、複数のソーステンソルブロックのセットが、前記第1ビット数および前記第2ビット数の比率に応じて1つの対応するデスティネーションテンソルブロックに変換される、オペレーションと、
それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶するオペレーションと、
を機械に実行させるためのプログラムであって、
前記第1ビット数は前記第2ビット数の2倍であり、
前記変換するオペレーションは、2つのソーステンソルブロックのセットを1つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックをN/2個のデスティネーションテンソルブロックに変換する、または、4つのソーステンソルブロックのセットを1つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックをN/4個のデスティネーションテンソルブロックに変換する、
プログラム。 - 前記変換するオペレーションは、ディープラーニングの作業が一のフェーズから他のフェーズへ推移するとき、前記複数のソーステンソルブロックを前記複数のデスティネーションテンソルブロックに変換する、請求項9から11のいずれか一項に記載のプログラム。
- 請求項9から12のいずれか一項に記載のプログラムを記憶するコンピュータ可読記憶媒体。
- 複数のソーステンソルブロックを含むソーステンソルデータ構造をフェッチする手段であって、各ソーステンソルブロックは、第1ビット数で表現される第1数値表現を含む複数のソーステンソルデータ要素を有し、前記ソーステンソルデータ構造は、複数のソーステンソルブロックの事前定義された構造配置を有する、手段と、
前記複数のソーステンソルブロックを、前記第1ビット数とは異なる第2ビット数で表現される第2数値表現を含む複数のデスティネーションテンソルデータ要素を有する複数のデスティネーションテンソルブロックに変換する手段であって、前記複数のソーステンソルブロックの前記事前定義された構造配置との一貫性を維持するために、1つのソーステンソルブロックが、前記第1ビット数および前記第2ビット数の比率に応じて複数の対応するデスティネーションテンソルブロックに変換される、手段と、
それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶する手段と、
を備え、
前記第1ビット数は前記第2ビット数の1/2倍であり、
前記変換する手段は、1つのソーステンソルブロックを2つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックを2N個のデスティネーションテンソルブロックに変換する、または、1つのソーステンソルブロックを4つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックを4N個のデスティネーションテンソルブロックに変換する、
装置。 - 複数のソーステンソルブロックを含むソーステンソルデータ構造をフェッチする手段であって、各ソーステンソルブロックは、第1ビット数で表現される第1数値表現を含む複数のソーステンソルデータ要素を有し、前記ソーステンソルデータ構造は、複数のソーステンソルブロックの事前定義された構造配置を有する、手段と、
前記複数のソーステンソルブロックを、前記第1ビット数とは異なる第2ビット数で表現される第2数値表現を含む複数のデスティネーションテンソルデータ要素を有する複数のデスティネーションテンソルブロックに変換する手段であって、前記複数のソーステンソルブロックの前記事前定義された構造配置との一貫性を維持するために、複数のソーステンソルブロックのセットが、前記第1ビット数および前記第2ビット数の比率に応じて1つの対応するデスティネーションテンソルブロックに変換される、手段と、
それぞれのデスティネーションテンソルブロックを指示されたメモリ領域に記憶する手段と、
を備え、
前記第1ビット数は前記第2ビット数の2倍であり、
前記変換する手段は、2つのソーステンソルブロックのセットを1つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックをN/2個のデスティネーションテンソルブロックに変換する、または、4つのソーステンソルブロックのセットを1つの対応するデスティネーションテンソルブロックに変換することによってN個のソーステンソルブロックをN/4個のデスティネーションテンソルブロックに変換する、
装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/024,812 US10761757B2 (en) | 2018-06-30 | 2018-06-30 | Apparatus and method for coherent, accelerated conversion between data representations |
US16/024,812 | 2018-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020004394A JP2020004394A (ja) | 2020-01-09 |
JP7419629B2 true JP7419629B2 (ja) | 2024-01-23 |
Family
ID=65229402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019091787A Active JP7419629B2 (ja) | 2018-06-30 | 2019-05-15 | データ表現間の一貫性のある変換を加速するプロセッサ、方法、プログラム、コンピュータ可読記憶媒体、および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10761757B2 (ja) |
EP (1) | EP3588282A3 (ja) |
JP (1) | JP7419629B2 (ja) |
KR (1) | KR20200002606A (ja) |
CN (1) | CN110659129A (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111695682B (zh) * | 2019-03-15 | 2022-11-01 | 上海寒武纪信息科技有限公司 | 数据处理方法及装置 |
US20200311613A1 (en) * | 2019-03-29 | 2020-10-01 | Microsoft Technology Licensing, Llc | Connecting machine learning methods through trainable tensor transformers |
KR102611169B1 (ko) * | 2019-04-04 | 2023-12-06 | 캠브리콘 테크놀로지스 코퍼레이션 리미티드 | 데이터 처리 장치 및 관련 제품 |
US11687336B2 (en) * | 2020-05-08 | 2023-06-27 | Black Sesame Technologies Inc. | Extensible multi-precision data pipeline for computing non-linear and arithmetic functions in artificial neural networks |
US11275671B2 (en) | 2020-07-27 | 2022-03-15 | Huawei Technologies Co., Ltd. | Systems, methods and media for dynamically shaped tensors using liquid types |
WO2023000136A1 (zh) * | 2021-07-19 | 2023-01-26 | 华为技术有限公司 | 数据格式转换装置及方法 |
EP4318226A1 (en) * | 2022-08-03 | 2024-02-07 | Intel Corporation | Instructions to convert from fp8 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030063805A1 (en) | 2001-09-25 | 2003-04-03 | Lecoutre Cedric Arnaud | Method of converting coded video data |
US20100241824A1 (en) | 2009-03-18 | 2010-09-23 | International Business Machines Corporation | Processing array data on simd multi-core processor architectures |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL147736A0 (en) * | 1999-07-20 | 2002-08-14 | Inmentia Inc | Method and system for organizing data |
US9779786B1 (en) | 2016-10-26 | 2017-10-03 | Xilinx, Inc. | Tensor operations and acceleration |
US10643297B2 (en) * | 2017-05-05 | 2020-05-05 | Intel Corporation | Dynamic precision management for integer deep learning primitives |
US11645493B2 (en) * | 2018-05-04 | 2023-05-09 | Microsoft Technology Licensing, Llc | Flow for quantized neural networks |
-
2018
- 2018-06-30 US US16/024,812 patent/US10761757B2/en active Active
-
2019
- 2019-05-15 JP JP2019091787A patent/JP7419629B2/ja active Active
- 2019-05-27 KR KR1020190061957A patent/KR20200002606A/ko unknown
- 2019-05-29 EP EP19177465.2A patent/EP3588282A3/en not_active Withdrawn
- 2019-05-30 CN CN201910463138.8A patent/CN110659129A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030063805A1 (en) | 2001-09-25 | 2003-04-03 | Lecoutre Cedric Arnaud | Method of converting coded video data |
JP2003125404A (ja) | 2001-09-25 | 2003-04-25 | Koninkl Philips Electronics Nv | 符号化されたビデオ・データの変換方法 |
US20100241824A1 (en) | 2009-03-18 | 2010-09-23 | International Business Machines Corporation | Processing array data on simd multi-core processor architectures |
Also Published As
Publication number | Publication date |
---|---|
EP3588282A3 (en) | 2020-04-29 |
EP3588282A2 (en) | 2020-01-01 |
JP2020004394A (ja) | 2020-01-09 |
US20190042094A1 (en) | 2019-02-07 |
KR20200002606A (ko) | 2020-01-08 |
CN110659129A (zh) | 2020-01-07 |
US10761757B2 (en) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12039336B2 (en) | Packed data element predication processors, methods, systems, and instructions | |
JP7416393B2 (ja) | テンソル並べ替えエンジンのための装置および方法 | |
US10372449B2 (en) | Packed data operation mask concatenation processors, methods, systems, and instructions | |
JP7419629B2 (ja) | データ表現間の一貫性のある変換を加速するプロセッサ、方法、プログラム、コンピュータ可読記憶媒体、および装置 | |
JP6238497B2 (ja) | プロセッサ、方法、及びシステム | |
KR101679111B1 (ko) | 연산 마스크들의 마스킹되지 않는 요소들을 통합하기 위한 프로세서들, 방법들, 시스템들, 및 명령어들 | |
US10929143B2 (en) | Method and apparatus for efficient matrix alignment in a systolic array | |
US20200183688A1 (en) | Packed data operation mask shift processors, methods, systems, and instructions | |
CN107918546B (zh) | 利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统 | |
US20190205137A1 (en) | Methods and apparatus for multi-load and multi-store vector instructions | |
US9760371B2 (en) | Packed data operation mask register arithmetic combination processors, methods, systems, and instructions | |
JP6741006B2 (ja) | マスクレジスタとベクトルレジスタとの間で可変に拡張するための方法および装置 | |
CN111752608A (zh) | 用于控制复数乘法累加电路的设备和方法 | |
US11249755B2 (en) | Vector instructions for selecting and extending an unsigned sum of products of words and doublewords for accumulation | |
US20150186136A1 (en) | Systems, apparatuses, and methods for expand and compress | |
EP2889756A1 (en) | Systems, apparatuses, and methods for vector bit test | |
US10095517B2 (en) | Apparatus and method for retrieving elements from a linked structure | |
US9207942B2 (en) | Systems, apparatuses,and methods for zeroing of bits in a data element |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220509 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230613 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230912 |
|
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: 20231212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231218 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7419629 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |