JP2023078204A - 複数計算における高スループットのためのシステムおよび方法 - Google Patents
複数計算における高スループットのためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2023078204A JP2023078204A JP2023033382A JP2023033382A JP2023078204A JP 2023078204 A JP2023078204 A JP 2023078204A JP 2023033382 A JP2023033382 A JP 2023033382A JP 2023033382 A JP2023033382 A JP 2023033382A JP 2023078204 A JP2023078204 A JP 2023078204A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- data
- gpu
- axi
- graphics
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 41
- 230000002708 enhancing effect Effects 0.000 claims abstract 2
- 230000008569 process Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/441—Register allocation; Assignment of physical memory space to logical memory space
-
- 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/30098—Register arrangements
-
- 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 or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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 or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
Abstract
Description
Claims (13)
- プロセッシングコアユニット(PCU)(210)、レジスタファイルユニット(220)、複数のキャッシュユニット(230)、シェアドメモリユニット(240)、統合されたキャッシュユニット(250)、およびインタフェースユニット(260)を備えたストリーミングマルチプロセッサユニット(200)を介してグラフィックデータソースとグラフィックプロセッシングユニット(GPU)との間で交換されるグラフィックデータスループットを強化する方法において、前記方法は、
インタフェースキャッシュユニット(256)を介して、および前記複数のキャッシュユニット(230)を介して、および前記統合されたキャッシュユニット(250)を介してグラフィックデータのストリームを前記レジスタファイルユニット(220)へ転送するステップと、
前記レジスタファイルユニットから前記プロセッシングコアユニット(PCU)へグラフィックデータの第2のストリームを転送するステップと、
レジスタファイルユニット(220)を介して、頻繁に使用されるデータ部分をシェアドメモリ(240)に記憶し、および受信するステップと、
を備えた、方法。 - 前記レジスタファイルユニットは、前記PCUにより処理されたデータをそのデータの使用頻度のレベルに基づいて、より多くのデータを記憶することができる限り、前記シェアドメモリへ仕向けるように構成される、請求項1に記載の方法。
- 前記使用頻度のレベルは、前記PCUにより決定される、請求項2に記載の方法。
- グラフィックデータスループットを強化するストリーミングマルチプロセッサユニット(200)において、
グラフィックデータを処理するように構成されたプロセッシングコアユニット(PCU)(200)と、
前記PCUからのグラフィックデータを供給し、前記PCUからの処理されたグラフィックデータを受信し一時的に記憶するように構成されたレジスタファイルユニット(220)と、
前記レジスタファイルユニットからのグラフィックデータを供給し、前記レジスタファイルユニットからの処理されたグラフィックデータを受信し、一時的に記憶するように構成された複数のキャッシュユニット(230)と、
前記レジスタファイルユニットからのグラフィックデータを供給し、前記レジスタファイルユニットから処理されたグラフィックデータを受信して一時的に記憶するように構成されたシェアドメモリユニット(240)と、
前記レジスタファイルユニットからグラフィックデータを供給し、前記レジスタファイルユニットから処理したグラフィックデータを受信して一時記憶するように構成される統合されたキャッシュユニット(250)と、
高速でグラフィック処理のためのグラフィックデータを受信し、前記グラフィックデータをシェアドメモリユニットと統合されたキャッシュユニットの少なくとも1つに供給し、前記統合されたキャッシュユニットから処理されたグラフィックデータを受信し、処理されたグラフィックデータを外部処理ユニットへ供給するように構成されたインタフェースキャッシュユニット(260)と、を備えた、ストリーミングマルチプロセッサユニット(200)。 - 前記グラフィックデータエレメントの少なくともいくつかは、前記PCUによるそれらのクローズコール(close call)の確率に関連づけられた優先度に基づいて、前記PCUによる処理の前に、および/または後に、前記シェアドメモリに記憶される、請求項4に記載のストリーミングマルチプロセッサユニット。、
- 前記優先度は、前記確率が高くなるにつれ高くなる、請求項5に記載のストリーミングマルチプロセッサ。
- データのストリームを受信するように構成され、前記データのストリームを、データの部分に分割し、前記部分の各々を、複数の先入れ先出し(FIFO)レジスタの1つを通過させるように構成された、複数の前記FIFOレジスタを備えたアレイと、
前記データ部分を受信するように構成された、第1のアドバンスト・イクステンシブル・インタフェース(AXI)ユニットと、
を備えたデータ・ストリーム・デバイダ・ユニット(DSDU)(304)と、
前記第1のAXIユニットからデータ部分を受信するように構成された、第2のアドバンスト・イクステンシブル・インタフェース(AXI)ユニットと、
それぞれのFIFOレジスタから各データ部分を受信するように構成され、前記受信したデータ部分を処理するように構成された、複数のストリーミングマルチプロセッサ(SM)と、
を備えたグラフィックプロセッシングユニット(GPU)と、
を備えた未処理データを処理する回路。 - 前記DSDU内のFIFOレジスタは、前記DSDU内の、割り当てられた第1のAXIユニットと、前記GPU内の、割り当てられた第2のAXIユニットを介して前記GPU内の、割り当てられたSMに接続される、請求項7に記載の回路。
- 前記DSDU内の、前記FIFOレジスタの各々は、前記DSDU内の、第2の共通AXIユニット、および前記GPU内の、共通AXIユニットを介して、前記GPU内の、割り当てられたSMに接続される、請求項7に記載の回路。
- 未処理データのストリームを受信するステップと、
前記データを複数のデータ部分に分割するステップと、
データストリームデバイダユニット(DSDU)の特定のFIFOレジスタを介して各データ部分を通過させるステップと、
前記特定のFIFOレジスタからのデータ部分を、処理のためにグラフィックプロセッサユニット(GPU)内の、割り当てられたストリーミングマルチプロセッサ(SM)に転送するステップと、
を備えた大容量のデータを効率的に処理する方法。 - 前記データ部分は、前記DSU内の、第1のアドバンスト・イクステンシブル・インタフェース(AXI)ユニットと、前記GPU内の、第2のアドバンスト・イクステンシブル・インタフェース(AXI)ユニットを介して転送される、請求項10に記載の方法。
- 特定のFIFOレジスタから受信したデータ部分は、前記DSDU内の、割り当てられた第1のAXIユニットと、前記GPU内の、割り当てられた第2のAXIユニットを介して前記GPU内の、割り当てられたSMに転送される、請求項11に記載の方法。
- FIFOレジスタから受信した前記データ部分の各々は、前記DSDU内の、共通の第1のAXIユニットと、前記GPU内の、共通の第2のAXIユニットを介して、前記GPU内の、前記割り当てられたSMに転送される、請求項11に記載の方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762552475P | 2017-08-31 | 2017-08-31 | |
US62/552,475 | 2017-08-31 | ||
PCT/IL2018/050965 WO2019043710A1 (en) | 2017-08-31 | 2018-08-30 | SYSTEM AND METHOD FOR IMPROVING FLOW IN NUMEROUS CALCULATIONS |
JP2020512508A JP2020532795A (ja) | 2017-08-31 | 2018-08-30 | 複数計算における高スループットのためのシステムおよび方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020512508A Division JP2020532795A (ja) | 2017-08-31 | 2018-08-30 | 複数計算における高スループットのためのシステムおよび方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023078204A true JP2023078204A (ja) | 2023-06-06 |
Family
ID=65527276
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020512508A Pending JP2020532795A (ja) | 2017-08-31 | 2018-08-30 | 複数計算における高スループットのためのシステムおよび方法 |
JP2023033382A Pending JP2023078204A (ja) | 2017-08-31 | 2023-03-06 | 複数計算における高スループットのためのシステムおよび方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020512508A Pending JP2020532795A (ja) | 2017-08-31 | 2018-08-30 | 複数計算における高スループットのためのシステムおよび方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10942746B2 (ja) |
EP (1) | EP3676710A4 (ja) |
JP (2) | JP2020532795A (ja) |
WO (1) | WO2019043710A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11204819B2 (en) * | 2018-12-21 | 2021-12-21 | Samsung Electronics Co., Ltd. | System and method for offloading application functions to a device |
US20220147320A1 (en) * | 2020-11-09 | 2022-05-12 | Vizzio Technologies Pte Ltd | Highly parallel processing system |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0258153A (ja) * | 1988-08-24 | 1990-02-27 | Mitsubishi Electric Corp | 情報処理装置 |
JP2001134490A (ja) * | 1999-11-01 | 2001-05-18 | Fujitsu Ltd | キャッシュメモリの制御方法及びその方法を実現する計算機 |
JP4043225B2 (ja) * | 2001-12-10 | 2008-02-06 | 株式会社ルネサステクノロジ | キャッシュ装置および方法 |
WO2006117683A2 (en) * | 2005-01-25 | 2006-11-09 | Lucid Information Technology, Ltd. | Graphics processing and display system employing multiple graphics cores on a silicon chip of monolithic construction |
JP4904802B2 (ja) * | 2005-02-01 | 2012-03-28 | セイコーエプソン株式会社 | キャッシュメモリ及びプロセッサ |
JP4837305B2 (ja) * | 2005-05-10 | 2011-12-14 | ルネサスエレクトロニクス株式会社 | マイクロプロセッサ及びマイクロプロセッサの制御方法 |
GB0723536D0 (en) * | 2007-11-30 | 2008-01-09 | Imagination Tech Ltd | Multi-core geometry processing in a tile based rendering system |
US8400458B2 (en) * | 2009-09-09 | 2013-03-19 | Hewlett-Packard Development Company, L.P. | Method and system for blocking data on a GPU |
US9639479B2 (en) * | 2009-09-23 | 2017-05-02 | Nvidia Corporation | Instructions for managing a parallel cache hierarchy |
JP5487882B2 (ja) * | 2009-10-27 | 2014-05-14 | セイコーエプソン株式会社 | 画像処理装置および画像処理方法 |
JP5648465B2 (ja) * | 2010-12-17 | 2015-01-07 | 富士通セミコンダクター株式会社 | グラフィックスプロセッサ |
JP5659817B2 (ja) * | 2011-01-21 | 2015-01-28 | ソニー株式会社 | 相互接続装置 |
US9092267B2 (en) | 2011-06-20 | 2015-07-28 | Qualcomm Incorporated | Memory sharing in graphics processing unit |
US8954599B2 (en) * | 2011-10-28 | 2015-02-10 | Hewlett-Packard Development Company, L.P. | Data stream operations |
CN103348333B (zh) * | 2011-12-23 | 2017-03-29 | 英特尔公司 | 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 |
WO2013101120A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Online learning based algorithms to increase retention and reuse of gpu-generated dynamic surfaces in outer-level caches |
US9244683B2 (en) * | 2013-02-26 | 2016-01-26 | Nvidia Corporation | System, method, and computer program product for implementing large integer operations on a graphics processing unit |
US9086813B2 (en) * | 2013-03-15 | 2015-07-21 | Qualcomm Incorporated | Method and apparatus to save and restore system memory management unit (MMU) contexts |
-
2018
- 2018-08-30 US US16/642,026 patent/US10942746B2/en active Active
- 2018-08-30 JP JP2020512508A patent/JP2020532795A/ja active Pending
- 2018-08-30 EP EP18850323.9A patent/EP3676710A4/en active Pending
- 2018-08-30 WO PCT/IL2018/050965 patent/WO2019043710A1/en unknown
-
2021
- 2021-02-03 US US17/167,077 patent/US20210191729A1/en not_active Abandoned
-
2023
- 2023-03-06 JP JP2023033382A patent/JP2023078204A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3676710A4 (en) | 2021-07-28 |
EP3676710A1 (en) | 2020-07-08 |
US10942746B2 (en) | 2021-03-09 |
US20200183698A1 (en) | 2020-06-11 |
WO2019043710A1 (en) | 2019-03-07 |
US20210191729A1 (en) | 2021-06-24 |
JP2020532795A (ja) | 2020-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2023078204A (ja) | 複数計算における高スループットのためのシステムおよび方法 | |
CN110741356B (zh) | 多处理器系统中的中继一致存储器管理 | |
CN110998649B (zh) | 图形处理器中灵活的缓冲区大小调整 | |
US11625807B2 (en) | Low power and low latency GPU coprocessor for persistent computing | |
US10095526B2 (en) | Technique for improving performance in multi-threaded processing units | |
US9075764B2 (en) | Multiprocessor system-on-a-chip for machine vision algorithms | |
US11112972B2 (en) | System and method for accelerated data processing in SSDs | |
KR20200111722A (ko) | 프로그래밍 가능한 원자적 동작을 하는 메모리 컨트롤러 | |
US9164690B2 (en) | System, method, and computer program product for copying data between memory locations | |
WO2017071176A1 (zh) | 一种图像处理方法与图像处理装置 | |
WO2012159080A1 (en) | Using graphics processing units in control and/or data processing systems | |
TW201337829A (zh) | 暫存器檔案型讀取 | |
US9286114B2 (en) | System and method for launching data parallel and task parallel application threads and graphics processing unit incorporating the same | |
US20170031689A1 (en) | System and Method for Variable Lane Architecture | |
US9442759B2 (en) | Concurrent execution of independent streams in multi-channel time slice groups | |
CN115775199A (zh) | 数据处理方法和装置、电子设备和计算机可读存储介质 | |
CN111666253B (zh) | 向具有共享存储器的共享处理元件的系统传递可编程数据 | |
JP2011028343A (ja) | 演算処理装置、およびデータ転送方法 | |
EP2199919B1 (en) | Method for processing data using triple buffering | |
US20240069965A1 (en) | Systems and methods for executing compute functions | |
CN116402102A (zh) | 神经网络处理器和电子设备 | |
US10853070B1 (en) | Processor suspension buffer and instruction queue | |
CN116302497A (zh) | 资源分配方法、装置、电子设备、存储介质 | |
Otani et al. | Fair DMA Scheduler for Low-Latency Accelerator Offloading | |
JP2023509813A (ja) | Simt指令処理方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230315 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230315 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240229 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240326 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240618 |