IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧

特表2022-552046ドット積演算実現方法、装置、電子機器、及び記憶媒体
<>
  • 特表-ドット積演算実現方法、装置、電子機器、及び記憶媒体 図1
  • 特表-ドット積演算実現方法、装置、電子機器、及び記憶媒体 図2
  • 特表-ドット積演算実現方法、装置、電子機器、及び記憶媒体 図3
  • 特表-ドット積演算実現方法、装置、電子機器、及び記憶媒体 図4
  • 特表-ドット積演算実現方法、装置、電子機器、及び記憶媒体 図5
  • 特表-ドット積演算実現方法、装置、電子機器、及び記憶媒体 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-15
(54)【発明の名称】ドット積演算実現方法、装置、電子機器、及び記憶媒体
(51)【国際特許分類】
   G06F 17/10 20060101AFI20221208BHJP
   G06N 3/10 20060101ALI20221208BHJP
   G06N 3/06 20060101ALI20221208BHJP
【FI】
G06F17/10 S
G06N3/10
G06N3/06
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021578081
(86)(22)【出願日】2021-08-05
(85)【翻訳文提出日】2021-12-28
(86)【国際出願番号】 CN2021110955
(87)【国際公開番号】W WO2022057502
(87)【国際公開日】2022-03-24
(31)【優先権主張番号】202010984688.7
(32)【優先日】2020-09-18
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】デン、グアンライ
(72)【発明者】
【氏名】ティアン、チャオ
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB71
5B056FF01
5B056FF02
(57)【要約】
本開示は、深層学習と人工知能の分野に関するドット積演算実現方法、装置、電子機器、及び記憶媒体を開示する。その中の方法は、Nグループのオペランドを取得するステップであって、Nは1より大きい正の整数であり、Nグループのオペランドは、いずれも第1のデータ入力フォーマットであるか、又はいずれも第2のデータ入力フォーマットであり、第1のデータ入力フォーマットは、半精度浮動小数点データと文字タイプデータを含み、第2のデータ入力フォーマットは、符号付き固定小数点データと文字タイプデータを含むステップと、任意のオペランドについて、オペランドに対応する入力データをそれぞれ決定し、入力データを対応する乗算器に入力して、出力結果を取得するステップであって、異なるオペランドは、異なる乗算器にそれぞれ対応するステップと、加算器を使用して乗算器の出力結果の和を計算し、Nドット積演算の演算結果を取得するステップと、を含むことができる。本開示の方案を適用すると、ハードウェアコストと消費電力を節約することができ、より高い演算精度などを確保することができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
ドット積演算実現方法であって、
Nグループのオペランドを取得するステップであって、Nは1より大きい正の整数であり、前記Nグループのオペランドは、いずれも第1のデータ入力フォーマットであるか、又はいずれも第2のデータ入力フォーマットであり、前記第1のデータ入力フォーマットは、半精度浮動小数点データと文字タイプデータを含み、前記第2のデータ入力フォーマットは、符号付き固定小数点データと前記文字タイプデータを含むステップと、
任意のオペランドについて、前記オペランドに対応する入力データをそれぞれ決定し、前記入力データを対応する乗算器に入力して、出力結果を取得するステップであって、異なるオペランドは、異なる乗算器にそれぞれ対応するステップと、
加算器を使用して乗算器の出力結果の和を計算し、Nドット積演算の演算結果を取得するステップと、を含む、
ドット積演算実現方法。
【請求項2】
前記オペランドに対応する入力データを決定するステップは、
前記オペランドが前記第1のデータ入力フォーマットである場合、前記オペランド中の前記半精度浮動小数点データから仮数データを抽出し、前記仮数データと前記オペランド中の前記文字タイプデータを前記入力データとするステップを含む、
請求項1に記載のドット積演算実現方法。
【請求項3】
前記オペランドに対応する入力データを決定するステップは、
前記オペランドが前記第2のデータ入力フォーマットである場合、直接に前記オペランド中の前記符号付き固定小数点データと前記文字タイプデータを前記入力データとするステップを含む、
請求項1または2に記載のドット積演算実現方法。
【請求項4】
前記オペランドが前記第1のデータ入力フォーマットである場合、前記オペランド中の前記半精度浮動小数点データから指数データを抽出するステップと、
前記指数データに基づいて、対応する乗算器の出力結果を全精度の固定小数点データに変換するステップと、をさらに含む、
請求項2または3に記載のドット積演算実現方法。
【請求項5】
前記Nの値は4であり、
前記乗算器は、第1の乗算器、第2の乗算器、第3の乗算器、及び第4の乗算器を含み、
前記加算器は、第1の加算器、第2の加算器、及び第3の加算器を含み、
前記加算器を使用して乗算器の出力結果の和を計算し、Nドット積演算の演算結果を取得するステップは、
前記第1の加算器を使用して前記第1の乗算器と前記第2の乗算器の出力結果の和を計算し、前記第2の加算器を使用して前記第3の乗算器と前記第4の乗算器の出力結果の和を計算し、前記第3の加算器を使用して前記第1の加算器と前記第2の加算器の出力結果の和を計算し、4ドット積演算の演算結果を取得するステップを含む、
請求項1から4のいずれか一項に記載のドット積演算実現方法。
【請求項6】
ドット積演算実現装置であって、
取得モジュールと演算モジュールを含み、
前記取得モジュールは、Nグループのオペランドを取得するために用いられ、Nは1より大きい正の整数であり、前記Nグループのオペランドは、いずれも第1のデータ入力フォーマットであるか、又はいずれも第2のデータ入力フォーマットであり、前記第1のデータ入力フォーマットは、半精度浮動小数点データと文字タイプデータを含み、前記第2のデータ入力フォーマットは、符号付き固定小数点データと前記文字タイプデータを含み、
前記演算モジュールは、任意のオペランドについて、前記オペランドに対応する入力データをそれぞれ決定し、前記入力データを対応する乗算器に入力して、出力結果を取得するために用いられ、異なるオペランドは、異なる乗算器にそれぞれ対応し、加算器を使用して乗算器の出力結果の和を計算し、Nドット積演算の演算結果を取得する、
ドット積演算実現装置。
【請求項7】
前記オペランドが前記第1のデータ入力フォーマットである場合、前記演算モジュールにおける前記オペランド中の前記半精度浮動小数点データから仮数データを抽出し、前記仮数データと前記オペランド中の前記文字タイプデータを前記入力データとする、
請求項6に記載のドット積演算実現装置。
【請求項8】
前記オペランドが前記第2のデータ入力フォーマットである場合、前記演算モジュールは直接に前記オペランド中の前記符号付き固定小数点データと前記文字タイプデータを前記入力データとする、
請求項6または7に記載のドット積演算実現装置。
【請求項9】
前記演算モジュールは、さらに、前記オペランドが前記第1のデータ入力フォーマットである場合、前記オペランド中の前記半精度浮動小数点データから指数データを抽出し、前記指数データに基づいて、対応する乗算器の出力結果を全精度の固定小数点データに変換するために用いられる、
請求項7または8に記載のドット積演算実現装置。
【請求項10】
前記Nの値は4であり、
前記乗算器は、第1の乗算器、第2の乗算器、第3の乗算器、及び第4の乗算器を含み、
前記加算器は、第1の加算器、第2の加算器、及び第3の加算器を含み、
前記演算モジュールは、前記第1の加算器を使用して前記第1の乗算器と前記第2の乗算器の出力結果の和を計算し、前記第2の加算器を使用して前記第3の乗算器と前記第4の乗算器の出力結果の和を計算し、前記第3の加算器を使用して前記第1の加算器と前記第2の加算器の出力結果の和を計算し、4ドット積演算の演算結果を取得する、
請求項6から9のいずれか一項に記載のドット積演算実現装置。
【請求項11】
電子機器であって、
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサに通信接続されたメモリと、を含み、
前記メモリに前記少なくとも一つのプロセッサにより実行可能な命令が記憶されており、前記命令が前記少なくとも一つのプロセッサにより実行されると、前記少なくとも一つのプロセッサが請求項1から5のいずれか一つに記載のドット積演算実現方法を実行する、
電子機器。
【請求項12】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータ命令は、コンピュータに請求項1から5のいずれか一つに記載のドット積演算実現方法を実行させる、
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項13】
コンピュータに請求項1から5のいずれか一つに記載のドット積演算実現方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータアプリケーション技術に関し、特に、深層学習と人工知能の分野のドット積演算実現方法、装置、電子機器、及び記憶媒体に関する。
【0002】
本開示は、出願日が2020年09月18日であり、出願番号が2020109846887であり、発明の名称が「ドット積演算実現方法、装置、電子機器、及び記憶媒体」である中国特許出願の優先権を主張する。
【背景技術】
【0003】
現在流行している深層学習とニューラルネットワークには、大量の畳み込み操作が存在する。演算精度を追求するために、チップには通常浮動小数点演算方式が使用されるが、ハードウェアコストと消費電力が増大するなどの欠点があり、ハードウェアコストと消費電力を節約するために、固定小数点演算方式を使用することができるが、これにより演算精度の損失をもたらし、ネットワーク性能が大幅に低下するなどのことになる。例えば、ある時、いくつかの音声に関連するアプリケーションにおいて、演算の精度と効率に対する高いニーズをより低いコストで満たすことが望まれることがある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、ドット積演算実現方法、装置、電子機器、及び記憶媒体を提供する。
【課題を解決するための手段】
【0005】
ドット積演算実現方法は、
Nグループのオペランドを取得するステップであって、Nは1より大きい正の整数であり、Nグループのオペランドは、いずれも第1のデータ入力フォーマットであるか、又はいずれも第2のデータ入力フォーマットであり、第1のデータ入力フォーマットは、半精度浮動小数点データと文字タイプデータを含み、第2のデータ入力フォーマットは、符号付き固定小数点データと文字タイプデータを含むステップと、
任意のオペランドについて、オペランドに対応する入力データをそれぞれ決定し、入力データを対応する乗算器に入力して、出力結果を取得するステップであって、異なるオペランドは、異なる乗算器にそれぞれ対応するステップと、
加算器を使用して乗算器の出力結果の和を計算し、Nドット積演算の演算結果を取得するステップと、を含む。
【0006】
ドット積演算実現装置は、取得モジュールと演算モジュールを含み、
取得モジュールは、Nグループのオペランドを取得するために用いられ、Nは1より大きい正の整数であり、Nグループのオペランドは、いずれも第1のデータ入力フォーマットであるか、又はいずれも第2のデータ入力フォーマットであり、第1のデータ入力フォーマットは、半精度浮動小数点データと文字タイプデータを含み、第2のデータ入力フォーマットは、符号付き固定小数点データと文字タイプデータを含み、
演算モジュールは、任意のオペランドについて、オペランドに対応する入力データをそれぞれ決定し、入力データを対応する乗算器に入力して、出力結果を取得するために用いられ、異なるオペランドは、異なる乗算器にそれぞれ対応し、加算器を使用して乗算器の出力結果の和を計算し、Nドット積演算の演算結果を取得する。
【0007】
電子機器は、
少なくとも一つのプロセッサと、
少なくとも一つのプロセッサに通信接続されたメモリと、を含み、
メモリに少なくとも一つのプロセッサにより実行可能な命令が記憶されており、命令が少なくとも一つのプロセッサにより実行されると、少なくとも一つのプロセッサが上記の方法を実行する。
【0008】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、コンピュータ命令は、コンピュータに上記の方法を実行させる。
【0009】
上記の開示の一実施例は、以下のような利点又は有益な効果を備え、Nドット積演算は、2つの異なるデータ入力フォーマット、すなわち半精度浮動小数点データと文字タイプデータを含む第1のデータ入力フォーマットと、符号付き固定小数点データと文字タイプデータを含む第2のデータ入力フォーマットを同時にサポートすることで、実際のニーズに基づいて異なるデータ入力フォーマットのオペランドを柔軟に入力してドット積演算を実現することができ、浮動小数点演算と固定小数点演算の長所を両立させ、ずっと浮動小数点演算を行う必要がないため、ハードウェアコストと消費電力を節約し、浮動小数点演算によって演算精度などを確保することができる。
【0010】
本明細書で説明された内容は、本開示の実施例のキー又は重要な特徴を特定することを意図しておらず、本開示の範囲を制限するためにも使用されないことを理解されたい。本開示の他の特徴は、以下の明細書を通じて容易に理解できる。
【図面の簡単な説明】
【0011】
図面は、本開示をより良く理解するためのものであり、本開示を限定しない。
図1】本開示のドット積演算実現方法の第1の実施例のフローチャートである。
図2】本開示の4ドット積演算プロセスの概略図である。
図3】本開示のドット積演算実現方法の第2の実施例のフローチャートである。
図4】本開示のドット積演算実現方法の第3の実施例のフローチャートである。
図5】本開示のドット積演算実現装置50の実施例の構成構造の概略図である。
図6】本開示の実施例に係る方法の電子機器のブロック図である。
【発明を実施するための形態】
【0012】
以下、図面に基づいて、本開示の例示の実施例を説明する。理解を容易にするために、本開示の実施例の様々な詳細が含まれており、それらは単なる例示と見なされるべきである。従って、当業者は、本開示の範囲及びび精神から逸脱することなく、本明細書に記載の実施形態に対して様々な変更及びび修正を行うことができることを認識するはずである。同様に、簡明のために、以下の説明では、よく知られた機能と構造の説明は省略される。
【0013】
また、本明細書の用語「及び/又は」は、関連対象の関連関係のみを説明するものであり、3種類の関係が存在可能であることを表し、例えば、A及び/又はBは、Aのみが存在するか、A及びBが同時に存在するか、Bのみが存在するという3つの場合を表すことができる。符号「/」は、一般的に前後の関連対象が「又は」の関係であることを表すことを理解されたい。
【0014】
図1は本開示のドット積演算実現方法の第1の実施例のフローチャートである。図1に示すように、以下の具体的な実現方式を含む。
【0015】
101では、Nグループのオペランドを取得し、Nは1より大きい正の整数であり、Nグループのオペランドは、いずれも第1のデータ入力フォーマットであるか、又はいずれも第2のデータ入力フォーマットであり、第1のデータ入力フォーマットは、半精度浮動小数点データと文字タイプ(char)データを含み、第2のデータ入力フォーマットは、符号付き固定小数点データとcharデータを含む。
【0016】
Nグループのオペランドについて、すべて第1のデータ入力フォーマットであるか、又はすべて第2のデータ入力フォーマットであり、第1のデータ入力フォーマットは、半精度浮動小数点データとcharデータを含むことができ、第2のデータ入力フォーマットは、符号付き固定小数点データとcharデータを含むことができる。
【0017】
102では、任意のオペランドについて、当該オペランドに対応する入力データをそれぞれ決定し、入力データを対応する乗算器に入力して、出力結果を取得し、異なるオペランドは、異なる乗算器にそれぞれ対応する。
【0018】
各グループのオペランドについて、それに対応する入力データを対応する乗算器にそれぞれ入力して、各乗算器の出力結果、すなわちN個の出力結果を取得することができる。
【0019】
103では、加算器を使用して乗算器の出力結果の和を計算し、Nドット積演算の演算結果を取得する。
【0020】
加算器によってN個の出力結果を加算し、取得された結果は、所望のNドット積演算の演算結果である。
【0021】
上記の実施例のNドット積演算は、2つの異なるデータ入力フォーマット、すなわち半精度浮動小数点データとcharデータを含む第1のデータ入力フォーマットと、符号付き固定小数点データとcharデータを含む第2のデータ入力フォーマットを同時にサポートして、実際のニーズに基づいて異なるデータ入力フォーマットのオペランドを柔軟に入力してドット積演算を実現することができ、浮動小数点演算と固定小数点演算の長所を両立させ、ずっと浮動小数点演算を行う必要がないため、ハードウェアコストと消費電力を節約し、浮動小数点演算によって演算精度などを確保できることを分かることができる。
【0022】
また、第1のデータ入力フォーマットには半精度浮動小数点データとcharデータ2つの異なるタイプのデータが含まれ、第2のデータ入力フォーマットには符号付き固定小数点データとcharデータ2つの異なるタイプのデータが含まれるなどの混合入力方式をサポートしており、この方式は、畳み込み操作における実際の演算要求により適するため、演算性能などを向上させる。
【0023】
実際の応用では、ネットワークの特性分析と性能要求などに基づいて第1のデータ入力フォーマットと第2のデータ入力フォーマットのどちらを使用するかを決定することができ、2つのデータ入力フォーマットは、レジスタを介して配置などを行うことができる。
【0024】
102で記載されるように、任意のオペランドについて、当該オペランドに対応する入力データをそれぞれ決定し、入力データを対応する乗算器に入力して、出力結果を取得することができる。
【0025】
具体的には、オペランドが第1のデータ入力フォーマットである場合、オペランド中の半精度浮動小数点データから仮数(significand)データを抽出し、significandデータとオペランド中のcharデータを入力データとすることができる。オペランドが第2のデータ入力フォーマットである場合、直接にオペランド中の符号付き固定小数点データとcharデータを入力データとすることができる。
【0026】
半精度浮動小数点データは乗算器に直接入力して乗算を行うことができず、その中のsignificandデータを抽出して、charデータとともに、乗算器の2つの入力とする必要があり、どのように半精度浮動小数点データからsignificandデータを抽出することは従来技術である。符号付き固定小数点データについては、直接にそれをcharデータとともに、乗算器の2つの入力とすることができる。
【0027】
乗算器は、積を計算し、出力結果として出力することができる。その中、オペランドが第1のデータ入力フォーマットである場合、さらに、オペランド中の半精度浮動小数点データから指数(exponent)データを抽出することができ、同様に、乗算器の出力結果を取得した後、さらに、exponentデータに基づいて、出力結果を全精度の固定小数点データに変換することができ、どのように変換するかも同様に従来技術である。このような処理によって、後続の演算に精度の損失がないことを確保できる。
【0028】
通常、Nは偶数であり、好ましくは、Nの値は4であってもよく、すなわちNドット積演算は4ドット積演算であってもよい。4ドット積演算は、4つの乗算器と3つの加算器を使用することができ、すなわち乗算器は、第1の乗算器、第2の乗算器、第3の乗算器、及び第4の乗算器を含むことができ、加算器は、第1の加算器、第2の加算器、及び第3の加算器を含むことができる。
【0029】
103で記載されるように、加算器を使用して乗算器の出力結果の和を計算し、Nドット積演算の演算結果を取得することができる。具体的には、第1の加算器を使用して第1の乗算器と第2の乗算器の出力結果の和を計算し、第2の加算器を使用して第3の乗算器と第4の乗算器の出力結果の和を計算し、第3の加算器を使用して第1の加算器と第2の加算器の出力結果の和を計算して、4ドット積演算の演算結果を取得することができる。
【0030】
上記の説明に基づいて、図2は本開示の4ドット積演算プロセスの概略図である。図2に示すように、2つのレイヤの加算操作を含むことができ、第1のレイヤの加算操作は、第1の加算器と第2の加算器の操作に対応し、第2のレイヤの加算操作は、第3の加算器の操作に対応する。
【0031】
理論的には、Nの値は、さらに2、6などの他の偶数であってもよく、通常、ドット積の長さが長いほど、演算時間が短くなるが、所望のハードウェアコストなどが高くなるため、好ましくは、本開示では様々な要因を総合的に考慮した後、Nの値を4に設置して、より速い演算速度を確保するとともに、過度なハードウェアコストなども消費しない。
【0032】
図3は本開示のドット積演算実現方法の第2の実施例のフローチャートである。図3に示すように、以下の具体的な実現方式を含む。
【0033】
301では、4グループのオペランドを取得し、4グループのオペランドは、いずれも第1のデータ入力フォーマットであり、第1のデータ入力フォーマットは、半精度浮動小数点データとcharデータを含む。
【0034】
本実施例では、4ドット積演算を行うと仮定する。
【0035】
302では、任意のオペランドについて、303-305に示す方式でそれぞれ処理する。
【0036】
すなわち4グループのオペランド中の各グループのオペランドについて、303-305に示す方式でそれぞれ処理する。
【0037】
303では、半精度浮動小数点データからsignificandデータとexponentデータを抽出する。
【0038】
304では、抽出されたsignificandデータとcharデータを対応する乗算器に入力して、出力結果を取得する。
【0039】
305では、抽出されたexponentデータに基づいて、出力結果を全精度の固定小数点データに変換する。
【0040】
306では、第1の加算器を使用して第1の乗算器と第2の乗算器の出力結果の和を計算し、第2の加算器を使用して第3の乗算器と第4の乗算器の出力結果の和を計算する。
【0041】
本実施例の4つの乗算器は、それぞれ第1の乗算器、第2の乗算器、第3の乗算器、及び第4の乗算器であると仮定する。上記の処理を経た後、4つの乗算器の出力結果を取得することができる。
【0042】
307では、第3の加算器を使用して第1の加算器と第2の加算器の出力結果の和を計算し、4ドット積演算の演算結果を取得する。
【0043】
図4は本開示のドット積演算実現方法の第3の実施例のフローチャートである。図4に示すように、以下の具体的な実現方式を含む。
【0044】
401では、4グループのオペランドを取得し、4グループのオペランドはいずれも第2のデータ入力フォーマットであり、第2のデータ入力フォーマットは、符号付き固定小数点データとcharデータを含む。
【0045】
本実施例では、4ドット積演算を行うと仮定する。
【0046】
402では、任意のオペランドについて、その中の符号付き固定小数点データとcharデータを対応する乗算器にそれぞれ入力して、出力結果を取得する。
【0047】
403では、第1の加算器を使用して第1の乗算器と第2の乗算器の出力結果の和を計算し、第2の加算器を使用して第3の乗算器と第4の乗算器の出力結果の和を計算する。
【0048】
本実施例の4つの乗算器は、それぞれ第1の乗算器、第2の乗算器、第3の乗算器、及び第4の乗算器である。上記の処理を経た後、4つの乗算器の出力結果を取得することができる。
【0049】
404では、第3の加算器を使用して第1の加算器と第2の加算器の出力結果の和を計算し、4ドット積演算の演算結果を取得する。
【0050】
なお、前述の各方法の実施例について、簡単に説明するために、それらを一連の動作の組み合わせとして表現するが、当業者は、本開示が説明された動作の順次によって制限されないことを理解することができるため、本開示に基づいて、いくつかのステップは、他の順次又は同時に行うことができる。次に、当業者は、明細書に説明された実施例がいずれも好ましい実施例に属し、関する動作とモジュールが必ず本開示に必修ではないことを理解することができる。ある実施例において詳細には記載されていない部分は、他の実施例の説明を参照することができる。
【0051】
以上は、方法の実施例の説明であり、以下は装置の実施例によって、本開示の方案に対してさらに説明する。
【0052】
図5は本開示のドット積演算実現装置50の実施例の構成構造の概略図である。図5に示すように、取得モジュール501と演算モジュール502を含む。
【0053】
取得モジュール501は、Nグループのオペランドを取得するために用いられ、Nは1より大きい正の整数であり、Nグループのオペランドは、いずれも第1のデータ入力フォーマットであるか、又はいずれも第2のデータ入力フォーマットであり、第1のデータ入力フォーマットは、半精度浮動小数点データとcharデータを含み、第2のデータ入力フォーマットは、符号付き固定小数点データとcharデータを含む。
【0054】
演算モジュール502は、任意のオペランドについて、当該オペランドに対応する入力データをそれぞれ決定し、入力データを対応する乗算器に入力して、出力結果を取得するために用いられ、異なるオペランドは、異なる乗算器にそれぞれ対応するステップと、加算器を使用して乗算器の出力結果の和を計算し、Nドット積演算の演算結果を取得する。
【0055】
実際の応用では、ネットワークの特性分析と性能要求などに基づいて第1のデータ入力フォーマットと第2のデータ入力フォーマットのどちらを使用するかを決定することができる。
【0056】
オペランドが第1のデータ入力フォーマットである場合、演算モジュール502は、オペランド中の半精度浮動小数点データからsignificandデータを抽出して、significandデータとオペランド中のcharデータを入力データとすることができる。
【0057】
オペランドが第2のデータ入力フォーマットである場合、演算モジュール502は、直接にオペランド中の符号付き固定小数点データとcharデータを入力データとすることができる。
【0058】
また、オペランドが第1のデータ入力フォーマットである場合、演算モジュール502は、さらに、オペランド中の半精度浮動小数点データからexponentデータを抽出し、exponentデータに基づいて、対応する乗算器の出力結果を全精度の固定小数点データに変換することができる。
【0059】
好ましくは、Nの値は4であり、乗算器は、第1の乗算器、第2の乗算器、第3の乗算器、及び第4の乗算器を含み、加算器は、第1の加算器、第2の加算器、及び第3の加算器を含む。
【0060】
同様に、演算モジュール502は、第1の加算器を使用して第1の乗算器と第2の乗算器の出力結果の和を計算し、第2の加算器を使用して第3の乗算器と第4の乗算器の出力結果の和を計算し、第3の加算器を使用して第1の加算器と第2の加算器の出力結果の和を計算して、4ドット積演算の演算結果を取得することができる。
【0061】
図5に示す装置の実施例の具体的な作業プロセスは、上記の方法の実施例の関連説明を参照し、ここでは説明を省略する。
【0062】
要約すると、本開示の装置の実施例に記載された方案を使用すると、Nドット積演算は、2つの異なるデータ入力フォーマット、すなわち半精度浮動小数点データと文字タイプデータを含む第1のデータ入力フォーマットと、符号付き固定小数点データと文字タイプデータを含む第2のデータ入力フォーマットを同時にサポートすることで、実際のニーズに基づいて異なるデータ入力フォーマットのオペランドを柔軟に入力してドット積演算を実現することができ、浮動小数点演算と固定小数点演算の長所を両立させ、ずっと浮動小数点演算を行う必要がないため、ハードウェアコストと消費電力を節約し、浮動小数点演算によって演算精度などを確保することができる。
【0063】
前述したように、Nの値は4であってもよく、本開示の4ドット積演算は、周辺の記憶構造と、命令セットにマッチングすることができ、より低い帯域幅を占有する条件下で効率的かつ、高精度の畳み込み操作を完了し、様々なネットワークモデルに適用でき、モデルにおける計算能力に対する要求などを大幅に満たすことができる。
【0064】
本開示の実施例によれば、本開示は、電子機器と読み取り可能な記憶媒体をさらに提供する。
【0065】
図6に示すように、それは本開示の実施例の方法に係る電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータなどの様々な形式のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタル処理、携帯電話、スマートフォン、ウェアラブルデバイス、他の同様のコンピューティングデバイスなどの様々な形式のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本開示の実現を制限することを意図したものではない。
【0066】
図6に示すように、当該電子機器は、一つ又は複数のプロセッサY01と、メモリY02と、高速インターフェースと低速インターフェースを含む各コンポーネントを接続するためのインターフェースと、を含む。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けられるか、又は必要に基づいて他の方式で取り付けることができる。プロセッサは、外部入力/出力装置(インターフェースに結合されたディスプレイデバイスなど)にGUIの図形情報をディスプレイするためにメモリに記憶されている命令を含む、電子機器内に実行される命令を処理することができる。他の実施方式では、必要であれば、複数のプロセッサ及び/又は複数のバスを、複数のメモリと複数のメモリとともに使用することができる。同様に、複数の電子機器を接続することができ、各電子機器は、部分的な必要な操作(例えば、サーバアレイ、ブレードサーバ、又はマルチプロセッサシステムとする)を提供することができる。図6では、一つのプロセッサY01を例とする。
【0067】
メモリY02は、本開示により提供される非一時的なコンピュータ読み取り可能な記憶媒体である。その中、メモリには、少なくとも一つのプロセッサによって実行される命令を記憶して、少なくとも一つのプロセッサが本開示により提供される方法を実行することができるようにする。本開示の非一時的なコンピュータ読み取り可能な記憶媒体は、コンピュータが本開示により提供される方法を実行するためのコンピュータ命令を記憶する。
【0068】
メモリY02は、非一時的なコンピュータ読み取り可能な記憶媒体として、本開示の実施例における方法に対応するプログラム命令/モジュールように、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶するために用いられる。プロセッサY01は、メモリY02に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち上記の方法の実施例における方法を実現する。
【0069】
メモリY02は、ストレージプログラム領域とストレージデータ領域とを含むことができ、その中、ストレージプログラム領域は、オペレーティングシステム、少なくとも一つの機能に必要なアプリケーションプログラムを記憶することができ、ストレージデータ領域は、電子機器の使用によって作成されたデータなどを記憶することができる。また、メモリY02は、高速ランダム存取メモリを含むことができ、非一時的なメモリをさらに含むことができ、例えば、少なくとも一つのディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスである。いくつかの実施例では、メモリY02は、プロセッサY01に対して遠隔に設置されたメモリを含むことができ、これらの遠隔メモリは、ネットワークを介して電子機器に接続されることができる。上記のネットワークの例は、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びその組み合わせを含むが、これらに限定しない。
【0070】
電子機器は、入力装置Y03と出力装置Y04とをさらに含むことができる。プロセッサY01、メモリY02、入力装置Y03、及び出力装置Y04は、バス又は他の方式を介して接続することができ、図6では、バスを介して接続することを例とする。
【0071】
入力装置Y03は、入力された数字又は文字情報を受信することができ、及び方法を実現する電子機器のユーザ設置及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、指示杆、一つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置である。出力装置Y04は、ディスプレイデバイス、補助照明デバイス、及び触覚フィードバックデバイス(例えば、振動モータ)などを含むことができる。当該ディスプレイデバイスは、液晶ディスプレイ、発光ダイオードディスプレイ、及びプラズマディスプレイを含むことができるが、これらに限定しない。いくつかの実施方式では、ディスプレイデバイスは、タッチスクリーンであってもよい。
【0072】
本明細書で説明されるシステムと技術の様々な実施方式は、デジタル電子回路システム、集積回路システム、特定用途向け集積回路、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施方式は、一つ又は複数のコンピュータプログラムで実施されることを含むことができ、当該一つ又は複数のコンピュータプログラムは、少なくとも一つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも一つの入力装置、及び少なくとも一つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも一つの入力装置、及び当該少なくとも一つの出力装置に伝送することができる。
【0073】
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械命令、高レベルのプロセス及び/又はオブジェクト指向プログラミング言語、及び/又はアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することを含む。本明細書に使用されるように、用語「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」は、機械命令及び/又はデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、機器、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイ)を指し、機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。用語「機械読み取り可能な信号」は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
【0074】
ユーザとのインタラクションを提供するために、コンピュータ上においてここで説明されているシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、陰極線管又は液晶ディスプレイモニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置は、ユーザとのインタラクションを提供するために用いられることもでき、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
【0075】
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバー)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施方式とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続されることができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、ブロックチェーンネットワークと、インターネットとを含む。
【0076】
コンピュータシステムは、クライアントとサーバとを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。サーバは、クラウドサーバであってもよく、クラウド計算又はクラウドホストとも呼ばれ、クラウド計算サービスシステムの中の一つのホスト製品であり、従来の物理ホストとVPSサーバに、存在する管理困難度が高く、業務拡張性が弱い欠陥を解決する。
【0077】
上記に示される様々な形式のプロセスを使用して、ステップを並べ替え、追加、又は削除することができることを理解されたい。例えば、本開示に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案が所望の結果を実現することができれば、本明細書では限定されない。
【0078】
上記の具体的な実施方式は、本開示に対する保護範囲の制限を構成するものではない。当業者は、設計要求と他の要因に基づいて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。任意の本開示の精神と原則内で行われる修正、同等の置換、及び改善などは、いずれも本開示の保護範囲内に含まれなければならない。
図1
図2
図3
図4
図5
図6
【国際調査報告】