JP7476299B2 - 同期プロセッサのためのコンパイル - Google Patents
同期プロセッサのためのコンパイル Download PDFInfo
- Publication number
- JP7476299B2 JP7476299B2 JP2022511312A JP2022511312A JP7476299B2 JP 7476299 B2 JP7476299 B2 JP 7476299B2 JP 2022511312 A JP2022511312 A JP 2022511312A JP 2022511312 A JP2022511312 A JP 2022511312A JP 7476299 B2 JP7476299 B2 JP 7476299B2
- Authority
- JP
- Japan
- Prior art keywords
- configuration
- update
- program
- configuration update
- operations
- 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
- 230000001360 synchronised effect Effects 0.000 title claims description 51
- 238000012545 processing Methods 0.000 claims description 77
- 238000000034 method Methods 0.000 claims description 50
- 238000012546 transfer Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 35
- 230000015654 memory Effects 0.000 description 34
- 230000004913 activation Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 235000012431 wafers Nutrition 0.000 description 1
Images
Classifications
-
- 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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/458—Synchronisation, e.g. post-wait, barriers, locks
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
Description
同期プロセッサの複数のそれぞれの構成要素によって実行されるべき複数の動作を規定するプログラムの中間表現を受け取るステップであって、中間表現が、複数の動作の各動作に、動作が同期プロセッサによって実行されるようにスケジューリングされるそれぞれのクロックサイクル値を割り当てる、ステップと、
ハードウェア構成更新を要求する中間表現の中の各動作に対して、それぞれの更新ウィンドウを生成するために中間表現を処理するステップであって、更新ウィンドウが、ハードウェア構成更新を実施するためにその間に構成更新命令が実行され得る時間範囲を規定する、ステップと、
同期プロセッサのための1つまたは複数の構成制約を取得するステップと、
同期プロセッサの構成制約に従って、更新ウィンドウのうちの1つの間に各々発生する構成更新命令を生成してスケジューリングするステップと
を備える方法である。
同期プロセッサの複数のそれぞれの構成要素によって実行されるべき複数の動作を規定するプログラムを受け取るステップと、
複数の構成要素の各構成要素に対して、構成要素によって実行されるべきプログラムの各々のそれぞれの動作に対するそれぞれのクロックレイテンシ値を取得するステップと、
プログラムのそれぞれの動作に対するそれぞれのクロックレイテンシ値に基づいてプログラムを実行するためのクロックタイミング制約を生成するステップと、
クロックタイミング制約に基づいて、それぞれのクロックサイクル値を複数の動作の各動作に割り当てるプログラムの中間表現を生成するステップと
を備える方法である。
ハードウェア構成更新を要求する中間表現の中の各動作に対して、それぞれの更新ウィンドウを生成するために中間表現を処理するステップであって、更新ウィンドウが、ハードウェア構成更新を実施するためにその間に構成更新命令が実行され得る時間範囲を規定する、ステップと、
同期プロセッサのための1つまたは複数の構成制約を取得するステップと、
同期プロセッサの構成制約に従って、更新ウィンドウのうちの1つの間に各々発生する構成更新命令を生成してスケジューリングするステップと
を備える。
415 構成ウィンドウ
422 更新ウィンドウ
425 構成ウィンドウ
432 第1の構成ウィンドウ
434 第2の構成ウィンドウ
435 更新ウィンドウ
442 構成ウィンドウ
443 更新ウィンドウ
444 構成ウィンドウ
445 更新ウィンドウ
452 RegFile0Read命令
454 RegFile1Read命令
456 乗算命令
458 加算命令
501 第1の次元
502 タイル
503 第2の次元
504 ベクトル処理ユニット
506 区分
508 通信インターフェース
510 セクション
600 タイル
602 ローカルメモリ
604 計算アレイ
606 セル
610 バスライン
620 バスライン
621 制御要素
Claims (20)
- 同期プロセッサの複数のそれぞれの構成要素によって実行されるべき複数の動作を規定するプログラムの中間表現を受け取るステップであって、前記中間表現が、前記複数の動作の各動作に、前記動作が前記同期プロセッサによって実行されるようにスケジューリングされるそれぞれのクロックサイクル値を割り当て、各動作に対する前記クロックサイクル値が、前記動作についてのそれぞれのクロックレイテンシ値に基づく、ステップと、
ハードウェア構成更新を要求する前記中間表現の中の各動作に対して、それぞれの更新ウィンドウを生成するために前記中間表現を処理するステップであって、前記更新ウィンドウが、前記ハードウェア構成更新を実施するためにその間に構成更新命令が実行され得る時間範囲を規定する、ステップと、
前記同期プロセッサのための1つまたは複数の構成制約を取得するステップと、
前記同期プロセッサの前記構成制約に従って、前記更新ウィンドウのうちの1つの間に各々発生する構成更新命令を生成してスケジューリングするステップと、
前記同期プロセッサにより前記複数の動作を実行するとともに、前記構成更新命令に従って前記同期プロセッサの構成を更新するステップと
を備える、方法。 - 前記構成制約のうちの1つが、前記同期プロセッサが単一のサイクルで実行できる構成更新命令の最大の数である、請求項1に記載の方法。
- 前記構成制約のうちの1つが、特定のサイクルにおいてのみ構成更新命令が実行可能であることである、請求項2に記載の方法。
- 前記更新ウィンドウおよび構成制約から構成更新命令を生成してスケジューリングするステップが、構成更新命令を他の更新ウィンドウに割り振る前に、構成更新命令を最大限に制約された更新ウィンドウに割り振るステップを備える、請求項1から3のいずれか一項に記載の方法。
- 前記構成更新命令のうちの1つまたは複数が、読み取り動作が行われるレジスタを変更する、請求項1から4のいずれか一項に記載の方法。
- 前記構成更新命令のうちの1つまたは複数が、前記同期プロセッサの前記複数の構成要素間でデータを転送するように構成されるマルチプレクサの設定を変更する、請求項1から5のいずれか一項に記載の方法。
- 前記同期プロセッサが、構成更新命令が出されていない場合、同じ構成を用いて各動作を実行するように構成される、請求項1から6のいずれか一項に記載の方法。
- 前記同期プロセッサを用いて前記動作を実行するステップと、前記構成更新命令に従って前記同期プロセッサの前記構成を更新するステップとをさらに備える、請求項1から7のいずれか一項に記載の方法。
- 同期プロセッサの複数のそれぞれの構成要素によって実行されるべき複数の動作を規定するプログラムを受け取るステップと、
前記複数の構成要素の各構成要素に対して、前記構成要素によって実行されるべき前記プログラムの各々のそれぞれの動作に対するそれぞれのクロックレイテンシ値を取得するステップと、
前記プログラムのそれぞれの動作に対する前記それぞれのクロックレイテンシ値に基づいて前記プログラムを実行するためのクロックタイミング制約を生成するステップと、
前記クロックタイミング制約に基づいて、それぞれのクロックサイクル値を前記複数の動作の各動作に割り当てる前記プログラムの中間表現を生成するステップであって、各動作に対する前記クロックサイクル値が、前記動作についてのそれぞれのクロックレイテンシ値に基づき、前記中間表現は、前記同期プロセッサが直接実行できないコードである、ステップと
を備える、方法。 - 前記動作がさらに、
ハードウェア構成更新を要求する前記中間表現の中の各動作に対して、それぞれの更新ウィンドウを生成するために前記中間表現を処理するステップであって、前記更新ウィンドウが、前記ハードウェア構成更新を実施するためにその間に構成更新命令が実行され得る時間範囲を規定する、ステップと、
前記同期プロセッサのための1つまたは複数の構成制約を取得するステップと、
前記同期プロセッサの前記構成制約に従って、前記更新ウィンドウのうちの1つの間に各々発生する構成更新命令を生成してスケジューリングするステップとを備える、請求項9に記載の方法。 - 前記構成制約のうちの1つが、前記同期プロセッサが単一のサイクルで実行できる構成更新命令の最大の数である、請求項10に記載の方法。
- 前記構成制約のうちの1つが、特定のサイクルでのみ構成更新命令が実行可能であることである、請求項11に記載の方法。
- 前記更新ウィンドウおよび構成制約から構成更新命令を生成してスケジューリングするステップが、構成更新命令を他の更新ウィンドウに割り振る前に、構成更新命令を最大限に制約された更新ウィンドウに割り振るステップを備える、請求項10に記載の方法。
- 前記プログラムがレイテンシの影響を受けない、請求項9から13のいずれか一項に記載の方法。
- 前記プログラムが動作の順序または前記動作間のタイミングを規定しない、請求項14に記載の方法。
- 前記プログラムが前記同期プロセッサの構成要素に対するレイテンシ情報を規定しない、請求項15に記載の方法。
- 前記プログラムの前記中間表現が、前記複数の動作の各動作に負のクロックサイクル値を割り当てることができる、請求項9から16のいずれか一項に記載の方法。
- 前記動作がさらに、入力プログラムの中の変数から動作間の依存関係情報を生成するステップを備える、請求項9から17のいずれか一項に記載の方法。
- 1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに請求項1から18のいずれか一項に記載の方法を実行させるように動作可能な命令を記憶する1つまたは複数の記憶デバイスとを備える、システム。
- コンピュータプログラムが符号化されたコンピュータ記憶媒体であって、前記コンピュータプログラムが、データ処理装置によって実行されると、前記データ処理装置に請求項1から18のいずれか一項に記載の方法を実行させるように動作可能な命令を備える、コンピュータ記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2024066659A JP2024105295A (ja) | 2019-08-22 | 2024-04-17 | 同期プロセッサのためのコンパイル |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962890495P | 2019-08-22 | 2019-08-22 | |
US62/890,495 | 2019-08-22 | ||
PCT/US2020/047520 WO2021035187A1 (en) | 2019-08-22 | 2020-08-21 | Compilation for synchronous processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2024066659A Division JP2024105295A (ja) | 2019-08-22 | 2024-04-17 | 同期プロセッサのためのコンパイル |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022544843A JP2022544843A (ja) | 2022-10-21 |
JP7476299B2 true JP7476299B2 (ja) | 2024-04-30 |
Family
ID=72470582
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022511312A Active JP7476299B2 (ja) | 2019-08-22 | 2020-08-21 | 同期プロセッサのためのコンパイル |
JP2024066659A Pending JP2024105295A (ja) | 2019-08-22 | 2024-04-17 | 同期プロセッサのためのコンパイル |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2024066659A Pending JP2024105295A (ja) | 2019-08-22 | 2024-04-17 | 同期プロセッサのためのコンパイル |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220276847A1 (ja) |
EP (1) | EP4004724A1 (ja) |
JP (2) | JP7476299B2 (ja) |
CN (1) | CN114270308A (ja) |
TW (1) | TWI767304B (ja) |
WO (1) | WO2021035187A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI767304B (zh) | 2019-08-22 | 2022-06-11 | 美商谷歌有限責任公司 | 用於編譯針對同步處理器之程式之方法及系統 |
US11989254B2 (en) * | 2020-09-10 | 2024-05-21 | Taboola.Com Ltd. | Semantic meaning association to components of digital content |
WO2023069180A1 (en) * | 2021-10-22 | 2023-04-27 | ALTMAN, Daniel, E. | Real-time operating system with a cpu cycle time base |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004997A1 (en) | 2001-05-04 | 2006-01-05 | Robert Keith Mykland | Method and apparatus for computing |
US20100122105A1 (en) | 2005-04-28 | 2010-05-13 | The University Court Of The University Of Edinburgh | Reconfigurable instruction cell array |
WO2021035187A1 (en) | 2019-08-22 | 2021-02-25 | Google Llc | Compilation for synchronous processor |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2001281164A1 (en) * | 2000-08-07 | 2002-02-18 | Altera Corporation | Inter-device communication interface |
US20030028864A1 (en) * | 2001-01-29 | 2003-02-06 | Matt Bowen | System, method and article of manufacture for successive compilations using incomplete parameters |
US6691301B2 (en) * | 2001-01-29 | 2004-02-10 | Celoxica Ltd. | System, method and article of manufacture for signal constructs in a programming language capable of programming hardware architectures |
US7849465B2 (en) * | 2003-02-19 | 2010-12-07 | Intel Corporation | Programmable event driven yield mechanism which may activate service threads |
US7587584B2 (en) * | 2003-02-19 | 2009-09-08 | Intel Corporation | Mechanism to exploit synchronization overhead to improve multithreaded performance |
US7523441B2 (en) * | 2004-04-16 | 2009-04-21 | National Instruments Corporation | Implementing a synchronous reactive system in a graphical program |
US7734895B1 (en) * | 2005-04-28 | 2010-06-08 | Massachusetts Institute Of Technology | Configuring sets of processor cores for processing instructions |
EP2399173B1 (en) * | 2009-02-18 | 2014-04-09 | Dolby Laboratories Licensing Corporation | Method and system for synchronizing multiple secure clocks |
CN104156055B (zh) * | 2010-12-22 | 2017-10-13 | 威盛电子股份有限公司 | 配置在多重处理器核心之间的分散式电源管理 |
US9772854B2 (en) * | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
FR2993070B1 (fr) * | 2012-07-09 | 2014-07-18 | Commissariat Energie Atomique | Procede d'execution, au sein d'un systeme embarque multitaches, d'une application cadencee par plusieurs domaines de temps differents incluant une gestion d'interruptions |
CN103019656B (zh) * | 2012-12-04 | 2016-04-27 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
CN115100016A (zh) * | 2015-06-10 | 2022-09-23 | 无比视视觉技术有限公司 | 用于处理图像的图像处理器和方法 |
JP7202293B2 (ja) * | 2016-10-11 | 2023-01-11 | グリーン ヒルズ ソフトウェア,エルエルシー | 垂直統合インストルメント化およびトレース再構成のためのシステム、方法およびデバイス |
-
2020
- 2020-08-21 TW TW109128681A patent/TWI767304B/zh active
- 2020-08-21 JP JP2022511312A patent/JP7476299B2/ja active Active
- 2020-08-21 WO PCT/US2020/047520 patent/WO2021035187A1/en unknown
- 2020-08-21 CN CN202080059297.2A patent/CN114270308A/zh active Pending
- 2020-08-21 US US17/636,579 patent/US20220276847A1/en active Pending
- 2020-08-21 EP EP20771377.7A patent/EP4004724A1/en active Pending
-
2024
- 2024-04-17 JP JP2024066659A patent/JP2024105295A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004997A1 (en) | 2001-05-04 | 2006-01-05 | Robert Keith Mykland | Method and apparatus for computing |
US20100122105A1 (en) | 2005-04-28 | 2010-05-13 | The University Court Of The University Of Edinburgh | Reconfigurable instruction cell array |
WO2021035187A1 (en) | 2019-08-22 | 2021-02-25 | Google Llc | Compilation for synchronous processor |
Also Published As
Publication number | Publication date |
---|---|
KR20220032630A (ko) | 2022-03-15 |
CN114270308A (zh) | 2022-04-01 |
JP2022544843A (ja) | 2022-10-21 |
WO2021035187A1 (en) | 2021-02-25 |
US20220276847A1 (en) | 2022-09-01 |
TW202109289A (zh) | 2021-03-01 |
JP2024105295A (ja) | 2024-08-06 |
TWI767304B (zh) | 2022-06-11 |
EP4004724A1 (en) | 2022-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7476299B2 (ja) | 同期プロセッサのためのコンパイル | |
TWI767310B (zh) | 處理器、運算方法及電腦程式產品 | |
TWI827792B (zh) | 多路徑神經網路、資源配置的方法及多路徑神經網路分析器 | |
EP2372587B1 (en) | Apparatus and method for simulating a reconfigurable processor | |
US10616103B2 (en) | Constructing staging trees in hierarchical circuit designs | |
US7831945B2 (en) | Manufacturing a clock distribution network in an integrated circuit | |
US20240104012A1 (en) | Topological scheduling | |
CN113906428A (zh) | 异构多核心架构的编译流程 | |
JP7541163B2 (ja) | 伝搬レイテンシの短縮 | |
US11983141B2 (en) | System for executing an application on heterogeneous reconfigurable processors | |
US9740529B1 (en) | High throughput synchronous resource-constrained scheduling for model-based design | |
KR102714773B1 (ko) | 동기식 프로세서를 위한 컴파일 | |
US20240338340A1 (en) | Intelligent graph execution and orchestration engine for a reconfigurable data processor | |
US20240338297A1 (en) | Debugging framework for a reconfigurable data processor | |
JP7423757B2 (ja) | 同期プロセッサのためのシャーディング | |
Zhuang et al. | CHARM 2.0: Composing Heterogeneous Accelerators for Deep Learning on Versal ACAP Architecture | |
AU2015271896A1 (en) | Selection of system-on-chip component models for early design phase evaluation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220420 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230612 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231212 |
|
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: 20240318 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240417 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7476299 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |