WO2023105616A1 - 深層学習推論システム - Google Patents

深層学習推論システム Download PDF

Info

Publication number
WO2023105616A1
WO2023105616A1 PCT/JP2021/044891 JP2021044891W WO2023105616A1 WO 2023105616 A1 WO2023105616 A1 WO 2023105616A1 JP 2021044891 W JP2021044891 W JP 2021044891W WO 2023105616 A1 WO2023105616 A1 WO 2023105616A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory space
neural network
module
local memory
data
Prior art date
Application number
PCT/JP2021/044891
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 PCT/JP2021/044891 priority Critical patent/WO2023105616A1/ja
Publication of WO2023105616A1 publication Critical patent/WO2023105616A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks

Definitions

  • the present invention relates to a deep learning inference system that performs inference serving using a multilayer neural network.
  • Inference is to obtain processed data by providing a computing unit with an operation for neural network computation, parameters of the neural network, and data to be processed. Inference requires a large number of operations and memory. Because of this, inferences may be made at the server.
  • the client sends a request and data to be processed to the server, and receives the processing result as a response.
  • the provision of such services is inference serving.
  • Various methods have been proposed for inference serving (see Non-Patent Document 1).
  • FIG. 5 shows the generalized internal structure of the von Neumann processor.
  • Neural network operation operation codes 200 , neural network parameters 201 , and data to be processed are stored in a DRAM (Dynamic Random Access Memory) 100 .
  • the input data 202 is data to be processed and data in the process of calculation.
  • the instruction fetch module 102 reads the operation code 200 from the DRAM 100 and transfers it to the load module 103, the compute module 104 and the store module 105.
  • the load module 103 reads the input data 202 from the DRAM 100 , batches a plurality of pieces of input data 202 , and transfers them to the compute module 104 .
  • the compute module 104 performs neural network operations using input data 202 and parameters 201 according to the operation code 200 transferred from the instruction fetch module 102 .
  • the compute module 104 is equipped with an ALU (Arithmetic Logic Unit) 1040 and a GEMM (General Matrix Multiply) circuit 1041 . After computing according to the operation code 200 , the compute module 104 transfers the computation result to the store module 105 .
  • ALU Arimetic Logic Unit
  • GEMM General Matrix Multiply
  • the store module 105 stores the calculation result by the compute module 104 in the DRAM 100. At this time, not only the processed data is stored in the DRAM 100 as the output data 203, but also the data in the middle of the calculation may be temporarily stored as the output data 203. FIG. The data in the middle of the calculation becomes the input data 202 to the load module 103 .
  • the DRAM 100 is memory outside the processor.
  • the DRAM 100 stores operation codes 200 for neural network operations, neural network parameters 201, input data 202, and output data 203 as described above. These data exist for each requesting client.
  • FIG. 6 shows the memory space of the DRAM 100 when a memory area is assigned to each request client. In the example of FIG. 6, each line 1000 to 1006 of the memory space schematically represents the memory space for each client.
  • the present invention was made to solve the above problems, and aims to provide a deep learning inference system that can improve computer efficiency and can perform inference serving with high energy efficiency.
  • the deep learning inference system of the present invention includes a memory having a global memory space in which operation codes for neural network operations and parameters of the neural network are stored, and a local memory space secured for each client that sends a request. , a plurality of processors configured to read out the operation code and the parameter from the global memory space in response to a request from a client and perform the operation of the neural network for each of a plurality of clients; and each processor reads data to be processed from the local memory space corresponding to the target client, performs computation of the neural network, and stores the computation result in the local memory space corresponding to the target client. It is characterized by
  • the deep learning inference system of the present invention includes a memory having a global memory space storing data to be processed by the convolutional neural network, a local memory space secured for each of the plurality of kernels of the convolutional neural network, and a plurality of processors configured to read out the data to be processed from the global memory space and perform a convolution operation on each of the plurality of kernels, each processor performing a convolution operation on the target kernel.
  • the method is characterized in that the instruction code and kernel parameters are read out from the local memory space corresponding to the target kernel, a convolution operation is performed, and the operation result is stored in the local memory space corresponding to the target kernel.
  • the deep learning inference system of the present invention includes a memory having a global memory space for storing intermediate data of a multi-layer neural network, a local memory space secured for each layer of the multi-layer neural network, and the multi-layer neural network.
  • a process of reading an operation code and parameters for an operation of the target layer from the local memory space corresponding to the target layer of and performing the operation of the target layer is performed for each layer of the multilayer neural network.
  • the processor for the upper layer reads the data to be processed from the local memory space corresponding to the target layer, performs the operation of the target layer, and outputs the operation result
  • the intermediate data is stored in the global memory space as intermediate data
  • the processors for the lower layers read out the intermediate data to be processed from the global memory space, perform the operation of the target layer, and use the operation result as the target. is stored in the local memory space corresponding to the layer of
  • one configuration example of the deep learning inference system of the present invention is provided between the memory and the plurality of processors, and data, code, and parameters read and written between the memory and the plurality of processors are , further comprising a plurality of cache memories configured to store the
  • operation codes and parameters are stored in a global memory space shared by multiple processors.
  • multiple inferences can be executed in parallel by different processors for inferences using the same model but different data to be processed.
  • the present invention can save memory space and improve request throughput.
  • FIG. 1 is a block diagram showing the configuration of a computing unit provided in the server of the deep learning inference system according to the first embodiment of the present invention.
  • FIG. 2 is a block diagram showing the configuration of a calculator provided in the server of the deep learning inference system according to the second embodiment of the present invention.
  • FIG. 3 is a block diagram showing the configuration of a calculator provided in the server of the deep learning inference system according to the third embodiment of the present invention.
  • FIG. 4 is a block diagram showing the configuration of a calculator provided in the server of the deep learning inference system according to the fourth embodiment of the present invention.
  • FIG. 5 is a block diagram showing the configuration of a von Neumann processor constructed on an FPGA accelerator.
  • FIG. 6 is a diagram showing the memory space of the DRAM accessed by the Von Neumann processor.
  • the present invention provides a shared memory space on the memory space of the deep learning inference system, and allows each von Neumann processor to share data.
  • FIG. 1 is a block diagram showing the configuration of a calculator provided in the server of the deep learning inference system according to the first embodiment of the present invention.
  • the computing unit comprises a DRAM 100a and a plurality of von Neumann processors 101a-1 and 101a-2.
  • Each processor 101a-1, 101a-2 is composed of an instruction fetch module 102a, a load module 103a, a compute module 104, and a store module 105a.
  • the memory space of the DRAM 100a of this embodiment includes local memory spaces 1000 to 1006 secured for each client and a global memory space 1007 secured to be shared by a plurality of processors 101a-1 and 101a-2. .
  • the CPU 110 of the server When the CPU (Central Processing Unit) 110 of the server receives an inference request from the client A via the network, the neural network operation operation code 200 and the neural network parameter 201 corresponding to the inference request are stored in the global memory space of the DRAM 100a. Store in 1007 . Further, the CPU 110 stores the data to be processed received from the client A in the local memory space 1000 of the DRAM 100a corresponding to the client A as the input data 202-1.
  • the CPU 110 Central Processing Unit 110 of the server receives an inference request from the client A via the network
  • the neural network operation operation code 200 and the neural network parameter 201 corresponding to the inference request are stored in the global memory space of the DRAM 100a. Store in 1007 . Further, the CPU 110 stores the data to be processed received from the client A in the local memory space 1000 of the DRAM 100a corresponding to the client A as the input data 202-1.
  • the CPU 110 when the CPU 110 receives the inference request and the data to be processed from the client B via the network, the CPU 110 stores the data to be processed as the input data 202-2 in the local memory space 1001 of the DRAM 100a corresponding to the client B. Store.
  • An inference request specifies which model to infer. In this embodiment, it is assumed that the inference requests received from each of clients A and B specify the same model.
  • the instruction fetch module 102a of the processor 101a-1 reads the operation code 200 and the parameter 201 from the global memory space 1007 of the DRAM 100a and transfers them to the load module 103a, compute module 104 and store module 105a of the processor 101a-1.
  • the load module 103a of the processor 101a-1 reads the input data 202-1 from the local memory space 1000 of the DRAM 100a corresponding to the client A that sent the inference request, batches the plurality of input data 202-1, transfer to
  • the compute module 104 of the processor 101a-1 performs neural network operations using the input data 202-1 and the parameters 201 according to the operation code 200 transferred from the instruction fetch module 102a.
  • the compute module 104 transfers the computation result to the store module 105a.
  • the store module 105a of the processor 101a-1 stores the computation result of the compute module 104 in the local memory space 1000 of the DRAM 100a corresponding to client A as output data 203-1.
  • the CPU 110 of the server reads the processed data from the local memory space 1000 of the DRAM 100a and returns this data to the client A as a response to the inference request.
  • the instruction fetch module 102a of the processor 101a-2 reads the operation code 200 and the parameter 201 from the global memory space 1007 of the DRAM 100a and transfers them to the load module 103a, the compute module 104 and the store module 105a of the processor 101a-2. do.
  • the load module 103a of the processor 101a-2 reads the input data 202-2 from the local memory space 1001 of the DRAM 100a corresponding to the client B that sent the inference request, batches the plurality of input data 202-2, transfer to
  • the compute module 104 of the processor 101a-2 performs neural network operations using the input data 202-2 and the parameters 201 according to the operation code 200 transferred from the instruction fetch module 102a.
  • the compute module 104 transfers the computation result to the store module 105a.
  • the store module 105a of the processor 101a-2 stores the computation result of the compute module 104 in the local memory space 1001 of the DRAM 100a corresponding to client B as output data 203-2.
  • the CPU 110 of the server reads the processed data from the local memory space 1001 of the DRAM 100a and returns this data to the client B as a response to the inference request.
  • the operation code 200 and the parameter 201 are stored in the global memory space 1007 shared by the multiple processors 101a-1 and 101a-2.
  • different processors 101a-1 and 101a-2 can execute a plurality of inferences in parallel using different processing target data but using the same model (inference with the same operation code 200).
  • the memory space can be saved and the request throughput can be improved.
  • FIG. 2 is a block diagram showing the configuration of a calculator provided in the server of the deep learning inference system according to the second embodiment of the present invention.
  • the computing unit comprises a DRAM 100b and a plurality of von Neumann processors 101b-1 and 101b-2.
  • Each processor 101b-1, 101b-2 is composed of an instruction fetch module 102b, a load module 103b, a compute module 104b, and a store module 105b.
  • convolution operations are performed using multiple types of filters (kernels), and a weighted sum of the results of multiple convolution operations is computed.
  • local memory spaces 1000 to 1006 are secured for each of a plurality of types of kernels of the convolutional neural network, and are secured to be shared by a plurality of processors 101b-1 and 101b-2.
  • the input data 202 for the convolution operation is stored by the CPU 110 of the server.
  • the instruction fetch module 102b of the processor 101b-1 reads the kernel parameter 204-1 and the kernel convolution operation code 205-1 from the local memory space 1000 of the DRAM 100b, and fetches the load module 103b and the compute module 104b of the processor 101b-1. and the store module 105b.
  • the load module 103b of the processor 101b-1 reads the input data 202 from the global memory space 1007 of the DRAM 100b and transfers it to the compute module 104b.
  • the compute module 104b of the processor 101b-1 performs a convolution operation using the input data 202 and the kernel parameter 204-1 according to the convolution operation instruction code 205-1 transferred from the instruction fetch module 102b.
  • the compute module 104b transfers the computation result to the store module 105b.
  • the store module 105b of the processor 101b-1 stores the computation result of the compute module 104b as the output data 203-1 in the local memory space 1000 of the DRAM 100b.
  • the instruction fetch module 102b of the processor 101b-2 reads the kernel parameter 204-2 and the kernel convolution operation code 205-2 from the local memory space 1001 of the DRAM 100b, Transfer to module 104b and store module 105b.
  • the load module 103b of the processor 101b-2 reads the input data 202 from the global memory space 1007 of the DRAM 100b and transfers it to the compute module 104b.
  • the compute module 104b of the processor 101b-2 performs a convolution operation using the input data 202 and the kernel parameter 204-2 according to the convolution operation instruction code 205-2 transferred from the instruction fetch module 102b.
  • the compute module 104b transfers the computation result to the store module 105b.
  • the store module 105b of the processor 101b-2 stores the computation result of the compute module 104b as the output data 203-2 in the local memory space 1001 of the DRAM 100b.
  • the input data 202 is stored in the global memory space 1007 shared by the plurality of processors 101b-1 and 101b-2, and the kernel parameters 204-1 and 204-2 and the convolution operation instruction code 205 are stored.
  • -1, 205-2 are stored in different local memory spaces 1000 to 1006 for each convolution operation.
  • multiple convolution operations can be executed in parallel by different processors 101b-1 and 101b-2, and inference throughput can be improved.
  • FIG. 3 is a block diagram showing the configuration of a calculator provided in the server of the deep learning inference system according to the third embodiment of the present invention.
  • the computing unit is composed of a DRAM 100c and a plurality of von Neumann processors 101c-1 and 101c-2.
  • Each processor 101c-1, 101c-2 is composed of an instruction fetch module 102c, a load module 103c, a compute module 104cc, and a store module 105c.
  • the processor 101c-1 performs the upper layer operations and the processor 101c-2 performs the lower layer operations, thereby enabling pipeline processing.
  • the memory space of the DRAM 100c of this embodiment includes local memory spaces 1000 to 1006 secured for each layer of the multi-layer neural network, and global memory space secured to be shared by a plurality of processors 101c-1 and 101c-2. There are 1007.
  • the CPU 110 of the server stores the operation code 200-1 and the parameter 201-1 of the upper layer operation of the multilayer neural network in the local memory space 1000 of the DRAM 100c, and stores the operation code 200-2 and the parameter 201-1 of the lower layer operation. 2 are stored in the local memory space 1001 of the DRAM 100c.
  • the CPU 110 also stores the data to be processed received from the client in the local memory space 1000 as the input data 202 .
  • the instruction fetch module 102c of the processor 101c-1 reads the operation code 200-1 and the parameter 201-1 from the local memory space 1000 of the DRAM 100c, and fetches the load module 103c, the compute module 104c and the store module 105c of the processor 101c-1. transfer to
  • the load module 103c of the processor 101c-1 reads the input data 202 from the local memory space 1000 of the DRAM 100c and transfers it to the compute module 104c.
  • the compute module 104c of the processor 101c-1 uses the input data 202 and the parameter 201-1 according to the operation code 200-1 transferred from the instruction fetch module 102c to perform the upper layer operations of the multi-layer neural network.
  • the compute module 104c transfers the computation result to the store module 105c.
  • the store module 105c of the processor 101c-1 stores the computation result of the compute module 104c as the intermediate data 206 in the global memory space 1007 of the DRAM 100c.
  • the instruction fetch module 102c of the processor 101c-2 reads the operation code 200-2 and the parameter 201-2 from the local memory space 1001 of the DRAM 100c, stores them in the load module 103c and the compute module 104c of the processor 101c-2. module 105c.
  • the load module 103c of the processor 101c-2 reads the intermediate data 206 from the global memory space 1007 of the DRAM 100c and transfers it to the compute module 104c.
  • the compute module 104c of the processor 101c-2 uses the intermediate data 206 and the parameter 201-2 according to the operation code 200-2 transferred from the instruction fetch module 102c to perform the lower layer operations of the multi-layer neural network.
  • the compute module 104c transfers the computation result to the store module 105c.
  • the store module 105c of the processor 101c-2 stores the computation result of the compute module 104c as the output data 203 in the local memory space 1001 of the DRAM 100c.
  • the intermediate data 206 for multi-layer neural network operations is stored in the global memory space 1007 shared by the multiple processors 101c-1 and 101c-2.
  • pipeline processing of multi-layer neural network operations becomes possible, and inference throughput can be improved.
  • FIG. 4 is a block diagram showing the configuration of a calculator provided in the server of the deep learning inference system according to the fourth embodiment of the present invention.
  • the calculator comprises a DRAM 100a, a plurality of von Neumann processors 101a-1 and 101a-2, and cache memories 106-1 and 106-2 provided between the DRAM 100a and the respective processors 101a-1 and 101a-2. Configured.
  • the DRAM 100a is as described in the first embodiment.
  • the CPU 110 of the server stores the operation code 200 and the parameter 201 stored in the global memory space 1007 of the DRAM 100a in the cache memories 106-1 and 106-2. Further, CPU 110 stores input data 202-1 stored in local memory space 1000 of DRAM 100a in cache memory 106-1, and stores input data 202-2 stored in local memory space 1001 of DRAM 100a in cache memory 106-2. save.
  • the instruction fetch module 102a of the processor 101a-1 reads the operation code 200 and the parameter 201 from the cache memory 106-1 and transfers them to the load module 103a, compute module 104 and store module 105a of the processor 101a-1.
  • the load module 103a of the processor 101a-1 reads the input data 202-1 from the cache memory 106-1, batches a plurality of pieces of input data 202-1, and transfers them to the compute module 104.
  • the compute module 104 of the processor 101a-1 performs neural network operations using the input data 202-1 and the parameters 201 according to the operation code 200 transferred from the instruction fetch module 102a.
  • the store module 105a of the processor 101a-1 stores the calculation result by the compute module 104 in the cache memory 106-1.
  • the CPU 110 of the server writes the processed data stored in the cache memory 106-1 to the local memory space 1000 of the DRAM 100a corresponding to the client A, reads the processed data from the local memory space 1000, and sends it to the client A. Reply.
  • the instruction fetch module 102a of the processor 101a-2 reads the operation code 200 and the parameter 201 from the cache memory 106-2 and transfers them to the load module 103a, the compute module 104 and the store module 105a of the processor 101a-2. .
  • the load module 103a of the processor 101a-2 reads the input data 202-2 from the cache memory 106-2, batches a plurality of pieces of input data 202-2, and transfers them to the compute module 104.
  • the compute module 104 of the processor 101a-2 performs neural network operations using the input data 202-2 and the parameters 201 according to the operation code 200 transferred from the instruction fetch module 102a.
  • the store module 105a of the processor 101a-2 stores the calculation result by the compute module 104 in the cache memory 106-2.
  • the CPU 110 of the server writes the processed data stored in the cache memory 106-2 to the local memory space 1001 of the DRAM 100a corresponding to the client B, reads the processed data from the local memory space 1001, and sends it to the client B. Reply.
  • the cache memories 106-1 and 106-2 between the DRAM 100a and the respective processors 101a-1 and 101a-2, the memory latency of the DRAM 100a is hidden and the inference latency is reduced. can be shortened.
  • the cache memories 106-1 and 106-2 are applied to the first embodiment, but it goes without saying that they may be applied to the second and third embodiments.
  • the cache memories 106-1 and 106-2 are applied to the second embodiment, the input data 202, the kernel parameter 204-1, the convolution operation instruction code 205-1, and the output data 203-1 are stored in the cache memory 106-1 and 106-2.
  • the input data 202, the kernel parameter 204-2, the convolution operation instruction code 205-2, and the output data 203-2 are stored in the cache memory 106-1.
  • the input data 202, the operation code 200-1 and the parameter 201-1 are stored in the cache memory 106-1, and the operation code 200 is stored in the cache memory 106-1.
  • the parameter 201-2, the intermediate data 206 and the output data 203 are stored in the cache memory 106-2.
  • the number of von Neumann processors and cache memories is two, but it goes without saying that the number may be three or more.
  • the present invention can be applied to technology that provides services using neural networks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Multi Processors (AREA)

Abstract

深層学習推論システムは、DRAM(100a)と、DRAM(100a)のグローバルメモリ空間(1007)からオペレーションコード(200)とパラメータ(201)とを読み出してニューラルネットワークの演算を行うプロセッサ(101a-1,101a-2)を備える。プロセッサ(101a-1,101a-2)は、対象のクライアントに対応するローカルメモリ空間(1000,1001)から処理対象のデータ(202-1,202-2)を読み出して演算を行い、演算結果を対象のクライアントに対応するローカルメモリ空間(1000,1001)に格納する。

Description

深層学習推論システム
 本発明は、多層ニューラルネットワークを用いて推論サービングを行う深層学習推論システムに関するものである。
 近年では、多層ニューラルネットワークを用いて情報処理を行い、その結果を活用するサービスが数多く存在する。演算器に、ニューラルネットワーク演算のオペレーションと、ニューラルネットワークのパラメータと、処理対象データとを与えて処理済みデータを得ることを、推論と呼ぶ。推論には、多数の演算とメモリとが必要になる。このため、サーバで推論が行われることがある。
 クライアントは、サーバに対してリクエストと処理対象データを送信し、処理の結果をレスポンスとして受け取る。このようなサービスの提供が推論サービングである。推論サービングには、さまざまな方法が提案されている(非特許文献1参照)。
 推論サービングの演算器としてFPGA(field-programmable gate array)アクセラレータを用いる場合、FPGAアクセラレータ上にノイマン型プロセッサを構築する方法が一般的である(非特許文献2参照)。ノイマン型プロセッサの内部構造を一般化して図5に示す。
 ニューラルネットワークの演算のオペレーションコード200と、ニューラルネットワークのパラメータ201と、処理対象のデータとは、DRAM(Dynamic Random Access Memory)100に格納される。図5の例では、処理対象のデータと演算途中のデータとを入力データ202としている。
 インストラクションフェッチモジュール(Instruction Fetch Module)102は、DRAM100からオペレーションコード200を読み出して、ロードモジュール(Load Module)103とコンピュートモジュール(Compute Module)104とストアモジュール(Store Module)105とに転送する。
 ロードモジュール103は、DRAM100から入力データ202を読み出し、複数の入力データ202をバッチ化して、コンピュートモジュール104に転送する。
 コンピュートモジュール104は、インストラクションフェッチモジュール102から転送されたオペレーションコード200に従って、入力データ202とパラメータ201とを用いてニューラルネットワークの演算を行う。コンピュートモジュール104には、ALU(Arithmetic Logic Unit)1040と、GEMM(General matrix multiply)回路1041とが搭載されている。コンピュートモジュール104は、オペレーションコード200に従って演算を行った後に、演算結果をストアモジュール105に転送する。
 ストアモジュール105は、コンピュートモジュール104による演算結果をDRAM100に格納する。このとき、処理済みのデータだけが出力データ203としてDRAM100に格納されるだけでなく、演算途中のデータが出力データ203として一時的に格納されることもある。演算途中のデータは、ロードモジュール103への入力データ202となる。
 DRAM100は、プロセッサ外部のメモリである。DRAM100には、上記のようにニューラルネットワークの演算のオペレーションコード200と、ニューラルネットワークのパラメータ201と、入力データ202と、出力データ203とが格納される。これらのデータは、リクエストクライアント毎に存在する。リクエストクライアント毎にメモリ領域を割り当てた場合のDRAM100のメモリ空間は図6のようになる。図6の例では、メモリ空間の各行1000~1006がクライアント毎のメモリ空間を模式的に表している。
 ノイマン型プロセッサが複数ある場合、従来のDRAM100のメモリ空間にはそれぞれのプロセッサが共有するメモリ空間がないため、以下のような課題があった。
(I)プロセッサは、クライアントからのリクエストをマルチコア処理することができない。
(II)プロセッサは、クライアントからのリクエストをパイプライン処理することができない。
(III)プロセッサは、クライアントからのリクエストが同じリクエストの場合(例えばパラメータが同じ場合)でも、クライアント毎にメモリからの読み出しを行う必要があり、メモリ空間が無駄になる。
Christopher Olston,et al.,"Tensorflow-serving:Flexible,high-performance ml serving",米国コーネル大学ライブラリー,arXiv preprint arXiv:1712.06139,2017 Thierry Moreau,Tianqi Chen,Luis Ceze,"Leveraging the vta-tvm hardware-software stack for fpga acceleration of 8-bit resnet-18 inference",Proceedings of the 1st on Reproducible Quality-Efficient Systems Tournament on Co-designing Pareto-efficient Deep Learning,2018
 本発明は、上記課題を解決するためになされたもので、計算機効率を向上させることができ、高いエネルギー効率で推論サービングを実行することができる深層学習推論システムを提供することを目的とする。
 本発明の深層学習推論システムは、ニューラルネットワークの演算のオペレーションコードと前記ニューラルネットワークのパラメータとが格納されたグローバルメモリ空間と、リクエストを送信するクライアント毎に確保されるローカルメモリ空間とを有するメモリと、クライアントからのリクエストに応じて、前記グローバルメモリ空間から前記オペレーションコードと前記パラメータとを読み出して前記ニューラルネットワークの演算を行う処理を、複数のクライアントのそれぞれについて行うように構成された複数のプロセッサとを備え、各プロセッサは、対象のクライアントに対応する前記ローカルメモリ空間から処理対象のデータを読み出して前記ニューラルネットワークの演算を行い、演算結果を対象のクライアントに対応する前記ローカルメモリ空間に格納することを特徴とするものである。
 また、本発明の深層学習推論システムは、畳み込みニューラルネットワークの処理対象のデータが格納されたグローバルメモリ空間と、前記畳み込みニューラルネットワークの複数のカーネル毎に確保されるローカルメモリ空間とを有するメモリと、前記グローバルメモリ空間から前記処理対象のデータを読み出して畳み込み演算を行う処理を、前記複数のカーネルのそれぞれについて行うように構成された複数のプロセッサとを備え、各プロセッサは、対象のカーネルの畳み込み演算命令コードとカーネルパラメータとを対象のカーネルに対応する前記ローカルメモリ空間から読み出して畳み込み演算を行い、演算結果を対象のカーネルに対応する前記ローカルメモリ空間に格納することを特徴とするものである。
 また、本発明の深層学習推論システムは、多層ニューラルネットワークの中間データが格納されるグローバルメモリ空間と、前記多層ニューラルネットワークの層毎に確保されるローカルメモリ空間とを有するメモリと、前記多層ニューラルネットワークの対象の層に対応する前記ローカルメモリ空間から対象の層の演算のオペレーションコードとパラメータとを読み出して対象の層の演算を行う処理を、前記多層ニューラルネットワークの層のそれぞれについて行うように構成された複数のプロセッサとを備え、各プロセッサのうち上位層を対象とするプロセッサは、対象の層に対応する前記ローカルメモリ空間から処理対象のデータを読み出して対象の層の演算を行い、演算結果を中間データとして前記グローバルメモリ空間に格納し、各プロセッサのうち下位層を対象とするプロセッサは、前記グローバルメモリ空間から処理対象の前記中間データを読み出して対象の層の演算を行い、演算結果を対象の層に対応する前記ローカルメモリ空間に格納することを特徴とするものである。
 また、本発明の深層学習推論システムの1構成例は、前記メモリと前記複数のプロセッサとの間にそれぞれ設けられ、前記メモリと前記複数のプロセッサとの間で読み書きされるデータとコードとパラメータとを格納するように構成された複数のキャッシュメモリをさらに備えることを特徴とするものである。
 本発明によれば、複数のプロセッサが共有するグローバルメモリ空間にオペレーションコードとパラメータとを格納する。本発明では、処理対象のデータが異なるが、使用するモデルが同じ推論について、複数の推論を異なるプロセッサで並列に実行することができる。その結果、本発明では、メモリ空間を節約することができると共に、リクエストスループットを向上させることができる。
図1は、本発明の第1の実施例に係る深層学習推論システムのサーバに設けられる演算器の構成を示すブロック図である。 図2は、本発明の第2の実施例に係る深層学習推論システムのサーバに設けられる演算器の構成を示すブロック図である。 図3は、本発明の第3の実施例に係る深層学習推論システムのサーバに設けられる演算器の構成を示すブロック図である。 図4は、本発明の第4の実施例に係る深層学習推論システムのサーバに設けられる演算器の構成を示すブロック図である。 図5は、FPGAアクセラレータ上に構築されたノイマン型プロセッサの構成を示すブロック図である。 図6は、ノイマン型プロセッサがアクセスするDRAMのメモリ空間を示す図である。
[発明の原理]
 本発明は、深層学習推論システムのメモリ空間上に共有メモリ空間を設け、各ノイマン型プロセッサでデータを共有することを許容する。
[第1の実施例]
 以下、本発明の実施例について図面を参照して説明する。図1は本発明の第1の実施例に係る深層学習推論システムのサーバに設けられる演算器の構成を示すブロック図である。演算器は、DRAM100aと、複数のノイマン型プロセッサ101a-1,101a-2とから構成される。各プロセッサ101a-1,101a-2は、それぞれインストラクションフェッチモジュール102aと、ロードモジュール103aと、コンピュートモジュール104と、ストアモジュール105aとから構成される。
 本実施例のDRAM100aのメモリ空間には、クライアント毎に確保されるローカルメモリ空間1000~1006と、複数のプロセッサ101a-1,101a-2が共有するために確保されるグローバルメモリ空間1007とがある。
 サーバのCPU(Central Processing Unit)110は、ネットワークを介してクライアントAから推論リクエストを受信すると、推論リクエストに対応するニューラルネットワークの演算のオペレーションコード200とニューラルネットワークのパラメータ201とをDRAM100aのグローバルメモリ空間1007に格納する。また、CPU110は、クライアントAから受信した処理対象のデータを入力データ202-1として、クライアントAに対応するDRAM100aのローカルメモリ空間1000に格納する。
 また、CPU110は、ネットワークを介してクライアントBから推論リクエストと処理対象のデータとを受信したときに、処理対象のデータを入力データ202-2として、クライアントBに対応するDRAM100aのローカルメモリ空間1001に格納する。推論リクエストは、どのモデルで推論するかを指定する。本実施例では、クライアントA,Bのそれぞれから受信した推論リクエストが同じモデルを指定するものとする。
 プロセッサ101a-1のインストラクションフェッチモジュール102aは、DRAM100aのグローバルメモリ空間1007からオペレーションコード200とパラメータ201とを読み出して、プロセッサ101a-1のロードモジュール103aとコンピュートモジュール104とストアモジュール105aとに転送する。
 プロセッサ101a-1のロードモジュール103aは、推論リクエストを送信したクライアントAに対応するDRAM100aのローカルメモリ空間1000から入力データ202-1を読み出し、複数の入力データ202-1をバッチ化して、コンピュートモジュール104に転送する。
 プロセッサ101a-1のコンピュートモジュール104は、インストラクションフェッチモジュール102aから転送されたオペレーションコード200に従って、入力データ202-1とパラメータ201とを用いてニューラルネットワークの演算を行う。コンピュートモジュール104は、演算結果をストアモジュール105aに転送する。
 プロセッサ101a-1のストアモジュール105aは、コンピュートモジュール104による演算結果を出力データ203-1として、クライアントAに対応するDRAM100aのローカルメモリ空間1000に格納する。
 サーバのCPU110は、DRAM100aのローカルメモリ空間1000から処理済みのデータを読み出し、このデータを推論リクエストに対するレスポンスとしてクライアントAに返信する。
 一方、プロセッサ101a-2のインストラクションフェッチモジュール102aは、DRAM100aのグローバルメモリ空間1007からオペレーションコード200とパラメータ201とを読み出して、プロセッサ101a-2のロードモジュール103aとコンピュートモジュール104とストアモジュール105aとに転送する。
 プロセッサ101a-2のロードモジュール103aは、推論リクエストを送信したクライアントBに対応するDRAM100aのローカルメモリ空間1001から入力データ202-2を読み出し、複数の入力データ202-2をバッチ化して、コンピュートモジュール104に転送する。
 プロセッサ101a-2のコンピュートモジュール104は、インストラクションフェッチモジュール102aから転送されたオペレーションコード200に従って、入力データ202-2とパラメータ201とを用いてニューラルネットワークの演算を行う。コンピュートモジュール104は、演算結果をストアモジュール105aに転送する。
 プロセッサ101a-2のストアモジュール105aは、コンピュートモジュール104による演算結果を出力データ203-2として、クライアントBに対応するDRAM100aのローカルメモリ空間1001に格納する。
 サーバのCPU110は、DRAM100aのローカルメモリ空間1001から処理済みのデータを読み出し、このデータを推論リクエストに対するレスポンスとしてクライアントBに返信する。
 以上のように、本実施例では、複数のプロセッサ101a-1,101a-2が共有するグローバルメモリ空間1007にオペレーションコード200とパラメータ201とを格納する。本実施例では、処理対象データが異なるが、使用するモデルが同じ推論(オペレーションコード200が同じ推論)について、複数の推論を異なるプロセッサ101a-1,101a-2で並列に実行することができる。その結果、本実施例では、メモリ空間を節約することができると共に、リクエストスループットを向上させることができる。
[第2の実施例]
 次に、本発明の第2の実施例について説明する。図2は本発明の第2の実施例に係る深層学習推論システムのサーバに設けられる演算器の構成を示すブロック図である。演算器は、DRAM100bと、複数のノイマン型プロセッサ101b-1,101b-2とから構成される。各プロセッサ101b-1,101b-2は、それぞれインストラクションフェッチモジュール102bと、ロードモジュール103bと、コンピュートモジュール104bと、ストアモジュール105bとから構成される。
 畳み込みニューラルネットワークの場合、複数種類のフィルタ(カーネル)で畳み込み演算を行い、複数の畳み込み演算結果の重み付け和を演算する。
 本実施例のDRAM100bのメモリ空間には、畳み込みニューラルネットワークの複数種類のカーネル毎に確保されるローカルメモリ空間1000~1006と、複数のプロセッサ101b-1,101b-2が共有するために確保されるグローバルメモリ空間1007とがある。グローバルメモリ空間1007には、サーバのCPU110によって畳み込み演算の入力データ202が格納される。
 プロセッサ101b-1のインストラクションフェッチモジュール102bは、DRAM100bのローカルメモリ空間1000からカーネルパラメータ204-1とカーネルの畳み込み演算命令コード205-1とを読み出して、プロセッサ101b-1のロードモジュール103bとコンピュートモジュール104bとストアモジュール105bとに転送する。
 プロセッサ101b-1のロードモジュール103bは、DRAM100bのグローバルメモリ空間1007から入力データ202を読み出してコンピュートモジュール104bに転送する。
 プロセッサ101b-1のコンピュートモジュール104bは、インストラクションフェッチモジュール102bから転送された畳み込み演算命令コード205-1に従って、入力データ202とカーネルパラメータ204-1とを用いて畳み込み演算を行う。コンピュートモジュール104bは、演算結果をストアモジュール105bに転送する。
 プロセッサ101b-1のストアモジュール105bは、コンピュートモジュール104bによる演算結果を出力データ203-1として、DRAM100bのローカルメモリ空間1000に格納する。
 一方、プロセッサ101b-2のインストラクションフェッチモジュール102bは、DRAM100bのローカルメモリ空間1001からカーネルパラメータ204-2とカーネルの畳み込み演算命令コード205-2とを読み出して、プロセッサ101b-2のロードモジュール103bとコンピュートモジュール104bとストアモジュール105bとに転送する。
 プロセッサ101b-2のロードモジュール103bは、DRAM100bのグローバルメモリ空間1007から入力データ202を読み出してコンピュートモジュール104bに転送する。
 プロセッサ101b-2のコンピュートモジュール104bは、インストラクションフェッチモジュール102bから転送された畳み込み演算命令コード205-2に従って、入力データ202とカーネルパラメータ204-2とを用いて畳み込み演算を行う。コンピュートモジュール104bは、演算結果をストアモジュール105bに転送する。
 プロセッサ101b-2のストアモジュール105bは、コンピュートモジュール104bによる演算結果を出力データ203-2として、DRAM100bのローカルメモリ空間1001に格納する。
 以上のように、本実施例では、複数のプロセッサ101b-1,101b-2が共有するグローバルメモリ空間1007に入力データ202を格納し、カーネルパラメータ204-1,204-2と畳み込み演算命令コード205-1,205-2とを畳み込み演算毎に異なるローカルメモリ空間1000~1006に格納する。その結果、本実施例では、複数の畳み込み演算を異なるプロセッサ101b-1,101b-2で並列に実行することができ、推論スループットを向上させることができる。
[第3の実施例]
 次に、本発明の第3の実施例について説明する。図3は本発明の第3の実施例に係る深層学習推論システムのサーバに設けられる演算器の構成を示すブロック図である。演算器は、DRAM100cと、複数のノイマン型プロセッサ101c-1,101c-2とから構成される。各プロセッサ101c-1,101c-2は、それぞれインストラクションフェッチモジュール102cと、ロードモジュール103cと、コンピュートモジュール104ccと、ストアモジュール105cとから構成される。
 多層ニューラルネットワークの場合、上位層の演算をプロセッサ101c-1で行い、下位層の演算をプロセッサ101c-2で行うことで、パイプライン処理することできる。本実施例のDRAM100cのメモリ空間には、多層ニューラルネットワークの層毎に確保されるローカルメモリ空間1000~1006と、複数のプロセッサ101c-1,101c-2が共有するために確保されるグローバルメモリ空間1007とがある。
 サーバのCPU110は、多層ニューラルネットワークの上位層の演算のオペレーションコード200-1とパラメータ201-1とをDRAM100cのローカルメモリ空間1000に格納し、下位層の演算のオペレーションコード200-2とパラメータ201-2とをDRAM100cのローカルメモリ空間1001に格納する。また、CPU110は、クライアントから受信した処理対象のデータを入力データ202としてローカルメモリ空間1000に格納する。
 プロセッサ101c-1のインストラクションフェッチモジュール102cは、DRAM100cのローカルメモリ空間1000からオペレーションコード200-1とパラメータ201-1とを読み出して、プロセッサ101c-1のロードモジュール103cとコンピュートモジュール104cとストアモジュール105cとに転送する。
 プロセッサ101c-1のロードモジュール103cは、DRAM100cのローカルメモリ空間1000から入力データ202を読み出してコンピュートモジュール104cに転送する。
 プロセッサ101c-1のコンピュートモジュール104cは、インストラクションフェッチモジュール102cから転送されたオペレーションコード200-1に従って、入力データ202とパラメータ201-1とを用いて多層ニューラルネットワークの上位層の演算を行う。コンピュートモジュール104cは、演算結果をストアモジュール105cに転送する。
 プロセッサ101c-1のストアモジュール105cは、コンピュートモジュール104cによる演算結果を中間データ206として、DRAM100cのグローバルメモリ空間1007に格納する。
 次に、プロセッサ101c-2のインストラクションフェッチモジュール102cは、DRAM100cのローカルメモリ空間1001からオペレーションコード200-2とパラメータ201-2とを読み出して、プロセッサ101c-2のロードモジュール103cとコンピュートモジュール104cとストアモジュール105cとに転送する。
 プロセッサ101c-2のロードモジュール103cは、DRAM100cのグローバルメモリ空間1007から中間データ206を読み出してコンピュートモジュール104cに転送する。
 プロセッサ101c-2のコンピュートモジュール104cは、インストラクションフェッチモジュール102cから転送されたオペレーションコード200-2に従って、中間データ206とパラメータ201-2とを用いて多層ニューラルネットワークの下位層の演算を行う。コンピュートモジュール104cは、演算結果をストアモジュール105cに転送する。
 プロセッサ101c-2のストアモジュール105cは、コンピュートモジュール104cによる演算結果を出力データ203として、DRAM100cのローカルメモリ空間1001に格納する。
 以上のように、本実施例では、複数のプロセッサ101c-1,101c-2が共有するグローバルメモリ空間1007に多層ニューラルネットワークの演算の中間データ206を格納する。その結果、本実施例では、多層ニューラルネットワークの演算のパイプライン処理が可能になり、推論スループットを向上させることができる。
[第4の実施例]
 次に、本発明の第4の実施例について説明する。図4は本発明の第4の実施例に係る深層学習推論システムのサーバに設けられる演算器の構成を示すブロック図である。演算器は、DRAM100aと、複数のノイマン型プロセッサ101a-1,101a-2と、DRAM100aとそれぞれのプロセッサ101a-1,101a-2との間に設けられるキャッシュメモリ106-1,106-2とから構成される。
 DRAM100aについては第1の実施例で説明したとおりである。サーバのCPU110は、DRAM100aのグローバルメモリ空間1007に格納したオペレーションコード200とパラメータ201とをキャッシュメモリ106-1,106-2に保存する。さらに、CPU110は、DRAM100aのローカルメモリ空間1000に格納した入力データ202-1をキャッシュメモリ106-1に保存し、DRAM100aのローカルメモリ空間1001に格納した入力データ202-2をキャッシュメモリ106-2に保存する。
 プロセッサ101a-1のインストラクションフェッチモジュール102aは、キャッシュメモリ106-1からオペレーションコード200とパラメータ201とを読み出して、プロセッサ101a-1のロードモジュール103aとコンピュートモジュール104とストアモジュール105aとに転送する。
 プロセッサ101a-1のロードモジュール103aは、キャッシュメモリ106-1から入力データ202-1を読み出し、複数の入力データ202-1をバッチ化して、コンピュートモジュール104に転送する。
 プロセッサ101a-1のコンピュートモジュール104は、インストラクションフェッチモジュール102aから転送されたオペレーションコード200に従って、入力データ202-1とパラメータ201とを用いてニューラルネットワークの演算を行う。
 プロセッサ101a-1のストアモジュール105aは、コンピュートモジュール104による演算結果をキャッシュメモリ106-1に格納する。
 サーバのCPU110は、キャッシュメモリ106-1に格納された処理済みのデータをクライアントAに対応するDRAM100aのローカルメモリ空間1000に書き込み、続いて処理済みのデータをローカルメモリ空間1000から読み出してクライアントAに返信する。
 一方、プロセッサ101a-2のインストラクションフェッチモジュール102aは、キャッシュメモリ106-2からオペレーションコード200とパラメータ201とを読み出して、プロセッサ101a-2のロードモジュール103aとコンピュートモジュール104とストアモジュール105aとに転送する。
 プロセッサ101a-2のロードモジュール103aは、キャッシュメモリ106-2から入力データ202-2を読み出し、複数の入力データ202-2をバッチ化して、コンピュートモジュール104に転送する。
 プロセッサ101a-2のコンピュートモジュール104は、インストラクションフェッチモジュール102aから転送されたオペレーションコード200に従って、入力データ202-2とパラメータ201とを用いてニューラルネットワークの演算を行う。
 プロセッサ101a-2のストアモジュール105aは、コンピュートモジュール104による演算結果をキャッシュメモリ106-2に格納する。
 サーバのCPU110は、キャッシュメモリ106-2に格納された処理済みのデータをクライアントBに対応するDRAM100aのローカルメモリ空間1001に書き込み、続いて処理済みのデータをローカルメモリ空間1001から読み出してクライアントBに返信する。
 以上のように、本実施例では、DRAM100aとそれぞれのプロセッサ101a-1,101a-2との間にキャッシュメモリ106-1,106-2を設けることにより、DRAM100aのメモリレイテンシを隠蔽し、推論レイテンシを短縮することができる。
 本実施例では、キャッシュメモリ106-1,106-2を第1の実施例に適用した例で説明したが、第2、第3の実施例に適用してもよいことは言うまでもない。
 キャッシュメモリ106-1,106-2を第2の実施例に適用する場合には、入力データ202とカーネルパラメータ204-1と畳み込み演算命令コード205-1と出力データ203-1とをキャッシュメモリ106-1に格納し、入力データ202とカーネルパラメータ204-2と畳み込み演算命令コード205-2と出力データ203-2とをキャッシュメモリ106-1に格納すればよい。
 キャッシュメモリ106-1,106-2を第3の実施例に適用する場合には、入力データ202とオペレーションコード200-1とパラメータ201-1とをキャッシュメモリ106-1に格納し、オペレーションコード200-2とパラメータ201-2と中間データ206と出力データ203とをキャッシュメモリ106-2に格納すればよい。
 また、第1~第4の実施例では、ノイマン型プロセッサとキャッシュメモリの数を2つとしているが、3つ以上としてもよいことは言うまでもない。
 本発明は、ニューラルネットワークを利用したサービスを提供する技術に適用することができる。
 100a,100b,100c…DRAM,101a-1,101a-2,101b-1,101b-2,101c-1,101c-2…ノイマン型プロセッサ、102a,102b,102c…インストラクションフェッチモジュール、103a,103b,103c…ロードモジュール、104,104b,104c…コンピュートモジュール、105a,105b,105c…ストアモジュール、106-1,106-2…キャッシュメモリ、1000~1006…ローカルメモリ空間、1007…グローバルメモリ空間。

Claims (4)

  1.  ニューラルネットワークの演算のオペレーションコードと前記ニューラルネットワークのパラメータとが格納されたグローバルメモリ空間と、リクエストを送信するクライアント毎に確保されるローカルメモリ空間とを有するメモリと、
     クライアントからのリクエストに応じて、前記グローバルメモリ空間から前記オペレーションコードと前記パラメータとを読み出して前記ニューラルネットワークの演算を行う処理を、複数のクライアントのそれぞれについて行うように構成された複数のプロセッサとを備え、
     各プロセッサは、対象のクライアントに対応する前記ローカルメモリ空間から処理対象のデータを読み出して前記ニューラルネットワークの演算を行い、演算結果を対象のクライアントに対応する前記ローカルメモリ空間に格納することを特徴とする深層学習推論システム。
  2.  畳み込みニューラルネットワークの処理対象のデータが格納されたグローバルメモリ空間と、前記畳み込みニューラルネットワークの複数のカーネル毎に確保されるローカルメモリ空間とを有するメモリと、
     前記グローバルメモリ空間から前記処理対象のデータを読み出して畳み込み演算を行う処理を、前記複数のカーネルのそれぞれについて行うように構成された複数のプロセッサとを備え、
     各プロセッサは、対象のカーネルの畳み込み演算命令コードとカーネルパラメータとを対象のカーネルに対応する前記ローカルメモリ空間から読み出して畳み込み演算を行い、演算結果を対象のカーネルに対応する前記ローカルメモリ空間に格納することを特徴とする深層学習推論システム。
  3.  多層ニューラルネットワークの中間データが格納されるグローバルメモリ空間と、前記多層ニューラルネットワークの層毎に確保されるローカルメモリ空間とを有するメモリと、
     前記多層ニューラルネットワークの対象の層に対応する前記ローカルメモリ空間から対象の層の演算のオペレーションコードとパラメータとを読み出して対象の層の演算を行う処理を、前記多層ニューラルネットワークの層のそれぞれについて行うように構成された複数のプロセッサとを備え、
     各プロセッサのうち上位層を対象とするプロセッサは、対象の層に対応する前記ローカルメモリ空間から処理対象のデータを読み出して対象の層の演算を行い、演算結果を中間データとして前記グローバルメモリ空間に格納し、
     各プロセッサのうち下位層を対象とするプロセッサは、前記グローバルメモリ空間から処理対象の前記中間データを読み出して対象の層の演算を行い、演算結果を対象の層に対応する前記ローカルメモリ空間に格納することを特徴とする深層学習推論システム。
  4.  請求項1乃至3のいずれか1項に記載の深層学習推論システムにおいて、
     前記メモリと前記複数のプロセッサとの間にそれぞれ設けられ、前記メモリと前記複数のプロセッサとの間で読み書きされるデータとコードとパラメータとを格納するように構成された複数のキャッシュメモリをさらに備えることを特徴とする深層学習推論システム。
PCT/JP2021/044891 2021-12-07 2021-12-07 深層学習推論システム WO2023105616A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/044891 WO2023105616A1 (ja) 2021-12-07 2021-12-07 深層学習推論システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/044891 WO2023105616A1 (ja) 2021-12-07 2021-12-07 深層学習推論システム

Publications (1)

Publication Number Publication Date
WO2023105616A1 true WO2023105616A1 (ja) 2023-06-15

Family

ID=86729857

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/044891 WO2023105616A1 (ja) 2021-12-07 2021-12-07 深層学習推論システム

Country Status (1)

Country Link
WO (1) WO2023105616A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180253635A1 (en) * 2017-03-03 2018-09-06 Samsung Electronics Co, Ltd. Neural network devices and methods of operating the same
JP2020515989A (ja) * 2017-04-04 2020-05-28 ハイロ テクノロジーズ リミテッド 計算およびローカルメモリ要素を組み込むニューラルネットワーク処理要素
US20200184320A1 (en) * 2018-12-08 2020-06-11 Apical Limited Neural network processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180253635A1 (en) * 2017-03-03 2018-09-06 Samsung Electronics Co, Ltd. Neural network devices and methods of operating the same
JP2020515989A (ja) * 2017-04-04 2020-05-28 ハイロ テクノロジーズ リミテッド 計算およびローカルメモリ要素を組み込むニューラルネットワーク処理要素
US20200184320A1 (en) * 2018-12-08 2020-06-11 Apical Limited Neural network processing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHRISTOPHER OLSTON; NOAH FIEDEL; KIRIL GOROVOY; JEREMIAH HARMSEN; LI LAO; FANGWEI LI; VINU RAJASHEKHAR; SUKRITI RAMESH; JORDAN SOY: "TensorFlow-Serving: Flexible, High-Performance ML Serving", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 17 December 2017 (2017-12-17), 201 Olin Library Cornell University Ithaca, NY 14853 , XP080846818 *

Similar Documents

Publication Publication Date Title
CN110352434B (zh) 一种用于评估与系统中的服务相对应的神经网络模型的方法及系统
Kiningham et al. GRIP: A graph neural network accelerator architecture
US20190065954A1 (en) Memory bandwidth management for deep learning applications
US20150324690A1 (en) Deep Learning Training System
JP7242998B2 (ja) ニューロモルフィック・アクセラレータ・マルチタスキング
US20230026006A1 (en) Convolution computation engine, artificial intelligence chip, and data processing method
US7350036B2 (en) Technique to perform concurrent updates to a shared data structure
US20210209450A1 (en) Compressed weight distribution in networks of neural processors
US20190196831A1 (en) Memory apparatus and method for controlling the same
JP2018073452A (ja) Dram基盤のプロセシングユニット
WO2022173538A1 (en) Techniques for accelerating neural networks
CN109117415B (zh) 数据共享系统及其数据共享方法
WO2023105616A1 (ja) 深層学習推論システム
US11562211B2 (en) System local field matrix updates
US20230376733A1 (en) Convolutional neural network accelerator hardware
Chen et al. HDReason: Algorithm-Hardware Codesign for Hyperdimensional Knowledge Graph Reasoning
US10620958B1 (en) Crossbar between clients and a cache
Qiu et al. An FPGA‐Based Convolutional Neural Network Coprocessor
US20210150311A1 (en) Data layout conscious processing in memory architecture for executing neural network model
CN109583577B (zh) 运算装置及方法
CN113313251B (zh) 一种基于数据流架构的深度可分离卷积融合方法及系统
WO2023073824A1 (ja) 深層学習推論システムおよび推論サービング方法
Karl et al. You've got a Friend in ME (Mobile Edge): Blockchain Processing with Cloud Node Backup
Miao A Review on Important Issues in GCN Accelerator Design
KR102640249B1 (ko) 대규모 언어 모델을 위해 멀티-디바이스에 기반한 추론을 수행하는 방법 및 시스템

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023565720

Country of ref document: JP

Kind code of ref document: A