[go: up one dir, main page]

WO2019188174A1 - Information processing device - Google Patents

Information processing device Download PDF

Info

Publication number
WO2019188174A1
WO2019188174A1 PCT/JP2019/009626 JP2019009626W WO2019188174A1 WO 2019188174 A1 WO2019188174 A1 WO 2019188174A1 JP 2019009626 W JP2019009626 W JP 2019009626W WO 2019188174 A1 WO2019188174 A1 WO 2019188174A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
information processing
local memory
data
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.)
Ceased
Application number
PCT/JP2019/009626
Other languages
French (fr)
Japanese (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
Publication of WO2019188174A1 publication Critical patent/WO2019188174A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Definitions

  • the present disclosure relates to an information processing apparatus that can access both a local memory that it occupies and a global memory that is shared with other information processing apparatuses.
  • Patent Document 1 a parent buffer and a sub buffer are associated with each other, and the parent buffer and the sub buffer are updated so as to be synchronized. If data is frequently written and read between the local memory and the global memory in this way, the data transfer time between the local memory and the global memory becomes a bottleneck, which affects the processing speed.
  • the present disclosure provides an information processing apparatus capable of accessing both a local memory owned by itself and a global memory shared with another information processing apparatus and capable of further speeding up the processing.
  • the purpose is to do.
  • the present disclosure is an information processing apparatus capable of accessing both a local memory owned by itself and a global memory shared with another information processing apparatus, and performs processing based on data stored in the local memory and the global memory. And an address conversion unit for executing an address conversion process for converting the address of the access destination with respect to the execution of the process of the process execution unit.
  • the program to be processed in this embodiment has a graph structure in which data and processing are divided. This graph structure maintains the task parallelism and graph parallelism of the program.
  • the global memory 14 has three memory areas, buf0, buf1, and buf2.
  • the global memory 14 reads and writes data according to accesses from the CPU 12 and the accelerator 10.
  • the accelerator 10 is positioned as an individual master provided to cope with the heavy computation load of the host CPU 12.
  • the accelerator 10 includes an address conversion unit 101, an execution core 102, and a local memory 103.
  • FIG. 4 is a sequence diagram when the processing as shown in FIG. 3 is executed.
  • FIG. 5 is a diagram showing the status of the global memory 14 and the local memory 103 when the processing shown in FIG. 4 is performed.
  • the address conversion unit 101 determines whether buf0 data is stored in the local memory 103 (step S101). If buf0 data is stored in the local memory 103, the process proceeds to step S104. If buf0 data is not stored in the local memory 103, the process proceeds to step S102.
  • an execution instruction for Graph1 is output from the address conversion unit 101 to the execution core 102 (step S103).
  • the execution core 102 executes the process of Graph1 (step S202).
  • the execution core 102 writes the execution result in buf1 (step S203).
  • data002 is stored in buf1 of the local memory 103 as shown in FIG.
  • the completion notification of Graph1 is transmitted from the execution core 102 to the host CPU 12 (step S204). At this stage, as shown in FIG. 5C, no data is written in buf1 of the global memory 14.
  • the address conversion unit 101 detects the processing of the CPU 12 in step S002 and determines whether buf1 is stored in the global memory 14 (step S105). If buf1 is stored in the global memory 14, no special action is taken. If buf1 is not stored in the global memory 14, the CPU 12 performs read delay processing (step S107). This process delays the process in which the CPU 12 reads data from the global memory 14 until the process of the execution core 102 described later is completed.
  • the address conversion unit 101 outputs an instruction to write buf1 from the local memory 103 to the global memory 14 to the execution core 102 (step S106).
  • the execution core 102 executes a process of writing buf1 of the local memory 103 into the global memory 14 (step S205).
  • data002 is stored in buf1 of the global memory 14 as shown in FIG.
  • FIG. 6 shows the data write status of the local memory 103 and the global memory 14 in that case.
  • the buf 2 that is the execution result of the Graph 2 may be read from the global memory 14 to perform the next process.
  • the address conversion unit 101 recognizes this action, and the execution core 102 writes buf2 from the local memory 103 to the global memory 14.
  • buf1 that is not required by the CPU 12 is not scraped to the global memory 14, useless access to the memory can be reduced.
  • the execution core reads buf0 from the global memory and writes it to the local memory (step S251). At this stage, as shown in FIG. 8B, data is written to buf1 of the local memory.
  • the execution core executes Graph1 (step S252).
  • the execution core writes buf1 as the execution result of Graph1 to the local memory (step S253).
  • the execution core writes buf1 into the global memory (step S254).
  • data is written to buf1 of the global memory.

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)

Abstract

This information processing device is provided with: a process execution unit (102) that executes a process on the basis of data stored in a local memory and a global memory; and an address conversion unit (101) that executes an address conversion process for converting the address of an access destination in response to the process execution performed by the process execution unit (102).

Description

情報処理装置Information processing device 関連出願の相互参照Cross-reference of related applications

 本出願は、2018年3月30日に出願された日本国特許出願2018-068428号に基づくものであって、その優先権の利益を主張するものであり、その特許出願の全ての内容が、参照により本明細書に組み込まれる。 This application is based on Japanese Patent Application No. 2018-068428 filed on March 30, 2018, and claims the benefit of its priority. Which is incorporated herein by reference.

 本開示は、自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置に関する。 The present disclosure relates to an information processing apparatus that can access both a local memory that it occupies and a global memory that is shared with other information processing apparatuses.

 自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置として、下記特許文献1に記載のものが開示されている。下記特許文献1では、コンピュータユニットは、中央処理ユニット(CPU)及びグラフィック処理ユニット(GPU)の異種混合ユニットを含んでいる。システムは、複数の異種コンピュータユニットの各々に対する親バッファからサブバッファを作成する。サブバッファが親バッファと同じコンピュータユニットに関連付けられていない場合、システムは、サブバッファからのデータをそのコンピュータユニットのメモリにコピーする。システムは、更に、データへの更新を追跡しこれらの更新をサブバッファに転送する。 As an information processing apparatus that can access both a local memory owned by itself and a global memory shared with other information processing apparatuses, an apparatus described in Patent Document 1 is disclosed. In the following Patent Document 1, the computer unit includes a heterogeneous mixing unit of a central processing unit (CPU) and a graphic processing unit (GPU). The system creates a subbuffer from the parent buffer for each of the plurality of heterogeneous computer units. If the subbuffer is not associated with the same computer unit as the parent buffer, the system copies the data from the subbuffer to the memory of that computer unit. The system further tracks updates to the data and forwards these updates to the subbuffer.

特表2013-528861号公報Special table 2013-528861 gazette

 特許文献1では、親バッファとサブバッファとが関連付けられ、同期を取るように親バッファ及びサブバッファが更新される。このようにローカルメモリとグローバルメモリとの間で頻繁にデータ書き込み及び読み出しが行われると、ローカルメモリとグローバルメモリとの間のデータ転送時間がボトルネックとなり、処理の高速化に影響する。 In Patent Document 1, a parent buffer and a sub buffer are associated with each other, and the parent buffer and the sub buffer are updated so as to be synchronized. If data is frequently written and read between the local memory and the global memory in this way, the data transfer time between the local memory and the global memory becomes a bottleneck, which affects the processing speed.

 本開示は、自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置であって、より処理を高速化することが可能な情報処理装置を提供することを目的とする。 The present disclosure provides an information processing apparatus capable of accessing both a local memory owned by itself and a global memory shared with another information processing apparatus and capable of further speeding up the processing. The purpose is to do.

 本開示は、自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置であって、ローカルメモリ及びグローバルメモリに格納されているデータに基づいて処理を実行する処理実行部と、処理実行部の処理の実行に対してアクセス先のアドレスを変換するアドレス変換処理を実行するアドレス変換部と、を備える。 The present disclosure is an information processing apparatus capable of accessing both a local memory owned by itself and a global memory shared with another information processing apparatus, and performs processing based on data stored in the local memory and the global memory. And an address conversion unit for executing an address conversion process for converting the address of the access destination with respect to the execution of the process of the process execution unit.

 処理実行部の処理の実行に対してアクセス先のアドレスを変換するアドレス変換処理を実行するので、処理実行部が必要とするデータのみにアクセスすることができ、より処理を高速化することが可能となる。 Because the address conversion process that converts the address of the access destination for the execution of the process of the process execution unit is executed, only the data required by the process execution unit can be accessed, and the processing can be further speeded up. It becomes.

図1は、本実施形態の前提となる並列処理について説明するための図である。FIG. 1 is a diagram for explaining parallel processing which is a premise of the present embodiment. 図2は、図1に示される並列処理を実行するためのシステム構成例を示す図である。FIG. 2 is a diagram showing a system configuration example for executing the parallel processing shown in FIG. 図3は、本実施形態の処理の一例を示すためのグラフ構造を示す図である。FIG. 3 is a diagram illustrating a graph structure for illustrating an example of processing according to the present embodiment. 図4は、本実施形態のアクセラレータの処理を説明するための図である。FIG. 4 is a diagram for explaining processing of the accelerator according to the present embodiment. 図5は、ローカルメモリ及びグローバルメモリの書き込み状況を説明するための図である。FIG. 5 is a diagram for explaining a write state of the local memory and the global memory. 図6は、ローカルメモリ及びグローバルメモリの書き込み状況を説明するための図である。FIG. 6 is a diagram for explaining a write state of the local memory and the global memory. 図7は、比較例としてのアクセラレータの処理を説明するための図である。FIG. 7 is a diagram for explaining processing of an accelerator as a comparative example. 図8は、比較例におけるローカルメモリ及びグローバルメモリの書き込み状況を説明するための図である。FIG. 8 is a diagram for explaining a write state of the local memory and the global memory in the comparative example.

 以下、添付図面を参照しながら本実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。 Hereinafter, the present embodiment will be described with reference to the accompanying drawings. In order to facilitate the understanding of the description, the same constituent elements in the drawings will be denoted by the same reference numerals as much as possible, and redundant description will be omitted.

 図1(A)は、グラフ構造のプログラムコードを示しており、図1(B)は、スレッドの状態を示しており、図1(C)は、並列処理の状況を示している。 FIG. 1A shows a program code having a graph structure, FIG. 1B shows a thread state, and FIG. 1C shows a state of parallel processing.

 図1(A)に示されるように、本実施形態が処理対象とするプログラムは、データと処理とが分割されているグラフ構造を有している。このグラフ構造は、プログラムのタスク並列性、グラフ並列性を保持している。 As shown in FIG. 1A, the program to be processed in this embodiment has a graph structure in which data and processing are divided. This graph structure maintains the task parallelism and graph parallelism of the program.

 図1(A)に示されるプログラムコードに対して、コンパイラによる自動ベクトル化とグラフ構造の抽出を行うと、図1(B)に示されるような大量のスレッドを生成することができる。 1) When automatic vectorization and graph structure extraction are performed on the program code shown in FIG. 1A by a compiler, a large number of threads as shown in FIG. 1B can be generated.

 図1(B)に示される多量のスレッドに対して、ハードウェアによる動的レジスタ配置とスレッド・スケジューリングにより、図1(C)に示されるような並列実行を行うことができる。実行中にレジスタ資源を動的配置することで、異なる命令ストリームに対しても複数のスレッドを並列実行することができる。 1) Parallel execution as shown in FIG. 1C can be performed on a large number of threads shown in FIG. 1B by dynamic register placement and thread scheduling by hardware. By dynamically allocating register resources during execution, a plurality of threads can be executed in parallel for different instruction streams.

 続いて図2を参照しながら、動的レジスタ配置及びスレッド・スケジューリングを行うアクセラレータ10を含むシステム構成例を説明する。 Next, a system configuration example including an accelerator 10 that performs dynamic register allocation and thread scheduling will be described with reference to FIG.

 アクセラレータ10は、ホストCPU12及びグローバルメモリ14と共に情報処理システムを構成している。ホストCPU12は、データ処理を主として行う演算装置である。ホストCPU12は、OSをサポートしている。 The accelerator 10 constitutes an information processing system together with the host CPU 12 and the global memory 14. The host CPU 12 is an arithmetic unit that mainly performs data processing. The host CPU 12 supports the OS.

 グローバルメモリ14は、buf0、buf1、buf2の3つのメモリ領域を有している。グローバルメモリ14は、CPU12及びアクセラレータ10からのアクセスに応じて、データの読み込みや書き出しを行っている。 The global memory 14 has three memory areas, buf0, buf1, and buf2. The global memory 14 reads and writes data according to accesses from the CPU 12 and the accelerator 10.

 アクセラレータ10は、ホストCPU12の重い演算負荷に対処するために設けられている個別のマスタとして位置づけられている。アクセラレータ10は、アドレス変換部101と、実行コア102と、ローカルメモリ103とが設けられている。 The accelerator 10 is positioned as an individual master provided to cope with the heavy computation load of the host CPU 12. The accelerator 10 includes an address conversion unit 101, an execution core 102, and a local memory 103.

 アドレス変換部101は、処理実行部である実行コア102の処理の実行に対してアクセス先のアドレスを変換するアドレス変換処理を実行する部分である。アドレス変換部101は、処理実行部である実行コア102が処理に要するデータがローカルメモリ103に格納されていない場合に、処理実行部である実行コア102に対してグローバルメモリ14からローカルメモリ103にデータを移すようにアドレス変換処理を実行する。アドレス変換部101は、他の情報処理装置であるホストCPU12がグローバルメモリ14にアクセスする状況を監視し、グローバルメモリ14に必要とされるデータが無い場合に、処理実行部である実行コア102に対してローカルメモリ103からグローバルメモリ14にデータを移すようにアドレス変換処理を実行する。 The address conversion unit 101 is a part that executes an address conversion process for converting the address of the access destination with respect to the execution of the process of the execution core 102 that is the process execution unit. When the data required for processing by the execution core 102 that is the processing execution unit is not stored in the local memory 103, the address conversion unit 101 transfers the execution core 102 that is the processing execution unit from the global memory 14 to the local memory 103. The address conversion process is executed so that the data is transferred. The address conversion unit 101 monitors a situation in which the host CPU 12 that is another information processing apparatus accesses the global memory 14, and when there is no data required for the global memory 14, On the other hand, an address conversion process is executed so that data is transferred from the local memory 103 to the global memory 14.

 実行コア102は、本開示の処理実行部に相当し、ローカルメモリ103及びグローバルメモリ14に格納されているデータに基づいて処理を実行する部分である。 The execution core 102 corresponds to the processing execution unit of the present disclosure, and is a part that executes processing based on data stored in the local memory 103 and the global memory 14.

 ローカルメモリ103は、buf0、buf1、buf2の3つのメモリ領域を有している。ローカルメモリ103は、実行コア102からのアクセスのみを受け付けて、データの読み込みや書き出しを行っている。 The local memory 103 has three memory areas, buf0, buf1, and buf2. The local memory 103 accepts only access from the execution core 102, and reads and writes data.

 上記したように本実施形態に係るアクセラレータ10は、本開示の情報処理装置であって、自身が専有するローカルメモリ103と他の情報処理装置であるホストCPU12と共有するグローバルメモリ14との双方にアクセス可能なものであって、ローカルメモリ及び前記グローバルメモリに格納されているデータに基づいて処理を実行する処理実行部である実行コア102と、処理実行部である実行コア102の処理の実行に対してアクセス先のアドレスを変換するアドレス変換処理を実行するアドレス変換部101と、を備えるものである。 As described above, the accelerator 10 according to the present embodiment is an information processing apparatus according to the present disclosure, and is used for both the local memory 103 owned by the accelerator 10 and the global memory 14 shared with the host CPU 12 that is another information processing apparatus. Execution of the processing of the execution core 102, which is a process execution unit that can be accessed and executes processing based on the data stored in the local memory and the global memory, and the execution core 102 that is the processing execution unit And an address conversion unit 101 that executes an address conversion process for converting an access destination address.

 続いて、アクセラレータ10の処理について、図3、図4、図5、図6を参照しながら説明する。図3は、説明に用いるためのプログラムのグラフ構造を例示する図である。図3に示される例では、buf0に格納されているデータを用いてGraph1の処理を実行し、結果をbuf1に格納する。続いて、buf1に格納されているデータを用いてGraph2の処理を実行し、結果をbuf2に格納する。このような処理を前提として説明を続ける。 Subsequently, processing of the accelerator 10 will be described with reference to FIGS. 3, 4, 5, and 6. FIG. 3 is a diagram illustrating a graph structure of a program used for explanation. In the example shown in FIG. 3, the processing of Graph1 is executed using the data stored in buf0, and the result is stored in buf1. Subsequently, the processing of Graph2 is executed using the data stored in buf1, and the result is stored in buf2. The description will be continued on the premise of such processing.

 図4は、図3に示されるような処理を実行する際のシーケンス図である。図5は、図4に示されるような処理を行った場合のグローバルメモリ14及びローカルメモリ103の状況を示す図である。 FIG. 4 is a sequence diagram when the processing as shown in FIG. 3 is executed. FIG. 5 is a diagram showing the status of the global memory 14 and the local memory 103 when the processing shown in FIG. 4 is performed.

 図4に示されるように、ホストCPU12から、アクセラレータ10に対してGraph1の実行が指示される(ステップS001)。図5(A)に示されるように、この時点では、ローカルメモリ103にはデータが格納されておらず、グローバルメモリ14のbuf0にdata001が格納されている。 As shown in FIG. 4, the host CPU 12 instructs the accelerator 10 to execute Graph 1 (step S001). As shown in FIG. 5A, at this time, no data is stored in the local memory 103, and data001 is stored in buf 0 of the global memory 14.

 ステップS001の実行指示に応じて、アドレス変換部101は、ローカルメモリ103にbuf0のデータが格納されているか否かを判断する(ステップS101)。ローカルメモリ103にbuf0のデータが格納されていれば、ステップS104の処理に進む。ローカルメモリ103にbuf0のデータが格納されていなければ、ステップS102の処理に進む。 In response to the execution instruction in step S001, the address conversion unit 101 determines whether buf0 data is stored in the local memory 103 (step S101). If buf0 data is stored in the local memory 103, the process proceeds to step S104. If buf0 data is not stored in the local memory 103, the process proceeds to step S102.

 図5(A)に示されるように、この時点では、ローカルメモリ103にはデータが格納されていない場合、ステップS102の処理を実行する。ステップS102では、アドレス変換部101が、実行コア102に対して、グローバルメモリ14からbuf0のデータを読み込んで、ローカルメモリ103に書き込む指示を出力する。 As shown in FIG. 5A, at this time, if data is not stored in the local memory 103, the process of step S102 is executed. In step S <b> 102, the address conversion unit 101 outputs an instruction to read the buf <b> 0 data from the global memory 14 and write it to the local memory 103 to the execution core 102.

 この指示に応じて、実行コア102は、buf0のデータをグローバルメモリ14から読み込んで、ローカルメモリ103に書き込む(ステップS201)。図5(B)に示されるように、ローカルメモリ103のbuf0にもdata001が格納される。 In response to this instruction, the execution core 102 reads the data of buf0 from the global memory 14 and writes it in the local memory 103 (step S201). As shown in FIG. 5B, data001 is also stored in buf0 of the local memory 103.

 続いて、アドレス変換部101から実行コア102に、Graph1の実行指示が出力される(ステップS103)。この指示に応じて、実行コア102は、Graph1の処理を実行する(ステップS202)。実行コア102は、実行結果をbuf1に書き込む(ステップS203)。この書き込みの結果、図5(C)に示されるように、ローカルメモリ103のbuf1にdata002が格納される。 Subsequently, an execution instruction for Graph1 is output from the address conversion unit 101 to the execution core 102 (step S103). In response to this instruction, the execution core 102 executes the process of Graph1 (step S202). The execution core 102 writes the execution result in buf1 (step S203). As a result of this writing, data002 is stored in buf1 of the local memory 103 as shown in FIG.

 実行コア102からホストCPU12に、Graph1の完了通知が送信される(ステップS204)。この段階では、図5(C)に示されるように、グローバルメモリ14のbuf1にはデータが書き込まれていない。 The completion notification of Graph1 is transmitted from the execution core 102 to the host CPU 12 (step S204). At this stage, as shown in FIG. 5C, no data is written in buf1 of the global memory 14.

 アドレス変換部101は、ホストCPU12のメモリアクセス状況をモニタリングする(ステップS104)。ホストCPU12は、ステップS204の通知によってGraph1が完了していることを認識しているので、Graph1の実行結果であるbuf1をグローバルメモリ14から読み込んで次の処理を行う場合がある(ステップS002)。 The address conversion unit 101 monitors the memory access status of the host CPU 12 (step S104). Since the host CPU 12 recognizes that Graph1 has been completed by the notification in step S204, the host CPU 12 may read the buf1 that is the execution result of Graph1 from the global memory 14 and perform the next process (step S002).

 アドレス変換部101は、ステップS002におけるCPU12の処理を検知し、グローバルメモリ14にbuf1が格納されているか否かを判断する(ステップS105)。グローバルメモリ14にbuf1が格納されていれば、特段のアクションは起こさない。グローバルメモリ14にbuf1が格納されていない場合、CPU12に読込遅延処理を行う(ステップS107)。この処理は、後述する実行コア102の処理が終了するまでCPU12がグローバルメモリ14からデータを読み込む処理を遅延させるものである。 The address conversion unit 101 detects the processing of the CPU 12 in step S002 and determines whether buf1 is stored in the global memory 14 (step S105). If buf1 is stored in the global memory 14, no special action is taken. If buf1 is not stored in the global memory 14, the CPU 12 performs read delay processing (step S107). This process delays the process in which the CPU 12 reads data from the global memory 14 until the process of the execution core 102 described later is completed.

 アドレス変換部101は、実行コア102にbuf1をローカルメモリ103からグローバルメモリ14に書き込む指示を出力する(ステップS106)。この指示に応じて、実行コア102は、ローカルメモリ103のbuf1をグローバルメモリ14に書き込む処理を実行する(ステップS205)。この書き込みの結果、図5(D)に示されるように、グローバルメモリ14のbuf1にdata002が格納される。 The address conversion unit 101 outputs an instruction to write buf1 from the local memory 103 to the global memory 14 to the execution core 102 (step S106). In response to this instruction, the execution core 102 executes a process of writing buf1 of the local memory 103 into the global memory 14 (step S205). As a result of this writing, data002 is stored in buf1 of the global memory 14 as shown in FIG.

 このような必要に応じた場合のみのローカルメモリ103からグローバルメモリ14への書き込みは、Graph2まで処理が進む場合も実行される。図6は、その場合のローカルメモリ103及びグローバルメモリ14のデータ書き込み状況を示すものである。 The writing from the local memory 103 to the global memory 14 only when such a need arises is executed even when the processing proceeds to Graph2. FIG. 6 shows the data write status of the local memory 103 and the global memory 14 in that case.

 図6(A)及び図6(B)は、図5(A)図5(B)と同じ状況となっている。ここで、CPU12からGraph2の実行が指示されると、実行コア102はGraph2を実行することになり、結果であるbuf2のdata003をローカルメモリ103にのみ書き込む。 6 (A) and 6 (B) are in the same situation as FIG. 5 (A) and FIG. 5 (B). Here, when execution of Graph 2 is instructed from the CPU 12, the execution core 102 executes Graph 2, and writes the resulting data 003 of buf 2 only in the local memory 103.

 CPU12は通知によってGraph2が完了していることを認識しているので、Graph2の実行結果であるbuf2をグローバルメモリ14から読み込んで次の処理を行う場合がある。このアクションをアドレス変換部101が認識し、実行コア102は、ローカルメモリ103からグローバルメモリ14にbuf2の書き込みを行う。図6(D)に示されるように、CPU12が必要としなかったbuf1はグローバルメモリ14へ掻き出されないので、メモリの無駄なアクセスを低減することができる。 Since the CPU 12 recognizes that the Graph 2 has been completed by the notification, the buf 2 that is the execution result of the Graph 2 may be read from the global memory 14 to perform the next process. The address conversion unit 101 recognizes this action, and the execution core 102 writes buf2 from the local memory 103 to the global memory 14. As shown in FIG. 6D, since buf1 that is not required by the CPU 12 is not scraped to the global memory 14, useless access to the memory can be reduced.

 比較のため、アドレス変換を行わない場合の例について、図7及び図8を参照しながら説明する。図7に示されるように、ホストCPUから、アクセラレータに対してGraph1の実行が指示される(ステップS051)。図8(A)に示されるように、この時点では、ローカルメモリにはデータが格納されておらず、グローバルメモリのbuf0にdata001が格納されている。 For comparison, an example in which address translation is not performed will be described with reference to FIGS. As shown in FIG. 7, the host CPU instructs the accelerator to execute Graph1 (step S051). As shown in FIG. 8A, at this time, no data is stored in the local memory, and data001 is stored in buf0 of the global memory.

 実行コアは、グローバルメモリからbuf0を読み込んで、ローカルメモリに書き込む(ステップS251)。この段階で、図8(B)に示されるように、ローカルメモリのbuf1にデータが書き込まれる。 The execution core reads buf0 from the global memory and writes it to the local memory (step S251). At this stage, as shown in FIG. 8B, data is written to buf1 of the local memory.

 実行コアは、Graph1を実行する(ステップS252)。実行コアは、Graph1の実行結果であるbuf1をローカルメモリに書き込む(ステップS253)。実行コアは、buf1をグローバルメモリに書き込む(ステップS254)。この段階で、図8(C)に示されるように、グローバルメモリのbuf1にデータが書き込まれる。 The execution core executes Graph1 (step S252). The execution core writes buf1 as the execution result of Graph1 to the local memory (step S253). The execution core writes buf1 into the global memory (step S254). At this stage, as shown in FIG. 8C, data is written to buf1 of the global memory.

 実行コアは、Graph1の完了通知をホストCPUに送信する(ステップS255)。ホストCPUは、グローバルメモリからbuf1を読み込む(ステップS052)。 The execution core transmits a Graph1 completion notification to the host CPU (step S255). The host CPU reads buf1 from the global memory (step S052).

 実行コアがGraph2を実行すると、実行完了時に即座にグローバルメモリにもbuf2が書き込まれ、図8(D)の状態となる。 When the execution core executes Graph2, buf2 is immediately written to the global memory when execution is completed, and the state shown in FIG.

 本実施形態のメモリ書き込み例である図6と、比較例のメモリ書き込み例である図8とを比較すると明らかなように、本実施形態では必要な場合のみにローカルメモリ103からグローバルメモリ14への書き込みが行われるので、より処理を高速化することができる。 As is apparent from a comparison between FIG. 6 which is a memory writing example of this embodiment and FIG. 8 which is a memory writing example of a comparative example, in this embodiment, the local memory 103 is transferred to the global memory 14 only when necessary. Since writing is performed, the processing can be further speeded up.

 以上、具体例を参照しつつ本実施形態について説明した。しかし、本開示はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本開示の特徴を備えている限り、本開示の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。 The embodiment has been described above with reference to specific examples. However, the present disclosure is not limited to these specific examples. Those in which those skilled in the art appropriately modify the design of these specific examples are also included in the scope of the present disclosure as long as they have the features of the present disclosure. Each element included in each of the specific examples described above and their arrangement, conditions, shape, and the like are not limited to those illustrated, and can be changed as appropriate. Each element included in each of the specific examples described above can be appropriately combined as long as no technical contradiction occurs.

Claims (3)

 自身が専有するローカルメモリと他の情報処理装置と共有するグローバルメモリとの双方にアクセス可能な情報処理装置であって、
 前記ローカルメモリ及び前記グローバルメモリに格納されているデータに基づいて処理を実行する処理実行部(102)と、
 前記処理実行部の処理の実行に対してアクセス先のアドレスを変換するアドレス変換処理を実行するアドレス変換部(101)と、を備える情報処理装置。
An information processing apparatus capable of accessing both a local memory owned by itself and a global memory shared with another information processing apparatus,
A process execution unit (102) for executing a process based on data stored in the local memory and the global memory;
An information conversion apparatus comprising: an address conversion unit (101) that executes an address conversion process for converting an access destination address with respect to execution of the process of the process execution unit.
 請求項1に記載の情報処理装置であって、
 前記アドレス変換部は、前記処理実行部が処理に要するデータが前記ローカルメモリに格納されていない場合に、前記処理実行部に対して前記グローバルメモリから前記ローカルメモリにデータを移すように前記アドレス変換処理を実行する、情報処理装置。
The information processing apparatus according to claim 1,
The address conversion unit is configured to transfer the data to the process execution unit from the global memory to the local memory when data required for the process execution unit is not stored in the local memory. An information processing apparatus that executes processing.
 請求項2に記載の情報処理装置であって、
 前記アドレス変換部は、他の情報処理装置が前記グローバルメモリにアクセスする状況を監視し、前記グローバルメモリに必要とされるデータが無い場合に、前記処理実行部に対して前記ローカルメモリから前記グローバルメモリにデータを移すように前記アドレス変換処理を実行する、情報処理装置。
An information processing apparatus according to claim 2,
The address conversion unit monitors a situation in which another information processing apparatus accesses the global memory, and when there is no data required in the global memory, the global address is transmitted from the local memory to the processing execution unit. An information processing apparatus that executes the address conversion process so as to transfer data to a memory.
PCT/JP2019/009626 2018-03-30 2019-03-11 Information processing device Ceased WO2019188174A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-068428 2018-03-30
JP2018068428A JP7080698B2 (en) 2018-03-30 2018-03-30 Information processing equipment

Publications (1)

Publication Number Publication Date
WO2019188174A1 true WO2019188174A1 (en) 2019-10-03

Family

ID=68058896

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/009626 Ceased WO2019188174A1 (en) 2018-03-30 2019-03-11 Information processing device

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12056382B2 (en) * 2020-05-26 2024-08-06 Qualcomm Incorporated Inference in memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070253A (en) * 2009-09-24 2011-04-07 Mitsubishi Electric Corp Memory control system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8941655B2 (en) 2011-09-07 2015-01-27 Qualcomm Incorporated Memory copy engine for graphics processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070253A (en) * 2009-09-24 2011-04-07 Mitsubishi Electric Corp Memory control system

Also Published As

Publication number Publication date
JP2019179411A (en) 2019-10-17
JP7080698B2 (en) 2022-06-06

Similar Documents

Publication Publication Date Title
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
CN108647104B (en) Request processing method, server and computer readable storage medium
CN113918101B (en) Method, system, equipment and storage medium for writing data cache
KR20090066765A (en) Method and apparatus for task movement on multicore platform
JP2009265963A (en) Information processing system and task execution control method
CN105159841B (en) A kind of internal memory migration method and device
JP6880402B2 (en) Memory access control device and its control method
WO2017056725A1 (en) In-vehicle control device
JP4381459B1 (en) Information processing apparatus, granularity adjustment method, and program
CN104104705B (en) The cut-in method and equipment of distributed memory system
CN118860925A (en) DMA engine controller and control method thereof, electronic device and storage medium
JP2007207026A (en) DMA transfer device
JP2015158894A (en) Image forming apparatus, data transfer control method for image forming processing, and data transfer control program for image forming processing
WO2019188174A1 (en) Information processing device
US9311225B2 (en) DMA channels
US10289329B2 (en) Burst buffer dynamic logical volume sizing in high performance computing environment
CN120104043A (en) Data processing method, device and computing equipment
JP6817827B2 (en) Accelerator processing management device, host device, accelerator processing execution system, method and program
JP6222079B2 (en) Computer system, processing method thereof, and program
JP2008065478A (en) Information processor, data transfer method, and program
JP2010231295A (en) Analysis system
JP2008210280A (en) Semiconductor device and DMA controller
JP7064367B2 (en) Deadlock avoidance method, deadlock avoidance device
US20110191638A1 (en) Parallel computer system and method for controlling parallel computer system
JP7609172B2 (en) Management device, system, management method, and management program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19778409

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19778409

Country of ref document: EP

Kind code of ref document: A1