【手続補正書】
【提出日】令和2年4月16日(2020.4.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Input matrix dataに対して、複数のKernelを用いて畳み込み演算（convolution）を実行することによって、使用したKernel毎に異なるOutput matrix dataを生成するPE (Processing Element) Gridと、前記PE Gridは、前記Output matrix dataを構成する要素を算出する複数のPEを含み、
前記Input matrix dataもしくは前記Output matrix dataの次元と、前記Kernelの数に基づいて、複数のOutput matrix dataが有する要素を並列に算出するか、もしくは、一つのOutput matrix dataが有する複数の前記要素を並列に算出するかを決定するParallelism コントローラと、を備える、情報処理装置。
【請求項２】
前記Parallelism コントローラは、
前記複数のPEのうち、演算を実行するPEの数が多くなるように、複数の前記Output matrix dataが有する要素を並列に算出するか、もしくは、一つのOutput matrix dataに含められる複数の前記要素を並列に算出するかを決定する、請求項１に記載の情報処理装置。
【請求項３】
前記複数のPEに適用されるKernelを決定するSparse Weight Broadcasterをさらに備え、
前記Parallelism コントローラは、
前記PE Gridにおいて、同時に用いられるKernelの数を決定し、決定した前記Kernelの数に関する情報を前記Sparse Weight Broadcasterへ出力し、
前記Sparse Weight Broadcasterは、
決定された数のKernelの数が、並列に演算を実行するように、前記複数のPEに対してKernelを割り当てる、請求項１又は２に記載の情報処理装置。
【請求項４】
前記Sparse Weight Broadcasterは、
前記複数のPEへ、前記Kernelを識別するKernel ID及び前記Kernelに含められる複数のelementを識別するelement IDを含むindex情報と、前記Kernel ID及び前記element IDに関連付けられたWeight valueとを出力する、請求項３に記載の情報処理装置。
【請求項５】
前記Parallelism コントローラは、
前記複数のPEへ、前記Input matrix dataから抽出するdataを識別するaddress情報を出力し、
前記複数のPEは、
前記address情報に対応するdataを前記Input matrix dataから抽出する、請求項４に記載の情報処理装置。
【請求項６】
同じKernelが割り当てられたそれぞれのPEは、
前記Input matrix dataから異なるdataを抽出し、
異なるKernelが割り当てられたそれぞれのPEは、
前記Input matrix dataから同じdataを抽出する、請求項５に記載の情報処理装置。
【請求項７】
前記Sparse Weight Broadcasterは、
前記PE Gridに含まれるすべてのPEに対して同じKernelを割り当てるか、前記PE Gridに含まれるすべてのPEに対して異なるKernelを割り当てるか、もしくは、前記PE Gridに含まれる複数のPEを少なくとも２以上のグループに分割し、前記グループ毎に異なるKernelを割り当てる、請求項３乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記PEは、
前記Kernelに含められるNon-zero valueを用いて要素の値を算出し、
前記Sparse Weight Broadcasterは、
それぞれの前記PEが要素を算出する際に用いるNon-zero valueの数の差が、予め定められた閾値を下回るように、それぞれのPEへ前記Kernelを割り当てる、請求項３乃至７のいずれか１項に記載の情報処理装置。 
【請求項９】
Input matrix dataに対して、複数のKernelを用いて畳み込み演算（convolution）を実行することによって、使用したKernel毎に生成されるOutput matrix dataの次元もしくは前記Input matrix dataの次元と、前記Kernelの数とを取得し、
前記Output matrix dataの次元もしくは前記Input matrix dataの次元と、前記Kernelの数とに基づいて、複数の前記Output matrix dataが有する要素を並列に算出するか、もしくは、一つのOutput matrix dataに含められる複数の前記要素を並列に算出するかを決定し、
前記算出方法に基づいて、前記Output matrix dataを生成する、情報処理方法。
【請求項１０】
Input matrix dataに対して、複数のKernelを用いて畳み込み演算（convolution）を実行することによって、使用したKernel毎に生成されるOutput matrix dataの次元もしくは前記Input matrix dataの次元と、前記Kernelの数とを取得し、
前記Output matrix dataの次元もしくは前記Input matrix dataの次元と、前記Kernelの数とに基づいて、複数の前記Output matrix dataが有する要素を並列に算出するか、もしくは、一つのOutput matrix dataに含められる複数の前記要素を並列に算出するかを決定し、
前記算出方法に基づいて、前記Output matrix dataを生成する、ことをコンピュータに実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
一方、図１３は、少ないoutputを演算し、多数のKernelを用いるConvolutional Layerにおいて実行される演算を示しており、例えば、深いレイヤ（deep layer）において実行される演算を示している。図１３は、Kernel#11〜Kernel#14を用いて、四つのOutput matrix data（Output of Kerne11, Output of Kernel 12, Output of Kernel 13, 及び Output of Kernel 14）を生成することを示している。Kernel#11を用いて生成されたOutput matrix data（Output of Kernel 11）は、pixel D1及びpixel D2を有し、Kernel#12を用いて生成されたOutput matrix data（Output of Kernel 12）は、pixel D3及びpixel D4を有し、Kernel#13を用いて生成されたOutput matrix data（Output of Kernel 13）は、pixel D5及びpixel D6を有し、Kernel#14を用いて生成されたOutput matrix data（Output of Kernel 14）は、pixel D7及びpixel D8を有している。さらに、図１３は、図１２と同様に、PE（Processing Element）#1〜PE#4を用いて並列に演算を実行することを示している。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】発明の名称
【補正方法】変更
【補正の内容】
【発明の名称】情報処理装置、情報処理方法、及びプログラム