WO2017179176A1 - メモリ制御装置およびメモリ制御方法 - Google Patents

メモリ制御装置およびメモリ制御方法 Download PDF

Info

Publication number
WO2017179176A1
WO2017179176A1 PCT/JP2016/062025 JP2016062025W WO2017179176A1 WO 2017179176 A1 WO2017179176 A1 WO 2017179176A1 JP 2016062025 W JP2016062025 W JP 2016062025W WO 2017179176 A1 WO2017179176 A1 WO 2017179176A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
memory control
array data
memory device
control device
Prior art date
Application number
PCT/JP2016/062025
Other languages
English (en)
French (fr)
Inventor
豊 田宮
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2018511840A priority Critical patent/JP6485594B2/ja
Priority to PCT/JP2016/062025 priority patent/WO2017179176A1/ja
Publication of WO2017179176A1 publication Critical patent/WO2017179176A1/ja
Priority to US16/155,993 priority patent/US20190042421A1/en

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
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/08Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Definitions

  • the embodiment referred to in this application relates to a memory control device and a memory control method.
  • array data array data
  • HPC High-Performance Computing
  • array data is stored in a memory device (element) and calculations are performed.
  • a hardware accelerator reading and writing array data is a performance. It is a big factor that influences.
  • the write combine temporarily stores the data to be written without immediately writing it in the memory device.When the next write data comes, if the previous write data and the address are adjacent to each other, the data is merged (the combine ) And write them together in the memory device.
  • this write combine has a problem that the probability of the combine decreases as the sequence data becomes larger.
  • sparse matrix / tiling is a data representation method that holds only non-zero coefficients in a matrix calculation. For example, random access of a rigid matrix used in the finite element method is effective for data reading processing. It is a thing. However, since the array itself including the non-zero coefficients becomes a dense matrix, it is not suitable for random access writing, for example.
  • the embodiment mentioned in this application aims to provide a memory control device and a memory control method capable of further speeding up the writing of array data.
  • a memory control device that controls writing of data to a memory device having a block access function, and includes a plurality of sort buffers.
  • the plurality of sort buffers sort the array data when writing the array data to the memory device. Then, the array data sorted in the sort buffer is written to the memory device using the block access function.
  • the disclosed memory control device and memory control method have an effect of further speeding up writing of array data.
  • FIG. 1 is a diagram for explaining an example of processing by triangular element division in a finite element method application.
  • FIG. 2 is a diagram schematically illustrating an example of a memory device.
  • FIG. 3 is a diagram for explaining a problem in the memory device shown in FIG.
  • FIG. 4 is a diagram schematically illustrating a memory control device according to an embodiment.
  • FIG. 5 is a diagram for explaining an embodiment of the memory control device.
  • FIG. 6 is a diagram (part 1) for explaining an example of the algorithm operation in the memory control device of the embodiment shown in FIG.
  • FIG. 7 is a diagram (No. 2) for explaining an example of the algorithm operation in the memory control device of the embodiment shown in FIG.
  • FIG. 8 is a diagram (No.
  • FIG. 9 is a diagram (No. 4) for explaining an example of the algorithm operation in the memory control device of the embodiment shown in FIG.
  • FIG. 10 is a diagram (No. 5) for explaining an example of the algorithm operation in the memory control device of the embodiment shown in FIG.
  • FIG. 11 is a diagram for explaining an example of distribution processing in the memory control device of the embodiment shown in FIG.
  • FIG. 12 is a diagram (part 1) for explaining the effect of the memory control device according to the embodiment.
  • FIG. 13 is a diagram (part 2) for explaining the effect of the memory control device according to the embodiment.
  • FIG. 1 is a diagram for explaining an example of processing by triangular element division in a finite element method application.
  • array data large-scale array data
  • an accelerator hardware accelerator
  • an overall stiffness matrix is constructed based on the element stiffness matrix defined for each element. Specifically, as shown in FIG. 1, in the case of triangular element division, the coefficient of the overall stiffness matrix corresponding to the node j is the sum of the coefficients of the element stiffness matrices of the adjacent elements (1) to (6). Become.
  • FIG. 2 is a diagram schematically showing an example of a memory device.
  • the memory device 1 includes a register 11 and a memory cell 12.
  • the memory device 1 is a large-capacity storage device such as a DRAM (Dynamic Random Access Memory (eg, SDRAM: Synchronous DRAM)), a flash memory, or a hard disk (hard disk drive).
  • DRAM Dynamic Random Access Memory
  • SDRAM Synchronous DRAM
  • flash memory e.g., SRAM: Synchronous DRAM
  • hard disk hard disk drive
  • data is copied in block units from the memory cell 12 to the register 11, and further, data matching the bus width is exchanged with the outside (the arithmetic circuit 2 or the like) via the register 11.
  • data from the arithmetic circuit 2 or the like is written into the memory cell 12 via the register 11.
  • a large-capacity storage device such as a DRAM, a flash memory, and a hard disk has a block access function for reading and writing data in units of blocks.
  • a block access function for example, block access to consecutive addresses of the memory cells 12 has a much higher throughput than random access.
  • a DDR SDRAM Double-Data-Rate SDRAM having a 64 byte width, a random access latency of 16 ⁇ s, and a block access throughput of 4 GB / s is considered.
  • the block access (4 GB / s) has a 1000 times higher throughput than the random access. It will be.
  • FIG. 3 is a diagram for explaining a problem in the memory device shown in FIG.
  • the arithmetic circuit 2 is executing an application that writes large-scale array data (array data) to the memory device 1 such as a DRAM or a flash memory.
  • Access from the application to the array data 10 stored in the memory device 1 is performed in any order according to the algorithm of the application. For example, when the arithmetic circuit 2 is parallelized, simultaneous access to different elements of the array in the array data 10 may also occur.
  • FIG. 4 is a diagram schematically illustrating a memory control device according to an embodiment.
  • the memory control device 3 of the present embodiment controls writing of data (write data) from the arithmetic circuit 2 (application) to the memory device 1 which is a large capacity memory such as a DRAM, for example. .
  • the memory control device 3 includes, for example, a write sort circuit 31 having a sort buffer 30, a save memory device 32 such as a DRAM, and a write buffer 11 ′.
  • a write buffer 11 ′ for example, the register 11 in the memory device 1 described with reference to FIG. 2 can be used without providing a dedicated buffer.
  • the memory device 1 has a block access function.
  • the memory control device 3 receives a plurality of write data (array data) as an input, and uses the block access function via the write buffer 11 ′ to store the memory. Write to device 1.
  • the memory control device 3 may include, for example, a DMA (Direct Memory Access) circuit having a block access function.
  • the array data can be represented by, for example, an array element index and a set of values (Index, Value) to be written in the element.
  • the write sort circuit 31 includes a plurality of sort buffers 30 and is connected to, for example, a save memory device 32 for saving the contents of the sort buffer 30. That is, the save memory device 32 is for temporarily saving data stored in the sort buffer 30.
  • the write buffer 11 ′ receives the array data (write data) from the sort buffer 30 and rewrites (writes) the array data 10 in the memory device 1, for example.
  • the memory device for example, a DRAM having a block access function (for example, SDRAM), a flash memory, a hard disk, or the like can be applied.
  • the save memory device 32 for example, a DRAM having a larger capacity (storage capacity) than data received by the write sort circuit 31 can be applied.
  • the write sort circuit 31 described above is not limited to one, and it is needless to say that a plurality (for example, four or eight) can be provided.
  • the memory control device sorts the array data into the plurality of sort buffers 30 when writing the array data (write data) to the memory device 1 having the block access function. Further, the array data sorted in the sort buffer 30 is written to the memory device 1 using the block access function. As a result, array data can be written to the memory device 1 all at once using the block access function, thereby further increasing the speed.
  • FIG. 5 is a diagram for explaining an embodiment of the memory control device
  • FIGS. 6 to 10 are diagrams for explaining an example of the algorithm operation in the memory control device of the embodiment shown in FIG. is there.
  • the operation sequence includes input of all array data (process [P1]), array data radix sort (process [P2] to process [P4]), And the array data is updated (processing [P5]).
  • processing P1 to processing P5 will be described with reference to FIGS. 6 to 10, respectively.
  • the save memory device 32 is omitted in FIGS. 5 and 6 to 10.
  • the write buffer 11 ′ may use the register 11 in the memory device 1 without providing a dedicated buffer.
  • the write sort circuit 31 receives all the array data (write data) and receives the 0th-stage sort buffer (buffer) for the radix sort.
  • the number of array data is 12 (here, the numbers 74, 4, 110, 120, 41,...
  • the buffer 30a in FIG. 6 represent the index (Index) of the array data to be written). It has become.
  • the data stored in the 0th-stage buffer 30a is sequentially read, and, for example, whether Index is 64 or more (Index ⁇ 64). According to (Index ⁇ 64), it is distributed to the first-stage buffer 30b1 or 30b2. Specifically, in the example of FIG. 7, six array data (Index 74, 110, 120, 73, 100, 80) with 64 ⁇ Index are stored in the buffer 30b1, and six array data with Index ⁇ 64 ( Index 4, 41, 62, 10, 19, 39) is stored in the buffer 30b2.
  • the data stored in the first-stage buffer 30b1 is sequentially read. Allocate to buffer 30c1 or 30c2. Further, the data stored in the first-stage buffer 30b2 is sequentially read and distributed to the second-stage buffer 30c3 or 30c4 depending on, for example, whether the index is 32 or more.
  • three array data of 96 ⁇ Index (Index , 110, 120, 100) are stored in the buffer 30c1
  • three array data of 64 ⁇ Index ⁇ 96 (Index 74, 73). , 80) are stored in the buffer 30c2.
  • three array data (Index 41, 62, 39) with 32 ⁇ Index ⁇ 64 are stored in the buffer 30c3
  • three array data with Index ⁇ 32 (Index 4, 10, 19) are stored in the buffer 30c4. Is done.
  • the data stored in the second-stage buffer 30c1 is sequentially read. Sort to buffer 30d1 or 30d2. Further, the data stored in the second-stage buffer 30c2 is sequentially read and distributed to the third-stage buffer 30d3 or 30d4 depending on, for example, whether the index is 80 or more.
  • the data stored in the second-stage buffer 30c3 is sequentially read and distributed to the third-stage buffer 30d5 or 30d6 depending on, for example, whether the index is 48 or more. Further, the data stored in the second-stage buffer 30c4 is sequentially read and distributed to the third-stage buffer 30d7 or 30d8 depending on, for example, whether the index is 16 or more.
  • one array data (Index) 120) of 112 ⁇ Index is stored in the buffer 30d1
  • two array data (Index 110, 100) of 96 ⁇ Index ⁇ 112 is stored in the buffer 30d2.
  • one array data (Index) 80) of 80 ⁇ Index ⁇ 96 is stored in the buffer 30d3
  • two array data (Index 74, 73) of 64 ⁇ Index ⁇ 80 is stored in the buffer 30d4.
  • one array data (Index 62) of 48 ⁇ Index ⁇ 64 is stored in the buffer 30d5, and two array data (Index 41, 39) of 32 ⁇ Index ⁇ 48 is stored in the buffer 30d6. Then, one array data (Index 19) of 16 ⁇ Index ⁇ 32 is stored in the buffer 30d7, and two array data (Index 4, 10) of Index ⁇ 16 is stored in the buffer 30d8.
  • the array data in the third-stage sort buffer 30d (30d1 to 30d8) is reflected in the write buffer 11 ′ (111 to 118). . That is, the array data (write data) sorted in the buffers 30d1 to 30d8 is collectively rewritten by using the block access function via the write buffers (registers) 111 to 118. .
  • the array update method is the overwrite mode, one of the write values is selected. If the array update method is the integration mode, a process of obtaining the sum of all the write values is performed.
  • FIG. 11 is a diagram for explaining an example of the distribution process in the memory control device of the embodiment shown in FIG. As shown in FIG. 11 and FIG. 4 described above, the memory control device 3 of one embodiment includes a write sort circuit 31 and a save memory device 32.
  • FIG. 11 shows processing in the case of radix sort, for example, when sorting from one buffer (sort buffer) to two buffers.
  • sort buffer for example, when sorting from one buffer (sort buffer) to two buffers.
  • the data stored in one 0th stage buffer (input sort buffer) 30a is converted into two first stage buffers (output sort buffer) 30b1. , 30b2.
  • the threshold L is an index 64.
  • write data (array data) is extracted from one input sort buffer (for example, 30a), and two output sort buffers (for example, for example, depending on whether the index is L (for example, 64) or more).
  • L for example, 64
  • DRAM DRAM
  • the write sort circuit 31 also has a function as a data distribution circuit. For example, when the output sort buffer (30b1, 30b2) becomes full, the overflow data is block-accessed to the save memory device 32. Evacuate and insert into the list.
  • the update of the array data 10 stored in the memory device 1 can be performed (written) using a block access function for a plurality of elements in the same block. Can be shortened. For example, when the capacity of the array data to be written in the memory device 1 is equal to or greater than a predetermined threshold, the block access is performed to the memory device 1 as described above. It is also possible to write.
  • the sorting process for the radix sort is performed by three sort buffers, that is, one input sort buffer and two output sort buffers. Can be executed.
  • the sort buffer (buffer) is formed by a FIFO (First In In First First Out) register, and the data overflowing from the FIFO register is saved in the save memory device 32, so that the number of data is substantially not limited. Become. Further, by using block access for saving (recovering) data to the save memory device 32, as will be described in detail later, the time required for radix sort does not become a problem.
  • FIGS. 12 and 13 are diagrams for explaining the effect of the memory control device according to the embodiment.
  • block access is performed by saving and restoring write data (array data) at each stage of radix sort, The data is written into the array data 10 of the memory device 1 from 11 ′.
  • the write capacity of K ⁇ N is saved (recovered) to the save memory device 32 at the worst in each stage of the radix sort. Therefore, the storage capacity is 2 ⁇ K ⁇ . Only N elements are provided. This storage capacity is suppressed at most by a constant multiple of the number N of elements. Further, the number of accesses to the memory device is 2 ⁇ K ⁇ N times at the worst in each stage of the radix sort, and the array data 10 is written once for each block in the last stage.
  • the total time ⁇ (1 / 32,000000) ⁇ log 2 (N / 256) ⁇ (K ⁇ N) ⁇ by the memory control device of this embodiment is the total time ⁇ (1 / 64,000) ⁇ ( It can be seen that the coefficient for N is much smaller by block access than K ⁇ N) ⁇ , and the speed can be increased.
  • K 6.
  • the throughput of the present embodiment is “64 M elements / s”, and the random access throughput is “64 k elements / s”. These values are values that can be generally assumed.
  • reference symbol CL1 indicates a characteristic curve by the memory control device of the present embodiment
  • CL2 indicates a characteristic curve by random access.
  • the characteristic curve CL1 by the memory control device of this embodiment is about two orders of magnitude faster than the characteristic curve CL2 by random access. I understand that I can do it.

Abstract

ブロックアクセス機能を有するメモリ装置に対してデータの書き込みを制御するメモリ制御装置であって、前記メモリ装置に配列データを書き込むとき、前記配列データをソートする複数のソートバッファを有する。前記ソートバッファにソートされた前記配列データを、前記メモリ装置に対して、前記ブロックアクセス機能を用いて書き込む。これにより、配列データの書き込みをより一層高速化することができる。

Description

メモリ制御装置およびメモリ制御方法
 この出願で言及する実施例は、メモリ制御装置およびメモリ制御方法に関する。
 近年、HPC(High-Performance Computing)等の大規模配列データ(配列データ)を用いるアプリケーションは、例えば、有限要素法,電磁場解析および流体解析等に利用されている。このような配列データを用いるアプリケーションは、例えば、アクセラレータとしてハードウェア化することで、より一層の高速化が可能なものと考えられている。
 例えば、数千万要素を対象とする有限要素法アプリケーションでは、配列データをメモリ装置(素子)に保持して計算を行うが、ハードウェアアクセラレータにより高速化する場合、配列データの読み出しおよび書き込みが性能を左右する大きな要因になっている。
 ところで、従来、配列データ(大規模配列データ)の書き込みを高速に行うものとしては、例えば、ライトコンバイン(Write Combine)や疎行列・タイリング(ブロック対角化:Block-Diagonal Matrix))といった手法を始めとして様々な提案がなされている。
国際公開第2010/035426号公報 特開2014-093030号公報 特表2007-034431号公報
P. Burovskiy et al., "Efficient Assembly for High Order Unstructured FEM Meshes," in Field Programmable Logic and Applications (FPL), 2015 25th International Conference on. IEEE, 2015, pp.1-6, September 2, 2015
 上述したように、配列データの書き込みを高速に行うものとして、例えば、ライトコンバインや疎行列・タイリングといった手法が提案されている。
 ここで、ライトコンバインは、書き込むべきデータを直ちにメモリ装置に書き込まないで一旦溜めておき、次に、書き込みデータが来たとき、先の書き込みデータとアドレスが隣同士ならば、データを併合(コンバイン)して纏めてメモリ装置に書き込む。しかしながら、このライトコンバインは、配列データが大規模になるほど、コンバインの確率が減るといった問題がある。
 また、疎行列・タイリングは、行列計算において、非0係数のみを纏めて保持するデータ表現方法であり、例えば、有限要素法で用いる剛性マトリクスのランダムアクセスについて、データの読み込み処理には効果的なものである。しかしながら、非0係数を纏めた配列自体が密行列になってしまうため、例えば、ランダムアクセス的な書き込みには向いていない。
 この出願で言及する実施例は、配列データの書き込みをより一層高速化することができるメモリ制御装置およびメモリ制御方法の提供を目的とする。
 一実施形態によれば、ブロックアクセス機能を有するメモリ装置に対してデータの書き込みを制御するメモリ制御装置であって、複数のソートバッファを有するメモリ制御装置が提供される。
 複数の前記ソートバッファは、前記メモリ装置に配列データを書き込むとき、前記配列データをソートする。そして、前記ソートバッファにソートされた前記配列データを、前記メモリ装置に対して、前記ブロックアクセス機能を用いて書き込む。
 開示のメモリ制御装置およびメモリ制御方法は、配列データの書き込みをより一層高速化することができるという効果を奏する。
図1は、有限要素法アプリケーションにおける三角形要素分割による処理の一例を説明するための図である。 図2は、メモリ装置の一例を模式的に示す図である。 図3は、図2に示すメモリ装置における課題を説明するための図である。 図4は、一実施形態に係るメモリ制御装置を模式的に示す図である。 図5は、メモリ制御装置の一実施例を説明するための図である。 図6は、図5に示す一実施例のメモリ制御装置におけるアルゴリズム動作の一例を説明するための図(その1)である。 図7は、図5に示す一実施例のメモリ制御装置におけるアルゴリズム動作の一例を説明するための図(その2)である。 図8は、図5に示す一実施例のメモリ制御装置におけるアルゴリズム動作の一例を説明するための図(その3)である。 図9は、図5に示す一実施例のメモリ制御装置におけるアルゴリズム動作の一例を説明するための図(その4)である。 図10は、図5に示す一実施例のメモリ制御装置におけるアルゴリズム動作の一例を説明するための図(その5)である。 図11は、図5に示す一実施例のメモリ制御装置における振り分け処理の一例を説明するための図である。 図12は、一実施例のメモリ制御装置による効果を説明するための図で(その1)ある。 図13は、一実施例のメモリ制御装置による効果を説明するための図で(その2)ある。
 まず、メモリ制御装置およびメモリ制御方法の実施例を詳述する前に、図1~図3を参照して、有限要素法アプリケーションの一例、メモリ装置の一例およびその課題を説明する。
 図1は、有限要素法アプリケーションにおける三角形要素分割による処理の一例を説明するための図である。前述したように、例えば、数千万要素を対象とする有限要素法アプリケーションでは、配列データ(大規模配列データ)をメモリ装置に保持して計算を行う。ここで、アクセラレータ(ハードウェアアクセラレータ)により高速化する場合、配列データの読み出しおよび書き込みが性能を左右する大きな要因になっている。
 ここで、有限要素法では、個々の要素に定義される要素剛性マトリクスに基づいて、全体剛性マトリクスを構築する。具体的に、図1に示されるように、三角形要素分割の場合、節点jに対応する全体剛性マトリクスの係数は、隣接する要素(1)~(6)の要素剛性マトリクスの係数の合計値になる。
 すなわち、要素剛性マトリクスを構築する度に全体剛性マトリクスの係数を順次更新すると、1つの節点(j)の係数のために、都合6回の書き込みが生じる。また、例えば、非線形有限要素法の場合、繰り返し全体剛性マトリクスの係数を更新することになるため、書き込み時間の短縮は、重要なものとなっている。
 図2は、メモリ装置の一例を模式的に示す図である。図2に示されるように、メモリ装置1は、レジスタ11およびメモリセル12を含む。メモリ装置1は、例えば、DRAM(Dynamic Random Access Memory(例えば、SDRAM:Synchronous DRAM))やフラッシュメモリ(Flash Memory)、或いは、ハードディスク(ハードディスクドライブ)といった大容量の記憶装置である。
 メモリ装置1において、例えば、メモリセル12からレジスタ11に対してブロック単位でデータをコピーし、さらに、レジスタ11を介してバス幅に合わせたデータを外部(演算回路2等)と遣り取りする。また、メモリ装置1において、演算回路2等からのデータは、レジスタ11を介してメモリセル12に書き込まれる。
 ここで、例えば、DRAM,フラッシュメモリおよびハードディスクといった大容量の記憶装置(メモリ装置1)は、ブロック単位でデータの読み出しおよび書き込みを行うブロックアクセス機能を有している。なお、ブロックアクセス機能を有するメモリ装置1において、例えば、メモリセル12の連続するアドレスに対するブロックアクセスは、ランダムアクセスよりもスループットが非常に高い。
 具体的に、メモリ装置1の仕様が、例えば、64バイト幅,ランダムアクセスのレイテンシが16μs,ブロックアクセスのスループットが4GB/sのDDR SDRAM(Double-Data-Rate SDRAM)を考える。
 メモリ装置1を完全なランダムアクセスした場合のスループットが、ランダムアクセスのスループット=64バイト/16μs=4MB/sのとき、ブロックアクセス(4GB/s)は、ランダムアクセスに対して、スループットが1000倍高いことになる。
 図3は、図2に示すメモリ装置における課題を説明するための図である。ここで、演算回路2は、例えば、大規模配列データ(配列データ)をDRAMやフラッシュメモリのようなメモリ装置1に書き込むアプリケーションを実行しているものとする。
 アプリケーションからメモリ装置1に格納された配列データ10に対するアクセスは、アプリケーションが持つアルゴリズムによって自由な順序で行われる。また、例えば、演算回路2が並列化されている場合、配列データ10における配列の異なる要素に対する同時アクセスも生じ得る。
 これをメモリ装置1から見ると、大量のランダムアクセス的な書き込みが生じることになり、アプリケーションとしての性能が劣化する原因となる。例えば、前述した有限要素法のアプリケーションにおける全体剛性マトリクスの構築は、要素剛性マトリクス毎の係数更新でランダムアクセスを行うため、性能劣化の原因となっている。
 また、前述したように、ライトコンバインや疎行列・タイリングといった手法により、配列データの書き込みを高速に行うものも提案されているが、ライトコンバインは、配列データが大規模になるほど、コンバインの確率が減るといった問題がある。また、疎行列・タイリングは、非0係数を纏めた配列自体が密行列になってしまうため、例えば、ランダムアクセス的な書き込みには向いていない。
 以下、メモリ制御装置およびメモリ制御方法の実施例を、添付図面を参照して詳述する。図4は、一実施形態に係るメモリ制御装置を模式的に示す図である。図4に示されるように、本実施形態のメモリ制御装置3は、例えば、DRAM等の大容量メモリであるメモリ装置1に対する演算回路2(アプリケーション)からのデータ(書き込みデータ)の書き込みを制御する。
 メモリ制御装置3は、例えば、ソートバッファ30を有する書き込みソート回路31、DRAM等の退避メモリ装置32、および、書き込みバッファ11'を含む。ここで、書き込みバッファ11'としては、専用のバッファを設けずに、例えば、図2を参照して説明したメモリ装置1におけるレジスタ11を使用することもできる。また、メモリ装置1は、ブロックアクセス機能を有している。
 図4に示されるように、メモリ制御装置3(書き込みソート回路31)は、複数の書き込みデータ(配列データ)を入力として受け取り、書き込みバッファ11'を経由して、ブロックアクセス機能を利用してメモリ装置1に書き込む。なお、メモリ制御装置3は、例えば、ブロックアクセス機能を有するDMA(Direct Memory Access)回路を含んでもよい。
 ここで、配列データは、例えば、配列要素のインデクスとその要素に書き込む値の組(Index,Value)で表すことができる。また、書き込みソート回路31は、複数のソートバッファ30を有し、例えば、ソートバッファ30の内容を退避させるための退避メモリ装置32に接続されている。すなわち、退避メモリ装置32は、ソートバッファ30に格納されたデータを一時的に退避させるためのものである。
 さらに、書き込みバッファ11'は、ソートバッファ30からの配列データ(書き込みデータ)を受け取り、例えば、メモリ装置1における配列データ10の書き換え(書き込み)を行う。なお、メモリ装置1としては、例えば、ブロックアクセス機能を有するDRAM(例えば、SDRAM),フラッシュメモリまたはハードディスク等を適用できる。
 また、退避メモリ装置32としては、例えば、書き込みソート回路31が受け取るデータよりも大きな容量(記憶容量)を有するDRAM等を適用することができる。ここで、上述した書き込みソート回路31は、1つに限定されるものではなく、複数(例えば、4個,8個)設けることができるのはいうまでもない。
 このように、本実施形態のメモリ制御装置は、ブロックアクセス機能を有するメモリ装置1に対して配列データ(書き込みデータ)を書き込むとき、配列データを複数のソートバッファ30にソートする。さらに、ソートバッファ30にソートされた配列データを、メモリ装置1に対して、ブロックアクセス機能を用いて書き込む。これにより、メモリ装置1に対する配列データの書き込みを、ブロックアクセス機能を用いて一括して行い、より一層高速化することが可能になる。
 図5は、メモリ制御装置の一実施例を説明するための図であり、図6~図10は、図5に示す一実施例のメモリ制御装置におけるアルゴリズム動作の一例を説明するための図である。ここで、例えば、演算回路2等からの書き込みデータ(配列データ)は、ブロックサイズM=16要素、配列データの要素数N=128として説明する。
 図5に示されるように、一実施例のメモリ制御装置において、動作順序は、全配列データの入力(処理[P1])、配列データの基数ソート(処理[P2]~処理[P4])、および、配列データの更新(処理[P5])となる。
 ここで、処理P1~処理P5は、それぞれ図6~図10を参照して説明する。なお、前述した図4との比較から明らかなように、図5並びに図6~図10において、退避メモリ装置32は省略されている。また、書き込みバッファ11'は、専用のバッファを設けずに、メモリ装置1におけるレジスタ11を使用してもよいのは、前述した通りである。
 まず、図6に示されるように、全配列データの入力処理[P1]において、書き込みソート回路31は、全ての配列データ(書き込みデータ)を受け取って、基数ソートの0段目ソートバッファ(バッファ)30aに格納する。なお、本例において、配列データは、12個(ここで、図6のバッファ30aにおける数字74,4,110,120,41,…は、書き込み先の配列データのインデクス(Index)を表す)となっている。
 次に、図7に示されるように、配列データの基数ソート処理[P2]において、0段目バッファ30aに格納されたデータを順次読み込んで、例えば、Indexが64以上(Index≧64)か否(Index<64)かで、1段目バッファ30b1または30b2に振り分ける。具体的に、図7の例では、64≦Indexの6個の配列データ(Index 74,110,120,73,100,80)がバッファ30b1に格納され、Index<64の6個の配列データ(Index 4,41,62,10,19,39)がバッファ30b2に格納される。
 さらに、図8に示されるように、配列データの基数ソート処理[P3]において、1段目バッファ30b1に格納されたデータを順次読み込んで、例えば、インデックスが96以上か否かで、2段目バッファ30c1または30c2に振り分ける。また、1段目バッファ30b2に格納されたデータを順次読み込んで、例えば、インデックスが32以上か否かで、2段目バッファ30c3または30c4に振り分ける。
 具体的に、図8の例では、96≦Indexの3個の配列データ(Index 110,120,100)がバッファ30c1に格納され、64≦Index<96の3個の配列データ(Index 74,73,80)がバッファ30c2に格納される。また、32≦Index<64の3個の配列データ(Index 41,62,39)がバッファ30c3に格納され、Index<32の3個の配列データ(Index 4,10,19)がバッファ30c4に格納される。
 さらに、図9に示されるように、配列データの基数ソート処理[P4]において、2段目バッファ30c1に格納されたデータを順次読み込んで、例えば、インデックスが112以上か否かで、3段目バッファ30d1または30d2に振り分ける。また、2段目バッファ30c2に格納されたデータを順次読み込んで、例えば、インデックスが80以上か否かで、3段目バッファ30d3または30d4に振り分ける。
 さらに、2段目バッファ30c3に格納されたデータを順次読み込んで、例えば、インデックスが48以上か否かで、3段目バッファ30d5または30d6に振り分ける。また、2段目バッファ30c4に格納されたデータを順次読み込んで、例えば、インデックスが16以上か否かで、3段目バッファ30d7または30d8に振り分ける。なお、本例において、例えば、log2(N/M)=log2(128/16)=3より、基数ソートは、3段目の処理[P4]で終了する。
 具体的に、図9の例では、112≦Indexの1個の配列データ(Index 120)がバッファ30d1に格納され、96≦Index<112の2個の配列データ(Index 110,100)がバッファ30d2に格納される。また、80≦Index<96の1個の配列データ(Index 80)がバッファ30d3に格納され、64≦Index<80の2個の配列データ(Index 74,73)がバッファ30d4に格納される。
 さらに、48≦Index<64の1個の配列データ(Index 62)がバッファ30d5に格納され、32≦Index<48の2個の配列データ(Index 41,39)がバッファ30d6に格納される。そして、16≦Index<32の1個の配列データ(Index 19)がバッファ30d7に格納され、Index<16の2個の配列データ(Index 4,10)がバッファ30d8に格納される。
 そして、図10に示されるように、配列データの更新処理[P5]において、3段目のソートバッファ30d(30d1~30d8)内の配列データを、書き込みバッファ11'(111~118)に反映させる。すなわち、バッファ30d1~30d8にソートされた配列データ(書き込みデータ)は、書き込みバッファ(レジスタ)111~118を介し、ブロックアクセス機能を使用して、メモリ装置1の配列データ10が一括して書き換えられる。
 なお、例えば、同じインデクスに対して複数の配列データがあれば、ここで処理する。例えば、配列更新の方式が上書きモードならば、何れか1つの書き込み値を選び、また、積算モードならば、全ての書き込み値の合計を求めるといった処理が行われる。
 図11は、図5に示す一実施例のメモリ制御装置における振り分け処理の一例を説明するための図である。図11および前述した図4に示されるように、一実施例のメモリ制御装置3は、書き込みソート回路31および退避メモリ装置32を含む。
 なお、図11は、基数ソートにおいて、例えば、1つのバッファ(ソートバッファ)から2つのバッファに振り分ける場合の処理を示す。これは、例えば、図7を参照して説明した処理[P2]において、1つの0段目バッファ(入力ソートバッファ)30aに格納されたデータを、2つの1段目バッファ(出力ソートバッファ)30b1,30b2に振り分ける場合に相当する。このとき、閾値Lは、インデックス64になる。
 また、図8を参照して説明した処理[P3]において、1つの1段目バッファ30b1に格納されたデータを2つの2段目バッファ30c1,30c2に振り分ける場合に相当し、このとき、閾値Lは、インデックス96になる。さらに、処理[P3]において、1つの1段目バッファ30b2に格納されたデータを2つの2段目バッファ30c3,30c4に振り分ける場合に相当し、このとき、閾値Lは、インデックス32になる。これは、図9を参照して説明した処理[P4]においても同様である。
 このように、基数ソートにおいて、1つの入力ソートバッファ(例えば、30a)から書き込みデータ(配列データ)を取り出し、インデックスがL(例えば、64)以上か否かにより、2つの出力ソートバッファ(例えば、30b1,30b2)のどちらかに格納する。
 ここで、データ量がバッファの容量を超える場合、例えば、図11におけるP21,P22に示されるように、その超えたデータを退避ブロックとしてリスト化して退避メモリ装置32に退避させる。なお、退避メモリ装置32としては、例えば、DRAM(SDRAM)を適用することができる。
 そして、例えば、バッファ30aに空きができたら(例えば、バッファ30aが空になったら)、リストを辿って退避ブロックを退避メモリ装置32から読み出し、バッファ30aに対してブロックアクセスにより回復(補充:図11におけるP20)する。このように、書き込みソート回路31は、データの振り分け回路としての機能も有し、例えば、出力ソートバッファ(30b1,30b2)が満杯になったら、溢れたデータを退避メモリ装置32に対してブロックアクセスにより退避させ、リストに挿入する。
 このように、メモリ装置1に格納された配列データ10の更新は、同一ブロック内の複数要素を、ブロックアクセス機能を用いて行う(書き込む)ことができるため、ランダムアクセスの場合よりも大幅に時間を短縮することが可能となる。なお、例えば、メモリ装置1に書き込む配列データの容量が所定の閾値以上のときは、メモリ装置1に対して上述したブロックアクセスにより書き込みを行い、所定の閾値よりも小さいときは、ランダムアクセスによりで書き込みを行うことも可能である。
 また、基数ソートの各段のバッファに対する振り分け処理は、例えば、図5~図10を参照して説明した例の場合、3つのソートバッファ、すなわち、1つの入力ソートバッファおよび2つの出力ソートバッファにより実行できる。さらに、例えば、ソートバッファ(バッファ)をFIFO(First In First Out)レジスタで形成し、FIFOレジスタから溢れたデータを退避メモリ装置32に退避することで、データ数の制限は実質的に無いことになる。また、退避メモリ装置32に対するデータの退避(回復)にブロックアクセスを用いることにより、後に詳述するように、基数ソートに要する時間が問題となることはない。
 図12および図13は、一実施例のメモリ制御装置による効果を説明するための図である。図12に示されるように、例えば、図5~図10を参照して説明した例の場合、ブロックアクセスは、基数ソートの各段での書き込みデータ(配列データ)の退避および回復と、書き込みバッファ11'からメモリ装置1の配列データ10への書き込みとなる。
 ここで、ランダムアクセスおよびブロックアクセスのスループットを、各々64k要素/sおよび64M要素/sとし、ブロックサイズM=256要素数としたとき、配列の全データをK回更新するのに要するメモリの容量と処理時間を見積もる。
 上述した一実施形態のメモリ制御装置では、基数ソートの各段で、最悪でK×Nの書き込みデータを退避メモリ装置32へ退避(回復)することになるため、記憶容量は、2×K×N要素分だけ設ける。この記憶容量は、高々、要素数Nの定数倍で抑えられる。さらに、メモリ装置に対するアクセス回数は、基数ソートの各段で最悪の場合、2×K×N回、また、最終段ではブロック毎に1回ずつの配列データ10への書き込みを生じる。
 メモリアクセスは、いずれもブロックアクセスにより実現でき、基数ソートの段数がlog2(N/M)であるため、上述した一実施形態のメモリ制御装置による総時間は、次のようになる。
  本実施形態の総時間=(1/64,000,000)×{(2×K×N)×log2(N/M)+N}
           ≒(1/32,000000)×log2(N/256)×(K×N)
 これに対して、例えば、ランダムアクセスの場合を行うメモリ制御装置を考えると、K×N回の更新を行うことになるため、総時間は、次のようになる。
  ランダムアクセスの総時間=(1/64,000)×(K×N)
 従って、本実施形態のメモリ制御装置による総時間{(1/32,000000)×log2(N/256)×(K×N)}は、ランダムアクセスの総時間{(1/64,000)×(K×N)}よりも、ブロックアクセスにより、Nに対する係数が非常に小さくなり、高速化が可能なのが分かる。
 例えば、配列の全データを6回更新する(メモリ装置1における配列データ10を6回書き換える)場合、K=6となる。また、本実施形態のスループットを「64M要素/s」とし、ランダムアクセスのスループットを「64k要素/s」とする。なお、これらの値は、一般的に想定し得る値である。
 さらに、ブロックサイズをM=256要素とし、更新回数をK=6とすると、図13のようになる。また、図13において、参照符合CL1は、本実施形態のメモリ制御装置による特性曲線を示し、CL2は、ランダムアクセスによる特性曲線を示す。
 図13における特性曲線CL1とCL2の比較から明らかなように、例えば、K=6の場合、本実施形態のメモリ制御装置による特性曲線CL1は、ランダムアクセスによる特性曲線CL2よりも2桁近く高速化できることが分かる。
 以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
 1  メモリ装置
 2  演算回路
 3  メモリ制御装置
 10  メモリ装置に格納された配列データ
 11,11'  書き込みレジスタ(レジスタ,バッファ)
 12  メモリセル
 30,30a~30d  ソートバッファ(バッファ)
 31  書き込みソート回路
 32  退避メモリ装置

Claims (15)

  1.  ブロックアクセス機能を有するメモリ装置に対してデータの書き込みを制御するメモリ制御装置であって、
      前記メモリ装置に配列データを書き込むとき、前記配列データをソートする複数のソートバッファを有し、
     前記ソートバッファにソートされた前記配列データを、前記メモリ装置に対して、前記ブロックアクセス機能を用いて書き込む、
     ことを特徴とするメモリ制御装置。
  2.  前記ソートバッファに対する前記配列データのソートを、基数ソートを用いて行う、
     ことを特徴とする請求項1に記載のメモリ制御装置。
  3.  前記ソートバッファにソートされた前記配列データに基づいて、前記ソートバッファ上にブロック単位のデータ内容を作成し、前記ブロックアクセス機能を用いて前記メモリ装置に書き込む、
     ことを特徴とする請求項2に記載のメモリ制御装置。
  4.  さらに、
      前記ソートバッファの容量を超えたデータを、ブロックアクセス機能を用いて退避させる退避メモリ装置を有する、
     ことを特徴とする請求項1乃至請求項3のいずれか1項に記載のメモリ制御装置。
  5.  さらに、
      前記ソートバッファと前記メモリ装置の間に設けられ、前記ソートバッファにソートされた前記配列データを保持し、前記メモリ装置に対して、前記ブロックアクセス機能を用いて纏めて書き込むための書き込みバッファを有する、
     ことを特徴とする請求項1乃至請求項4のいずれか1項に記載のメモリ制御装置。
  6.  前記書き込みバッファは、前記メモリ装置に設けられたレジスタを使用する、
     ことを特徴とする請求項5に記載のメモリ制御装置。
  7.  前記メモリ装置に書き込む前記配列データの容量が所定の閾値以上のときは、前記メモリ装置に対して前記ブロックアクセスにより書き込みを行い、
     前記メモリ装置に書き込む前記配列データの容量が所定の閾値よりも小さいときは、前記メモリ装置に対してランダムアクセスによりで書き込みを行う、
     ことを特徴とする請求項1乃至請求項6のいずれか1項に記載のメモリ制御装置。
  8.  前記メモリ装置は、DRAM,フラッシュメモリまたはハードディスクを含む、
     ことを特徴とする請求項1乃至請求項7のいずれか1項に記載のメモリ制御装置。
  9.  ブロックアクセス機能を有するメモリ装置に対してデータの書き込みを制御するメモリ制御方法であって、
      前記メモリ装置に配列データを書き込むとき、前記配列データを複数のソートバッファにソートし、
     前記ソートバッファにソートされた前記配列データを、前記メモリ装置に対して、前記ブロックアクセス機能を用いて書き込む、
     ことを特徴とするメモリ制御方法。
  10.  前記ソートバッファに対する前記配列データのソートを、基数ソートを用いて行う、
     ことを特徴とする請求項9に記載のメモリ制御方法。
  11.  前記ソートバッファにソートされた前記配列データに基づいて、前記ソートバッファ上にブロック単位のデータ内容を作成し、前記ブロックアクセス機能を用いて前記メモリ装置に書き込む、
     ことを特徴とする請求項10に記載のメモリ制御方法。
  12.  さらに、
      前記ソートバッファの容量を超えたデータを、ブロックアクセス機能を用いて退避メモリ装置に退避させる、
     ことを特徴とする請求項9乃至請求項11のいずれか1項に記載のメモリ制御方法。
  13.  容量を超えた前記ソートバッファに空きができたら、前記退避メモリ装置に退避されたデータを、ブロックアクセス機能を用いて回復させる、
     ことを特徴とする請求項12に記載のメモリ制御方法。
  14.  前記メモリ装置に書き込む前記配列データの容量が所定の閾値以上のときは、前記メモリ装置に対して前記ブロックアクセスにより書き込みを行い、
     前記メモリ装置に書き込む前記配列データの容量が所定の閾値よりも小さいときは、前記メモリ装置に対してランダムアクセスによりで書き込みを行う、
     ことを特徴とする請求項10乃至請求項13のいずれか1項に記載のメモリ制御方法。
  15.  前記メモリ装置は、DRAM,フラッシュメモリまたはハードディスクを含む、
     ことを特徴とする請求項10乃至請求項14のいずれか1項に記載のメモリ制御方法。
PCT/JP2016/062025 2016-04-14 2016-04-14 メモリ制御装置およびメモリ制御方法 WO2017179176A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018511840A JP6485594B2 (ja) 2016-04-14 2016-04-14 メモリ制御装置およびメモリ制御方法
PCT/JP2016/062025 WO2017179176A1 (ja) 2016-04-14 2016-04-14 メモリ制御装置およびメモリ制御方法
US16/155,993 US20190042421A1 (en) 2016-04-14 2018-10-10 Memory control apparatus and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/062025 WO2017179176A1 (ja) 2016-04-14 2016-04-14 メモリ制御装置およびメモリ制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/155,993 Continuation US20190042421A1 (en) 2016-04-14 2018-10-10 Memory control apparatus and memory control method

Publications (1)

Publication Number Publication Date
WO2017179176A1 true WO2017179176A1 (ja) 2017-10-19

Family

ID=60042397

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/062025 WO2017179176A1 (ja) 2016-04-14 2016-04-14 メモリ制御装置およびメモリ制御方法

Country Status (3)

Country Link
US (1) US20190042421A1 (ja)
JP (1) JP6485594B2 (ja)
WO (1) WO2017179176A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04278651A (ja) * 1991-03-07 1992-10-05 Nec Corp 主記憶装置
JPH05342098A (ja) * 1992-06-10 1993-12-24 Fujitsu Ltd データ処理システムおよび主記憶制御装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201015321A (en) * 2008-09-25 2010-04-16 Panasonic Corp Buffer memory device, memory system and data trnsfer method
JP4901968B2 (ja) * 2010-03-01 2012-03-21 株式会社東芝 半導体記憶装置
US8990502B2 (en) * 2010-11-23 2015-03-24 International Business Machines Corporation Write cache structure in a storage system
US9928261B2 (en) * 2014-01-29 2018-03-27 International Business Machines Corporation Radix sort acceleration using custom ASIC

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04278651A (ja) * 1991-03-07 1992-10-05 Nec Corp 主記憶装置
JPH05342098A (ja) * 1992-06-10 1993-12-24 Fujitsu Ltd データ処理システムおよび主記憶制御装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KIYOSHI KUMAHATA: "Performance Tuning for Gradient Kernel of the FrontFlow/blue on the K computer", IPSJ TRANSACTIONS ON ADVANCED COMPUTING SYSTEMS, vol. 6, no. 3, 30 September 2013 (2013-09-30), pages 31 - 42 *

Also Published As

Publication number Publication date
US20190042421A1 (en) 2019-02-07
JPWO2017179176A1 (ja) 2018-11-22
JP6485594B2 (ja) 2019-03-20

Similar Documents

Publication Publication Date Title
US20210264273A1 (en) Neural network processor
US8463820B2 (en) System and method for memory bandwidth friendly sorting on multi-core architectures
US8843502B2 (en) Sorting a dataset of incrementally received data
EP2950202A1 (en) Processor and data gathering method
JP2010521728A (ja) データ圧縮のための回路及びこれを用いるプロセッサ
EP3686816A1 (en) Techniques for removing masks from pruned neural networks
CN110826719A (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
US20110302394A1 (en) System and method for processing regular expressions using simd and parallel streams
US9058301B2 (en) Efficient transfer of matrices for matrix based operations
WO2018034767A1 (en) Method and apparatus for compressing a data set using incremental deltas and a variable reference value
CN111210004B (zh) 卷积计算方法、卷积计算装置及终端设备
US11409798B2 (en) Graph processing system including different kinds of memory devices, and operation method thereof
Shahbahrami et al. FPGA implementation of parallel histogram computation
CN104794102A (zh) 一种加速实现Cholesky分解的嵌入式片上系统
JP6485594B2 (ja) メモリ制御装置およびメモリ制御方法
US11275713B2 (en) Bit-serial linear algebra processor
CN114897159B (zh) 一种基于神经网络的快速推断电磁信号入射角的方法
Chen et al. Area-efficient distributed arithmetic optimization via heuristic decomposition and in-memroy computing
US8495275B2 (en) List structure control circuit
CN112817735A (zh) 计算装置、计算设备以及用于线程组累加的方法
JP2023524751A (ja) インライン解凍
WO2021214944A1 (ja) 構成変換装置、構成変換方法、および構成変換プログラム
JPWO2014168199A1 (ja) 論理演算方法および情報処理装置
CN111177482B (zh) 一种图数据并行处理的方法、装置、设备及可读存储介质
CN111507178B (zh) 数据处理的优化方法及装置、存储介质、计算机设备

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2018511840

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 16898636

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16898636

Country of ref document: EP

Kind code of ref document: A1