JP6911949B2 - 情報処理装置、制御方法、及びプログラム - Google Patents

情報処理装置、制御方法、及びプログラム Download PDF

Info

Publication number
JP6911949B2
JP6911949B2 JP2019571755A JP2019571755A JP6911949B2 JP 6911949 B2 JP6911949 B2 JP 6911949B2 JP 2019571755 A JP2019571755 A JP 2019571755A JP 2019571755 A JP2019571755 A JP 2019571755A JP 6911949 B2 JP6911949 B2 JP 6911949B2
Authority
JP
Japan
Prior art keywords
matrix data
sparsity
representation format
target matrix
threshold
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019571755A
Other languages
English (en)
Other versions
JP2020525930A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JP2020525930A publication Critical patent/JP2020525930A/ja
Application granted granted Critical
Publication of JP6911949B2 publication Critical patent/JP6911949B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Description

本発明は、全体として、データ表現に関する。
様々な種類の情報を表すために配列データが利用されている。例えば、ディープニューラルネットワーク(Deep Neural Networks(DNN))の出力データを配列データで表すことができる。
行列データは配列データの一種であり、行と列で構成される。行列データは種々のフォーマットで表現されうる。行列データを表すために利用されるデータフォーマットは、主に密表現フォーマットとスパース表現フォーマットという2つに分類される。密表現フォーマットは、行列データを全てのデータ要素で表す。一方、スパース表現フォーマットは、行列データを、非ゼロ値データ要素(値がゼロでないデータ要素)とそれらの行列内における位置で表す。非特許文献1は、CSR(compressed sparse row)、CSC(compressed sparse column)、COO(Coordinate list)、BSR(block sparse row)、LOL(list of list)などといった様々な種類のスパース表現フォーマットを開示している。
全ての行列データに共通する最適な表現フォーマットというものはなく、どの表現フォーマットが適しているかは、表現したい行列データに依存する。特許文献1は行列データを表現するために用いる表現フォーマットを選択する方法を開示している。この文献では、密又はスパースのデータ表現を選択するために、行列データのスパース性が閾値と比較されている。行列データのスパース性は、行列がどの程度スパースなのかを表す値である。例えば、行列データのスパース性は、データ要素の総数に対する、値がゼロのデータ要素の数の割合で定義される。行列データのスパース性に基づきスパース表現を利用すると判定された場合、行列データの行と列の数に基づいて、CSC と CSR のどちらかがさらに選択される。
米国特許出願公開第2016/0364327号明細書
Reginald P. Tewarson、「Sparse Matrices」、ACADEMIC PRESS INC、1973年5月1日 Alex Krizhevsky ら、「ImageNet Classification with Deep Convolutional Neural Networks」、THE NEURAL INFORMATION PROCESSING SYSTEMS CONFERENCE、pp. 1097-1105、2012年12月 Geoffrey Hinton ら、「Deep Neural Networks for Acoustic Modeling in Speech Recognition」、IEEE SIGNAL PROCESSING MAGAZINE、VOL 29、ISSUE 6、pp. 82-97、2012年10月18日 Alex Graves ら、「Speech Recognition with Deep Recurrent Neural Networks」、IEEE International Conference on Acoustics, Speech and Signal Processing 2013、pp. 26-31、2013年5月26日から31日
特許文献1に開示されている技術は、行列データのスパース性を利用して、単にスパース性が高い行列データとスパース性が低い行列データを区別し、密表現フォーマットとスパース表現フォーマットのどちらを利用するのかを決めている。そのため、この技術は、中程度のスパース性を有する行列データには有効でない。本発明の目的の1つは、中程度のスパース性を有する行列データに適した表現フォーマットについても効率的に決定できる技術を提供することである。
本発明の情報処理装置は、対象行列データを密表現フォーマット又はスパース表現フォーマットで表している入力行列データ情報を取得する取得部を有し、前記対象行列データが前記密表現フォーマットで表される場合、前記対象行列データは全てのデータ要素で表され、前記対象行列データが前記スパース表現フォーマットで表される場合、前記対象行列データは、前記対象行列データの非ゼロ値データ要素で表され、前記対象行列データのスパース性を算出するスパース性算出部と、前記算出されたスパース性に基づいて複数の表現フォーマットのうちの1つを選択する選択部と、を有し、前記複数の表現フォーマットは、前記密表現フォーマットと、少なくとも2つの種類のスパース表現フォーマットを含み、前記対象行列データを前記選択された表現フォーマットで表している出力行列データ情報を出力する出力部を有し、
前記選択部は、
前記算出されたスパース性が低スパース性閾値よりも大きいか否かを判定し、
前記算出されたスパース性が前記低スパース性閾値よりも小さいと判定された場合、前記密表現フォーマットを選択し、
前記算出されたスパース性が前記低スパース性閾値よりも小さくないと判定された場合、前記算出されたスパース性が高スパース性閾値よりも小さいか否かを判定し、前記高スパース性閾値は前記低スパース性閾値よりも大きく、
前記算出されたスパース性が前記高スパース性閾値よりも小さいと判定された場合、第1スパース表現フォーマットを選択し、
前記算出されたスパース性が前記高スパース性閾値よりも小さくないと判定された場合、第2スパース表現フォーマットを選択し、
前記高スパース性閾値は、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第2スパース表現フォーマットで表すために利用されるビット数との比較によって定まり、
前記低スパース性閾値は、前記対象行列データを前記密表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数との比較によって定まる
本発明の制御方法は、コンピュータによって実行される。当該制御方法は、対象行列データを密表現フォーマット又はスパース表現フォーマットで表している入力行列データ情報を取得し、前記対象行列データが前記密表現フォーマットで表される場合、前記対象行列データは全てのデータ要素で表され、前記対象行列データが前記スパース表現フォーマットで表される場合、前記対象行列データは、前記対象行列データの非ゼロ値データ要素で表され、前記対象行列データのスパース性を算出し、前記算出されたスパース性に基づいて複数の表現フォーマットのうちの1つを選択し、前記複数の表現フォーマットは、前記密表現フォーマットと、少なくとも2つの種類のスパース表現フォーマットを含み、前記対象行列データを前記選択された表現フォーマットで表している出力行列データ情報を出力し、
前記表現フォーマットの選択は、
前記算出されたスパース性が低スパース性閾値よりも大きいか否かを判定し、
前記算出されたスパース性が前記低スパース性閾値よりも小さいと判定された場合、前記密表現フォーマットを選択し、
前記算出されたスパース性が前記低スパース性閾値よりも小さくないと判定された場合、前記算出されたスパース性が高スパース性閾値よりも小さいか否かを判定し、前記高スパース性閾値は前記低スパース性閾値よりも大きく、
前記算出されたスパース性が前記高スパース性閾値よりも小さいと判定された場合、第1スパース表現フォーマットを選択し、
前記算出されたスパース性が前記高スパース性閾値よりも小さくないと判定された場合、第2スパース表現フォーマットを選択する、ことを含み、
前記高スパース性閾値は、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第2スパース表現フォーマットで表すために利用されるビット数との比較によって定まり、
前記低スパース性閾値は、前記対象行列データを前記密表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数との比較によって定まる
本発明のプログラムは、コンピュータに、対象行列データを密表現フォーマット又はスパース表現フォーマットで表している入力行列データ情報を取得させ、前記対象行列データが前記密表現フォーマットで表される場合、前記対象行列データは全てのデータ要素で表され、前記対象行列データが前記スパース表現フォーマットで表される場合、前記対象行列データは、前記対象行列データの非ゼロ値データ要素で表され、前記対象行列データのスパース性を算出させ、前記算出されたスパース性に基づいて複数の表現フォーマットのうちの1つを選択させ、前記複数の表現フォーマットは、前記密表現フォーマットと、少なくとも2つの種類のスパース表現フォーマットを含み、前記対象行列データを前記選択された表現フォーマットで表している出力行列データ情報を出力させ
前記表現フォーマットの選択は、
前記算出されたスパース性が低スパース性閾値よりも大きいか否かを判定し、
前記算出されたスパース性が前記低スパース性閾値よりも小さいと判定された場合、前記密表現フォーマットを選択し、
前記算出されたスパース性が前記低スパース性閾値よりも小さくないと判定された場合、前記算出されたスパース性が高スパース性閾値よりも小さいか否かを判定し、前記高スパース性閾値は前記低スパース性閾値よりも大きく、
前記算出されたスパース性が前記高スパース性閾値よりも小さいと判定された場合、第1スパース表現フォーマットを選択し、
前記算出されたスパース性が前記高スパース性閾値よりも小さくないと判定された場合、第2スパース表現フォーマットを選択する、ことを含み、
前記高スパース性閾値は、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第2スパース表現フォーマットで表すために利用されるビット数との比較によって定まり、
前記低スパース性閾値は、前記対象行列データを前記密表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数との比較によって定まる。
本発明によれば、中程度のスパース性を有する行列データに適した表現フォーマットについても効率的に決定できる技術が提供される。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
実施形態1の情報処理装置を例示する図である。 対象行列を密表現フォーマットで表す行列データ情報の例を示す図である。 対象行列を CSR スパース表現フォーマットで表す行列データ情報の例を示す図である。 対象行列を CSC スパース表現フォーマットで表す行列データ情報の例を示す図である。 対象行列を行中心の COO スパース表現フォーマットで表す行列データ情報の例を示す図である。 ハードウエア要素とソフトウエア要素の組み合わせで情報処理装置が実現される場合について、情報処理装置のハードウエア構成を例示するブロック図である。 実施形態1の情報処理装置によって実行される処理の流れを表すフローチャートを例示する図である。 行列データの3つの例を示す図である。 表現フォーマットを選択する流れを例示する図である。 行優先順序要素単位フラグスパース表現フォーマットで対象行列データを表す行列データ情報の例を示す図である。 列優先順序要素単位フラグスパース表現フォーマットで対象行列データを表す行列データ情報の例を示す図である。 スパース性表現フォーマットとして3つの選択肢がある場合について、出力行列データ情報の表現フォーマットを選択するフローの例を示す図である。 出力部2080がスパース性算出部2040及び選択部2060と並行で動作する場合におけるフローチャートを例示する図である。 実施形態2の情報処理装置を例示する図である。 1次元の配列データが入力される場合において変換部2100がどのように動作するのかを例示する図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
<実施形態1>
図1は、実施形態1の情報処理装置2000を例示する図である。情報処理装置2000は、複数の表現フォーマットのうちの1つで行列データを表現する行列データ情報を扱う。以下では、行列データ情報によって表される行列データを、「対象行列データ」と呼ぶ。
複数の表現フォーマットは、密表現フォーマット(dense representation format)と、少なくとも2つのスパース表現フォーマット(sparse representation format)を含む。対象行列データを密表現フォーマットで表す場合、行列データ情報は、行優先順序と列優先順序のいずれかで、対象行列データの全てのデータ要素を含みうる。図2は、密表現フォーマットで対象行列データを表す行列データ情報の例を示す図である。図2において、行列データ情報10−1は、行優先順序で全てのデータ要素を示すデータ列12−1と、行列データ情報で利用されている表現フォーマットを示すフォーマットフラグ14−1とを含む。フォーマットフラグ14−1は、行優先順序の密表現フォーマットが利用されていることを示している。一方、行列データ情報10−2は、列優先順序で全てのデータ要素を示すデータ列12−2を含む。フォーマットフラグ14−2は、列優先順序の密表現フォーマットが利用されていることを示している。
スパース表現フォーマットで行列データを表す場合、行列データ情報は、全てのデータ要素のうち、少なくとも1つを含まない。例えば、スパース表現フォーマットの行列データ情報は、非ゼロ値データ要素(non-zero data element)とその位置情報を含む。位置情報は、各非ゼロ値データ要素の位置を定めるために利用できる情報である。例えば位置情報は、各非ゼロ値データ要素又は各ゼロ値データ要素(zero-valued data element)のインデックスを含む。
CSR、CSC、及び COO は、スパース表現フォーマットの例である。図3は、CSR スパース表現フォーマットで対象行列データを表す行列データ情報を例示する図である。行列データ情報10−3は、データ列12−3、フォーマットフラグ14−3、及び位置情報16−3を含む。図3では、x5 と x6 はゼロであると仮定されている。データ列12−3は、行優先順序(row-major)で非ゼロ値データ要素のみを示し、x5 と x6 は含まない。フォーマットフラグ14−3は、CSR スパース表現フォーマットが利用されていることを示している。位置情報16−3は、非ゼロ値データ要素の列インデックス、及び行ポインタを示している。
図4は、CSC スパース表現フォーマットで対象行列データを表す行列データ情報を例示する図である。行列データ情報10−4は、データ列12−4、フォーマットフラグ14−4、及び位置情報16−4を含む。図4でも、x5 と x6 はゼロであると仮定されている。データ列12−4は、列優先順序(column-major)で非ゼロ値データ要素のみを示し、x5 と x6 は含まない。フォーマットフラグ14−4は、CSC スパース表現フォーマットが利用されていることを示している。位置情報16−4は、非ゼロ値データ要素の行インデックス、及び列ポインタを示している。
図5は、行優先順序の COO スパース表現フォーマットで対象行列データを表す行列データ情報を例示する図である。行列データ情報10−5は、データ列12−5、フォーマットフラグ14−5、及び位置情報16−5を含む。図でも、x5 と x6 はゼロであると仮定されている。データ列12−5は、行優先順序で非ゼロ値データ要素のみを示し、x5 と x6 は含まない。フォーマットフラグ14−5は、COO スパース表現フォーマットが利用されていることを示している。位置情報16−5は、非ゼロ値データ要素の行インデックス及び列インデックスを含む。なお、列優先順序の COO も利用できる。
情報処理装置2000は、密表現フォーマット又はスパース表現フォーマットで対象行列データが表された入力行列データ情報を取得し、対象行列データのスパース性を算出し、出力行列データ情報で利用すべき表現フォーマットを選択し、選択された表現フォーマットで対象行列データが表現された出力行列データ情報を出力する。出力行列データ情報で利用すべき表現フォーマットは、前述した複数の表現フォーマット(密表現フォーマット、及び少なくとも2つのスパース表現フォーマット)の中から、対象行列データのスパースお性に基づいて選択される。
上述した動作を実現するため、情報処理装置2000は、取得部2020、スパース性算出部2040、選択部2060、及び出力部2080を有する。取得部2020は、入力行列データ情報を取得する。スパース性算出部2040は、入力行列データ情報によって表されている対象行列データのスパース性を算出する。選択部2060は、スパース性算出部2040によって算出されたスパース性に基づいて、出力行列データ情報に適用する表現フォーマットを、前述した複数の表現フォーマットから選択する。出力部2080は、選択部2060によって選択された表現フォーマットで対象行列を表している出力行列データ情報を出力する。
<作用効果>
本実施形態の情報処理装置2000によれば、対象行列データの表現フォーマットが、行列データのスパース性に基づいて、密表現フォーマット及び少なくとも2つのスパース表現フォーマットの中から決定される。そのため、行列データのスパース性が、密表現フォーマットとスパース表現フォーマットのいずれを使うかの判定だけでなく、対象行列を表すための表現フォーマットとして複数のスパース表現フォーマットのうちのどれを使うべきかを判定するためにも利用される。よって、密表現フォーマットとスパース表現フォーマットのどちらを利用するかの判定だけに行列データのスパース性が利用される特許文献1の技術と異なり、情報処理装置2000は、中程度のスパース性を持つ行列データについても、効率的に適切な表現フォーマットを決定することができる。
行列データの使用例は、DNN における記述である。画像認識のための一般的な DNN 構造は、非特許文献2に開示されている深層畳み込みネットワーク(Deep Convolutional Neural Network(DCNN))であり、音声認識のための一般的な DNN 構造は、非特許文献3と4に開示されている深層フィードフォワードニューラルネットワーク(Deep Feed Forward Neural Network(DFF))又は深層リカレントニューラルネットワーク(Deep Recurrent Neural Network(DRNN))である。一般的に、DNN からの出力データは、特徴データやアクティベーションデータと呼ばれており、1次元ベクトル、行列、又はN次元配列である。アクティベーションデータが DCNN から出力される場合、特徴マップと呼ばれることが通常であり、行列又は多次元配列である。一方、アクティベーションデータが DFF や DRNN から出力される場合、特徴と呼ばれるベクトルである。
DCNN は、カーネルを入力特徴マップに畳み込んで特徴を抽出する畳み込み層、入力される特徴を非線形関数で変換するアクティベーション層、入力される特徴をダウンサンプルするプーリング層、及び入力をクラスに分類するために行列の乗算を行う全結合層の積み重ねで構成される。DFF は全結合層とアクティベーション層の積み重ねで構成される。DRNN は過去と現在のコンテキストで行列を乗算するレカレント層とアクティベーション層との積み重ねで構成される。アクティベーション層は、入力に対して非線形関数を適用することで、非統一的なスパース行列データを生成する。非線形関数は、例えば sigmoid や ReLU(Rectified Linear Unit)関数である。
DNN では大量の行列データが入力及び出力されるため、ストレージ容量やネットワーク帯域などの観点から、行列データの効率的な表現がとても重要である。そのため、情報処理装置による行列データの表現フォーマットの適切な選択は DNN において有用である。
なお、DNN は、情報処理装置2000の適用例の一つにすぎず、情報処理装置2000は、行列データが利用される多くの領域に適用可能である。
以下、本実施形態の情報処理装置2000についてより詳細に説明する。
<ハードウエア構成の例>
情報処理装置2000の各機能構成部は、図1に示されている各機能構成部を実現するハードウエア要素のみ(例えば、ハードワイヤードされた電子回路)で実現されてもよいし、ハードウエア要素とソフトウエア要素の組み合わせ(例えば、電子回路とその電子回路を制御するプログラム)で実現されてもよい。
図6は、ハードウエア要素とソフトウエア要素の組み合わせで実現される情報処理装置2000について、情報処理装置2000のハードウエア構成を例示するブロック図である。情報処理装置2000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。
プロセッサ1040は、コンピュータプログラムを実行する電子回路であり、例えば CPU(central processing unit)や GPU(graphics processing unit)である。その他にも例えば、プロセッサ1040は、ASIC(Application-Specific Integrated Circuit)やASIP(Application-Specific Instruction set Processor)などの特別な回路や、FPGA(Field Programmable Gate Array)の様な再構成可能なデバイスであってもよい。メモリ1060は、RAM(random access memory)や ROM(read only memory)などの主記憶装置である。ストレージ1080は、ハードディスク、SSD(solid state drive)、又はメモリカードなどの補助記憶装置である。入出力インタフェース1100は、それを介してキーボードやディスプレイなどが情報処理装置2000と接続されるインタフェースである。ネットワークインタフェース1120は、それを介して情報処理装置が LAN や WAN などのネットワークネットワークと接続されるインタフェースである。
ストレージデバイス1080は、前述した情報処理装置2000の各機能構成部を実現するためのプログラムモジュールを記憶している。プロセッサ1040は、それらのプログラムをメモリ1060に読み出し、読み出したプログラムモジュールを実行する。
<処理の流れ>
図7は、実施形態1の情報処理装置2000によって実行される処理の流れを例示するフローチャートである。取得部2020は、行列データを密表現フォーマット又はスパース表現フォーマットで表す入力行列データ情報を取得する(S102)。スパース性算出部2040は、対象行列データのスパース性を算出する(S104)。選択部2060は、算出したスパース性に基づいて、複数の表現フォーマットのうちの一つを選択する(S106)。出力部2080は、選択された表現フォーマットで対象行列データを表す出力行列データ情報を出力する(S108)。
<行列データ情報の取得:S102>
取得部2020は、入力行列データ情報を取得する(S102)。入力行列データ情報は様々な方法で取得することができる。例えば、入力行列データ情報はストレージデバイス1080に予め格納されうる。この場合、取得部2020は、入力行列データ情報ストレージデバイス1080から取得する。その他にも例えば、入力行列データ情報は、キーボードやタッチパネルなどの入力デバイスを用いて情報処理装置2000のユーザによって入力されてもよい。その他にも例えば、入力行列データ情報が格納されているサーバマシンや NAS(network attached storage)などの外部デバイスにアクセスし、これらの外部デバイスから入力行列データ情報を取得してもよい。その他にも例えば、取得部2020は、外部デバイスから送信される入力行列データ情報を受信してもよい。
<行列データのスパース性の算出:S104>
スパース性算出部2040は、対象行列データのスパース性を算出する(S104)。行列データのスパース性は、以下の式で定義されうる。
Figure 0006911949
S は行列データのスパース性表す。n_zero は、行列でーたにおけるゼロ値データ要素の数を表す。n_total は、行列データに含まれるデータ要素の総数を表す。この定義により、S の値が大きいほど、行列のスパース性が高くなる。
図8は、行列データA、B、及びCという3つの行列データの例を示す。行列データAについては、ゼロ値データ要素の数とデータ要素の総数がそれぞれ、2と25である。そのため、行列データAのスパース性は、0.08 (2/25) である。行列データBについては、ゼロ値データ要素の数とデータ要素の総数がそれぞれ、6と25である。そのため、行列データBのスパース性は、0.24 (6/25) である。行列データCについては、ゼロ値データ要素の数とデータ要素の総数がそれぞれ、48と49である。そのため、行列データCのスパース性は、0.98 (48/49) である。
スパース性算出部2040は、取得部2020によって取得された入力行列データ情報を利用して、対象行列データのスパース性を算出する。例えば、スパース性算出部2040は、対象行列データについて、ゼロ値データ要素の数と非ゼロ値データ要素の数をそれぞれカウントする。次に、スパース性算出部2040は、対象行列データにおけるゼロ値データ要素の数と非ゼロ値データ要素の数を足すことで、行列データのデータ要素の総数を算出する。さらに、スパース性算出部2040は、セロ値データ要素の数と対象行列のデータ要素の総数を式1に適用することで、対象行列データのスパース性 S を算出する。なお、非ゼロ値データ要素の数と行列データのデータ要素の総数を把握する方法は、上述の例示した方法に限定されず、様々な既存の方法を適用できる。
入力行列データ情報が対象行列データをスパース表現フォーマットで表す場合、入力行列データ情報によって表されるデータ列12は、ゼロ値データ要素を含まない。そのため、スパース性算出部2040は、データ列12のみでは、ゼロ値データ要素をカウントできない。この場合、例えばスパース性算出部2040は、入力行列データ情報によって示されるデータ列12と位置情報1を利用して、密表現フォーマットで表される対象行列データのデータ列12を生成する。そして、スパース性算出部2040は、生成されたデータ列を利用して、対象行列データのゼロ値データ要素の数をカウントする。
その他にも例えば、入力行列データ情報は、対象行列データの非ゼロ値データ要素の数や、対象行列データのデータ要素の総数を示してもよい。この構成では、スパース性算出部2040は、対象行列データのゼロ値データ要素をカウントすることなく、対象行列データのスパース性を算出できる。
<表現フォーマットの選択:S106>
選択部2060は算出したスパース性に基づいて、複数の表現フォーマットのうちの1つを選択する(S106)。具体的には、選択部2060は、算出された対象行列データのスパース性と所定の閾値を比較し、その比較結果に基づいて表現フォーマットを選択する。
図9は、表現フォーマットを選択する処理の流れの例を示す図である。この例では、高スパース性閾値と低スパース性閾値という2つの所定の閾値が存在する。高スパース性閾値は、低スパース性閾値よりも大きい。
S202において、選択部2060は、算出された対象行列データのスパース性を低スパース性閾値と比較し、算出された対象行列データのスパース性が低スパース性閾値よりも小さいか否かを判定する。算出された対象行列データのスパース性が低スパース性閾値よりも小さいと判定された場合(S202:YES)、選択部2060は密表現フォーマットを選択する(S204)。
一方、算出された対象行列データのスパース性が低スパース性閾値よりも小さくないと判定された場合(S202:NO)、選択部2060は、算出された行列データのスパース性を高スパース性閾値と比較し、算出された対象行列データのスパース性が高スパース性閾値よりも小さいか否かを判定する(S206)。算出された対象行列データのスパース性が高スパース性閾値よりも小さいと判定された場合(S206:YES)、選択部2060は、第1スパース表現フォーマットを選択する(S208)。一方、算出された対象行列データのスパース性が高スパース性閾値よりも小さくないと判定された場合(S206:NO)、選択部2060は、第2スパース表現フォーマットを選択する(S210)。
第1と第2のスパース表現フォーマットは、第1スパース表現フォーマットが中程度のスパース性を持つ行列データに適している一方、第2スパース表現フォーマットがスパース性の高いものに適しているという点で、互いに異なる。そのため、選択部2060は、対象行列データのスパース性が高スパース性閾値よりも大きい場合に第2表現フォーマットを選択し、対象行列データのスパース性が高スパース性閾値以下である場合に第1表現フォーマットを選択する。
第1スパース表現フォーマットの例は、要素単位フラグ(element-wise flag)スパース表現フォーマットである。要素単位フラグスパース表現フォーマットは、行優先順序と列優先順序のどちらかで、行列データの非ゼロ値データ要素及び行列データの各要素についての非ゼロ値要素フラグにより行列データを表す。非ゼロ値要素フラグは、行列データの各要素について、データ要素の値がゼロであるか否かを示す。以下、行優先順序で非ゼロ値データ要素と非ゼロ値要素フラグが記述される要素単位フラグスパース表現フォーマットを、「行優先順序要素単位フラグスパース表現フォーマット」と呼び、列優先順序で非ゼロ値データ要素と非ゼロ値要素フラグが記述される要素単位フラグスパース表現フォーマットを、「列優先順序要素単位フラグスパース表現フォーマット」と呼ぶ。
図10は、行優先順序要素単位フラグスパース表現フォーマットで対象行列データを表す行列データ情報の例を示す図である。行列データ情報10−6は、行列データAを行優先順序要素単位フラグスパース表現フォーマットで表している。この例において、x5 と x6 はゼロであると仮定されている。
行列データ情報10−6は、データ列12−6、フォーマットフラグ14−6、及び位置情報16−6を含む。x5 と x6 がゼロであるため、データ列12−6は、x5と x6 を含まず、x0 から x4、x7 及び x8 を、行優先順序で含む。フォーマットフラグ14−6は、行優先順序要素単位フラグスパース表現フォーマットが利用されていることを示す。位置情報16−6は、非ゼロ値要素フラグを含む。x0 から x4、x7、及び x8 に対応する非ゼロ値要素フラグは1を示し、x5 と x6 に対応するものは0を示し、これらは行優先順序である。
図11は、列優先順序要素単位フラグスパース表現フォーマットで行列データを表す行列データ情報の例を示す図である。行列データ情報10−7は、行列データAを列優先順序要素単位フラグスパース表現フォーマットで示す。この例でもまた、x5 と x6 はゼロであると仮定されている。
図11に示されているように、データ列12−7は、x5 と x6 を含まず、x0 から x4、x7、及び x8 を列優先順序で含む。非ゼロ値要素フラグ(位置情報1−7)については、x0 から x4、x7、及び x8 に対応するものが1を示し、x5 と x6 に対応するものが0を示し、これらは列優先順序である。フォーマットフラグ14−7は、列優先順序要素単位フラグスパース表現フォーマットが利用されていることを示す。
要素単位フラグスパース表現フォーマットで対象行列データを表す行列データ情報は、例えば、入力行列データ情報が対象行列データを密表現フォーマットで表す場合に、入力行列データ情報のデータ列の各データ要素を順にスキャンすることで、入力行列データ情報から生成することができる。スキャンされたデータ要素がゼロである場合、対応する非ゼロ値要素フラグはゼロに設定される。一方、スキャンされたデータ要素がゼロでない場合、対応する非ゼロ値要素フラグは1に設定され、要素単位フラグスパース表現フォーマットで対象行列データを表す行列データ情報のデータ列に対し、スキャンされたデータ要素が加えられる。なお、列優先順序要素単位フラグスパース表現フォーマットを利用する場合、入力行列データ情報のデータ列が列優先順序でスキャンされる一方、行優先順序要素単位フラグスパース表現フォーマットを利用する場合、入力行列データ情報のデータ列が行優先順序でスキャンされる。
なお、スパース性算出部2040は、対象行列データにおけるゼロ値データ要素の数と非ゼロ値データ要素の数をカウントする時に非ゼロ値要素フラグを生成するように構成されることが好ましい。なぜなら、スパース性算出部2040が必然的に対象行列データの各データ要素がゼロであるか否かを判定するためである。この構成によれば、出力部2080は、スパース性算出部2040によって生成される非ゼロ値要素フラグを利用することができ、要素単位フラグスパース表現を利用する時にこれらを生成する必要がない。
第2スパース表現フォーマットは、例えば、CSR、CSC、COO、BSR、又は LOL である。ただし、第1スパース表現フォーマットも、上述した4つのスパース表現フォーマットのうちの1つであってもよい。例えば、CSR と COO がそれぞれ、第1と第2のスパース表現フォーマットとして利用されうる。
高スパース性閾値の定義は、どの表現フォーマットが利用されるかに依存する。例えば、要素単位フラグスパース表現フォーマットが第1スパース表現フォーマットとして利用され、かつ、CSC が第2スパース表現フォーマットとして利用される場合、高スパース性閾値は、以下の式2で定義されうる。
Figure 0006911949
Th1 は高スパース性閾値を表す。R は対象行列データの行数を表す。C は対象行列データの列数を表す。
概念的には、閾値は、対象行列データを表すために必要なデータ量について表現フォーマット間の比較をすることで定まる。上述した例の場合に関し、要素単位フラグスパース表現フォーマットと CSR で対象行列データを表す場合に使われるビットの数の比較は、以下の式3で表される。式2の Th1 は式3を S について解く(Th1 = S)ことで得られる。
Figure 0006911949
B は、対象行列データの各データ要素を表すために利用されるビット数を表す。S は、対象行列データのスパース性を表す。
その他にも例えば、要素単位フラグスパース表現フォーマットが第1スパース表現フォーマットとして利用され、かつ、CSR が第2スパース表現フォーマットとして利用される場合、高スパース性閾値は以下の式4で定義されうる。
Figure 0006911949
一方、要素単位フラグスパース表現フォーマットが第1スパース表現フォーマットとして利用される場合、低スパース性閾値は以下の式5で定義されうる。
Figure 0006911949
Th2 は低スパース性閾値を表す。B は対象行列データの各データ要素を表すために利用されるビット数を表す。
情報処理装置2000は、スパース性表現フォーマットの3つ以上の選択肢を持っていてもよい。図12は、スパース性表現フォーマットに3つ以上の選択肢がある場合について、出力行列データ情報の表現フォーマットを選択する流れの例を示す図である。この例では、高スパース性閾値、中スパース性閾値、及び低スパース性閾値という3つの所定の閾値がある。中スパース性閾値は、高スパース性閾値よりも小さく、低スパース性閾値よりも大きい。
S302において、選択部2060は、算出された対象行列データのスパース性が低スパース性閾値よりも小さいか否かを判定する。算出された対象行列データのスパース性が低スパース性閾値よりも小さいと判定された場合(S302:YES)、選択部2060は密表現フォーマットを選択する(S304)。
一方、算出された対象行列データのスパース性が低スパース性閾値よりも小さくないと判定された場合(S302:NO)、選択部2060は、算出された対象行列データのスパース性を中スパース性閾値と比較し、算出された対象行列データのスパース性が中スパース性閾値よりも小さいか否かを判定する(S306)。算出された対象行列データのスパース性が中スパース性閾値よりも小さいと判定された場合(S306:YES)、選択部2060は第1スパース性表現フォーマットを選択する(S308)。算出された対象行列データのスパース性が中スパース性閾値よりも小さくないと判定された場合(S306:NO)、選択部2060は、算出された対象行列データのスパース性が高スパース性閾値よりも小さいか否かを判定する(S310)。算出された対象行列データのスパース性が高スパース性閾値よりも小さいと判定された場合(S310:YES)、選択部2060は第2スパース表現フォーマットを選択する(S312)。一方、算出された対象行列データのスパース性が高スパース性閾値よりも小さくないと判定された場合(S310:NO)、選択部2060は第3スパース性表現フォーマットを選択する(S314)。
第1、第2、及び第3のスパース性表現フォーマットはそれぞれ、例えば、要素単位フラグスパース表現フォーマット、CSR、及び COO である。この場合、中スパース性閾値と低スパース性閾値はそれぞれ、式4の Th1 と式5の Th2 で定義されうる。また、高スパース性閾値は以下の式で定義されうる。
Figure 0006911949
C は対象行列データの列数を表す。
<行列データ情報の出力:S108>
出力部2080は、出力行列データ情報を出力する(S108)。出力行列データ情報は、出力部2080によって生成される。例えば、出力部2080は、選択部2060による選択の結果を取得し、その後、選択部2060によって選択された表現フォーマットで対象行列データを表す出力行列データ情報を生成する。
その他にも例えば、出力部2080は、選択部2060が出力行列データ情報の表現フォーマットを選択することと並行して、出力行列データ情報を用意してもよい。具体的には、出力部2080は、互いに異なる表現フォーマットで対象行列データを表す出力行列データ情報の全ての候補を用意してもよい。要素単位フラグスパース表現フォーマット、CSR、及び COO がスパース表現フォーマットの選択肢であるとする。この場合、出力部2080は、選択部2060が出力行列データ情報の表現フォーマットを選択することと並行して、対象行列データを要素単位フラグスパース表現フォーマット、CSR、及び COO のそれぞれで表す出力行列データ情報の3つの候補を生成することにより、出力行列データを用意する。
出力行列データ情報の候補を用意した後、出力部2080は、選択部2060から、選択された表現フォーマットが示されている情報を取得する。さらに、出力部2080は、候補の出力行列データ情報のうち、選択された表現フォーマットとマッチする表現フォーマットを持つものを、出力行列データ情報として出力する。ただし、選択部2060によって選択された表現フォーマットが入力行列データ情報で利用されているものと同じである場合、出力部2080は、入力行列データ情報を出力行列データ情報として出力してもよい。
その他にも例えば、出力行列データ情報の候補の用意は、対象行列データのスパース性の算出と並行して行われてもよい。
図13は、出力部2080がスパース性算出部2040及び選択部2060と並行で動作する場合のフローチャートを例示する図である。なお、S102、S104、S106、及びS108は、図におけるものと同じであり、これらはそれぞれ、取得部2020、スパース性算出部2040、選択部2060、及び出力部2080によって実行される。
入力行列データ情報は、出力行列データ情報を生成するために利用される。入力行列データ情報から出力行列データ情報を生成する方法は、入力行列データ情報の表現フォーマットに依存する。入力行列データ情報において対象行列データが密表現フォーマットで表されている場合、出力部2080は、対象行列データの全てのデータ要素を含むデータ列12を利用して、出力行列データ情報を生成する。なお、対象行列データのフォーマットを密表現フォーマットからスパース表現フォーマットに変換する技術には、既存の技術を利用することができる。
一方、入力行列データ情報において対象行列データがスパース表現フォーマットで表されている場合、出力部2080は、非ゼロ値データ要素を示すデータ列12及び位置情報1を利用して、出力行列データ情報を生成する。例えば出力部2080は、非ゼロ値データ要素と位置情報を用いて対象行列データの全てのデータ要素を取り出し(入力行列データ情報を密表現フォーマットに変換し)、対象行列データ(取り出されたデータ要素)を、密表現フォーマットから、選択部2060によって選択された表現フォーマットに変換する。
その他にも例えば、出力部は、入力行列データ情報を、選択部2060によって選択された表現フォーマットに直接変換することで、出力行列データ情報を生成する。この場合、出力部2080は、入力フォーマットと出力フォーマットの各組み合わせについて、対象行列データを変換するためのアルゴリズムを含みうる。選択部2060によって選択されうる表現フォーマットに3つの選択肢があり、それぞれの名前が f1、f2、及び f3 であるとする。この場合、出力部2080は、対象行列データのフォーマットを、f1 から f2、f1 から f3、f2 から f1、f2 から f3、f3 から f1、及び f3 から f2 に変換するアルゴリズムを含みうる。
出力行列データ情報は、様々な方法により、情報処理装置2000の内部と外部のどちらへ出力されてもよい。例えば出力部2080は、出力行列データ情報をメモリ1060やストレージデバイス1080に書き込む。その他にも例えば、出力部2080は、出力行列データ情報を、入出力インタフェース1100を介して情報処理装置2000に接続されているディスプレイに表示する。その他にも例えば、出力2080は、ネットワークインタフェース1120を介し、出力行列データ情報をサーバマシンや NAS に送信する。
<実施形態2>
図14は、実施形態2の情報処理装置2000を例示する図である。以下で記載される機能を除き、本実施形態の情報処理装置2000は、実施形態1の情報処理装置2000と同様の機能を有する。
本実施形態の情報処理装置2000は、行列(2次元配列)として記述されている入力データではなく、1次元(1D)配列や3次元以上の配列として記述されているものを受け付ける。この入力データは、1つ以上の行列データとして扱われ、各行列データが実施形態1に記載されたように処理される。
そのようにするために、情報処理装置2000は変換部2100を有する。変換部2100は、入力データを取得し、1つ以上の入力行列データ情報に変換する。
入力データが1次元配列として記述されている場合、変換部2100は、入力データを複数の行と複数の列に均等に分割することで、入力行列データ情報を生成する。各行の長さと各列の長さは、予め定められうる。
図15は、1次元配列データが入力された場合に変換部2100がどのように動作するかを例示する図である。図15では、入力データが1次元配列で記述されていることが仮定されている。入力データは15個のデータ要素(x0 から x14)を含む。各行の長さは5と定められている。この場合、変換部2100は、入力データを均等に3分割する。具体的には、x0 から x4 のシーケンスが第1の行に変換され、x5 から x9 のシーケンスが第2の行に変換され、x10 から x14 のシーケンスが第3の行に変換される。
入力データが3以上の次元の配列データとして記述されている場合、変換部2100は、入力データを、複数の行列データの集まりとして扱う。例えば、3次元配列データは、複数の行列データのシーケンスとして扱うことができる。そこで、変換部2100は、3次元以上の配列データに含まれる各行列データを取り出し、各行列データを含む複数の入力行列データ情報を生成する。
生成された入力行列データのフォーマットフラグは、変換部2100が取得した入力データの表現フォーマットを示す。例えば、入力データの表現フォーマットが密表現フォーマットである場合、変換部2100は、それぞれが表現フラグに密表現フォーマットを示す1つ以上の入力行列データ情報を生成する。
<作用効果>
本実施形態の情報処理装置2000によれば、行列データだけでなく、1次元や3次元以上の配列も、そのスパース性に基づいてより効率的な表現フォーマットに変換するために扱うことができる。
<付記>
以下、参考の構成の例を記載する。
(付記1)
対象行列データを密表現フォーマット又はスパース表現フォーマットで表している入力行列データ情報を取得する取得部を有し、
前記対象行列データが前記密表現フォーマットで表される場合、前記対象行列データは全てのデータ要素で表され、
前記対象行列データが前記スパース表現フォーマットで表される場合、前記対象行列データは、前記対象行列データの非ゼロ値データ要素で表され、
前記対象行列データのスパース性を算出するスパース性算出部と、
前記算出されたスパース性に基づいて複数の表現フォーマットのうちの1つを選択する選択部と、を有し、
前記複数の表現フォーマットは、前記密表現フォーマットと、少なくとも2つの種類のスパース表現フォーマットを含み、
前記対象行列データを前記選択された表現フォーマットで表している出力行列データ情報を出力する出力部を有する、情報処理装置。
(付記2)
前記選択部は、
前記算出されたスパース性が低スパース性閾値よりも大きいか否かを判定し、
前記算出されたスパース性が前記低スパース性閾値よりも小さいと判定された場合、前記密表現フォーマットを選択し、
前記算出されたスパース性が前記低スパース性閾値よりも小さくないと判定された場合、前記算出されたスパース性が高スパース性閾値よりも小さいか否かを判定し、前記高スパース性閾値は前記低スパース性閾値よりも大きく、
前記算出されたスパース性が前記高スパース性閾値よりも小さいと判定された場合、第1スパース表現フォーマットを選択し、
前記算出されたスパース性が前記高スパース性閾値よりも小さくないと判定された場合、第2スパース表現フォーマットを選択する、付記1に記載の情報処理装置。
(付記3)
前記高スパース性閾値は、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第2スパース表現フォーマットで表すために利用されるビット数との比較によって定まり、
前記低スパース性閾値は、前記対象行列データを前記密表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数との比較によって定まる、付記2に記載の情報処理装置。
(付記4)
前記第1スパース表現フォーマットが要素単位フラグスパース表現フォーマットであり、かつ、前記第2スパース表現フォーマットが compressed sparse row である場合、前記高スパース性閾値は数7で定められ、
Th1 は前記高スパース性閾値を表し、R は前記対象行列データの行数を表し、C は前記対象行列データの列数を表す、付記3に記載の情報処理装置。
Figure 0006911949
(付記5)
前記第1スパース表現フォーマットが要素単位フラグスパース表現フォーマットである場合、前記低スパース性閾値は数8で定められ、
Th2 は前記低スパース性閾値を表し、B は前記対象行列データの各データ要素を表すために利用されるビット数である、付記3又は4に記載の情報処理装置。
Figure 0006911949
(付記6)
1次元の配列データを取得し、前記1次元の配列データを複数の行又は列に分割し、前記複数の行又は列を含む前記入力行列データ情報を生成する変換部を有し、
前記取得部は、前記変換部によって生成された前記入力行列データを取得する、付記1から5いずれか一項に記載の情報処理装置。
(付記7)
3次元以上の配列データを取得し、前記3次元以上の配列データから複数の行列データを抽出し、それぞれが前記抽出した行列データのうちの1つを含む複数の前記入力行列データ情報を生成する変換部を有し、
前記取得部は、前記変換部によって生成された複数の前記入力行列データ情報を取得する、付記1から6いずれか一項に記載の情報処理装置。
(付記8)
コンピュータによって実行される制御方法であって、
対象行列データを密表現フォーマット又はスパース表現フォーマットで表している入力行列データ情報を取得し、
前記対象行列データが前記密表現フォーマットで表される場合、前記対象行列データは全てのデータ要素で表され、
前記対象行列データが前記スパース表現フォーマットで表される場合、前記対象行列データは、前記対象行列データの非ゼロ値データ要素で表され、
前記対象行列データのスパース性を算出し、
前記算出されたスパース性に基づいて複数の表現フォーマットのうちの1つを選択し、
前記複数の表現フォーマットは、前記密表現フォーマットと、少なくとも2つの種類のスパース表現フォーマットを含み、
前記対象行列データを前記選択された表現フォーマットで表している出力行列データ情報を出力する、制御方法。
(付記9)
前記表現フォーマットの選択は、
前記算出されたスパース性が低スパース性閾値よりも大きいか否かを判定し、
前記算出されたスパース性が前記低スパース性閾値よりも小さいと判定された場合、前記密表現フォーマットを選択し、
前記算出されたスパース性が前記低スパース性閾値よりも小さくないと判定された場合、前記算出されたスパース性が高スパース性閾値よりも小さいか否かを判定し、前記高スパース性閾値は前記低スパース性閾値よりも大きく、
前記算出されたスパース性が前記高スパース性閾値よりも小さいと判定された場合、第1スパース表現フォーマットを選択し、
前記算出されたスパース性が前記高スパース性閾値よりも小さくないと判定された場合、第2スパース表現フォーマットを選択する、ことを含む付記7に記載の制御方法。
(付記10)
前記高スパース性閾値は、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第2スパース表現フォーマットで表すために利用されるビット数との比較によって定まり、
前記低スパース性閾値は、前記対象行列データを前記密表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数との比較によって定まる、付記9に記載の制御方法。
(付記11)
前記第1スパース表現フォーマットが要素単位フラグスパース表現フォーマットであり、かつ、前記第2スパース表現フォーマットが compressed sparse row である場合、前記高スパース性閾値は数9で定められ、
Th1 は前記高スパース性閾値を表し、R は前記対象行列データの行数を表し、C は前記対象行列データの列数を表す、付記10に記載の制御方法。
Figure 0006911949
(付記12)
前記第1スパース表現フォーマットが要素単位フラグスパース表現フォーマットである場合、前記低スパース性閾値は数10で定められ、
Th2 は前記低スパース性閾値を表し、B は前記対象行列データの各データ要素を表すために利用されるビット数である、付記10又は11に記載の制御方法。
Figure 0006911949
(付記13)
1次元の配列データを取得し、前記1次元の配列データを複数の行又は列に分割し、前記複数の行又は列を含む前記入力行列データ情報を生成することをさらに含み、
前記入力行列データ情報の取得において、前記1次元の配列データから生成された前記入力行列データを取得する、付記8から12いずれか一項に記載の制御方法。
(付記14)
3次元以上の配列データを取得し、前記3次元以上の配列データから複数の行列データを抽出し、それぞれが前記抽出した行列データのうちの1つを含む複数の前記入力行列データ情報を生成することをさらに含み、
前記入力行列データ情報の取得において、前記3次元以上の配列データから生成された複数の前記入力行列データ情報を取得する、付記8から13いずれか一項に記載の制御方法。
(付記15)
コンピュータに、
対象行列データを密表現フォーマット又はスパース表現フォーマットで表している入力行列データ情報を取得させ、
前記対象行列データが前記密表現フォーマットで表される場合、前記対象行列データは全てのデータ要素で表され、
前記対象行列データが前記スパース表現フォーマットで表される場合、前記対象行列データは、前記対象行列データの非ゼロ値データ要素で表され、
前記対象行列データのスパース性を算出させ、
前記算出されたスパース性に基づいて複数の表現フォーマットのうちの1つを選択し、
前記複数の表現フォーマットは、前記密表現フォーマットと、少なくとも2つの種類のスパース表現フォーマットを含み、
前記対象行列データを前記選択された表現フォーマットで表している出力行列データ情報を出力させる、プログラム。
(付記16)
前記表現フォーマットの選択は、
前記算出されたスパース性が低スパース性閾値よりも大きいか否かを判定し、
前記算出されたスパース性が前記低スパース性閾値よりも小さいと判定された場合、前記密表現フォーマットを選択し、
前記算出されたスパース性が前記低スパース性閾値よりも小さくないと判定された場合、前記算出されたスパース性が高スパース性閾値よりも小さいか否かを判定し、前記高スパース性閾値は前記低スパース性閾値よりも大きく、
前記算出されたスパース性が前記高スパース性閾値よりも小さいと判定された場合、第1スパース表現フォーマットを選択し、
前記算出されたスパース性が前記高スパース性閾値よりも小さくないと判定された場合、第2スパース表現フォーマットを選択する、ことを含む付記15に記載のプログラム。
(付記17)
前記高スパース性閾値は、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第2スパース表現フォーマットで表すために利用されるビット数との比較によって定まり、
前記低スパース性閾値は、前記対象行列データを前記密表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数との比較によって定まる、付記16に記載のプログラム。
(付記18)
前記第1スパース表現フォーマットが要素単位フラグスパース表現フォーマットであり、かつ、前記第2スパース表現フォーマットが compressed sparse row である場合、前記高スパース性閾値は数11で定められ、
Th1 は前記高スパース性閾値を表し、R は前記対象行列データの行数を表し、C は前記対象行列データの列数を表す、付記17に記載のプログラム。
Figure 0006911949
(付記19)
前記第1スパース表現フォーマットが要素単位フラグスパース表現フォーマットである場合、前記低スパース性閾値は数12で定められ、
Th2 は前記低スパース性閾値を表し、B は前記対象行列データの各データ要素を表すために利用されるビット数である、付記17又は18に記載のプログラム。
Figure 0006911949
(付記20)
1次元の配列データを取得し、前記1次元の配列データを複数の行又は列に分割し、前記複数の行又は列を含む前記入力行列データ情報を生成することをさらに含み、
前記入力行列データ情報の取得において、前記1次元の配列データから生成された前記入力行列データを取得する、付記15から19いずれか一項に記載のプログラム。
(付記21)
3次元以上の配列データを取得し、前記3次元以上の配列データから複数の行列データを抽出し、それぞれが前記抽出した行列データのうちの1つを含む複数の前記入力行列データ情報を生成することをさらに含み、
前記入力行列データ情報の取得において、前記3次元以上の配列データから生成された複数の前記入力行列データ情報を取得する、付記15から20いずれか一項に記載のプログラム。

Claims (7)

  1. 対象行列データを密表現フォーマット又はスパース表現フォーマットで表している入力行列データ情報を取得する取得部を有し、
    前記対象行列データが前記密表現フォーマットで表される場合、前記対象行列データは全てのデータ要素で表され、
    前記対象行列データが前記スパース表現フォーマットで表される場合、前記対象行列データは、前記対象行列データの非ゼロ値データ要素で表され、
    前記対象行列データのスパース性を算出するスパース性算出部と、
    前記算出されたスパース性に基づいて複数の表現フォーマットのうちの1つを選択する選択部と、を有し、
    前記複数の表現フォーマットは、前記密表現フォーマットと、少なくとも2つの種類のスパース表現フォーマットを含み、
    前記対象行列データを前記選択された表現フォーマットで表している出力行列データ情報を出力する出力部を有し、
    前記選択部は、
    前記算出されたスパース性が低スパース性閾値よりも大きいか否かを判定し、
    前記算出されたスパース性が前記低スパース性閾値よりも小さいと判定された場合、前記密表現フォーマットを選択し、
    前記算出されたスパース性が前記低スパース性閾値よりも小さくないと判定された場合、前記算出されたスパース性が高スパース性閾値よりも小さいか否かを判定し、前記高スパース性閾値は前記低スパース性閾値よりも大きく、
    前記算出されたスパース性が前記高スパース性閾値よりも小さいと判定された場合、第1スパース表現フォーマットを選択し、
    前記算出されたスパース性が前記高スパース性閾値よりも小さくないと判定された場合、第2スパース表現フォーマットを選択し、
    前記高スパース性閾値は、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第2スパース表現フォーマットで表すために利用されるビット数との比較によって定まり、
    前記低スパース性閾値は、前記対象行列データを前記密表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数との比較によって定まる、
    情報処理装置。
  2. 前記第1スパース表現フォーマットが要素単位フラグスパース表現フォーマットであり、かつ、前記第2スパース表現フォーマットが compressed sparse row である場合、前記高スパース性閾値は数1で定められ、
    前記対象行列データのスパース性SはS=n zero /n total で定められ、
    Th1 は前記高スパース性閾値を表し、R は前記対象行列データの行数を表し、C は前記対象行列データの列数を表し、n zero は前記対象行列データにおけるゼロ値データ要素の数を表し、n total は前記対象行列データに含まれるデータ要素の総数を表す、請求項に記載の情報処理装置。
    Figure 0006911949
  3. 前記第1スパース表現フォーマットが要素単位フラグスパース表現フォーマットである場合、前記低スパース性閾値は数2で定められ、
    前記対象行列データのスパース性SはS=n zero /n total で定められ、
    Th2 は前記低スパース性閾値を表し、B は前記対象行列データの各データ要素を表すために利用されるビット数であり、n zero は前記対象行列データにおけるゼロ値データ要素の数を表し、n total は前記対象行列データに含まれるデータ要素の総数を表す、請求項又はに記載の情報処理装置。
    Figure 0006911949
  4. 1次元の配列データを取得し、前記1次元の配列データを複数の行又は列に分割し、前記複数の行又は列を含む前記入力行列データ情報を生成する変換部を有し、
    前記取得部は、前記変換部によって生成された前記入力行列データ情報を取得する、請求項1からいずれか一項に記載の情報処理装置。
  5. 3次元以上の配列データを取得し、前記3次元以上の配列データから複数の行列データを抽出し、それぞれが前記抽出した行列データのうちの1つを含む複数の前記入力行列データ情報を生成する変換部を有し、
    前記取得部は、前記変換部によって生成された複数の前記入力行列データ情報を取得する、請求項1からいずれか一項に記載の情報処理装置。
  6. コンピュータによって実行される制御方法であって、
    対象行列データを密表現フォーマット又はスパース表現フォーマットで表している入力行列データ情報を取得し、
    前記対象行列データが前記密表現フォーマットで表される場合、前記対象行列データは全てのデータ要素で表され、
    前記対象行列データが前記スパース表現フォーマットで表される場合、前記対象行列データは、前記対象行列データの非ゼロ値データ要素で表され、
    前記対象行列データのスパース性を算出し、
    前記算出されたスパース性に基づいて複数の表現フォーマットのうちの1つを選択し、
    前記複数の表現フォーマットは、前記密表現フォーマットと、少なくとも2つの種類のスパース表現フォーマットを含み、
    前記対象行列データを前記選択された表現フォーマットで表している出力行列データ情報を出力し、
    前記表現フォーマットの選択は、
    前記算出されたスパース性が低スパース性閾値よりも大きいか否かを判定し、
    前記算出されたスパース性が前記低スパース性閾値よりも小さいと判定された場合、前記密表現フォーマットを選択し、
    前記算出されたスパース性が前記低スパース性閾値よりも小さくないと判定された場合、前記算出されたスパース性が高スパース性閾値よりも小さいか否かを判定し、前記高スパース性閾値は前記低スパース性閾値よりも大きく、
    前記算出されたスパース性が前記高スパース性閾値よりも小さいと判定された場合、第1スパース表現フォーマットを選択し、
    前記算出されたスパース性が前記高スパース性閾値よりも小さくないと判定された場合、第2スパース表現フォーマットを選択する、ことを含み、
    前記高スパース性閾値は、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第2スパース表現フォーマットで表すために利用されるビット数との比較によって定まり、
    前記低スパース性閾値は、前記対象行列データを前記密表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数との比較によって定まる、
    制御方法。
  7. コンピュータに、
    対象行列データを密表現フォーマット又はスパース表現フォーマットで表している入力行列データ情報を取得させ、
    前記対象行列データが前記密表現フォーマットで表される場合、前記対象行列データは全てのデータ要素で表され、
    前記対象行列データが前記スパース表現フォーマットで表される場合、前記対象行列データは、前記対象行列データの非ゼロ値データ要素で表され、
    前記対象行列データのスパース性を算出させ、
    前記算出されたスパース性に基づいて複数の表現フォーマットのうちの1つを選択させ、
    前記複数の表現フォーマットは、前記密表現フォーマットと、少なくとも2つの種類のスパース表現フォーマットを含み、
    前記対象行列データを前記選択された表現フォーマットで表している出力行列データ情報を出力させ、
    前記表現フォーマットの選択は、
    前記算出されたスパース性が低スパース性閾値よりも大きいか否かを判定し、
    前記算出されたスパース性が前記低スパース性閾値よりも小さいと判定された場合、前記密表現フォーマットを選択し、
    前記算出されたスパース性が前記低スパース性閾値よりも小さくないと判定された場合、前記算出されたスパース性が高スパース性閾値よりも小さいか否かを判定し、前記高スパース性閾値は前記低スパース性閾値よりも大きく、
    前記算出されたスパース性が前記高スパース性閾値よりも小さいと判定された場合、第1スパース表現フォーマットを選択し、
    前記算出されたスパース性が前記高スパース性閾値よりも小さくないと判定された場合、第2スパース表現フォーマットを選択する、ことを含み、
    前記高スパース性閾値は、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第2スパース表現フォーマットで表すために利用されるビット数との比較によって定まり、
    前記低スパース性閾値は、前記対象行列データを前記密表現フォーマットで表すために利用されるビット数と、前記対象行列データを前記第1スパース表現フォーマットで表すために利用されるビット数との比較によって定まる、
    プログラム。
JP2019571755A 2017-07-04 2017-07-04 情報処理装置、制御方法、及びプログラム Active JP6911949B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/024459 WO2019008661A1 (en) 2017-07-04 2017-07-04 INFORMATION PROCESSING APPARATUS, CONTROL METHOD, AND PROGRAM

Publications (2)

Publication Number Publication Date
JP2020525930A JP2020525930A (ja) 2020-08-27
JP6911949B2 true JP6911949B2 (ja) 2021-07-28

Family

ID=59581983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019571755A Active JP6911949B2 (ja) 2017-07-04 2017-07-04 情報処理装置、制御方法、及びプログラム

Country Status (3)

Country Link
US (1) US11308045B2 (ja)
JP (1) JP6911949B2 (ja)
WO (1) WO2019008661A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7267964B2 (ja) * 2019-03-14 2023-05-02 アクタピオ,インコーポレイテッド 生成装置、生成方法および生成プログラム
US11126690B2 (en) 2019-03-29 2021-09-21 Intel Corporation Machine learning architecture support for block sparsity
US11562248B2 (en) * 2019-04-29 2023-01-24 Advanced Micro Devices, Inc. Data sparsity monitoring during neural network training
EP4078455A1 (en) * 2019-12-20 2022-10-26 Vid Scale, Inc. Compression of data stream
US20220076095A1 (en) * 2020-09-04 2022-03-10 Alibaba Group Holding Limited Multi-level sparse neural networks with dynamic rerouting

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2969047B2 (ja) 1994-07-04 1999-11-02 鐘紡株式会社 データ圧縮装置
US9396164B2 (en) * 2013-10-21 2016-07-19 International Business Machines Corporation Sparsity-driven matrix representation to optimize operational and storage efficiency
EP3467700B1 (en) * 2014-11-18 2022-05-04 Cognex Corporation Systems and methods for decoding two-dimensional matrix symbols
US20160259826A1 (en) * 2015-03-02 2016-09-08 International Business Machines Corporation Parallelized Hybrid Sparse Matrix Representations for Performing Personalized Content Ranking
US10061748B2 (en) * 2015-12-11 2018-08-28 Sap Se Adaptive tile matrix representation and multiplication

Also Published As

Publication number Publication date
JP2020525930A (ja) 2020-08-27
WO2019008661A1 (en) 2019-01-10
US20210149852A1 (en) 2021-05-20
US11308045B2 (en) 2022-04-19

Similar Documents

Publication Publication Date Title
JP6911949B2 (ja) 情報処理装置、制御方法、及びプログラム
US10096134B2 (en) Data compaction and memory bandwidth reduction for sparse neural networks
JP7325158B2 (ja) ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現
EP3794512A1 (en) Systems and methods for unifying statistical models for different data modalities
US9292789B2 (en) Continuous-weight neural networks
JP2019079305A (ja) データ分析装置、データ分析方法、およびデータ分析プログラム
US20190066265A1 (en) Image segmentation method and apparatus
JP7070093B2 (ja) クラスタリング装置、クラスタリング方法及びプログラム
JP2022550730A (ja) 高速なスパースニューラルネットワーク
EP3333721A1 (en) A method and an apparatus for encoding a signal transporting data for reconstructing a sparse matrix
KR20230155417A (ko) 하드웨어에서의 희소 행렬 곱셈
Carassou et al. Inferring the photometric and size evolution of galaxies from image simulations-I. Method
JP7116969B2 (ja) 2次元マップ生成装置、2次元マップ生成方法および2次元マップ生成用プログラム
Chakrabarti et al. A survey of architectures for the discrete and continuous wavelet transforms
US20230056735A1 (en) Method of performing classification processing using machine learning model, information processing device, and computer program
CN115936974A (zh) 基于单应性变换的图像数据处理方法、装置及介质
CN111160517A (zh) 一种深度神经网络的卷积层量化方法及装置
WO2018131468A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2011108192A (ja) マルチメディア分類システム及びマルチメディア検索システム
CN110134813B (zh) 图像检索方法、图像检索装置及终端设备
CN107657610B (zh) 一种基于计盒方法的ct扫描结果分析方法
JP7248755B1 (ja) 学習データ生成システム、学習データ生成方法及び学習データ生成プログラム
WO2023053222A1 (ja) データ変換装置、データ変換方法、及びプログラムが格納された非一時的なコンピュータ可読媒体
KR102299084B1 (ko) 하드웨어 가속기의 출력 데이터를 메모리에 저장하는 방법, 하드웨어 가속기의 입력 데이터를 메모리로부터 읽는 방법, 및 이를 위한 하드웨어 가속기
KR102420763B1 (ko) 뉴럴 네트워크 시스템 및 뉴럴 네트워크의 필터 데이터의 처리 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191225

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210311

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210621

R150 Certificate of patent or registration of utility model

Ref document number: 6911949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150