JP7080698B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP7080698B2
JP7080698B2 JP2018068428A JP2018068428A JP7080698B2 JP 7080698 B2 JP7080698 B2 JP 7080698B2 JP 2018068428 A JP2018068428 A JP 2018068428A JP 2018068428 A JP2018068428 A JP 2018068428A JP 7080698 B2 JP7080698 B2 JP 7080698B2
Authority
JP
Japan
Prior art keywords
memory
processing
local memory
execution
global memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018068428A
Other languages
English (en)
Other versions
JP2019179411A (ja
Inventor
佳 丸目
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
NSI Texe Inc
Original Assignee
Denso Corp
NSI Texe Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp, NSI Texe Inc filed Critical Denso Corp
Priority to JP2018068428A priority Critical patent/JP7080698B2/ja
Priority to PCT/JP2019/009626 priority patent/WO2019188174A1/ja
Publication of JP2019179411A publication Critical patent/JP2019179411A/ja
Application granted granted Critical
Publication of JP7080698B2 publication Critical patent/JP7080698B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本開示は、自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置に関する。
自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置として、下記特許文献1に記載のものが開示されている。下記特許文献1では、コンピュータユニットは、中央処理ユニット(CPU)及びグラフィック処理ユニット(GPU)の異種混合ユニットを含んでいる。システムは、複数の異種コンピュータユニットの各々に対する親バッファからサブバッファを作成する。サブバッファが親バッファと同じコンピュータユニットに関連付けられていない場合、システムは、サブバッファからのデータをそのコンピュータユニットのメモリにコピーする。システムは、更に、データへの更新を追跡しこれらの更新をサブバッファに転送する。
特表2013-528861号公報
特許文献1では、親バッファとサブバッファとが関連付けられ、同期を取るように親バッファ及びサブバッファが更新される。このようにローカルメモリとグローバルメモリとの間で頻繁にデータ書き込み及び読み出しが行われると、ローカルメモリとグローバルメモリとの間のデータ転送時間がボトルネックとなり、処理の高速化に影響する。
本開示は、自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置であって、より処理を高速化することが可能な情報処理装置を提供することを目的とする。
本開示は、自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置であって、ローカルメモリ及びグローバルメモリに格納されているデータに基づいて処理を実行する処理実行部(102)と、処理実行部の処理の実行に対してアクセス先のアドレスを変換するアドレス変換処理を実行するアドレス変換部(101)と、を備える。
処理実行部の処理の実行に対してアクセス先のアドレスを変換するアドレス変換処理を実行するので、処理実行部が必要とするデータのみにアクセスすることができ、より処理を高速化することが可能となる。
尚、「課題を解決するための手段」及び「特許請求の範囲」に記載した括弧内の符号は、後述する「発明を実施するための形態」との対応関係を示すものであって、「課題を解決するための手段」及び「特許請求の範囲」が、後述する「発明を実施するための形態」に限定されることを示すものではない。
本開示によれば、自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置であって、より処理を高速化することが可能な情報処理装置を提供することができる。
図1は、本実施形態の前提となる並列処理について説明するための図である。 図2は、図1に示される並列処理を実行するためのシステム構成例を示す図である。 図3は、本実施形態の処理の一例を示すためのグラフ構造を示す図である。 図4は、本実施形態のアクセラレータの処理を説明するための図である。 図5は、ローカルメモリ及びグローバルメモリの書き込み状況を説明するための図である。 図6は、ローカルメモリ及びグローバルメモリの書き込み状況を説明するための図である。 図7は、比較例としてのアクセラレータの処理を説明するための図である。 図8は、比較例におけるローカルメモリ及びグローバルメモリの書き込み状況を説明するための図である。
以下、添付図面を参照しながら本実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
図1(A)は、グラフ構造のプログラムコードを示しており、図1(B)は、スレッドの状態を示しており、図1(C)は、並列処理の状況を示している。
図1(A)に示されるように、本実施形態が処理対象とするプログラムは、データと処理とが分割されているグラフ構造を有している。このグラフ構造は、プログラムのタスク並列性、グラフ並列性を保持している。
図1(A)に示されるプログラムコードに対して、コンパイラによる自動ベクトル化とグラフ構造の抽出を行うと、図1(B)に示されるような大量のスレッドを生成することができる。
図1(B)に示される多量のスレッドに対して、ハードウェアによる動的レジスタ配置とスレッド・スケジューリングにより、図1(C)に示されるような並列実行を行うことができる。実行中にレジスタ資源を動的配置することで、異なる命令ストリームに対しても複数のスレッドを並列実行することができる。
続いて図2を参照しながら、動的レジスタ配置及びスレッド・スケジューリングを行うアクセラレータ10を含むシステム構成例を説明する。
アクセラレータ10は、ホストCPU12及びグローバルメモリ14と共に情報処理システムを構成している。ホストCPU12は、データ処理を主として行う演算装置である。ホストCPU12は、OSをサポートしている。
グローバルメモリ14は、buf0、buf1、buf2の3つのメモリ領域を有している。グローバルメモリ14は、CPU12及びアクセラレータ10からのアクセスに応じて、データの読み込みや書き出しを行っている。
アクセラレータ10は、ホストCPU12の重い演算負荷に対処するために設けられている個別のマスタとして位置づけられている。アクセラレータ10は、アドレス変換部101と、実行コア102と、ローカルメモリ103とが設けられている。
アドレス変換部101は、処理実行部である実行コア102の処理の実行に対してアクセス先のアドレスを変換するアドレス変換処理を実行する部分である。アドレス変換部101は、処理実行部である実行コア102が処理に要するデータがローカルメモリ103に格納されていない場合に、処理実行部である実行コア102に対してグローバルメモリ14からローカルメモリ103にデータを移すようにアドレス変換処理を実行する。アドレス変換部101は、他の情報処理装置であるホストCPU12がグローバルメモリ14にアクセスする状況を監視し、グローバルメモリ14に必要とされるデータが無い場合に、処理実行部である実行コア102に対してローカルメモリ103からグローバルメモリ14にデータを移すようにアドレス変換処理を実行する。
実行コア102は、本開示の処理実行部に相当し、ローカルメモリ103及びグローバルメモリ14に格納されているデータに基づいて処理を実行する部分である。
ローカルメモリ103は、buf0、buf1、buf2の3つのメモリ領域を有している。ローカルメモリ103は、実行コア102からのアクセスのみを受け付けて、データの読み込みや書き出しを行っている。
上記したように本実施形態に係るアクセラレータ10は、本開示の情報処理装置であって、自身が専有するローカルメモリ103と他の情報処理装置であるホストCPU12と共有するグローバルメモリ14との双方にアクセス可能なものであって、ローカルメモリ及び前記グローバルメモリに格納されているデータに基づいて処理を実行する処理実行部である実行コア102と、処理実行部である実行コア102の処理の実行に対してアクセス先のアドレスを変換するアドレス変換処理を実行するアドレス変換部101と、を備えるものである。
続いて、アクセラレータ10の処理について、図3、図4、図5、図6を参照しながら説明する。図3は、説明に用いるためのプログラムのグラフ構造を例示する図である。図3に示される例では、buf0に格納されているデータを用いてGraph1の処理を実行し、結果をbuf1に格納する。続いて、buf1に格納されているデータを用いてGraph2の処理を実行し、結果をbuf2に格納する。このような処理を前提として説明を続ける。
図4は、図3に示されるような処理を実行する際のシーケンス図である。図5は、図4に示されるような処理を行った場合のグローバルメモリ14及びローカルメモリ103の状況を示す図である。
図4に示されるように、ホストCPU12から、アクセラレータ10に対してGraph1の実行が指示される(ステップS001)。図5(A)に示されるように、この時点では、ローカルメモリ103にはデータが格納されておらず、グローバルメモリ14のbuf0にdata001が格納されている。
ステップS001の実行指示に応じて、アドレス変換部101は、ローカルメモリ103にbuf0のデータが格納されているか否かを判断する(ステップS101)。ローカルメモリ103にbuf0のデータが格納されていれば、ステップS104の処理に進む。ローカルメモリ103にbuf0のデータが格納されていなければ、ステップS102の処理に進む。
図5(A)に示されるように、この時点では、ローカルメモリ103にはデータが格納されていない場合、ステップS102の処理を実行する。ステップS102では、アドレス変換部101が、実行コア102に対して、グローバルメモリ14からbuf0のデータを読み込んで、ローカルメモリ103に書き込む指示を出力する。
この指示に応じて、実行コア102は、buf0のデータをグローバルメモリ14から読み込んで、ローカルメモリ103に書き込む(ステップS201)。図5(B)に示されるように、ローカルメモリ103のbuf0にもdata001が格納される。
続いて、アドレス変換部101から実行コア102に、Graph1の実行指示が出力される(ステップS103)。この指示に応じて、実行コア102は、Graph1の処理を実行する(ステップS202)。実行コア102は、実行結果をbuf1に書き込む(ステップS203)。この書き込みの結果、図5(C)に示されるように、ローカルメモリ103のbuf1にdata002が格納される。
実行コア102からホストCPU12に、Graph1の完了通知が送信される(ステップS204)。この段階では、図5(C)に示されるように、グローバルメモリ14のbuf1にはデータが書き込まれていない。
アドレス変換部101は、ホストCPU12のメモリアクセス状況をモニタリングする(ステップS104)。ホストCPU12は、ステップS204の通知によってGraph1が完了していることを認識しているので、Graph1の実行結果であるbuf1をグローバルメモリ14から読み込んで次の処理を行う場合がある(ステップS002)。
アドレス変換部101は、ステップS002におけるCPU12の処理を検知し、グローバルメモリ14にbuf1が格納されているか否かを判断する(ステップS105)。グローバルメモリ14にbuf1が格納されていれば、特段のアクションは起こさない。グローバルメモリ14にbuf1が格納されていない場合、CPU12に読込遅延処理を行う(ステップS107)。この処理は、後述する実行コア102の処理が終了するまでCPU12がグローバルメモリ14からデータを読み込む処理を遅延させるものである。
アドレス変換部101は、実行コア102にbuf1をローカルメモリ103からグローバルメモリ14に書き込む指示を出力する(ステップS106)。この指示に応じて、実行コア102は、ローカルメモリ103のbuf1をグローバルメモリ14に書き込む処理を実行する(ステップS205)。この書き込みの結果、図5(D)に示されるように、グローバルメモリ14のbuf1にdata002が格納される。
このような必要に応じた場合のみのローカルメモリ103からグローバルメモリ14への書き込みは、Graph2まで処理が進む場合も実行される。図6は、その場合のローカルメモリ103及びグローバルメモリ14のデータ書き込み状況を示すものである。
図6(A)及び図6(B)は、図5(A)図5(B)と同じ状況となっている。ここで、CPU12からGraph2の実行が指示されると、実行コア102はGraph2を実行することになり、結果であるbuf2のdata003をローカルメモリ103にのみ書き込む。
CPU12は通知によってGraph2が完了していることを認識しているので、Graph2の実行結果であるbuf2をグローバルメモリ14から読み込んで次の処理を行う場合がある。このアクションをアドレス変換部101が認識し、実行コア102は、ローカルメモリ103からグローバルメモリ14にbuf2の書き込みを行う。図6(D)に示されるように、CPU12が必要としなかったbuf1はグローバルメモリ14へ掻き出されないので、メモリの無駄なアクセスを低減することができる。
比較のため、アドレス変換を行わない場合の例について、図7及び図8を参照しながら説明する。図7に示されるように、ホストCPUから、アクセラレータに対してGraph1の実行が指示される(ステップS051)。図8(A)に示されるように、この時点では、ローカルメモリにはデータが格納されておらず、グローバルメモリのbuf0にdata001が格納されている。
実行コアは、グローバルメモリからbuf0を読み込んで、ローカルメモリに書き込む(ステップS251)。この段階で、図8(B)に示されるように、ローカルメモリのbuf1にデータが書き込まれる。
実行コアは、Graph1を実行する(ステップS252)。実行コアは、Graph1の実行結果であるbuf1をローカルメモリに書き込む(ステップS253)。実行コアは、buf1をグローバルメモリに書き込む(ステップS254)。この段階で、図8(C)に示されるように、グローバルメモリのbuf1にデータが書き込まれる。
実行コアは、Graph1の完了通知をホストCPUに送信する(ステップS255)。ホストCPUは、グローバルメモリからbuf1を読み込む(ステップS052)。
実行コアがGraph2を実行すると、実行完了時に即座にグローバルメモリにもbuf2が書き込まれ、図8(D)の状態となる。
本実施形態のメモリ書き込み例である図6と、比較例のメモリ書き込み例である図8とを比較すると明らかなように、本実施形態では必要な場合のみにローカルメモリ103からグローバルメモリ14への書き込みが行われるので、より処理を高速化することができる。
以上、具体例を参照しつつ本実施形態について説明した。しかし、本開示はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本開示の特徴を備えている限り、本開示の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。
101:アドレス変換部
102:実行コア(処理実行部)

Claims (1)

  1. 自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置であって、
    前記ローカルメモリ及び前記グローバルメモリに格納されているデータに基づいて処理を実行する処理実行部(102)と、
    前記処理実行部の処理の実行に対してアクセス先のアドレスを変換するアドレス変換処理を実行するアドレス変換部(101)と、を備え
    前記アドレス変換部は、前記処理実行部が処理に要するデータが前記ローカルメモリに格納されていない場合に、前記処理実行部に対して前記グローバルメモリから前記ローカルメモリにデータを移すように前記アドレス変換処理を実行し、
    前記アドレス変換部は、他の情報処理装置が前記グローバルメモリにアクセスする状況を監視し、前記グローバルメモリに必要とされるデータが無い場合に、前記処理実行部に対して前記ローカルメモリから前記グローバルメモリにデータを移すように前記アドレス変換処理を実行する情報処理装置。
JP2018068428A 2018-03-30 2018-03-30 情報処理装置 Active JP7080698B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018068428A JP7080698B2 (ja) 2018-03-30 2018-03-30 情報処理装置
PCT/JP2019/009626 WO2019188174A1 (ja) 2018-03-30 2019-03-11 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018068428A JP7080698B2 (ja) 2018-03-30 2018-03-30 情報処理装置

Publications (2)

Publication Number Publication Date
JP2019179411A JP2019179411A (ja) 2019-10-17
JP7080698B2 true JP7080698B2 (ja) 2022-06-06

Family

ID=68058896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018068428A Active JP7080698B2 (ja) 2018-03-30 2018-03-30 情報処理装置

Country Status (2)

Country Link
JP (1) JP7080698B2 (ja)
WO (1) WO2019188174A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070253A (ja) 2009-09-24 2011-04-07 Mitsubishi Electric Corp メモリ制御システム
JP2014529831A (ja) 2011-09-07 2014-11-13 クゥアルコム・インコーポレイテッドQualcomm Incorporated グラフィックス処理のためのメモリコピーエンジン

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070253A (ja) 2009-09-24 2011-04-07 Mitsubishi Electric Corp メモリ制御システム
JP2014529831A (ja) 2011-09-07 2014-11-13 クゥアルコム・インコーポレイテッドQualcomm Incorporated グラフィックス処理のためのメモリコピーエンジン

Also Published As

Publication number Publication date
JP2019179411A (ja) 2019-10-17
WO2019188174A1 (ja) 2019-10-03

Similar Documents

Publication Publication Date Title
JP6880402B2 (ja) メモリアクセス制御装置及びその制御方法
US7996648B2 (en) Coupled symbiotic operating systems
JPWO2011148920A1 (ja) マルチプロセッサシステム、実行制御方法、実行制御プログラム
JP4381459B1 (ja) 情報処理装置、粒度調整方法およびプログラム
CN104104705B (zh) 分布式存储系统的接入方法和设备
US8266416B2 (en) Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system
JP2015158894A (ja) 画像形成装置、画像形成処理用データ転送制御方法、及び画像形成処理用データ転送制御プログラム
JP7080698B2 (ja) 情報処理装置
JP2009266113A (ja) メモリ管理方法およびシステム
JP6817827B2 (ja) アクセラレータ処理管理装置、ホスト装置、アクセラレータ処理実行システム、方法およびプログラム
KR101203157B1 (ko) 데이터 전달 시스템, 장치 및 방법
JP7064367B2 (ja) デッドロック回避方法、デッドロック回避装置
JP2010231295A (ja) 解析システム
WO2014069007A1 (ja) 記憶装置およびデータバックアップ方法
JP2008210280A (ja) 半導体装置及びdmaコントローラ
WO2018173300A1 (ja) I/o制御方法およびi/o制御システム
JP2013142927A (ja) 物理乱数生成装置を搭載した計算機及び物理乱数生成装置の制御方法
KR20190143115A (ko) 블록체인 기반 데이터 관리 방법
JP5963313B2 (ja) 情報処理装置、方法、及び、プログラム
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2007265143A (ja) 情報処理方法、情報処理システム、情報処理装置、マルチプロセッサ、情報処理プログラム及び情報処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体
JPWO2007088581A1 (ja) 共有メモリ型マルチプロセッサにおける手続き呼び出し方法、手続き呼び出しプログラムおよび記録媒体
WO2019188180A1 (ja) スケジューリング方法、スケジューリング装置
US10423424B2 (en) Replicated stateless copy engine
JP7039365B2 (ja) デッドロック回避方法、デッドロック回避装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20190326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190327

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220324

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220525

R150 Certificate of patent or registration of utility model

Ref document number: 7080698

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350