[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP7225831B2 - 演算処理装置,プログラム及び演算処理装置の制御方法 - Google Patents

演算処理装置,プログラム及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP7225831B2
JP7225831B2 JP2019009395A JP2019009395A JP7225831B2 JP 7225831 B2 JP7225831 B2 JP 7225831B2 JP 2019009395 A JP2019009395 A JP 2019009395A JP 2019009395 A JP2019009395 A JP 2019009395A JP 7225831 B2 JP7225831 B2 JP 7225831B2
Authority
JP
Japan
Prior art keywords
value
input
program
output
input value
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
JP2019009395A
Other languages
English (en)
Other versions
JP2020119213A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019009395A priority Critical patent/JP7225831B2/ja
Priority to EP19218090.9A priority patent/EP3686733B1/en
Priority to US16/732,930 priority patent/US20200234138A1/en
Priority to CN202010031892.7A priority patent/CN111476359A/zh
Publication of JP2020119213A publication Critical patent/JP2020119213A/ja
Application granted granted Critical
Publication of JP7225831B2 publication Critical patent/JP7225831B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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
    • 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/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Neurology (AREA)
  • Nonlinear Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Power Sources (AREA)

Description

本発明は、演算処理装置,プログラム及び演算処理装置の制御方法に関する。
Deep Learning(DL)を高速に実行するプロセッサでは、大量の演算器が実装され、並列演算が実行される。並列演算では、全ての演算器が同じ演算を実行するため、実行する命令や種類やデータの内容によって大量の演算器全体の電力が急激に変化する場合がある。
プロセッサは同一電圧条件で作動するため、電力が増加すると電流が増加する。通常Direct Current(DC)-DCコンバータが電流の増加に追従するが、変化が急激であると、電流の増加に追従できず、電圧が降下する。
プロセッサに供給される電圧が降下すると半導体のスイッチング速度が低下し、タイミング制約を満たせなくなることにより、プロセッサの誤動作が発生するおそれがある。
国際公開2017/038104号 特開平11-224246号公報
電圧降下によるプロセッサの誤動作は常時電圧を高めに設定することにより解決できるが、常時電圧を高めに設定すると消費電力が増加してしまうという課題がある。
1つの側面では、消費電力を増加させずにプロセッサの電圧降下を防止することを目的とする。
演算処理装置は、入力値を境界値と比較し、前記境界値を超過した前記入力値に対して前記入力値と等しい値を出力する第1出力部と、前記入力値が境界値以下の場合に、前記入力値に対して-εと+εと0とのいずれかの値を出力する第2出力部と、を備える
1つの側面では、消費電力を増加させずにプロセッサの電圧降下を防止することができる。
関連例における神経細胞のモデル化を説明する図である。 関連例における命令の種類による電力変動の第1の例を説明する図である。 関連例における命令の種類による電力変動の第2の例を説明する図である。 関連例における命令の種類による電力変動の第3の例を説明する図である。 関連例における命令の種類による電力変動の第3の例を説明する図である。 実施形態の一例における第1のRectified Linear Unit(ReLU)演算処理を説明する図である。 実施形態の一例におけるReLUの第1の順伝播処理及び第1の逆伝播処理を説明する図である。 実施形態の一例における第2のReLU演算処理を説明する図である。 実施形態の一例におけるReLUの第2の順伝播処理及び第2の逆伝播処理を説明する図である。 実施形態の一例における第3のReLU演算処理を説明する図である。 実施形態の一例におけるReLUの第3の順伝播処理及び第3の逆伝播処理を説明する図である。 実施形態の一例における乗算器の構成例を模式的に示すブロック図である。 実施形態の一例における演算処理システムの構成例を模式的に示すブロック図である。 図13に示した演算処理システムにおけるDL処理を説明するブロック図である。 図13に示したホストマシンにおけるDL処理を説明するフローチャートである。 図13に示したホストマシンにおけるハードウェア構成例を模式的に示すブロック図である。 図13に示したDL実行ハードウェアのハードウェア構成例を模式的に示すブロック図である。 図13に示したホストマシンにおける機能構成例を模式的に示すブロック図である。 図13に示したホストマシンにおけるプログラムの生成処理を説明するフローチャートである。 図13に示したホストマシンにおける順伝播及び逆伝播のプログラムの生成処理の詳細を説明するフローチャートである。 図13に示したホストマシンにおける第2のReLU演算の順伝播処理の詳細を説明するフローチャートである。 図13に示したホストマシンにおける第2のReLU演算の逆伝播処理の詳細を説明するフローチャートである。 図13に示したホストマシンにおける第3のReLU演算の順伝播処理の詳細を説明するフローチャートである。 図13に示したホストマシンにおける第3のReLU演算の逆伝播処理の詳細を説明するフローチャートである。
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
〔A〕関連例
図1は、関連例における神経細胞のモデル化を説明する図である。
ニューラルネットワークを多層に拡張したDeep Neural Networkは、従来解決が困難であった問題に適用できることが判明し、様々な分野へ適用されることが予想される。
図1に示すように、脳の神経細胞(別言すれば、「ニューロン」)は、細胞体61,シナプス62,樹状突起63及び軸索64を含む。神経細胞が機械的にモデル化されることにより、ニューラルネットワークが生成される。
Deep Neural Networkの学習処理における演算は、内積演算等であり単純ではあるが、大量に実行される場合がある。そのため、これらの演算を高速に実行するプロセッサでは、大量の演算器を並列に作動させることにより性能の向上が図られる。
Deep Neural Networkの学習処理を実行する演算器では、実行する命令の種類やデータの内容によって全ての演算器における電力が急激に変化する場合がある。
例えば、整数加算命令(別言すれば、「ADD演算命令」)は、浮動小数点積和命令(別言すれば、「Fused Multiply-Add(FMA)演算命令」)よりも消費電力が小さい。これは、命令の種類によってプロセッサ内部で使用されるリソースが異なるためである。整数加算命令では1つの加算器に限って使用されるが、浮動小数点積和命令では乗算を実行するための複数の加算器やよりビット幅の広い加算器が使用される。
命令の種類による電力の変動は、事前にどのような命令を実行するかが分かっているため、対処が可能である。例えば、浮動小数点積和命令が支配的であるプログラムの一部区間で整数加算命令を実行する場合に、整数加算命令と浮動小数点積和命令とを交互に実行させる。これにより、全体としての電力の変動を抑えることができる。
図2は、関連例における命令の種類による電力変動の第1の例を説明する図である。
図2に示す例では、FMA演算命令が10命令実行された後、ADD演算命令が10命令実行される。このような命令列では、FMA演算命令がADD演算命令に切り替わると電力低下が発生する。
図3は、関連例における命令の種類による電力変動の第2の例を説明する図である。
図3に示す例では、FMA演算命令が5命令実行された後、ADD演算命令とFMA演算命令とが交互に実行される。このように、FMA演算命令とADD演算命令とが織り交ぜて実行されることで電力の急激な低下が抑えられる。
同じ浮動小数点積和命令が実行されても、データの内容としてゼロが入力され続けると電力が低下する。通常はある程度の割合で入力データが0又は1に変化するが、同じ値が入力され続けると論理素子の状態が固定され、電力が低下する。特にゼロ値は、乗算の場合には、もう一方のオペランドにどのような値が入力されても同じ結果である0が返されるため、スイッチング回数が削減される傾向が強い。
事前にどのようなデータが入力されるかが不明であるため、データの内容による電力の変動へ対処することは容易でない。
図4及び図5は、関連例における命令の種類による電力変動の第3の例を説明する図である。
図4の符号A1に示すように、フラグレジスタの40番(図示する例では「%fr40」)から45番(図示する例では「%fr45」)までに、命令列としてゼロが格納されている。図5に示すように、ゼロを用いた演算が実行されると、その期間における電力が低下する。
このように、プロセッサの電力変動の原因は、命令の種類によるものと、命令が読み込むデータによるものとがある。例えば、整数加算命令は消費電力が低いが、浮動小数点積和命令は消費電力が高い。また、同じ浮動小数点積和命令でも、ゼロが入力されると消費電力が低くなる。
命令の種類の違いによる電力変動は、プログラム作成の際に実行する命令が既知となるため、命令の組み合わせによって回避することが可能である。
一方、命令のデータに起因する電力変動は、プログラム作成の際にオペランドの内容が不明であるため、対策が容易でない。特に、ゼロ値が連続して入力されると、演算器内の殆どの値がゼロに固定されるため、電力が急激に低下する。
〔B〕実施形態の一例
〔B-1〕システム構成例
DLにおいては、Multiply-Add命令を実行し、内積を求める処理が大半を占める。この際に、入力にゼロが連続して現われるとMultiply-Add命令の実行の際の入力が急激に低下し、誤動作の原因となる。
図6は、第1のReLU演算の処理を説明する図である。
DLの学習処理においてReLU演算と呼ばれる処理が明示的にゼロを生成する。ReLU演算は、1つの入力を受け取り、1つの出力を生成する。図6及び以下の数式1に示すように、与えられた入力値が正であれば入力値がそのまま出力され、入力値が0又は負であれば0が出力される。
Figure 0007225831000001
図7は、実施形態の一例におけるReLUの第1の順伝播処理及び第1の逆伝播処理を説明する図である。
図7に示すように、順伝播の際の入力x(符号B1参照)は、変形ReLU順伝播処理(符号B2参照)によって、出力z(符号B3参照)に変換される。ここで、入力xと出力zとの関係は、以下の数式2によって表わされる。
Figure 0007225831000002
また、順伝播の際の入力xは、逆伝播の実行の際まで一時領域に格納される(符号B4参照)。
そして、逆伝播の際の入力dz(符号B5参照)は、一時領域の入力xを参照する変形ReLU逆伝播処理(符号B6参照)により、出力dx(符号B7参照)に変換される。ここで、入力dzと出力dxとの関係は、以下の数式3によって表わされる。
Figure 0007225831000003
ただし、数式1で示したReLU(x)では、入力xが負の値である場合には出力は常に0であるため、出力が0である可能性が高い。
そこで、本実施形態の一例においては、入力xが負の値である場合に、微小正数(ε)の傾きを有するネガティブスロープが設定されてよい。また、入力xが負の値である場合に、ランダムで微小負数(-ε),ゼロ値(0),微小正数(+ε)のいずれかが出力されてもよい。
微小正数(ε)は絶対値が小さく、ある程度(例えば、半分以上の桁で)1のビットが立っていればよく、例えば、“0x00FFFFFF”及び“0x00CCCCCC”の2つを候補としてよい。“0x00FFFFFF”は、ゼロよりも大きい値FLT_MINに近く、仮数部が全て1になるような数である。“0x00CCCCCC”は、ゼロよりも大きい値FLT_MINに近く、仮数部に0と1とが交互に現れる数である。
ネガティブスロープを設定する方法でも、ランダムで値を出力する方法でも、ゼロの代わりにゼロでない値が使用される場合があるため、演算結果が図6に示した例とは異なる。しかしながら、DL処理においては順伝播処理(別言すれば、「フォワード処理」)と逆伝播処理(別言すれば、「バックワード処理」)との整合性が取れていれば、本来の計算と異なる処理が行なわれても学習は可能である。
図8は、実施形態の一例における第2のReLU演算処理を説明する図である。
図8に示すように、ネガティブスロープは、負の領域での傾きを示す。ネガティブスロープが0のときは、図6に示したReLU処理と同様となる。
図8に示す例においては、図6に示したReLU処理に対して、ネガティブの値がεに設定されることにより、連続するゼロの生成が抑止される。
図8に示すReLU処理は、Leaky ReLU処理と称されてもよい。
以下の数式4及び数式5に表わすように、入力x値が正の領域では入力値がそのまま出力され、入力値xが負の領域では入力値にεを掛けた値が出力される。
Figure 0007225831000004
Figure 0007225831000005
図9は、実施形態の一例におけるReLUの第2の順伝播処理及び第2の逆伝播処理を説明する図である。
図9に示す順伝播処理及び逆伝播処理は、図7に示した順伝播処理及び逆伝播処理と同様である。
ただし、図9に示す変形ReLU順伝播処理(符号B21参照)は、以下の数式6を使用して行なわれる。
Figure 0007225831000006
また、図9に示す変形ReLU逆伝播処理(符号B61参照)は、以下の数式7を使用して行なわれる。
Figure 0007225831000007
図10は、実施形態の一例における第3のReLU演算処理を説明する図である。
図10に示すReLU処理は、正領域では図6に示したReLU処理と同様だが、負領域では-ε,0,+εの3つの値からランダムに出力値が選択される(図10の網掛け部参照)。
すなわち、出力値は以下の数式8及び9によって表わされる。
Figure 0007225831000008
Figure 0007225831000009
図11は、実施形態の一例におけるReLUの第3の順伝播処理及び第3の逆伝播処理を説明する図である。
図11に示す順伝播処理及び逆伝播処理は、図7に示した順伝播処理及び逆伝播処理と同様である。
ただし、図11に示す変形ReLU順伝播処理(符号B22参照)は、以下の数式10を使用して行なわれる。
Figure 0007225831000010
また、図11に示す変形ReLU逆伝播処理(符号B62参照)は、以下の数式11を使用して行なわれる。
Figure 0007225831000011
図12は、実施形態の一例における乗算器1000の構成例を模式的に示すブロック図である。
ReLU(1)の演算結果は様々な値を採り得るが、ReLU(2)の演算結果は-ε,0,+εの3つの値しか採らない。そのため、実施形態の一例では、乗算器1000への入力も考慮される。
デジタル計算機の乗算器1000は、筆算の要領で被乗数と乗数のそれぞれのビットとの部分積を求め、それらの和を求める。
乗算器1000は、乗数101及び被乗数102の2つの入力に対して、1つの出力105を生成する。また、乗算器1000は、複数のセレクタ103及び加算器104を備える。セレクタ103は、0ビット列かシフタ側入力かを選択し、ANDゲートにより実装されてよい。
乗算の内容は、被乗数102のビット列が1ビットずつシフトされて加算器104に入力される。この際、乗数の各ビットの内容により、0のビット列が入力されるか被乗数102のビット列が入力されるかが決定される。そして、入力されたビット列の和が求められることにより、積が得られる。
ここで、微小正数及び微小負数は、乗算器1000の被乗数102側に入力されてよい。これは、微小正数及び微小負数が特定の値(例えば、1のビット連続する形式)であり、乗算器1000が特定の内部構造(例えば、ブースアルゴリズムを使用する乗算器1000)である場合に、乗算器1000内部で大量のゼロが発生し、電力が必要以上に低下するためである。
図13は、実施形態の一例における演算処理システム100の構成例を模式的に示すブロック図である。
演算処理システム100は、ホストマシン1及びDL実行ハードウェア2を備える。また、ホストマシン1及びDL実行ハードウェア2は、利用者3によって操作される。
利用者3は、ホストマシン1に接続し、DL実行ハードウェア2を操作し、DL実行ハードウェア2において深層学習を実行させる。
ホストマシン1は、演算処理装置の一例であり、利用者3からの指示に従い、DL実行ハードウェア2が実行するプログラムを生成し、DL実行ハードウェア2に送信する。
DL実行ハードウェア2は、ホストマシン1から送信されたプログラムを実行し、実行結果のデータを生成する。
図14は、図13に示した演算処理システム100におけるDL処理を説明するブロック図である。
利用者3は、ホストマシン1におけるプログラム110に対して、DL設計情報を入力する。ホストマシン1は、DL設計情報が入力されたプログラム110をDL実行プログラムとしてDL実行ハードウェア2に入力する。利用者3は、DL実行ハードウェア2に対して、学習データを入力する。そして、DL実行ハードウェア2は、DL実行プログラムと学習データとに基づき、実行結果を利用者3に提示する。
図15は、図13に示したホストマシン1におけるDL処理を説明するフローチャートである。
符号C1に示すように、アプリケーションにおいて、利用者3とのユーザインタフェースが実装される。アプリケーションは、利用者3からDL設計情報の入力を受け付け、入力結果を表示させる。アプリケーションにおけるDL実行の機能は、下位のレイヤにあるライブラリの機能を使って実装される。
符号C2に示すように、ライブラリにおいて、ホストマシン1におけるアプリケーションの実装が補佐される。DL実行に関する機能はライブラリで提供される。
符号C3に示すように、ユーザモードのドライバは、通常、ライブラリから呼び出される。なお、ユーザモードのドライバは、アプリケーションから直接に読み出されてもよい。ユーザモードのドライバは、DL実行ハードウェア2のためのプログラムコードを作成するコンパイラとして機能する。
符号C4に示すように、カーネルモードのドライバは、ユーザモードのドライバから呼び出され、DL実行ハードウェア2と通信する。ハードウェアと直接にアクセスするため、カーネルモードのドライバとして実装される。
図16は、図13に示したホストマシン1におけるハードウェア構成例を模式的に示すブロック図である。
ホストマシン1は、プロセッサ11,Random Access Memory(RAM)12,Hard Disk Drive(HDD)13,内部バス14,高速入出力インターフェース15及び低速入出力インターフェース16を備える。
RAM12は、プロセッサ11が実行するプログラムやデータを記憶する。RAM12の形式としては、例えば、Double-Data-Rate4 Synchronous Dynamic Random Access Memory(DDR4-SDRAM)であってよい。
HDD13は、プロセッサ11が実行するプログラムやデータを記憶する。HDD13は、Solid State Drive(SSD)やStorage Class Memory(SCM)等であってもよい。
内部バス14は、プロセッサ11と比較して低速な周辺機器とプロセッサ11とを接続し、通信を中継する。
高速入出力インターフェース15は、プロセッサ11とホストマシン1の外部にあるDL実行ハードウェア2とを接続する。高速入出力インターフェース15は、例えば、Peripheral Component Interconnect Express(PCI Express)であってよい。
低速入出力インターフェース16は、利用者3によるホストマシン1への接続を実現する。低速入出力インターフェース16は、例えば、キーボードやマウスと接続される。また、低速入出力インターフェース16は、Ethernet(登録商標)によるネットワーク越しに利用者3に接続されてもよい。
プロセッサ11は、例示的に、種々の制御や演算を行なう処理装置であり、RAM12に格納されたOperating System(OS)やプログラムを実行することにより、種々の機能を実現する。すなわち、プロセッサ11は、図18を用いて後述するように、ゼロ生成処理変形部111及びプログラム生成部112として機能してよい。
なお、これらのゼロ生成処理変形部111及びプログラム生成部112としての機能を実現するためのプログラムは、例えばフレキシブルディスク、CD(CD-ROM、CD-R、CD-RW等)、DVD(DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW、HD DVD等)、ブルーレイディスク、磁気ディスク、光ディスク、光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供されてよい。そして、コンピュータ(本実施形態ではプロセッサ11)は上述した記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いてよい。また、プログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、記憶装置から通信経路を介してコンピュータに提供してもよい。
ゼロ生成処理変形部111及びプログラム生成部112としての機能を実現する際には、内部記憶装置(本実施形態ではRAM12)に格納されたプログラムがコンピュータ(本実施形態ではプロセッサ11)によって実行されてよい。また、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
プロセッサ11は、ホストマシン1全体の動作を制御する。プロセッサ11は、マルチプロセッサであってもよい。プロセッサ11は、例えばCentral Processing Unit(CPU)やMicro Processing Unit(MPU),Digital Signal Processor(DSP),Application Specific Integrated Circuit(ASIC),Programmable Logic Device(PLD),Field Programmable Gate Array(FPGA)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
図17は、図13に示したDL実行ハードウェア2のハードウェア構成例を模式的に示すブロック図である。
DL実行ハードウェア2は、DL実行プロセッサ21,制御部22,メモリアクセスコントローラ23,内部RAM24及び高速入出力インターフェース25を備える。
制御部22は、ホストマシン1からの指令に基づき、DL実行プロセッサ21を駆動させたり、内部RAM24にプログラムやデータを転送させたりする。
メモリアクセスコントローラ23は、DL実行プロセッサ21や制御部22からの信号を選択し、メモリアクセスのためのプログラムに従ってメモリアクセスを行なう。
内部RAM24は、DL実行プロセッサ21が実行するプログラムや処理対象のデータ,処理結果のデータを記憶する。内部RAM24は、DDR4-SDRAMであってもよいし、より高速なGraphics Double-Data-Rate5(GDDR5)やより広帯域なHigh Bandwidth Memory2(HBM2)等であってもよい。
高速入出力インターフェース25は、DL実行プロセッサ21をホストマシン1と接続する。高速入出力インターフェース25におけるプロトコルとしては、例えば、PCI Expressであってよい。
DL実行プロセッサ21は、ホストマシン1から与えられたプログラムやデータに基づき、深層学習の処理を実行する。
DL実行プロセッサ21は、例示的に、種々の制御や演算を行なう処理装置であり、内部RAM24に格納されたOSやプログラムを実行することにより、種々の機能を実現する。
なお、種々の機能を実現するためのプログラムは、例えばフレキシブルディスク、CD(CD-ROM、CD-R、CD-RW等)、DVD(DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW、HD DVD等)、ブルーレイディスク、磁気ディスク、光ディスク、光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供されてよい。そして、コンピュータ(本実施形態ではプロセッサ11)は上述した記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いてよい。また、プログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、記憶装置から通信経路を介してコンピュータに提供してもよい。
DL実行プロセッサ21における種々の機能を実現する際には、内部記憶装置(本実施形態では内部RAM24)に格納されたプログラムがコンピュータ(本実施形態ではDL実行プロセッサ21)によって実行されてよい。また、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
DL実行プロセッサ21は、DL実行ハードウェア2全体の動作を制御する。DL実行プロセッサ21は、マルチプロセッサであってもよい。DL実行プロセッサ21は、例えばCPUやMPU,DSP,ASIC,PLD,FPGAのいずれか一つであってもよい。また、DL実行プロセッサ21は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
図18は、図13に示したホストマシン1における機能構成例を模式的に示すブロック図である。
図18に示すように、ホストマシン1のプロセッサ11は、ゼロ生成処理変形部111及びプログラム生成部112として機能する。
プログラム生成部112は、ニューラルネットワーク記述データ106とプログラム生成パラメータ107との入力に基づき、DL実行ハードウェア2において実行されるニューラルネットワーク実行プログラム108を生成する。
ゼロ生成処理変形部111は、ニューラルネットワーク記述データ106の内容を変更することにより、ReLU演算の内容を変形する。図18に示すように、ゼロ生成処理変形部111は、第1出力部1111及び第2出力部1112として機能する。
第1出力部1111は、図8及び図10等に示したように、入力値を境界値(例えば、0)と比較し、境界値を超過した入力値に対して入力値と等しい値を出力する。
第2出力部1112は、図8及び図10等に示したように、境界値以下である入力値に対して一定の出力値を出力する正規化線形関数の演算(別言すれば、「ReLU演算」)において、境界値以下の入力値に対して0よりも大きい微小値εの倍数を出力する。
第2出力部1112は、図8等に示したように、入力値と微小値εとの積を出力値として出力してよい。また、第2出力部1112は、図12等を用いて前述したように、入力値を乗数とすると共に微小値εを被乗数として乗算器1000に入力することにより、出力値を出力してよい。
第2出力部1112は、図10等に示したように、微小値εについて、-εと0と+εとのうちいずれかの値を出力値として出力してよい。
〔B-2〕動作例
図13に示したホストマシン1におけるプログラムの生成処理を、図19に示すフローチャートを用いて説明する。
プログラム生成部112は、ネットワーク中の各層の依存関係を整理する(ステップS1)。プログラム生成部112は、順伝播の順に各層を並び替え、Layer[0], Layer[1], …, Layer[L-1]として管理する。
プログラム生成部112は、Layer[0], Layer[1], …, Layer[L-1]のそれぞれについて、順伝播及び逆伝播のプログラムを生成する(ステップS2)。ステップS2における処理の詳細は、図20を用いて後述する。
プログラム生成部112は、Layer[0], Layer[1], …, Layer[L-1]の順伝播及び逆伝播を呼び出すコードを生成する(ステップS3)。そして、プログラムの生成処理は終了する。
次に、図13に示したホストマシン1における順伝播及び逆伝播のプログラムの生成処理(図19のステップS2)の詳細を、図20に示すフローチャートを用いて説明する。
プログラム生成部112は、生成するプログラムの種類がReLUであるかを判定する(ステップS11)。
生成するプログラムの種類がReLUである場合には(ステップS11のYesルート参照)、プログラム生成部112は、ゼロ生成処理変形部111からの出力に基づき、変形ReLUの処理を実行するプログラムを生成する(ステップS12)。そして、順伝播及び逆伝播のプログラムの生成処理は終了する。なお、ゼロ生成処理変形部111からの出力は、図21~図24のいずれかのフローチャートを用いて後述する処理によって実現されてよい。
一方、生成するプログラムの種類がReLUでない場合には(ステップS11のNoルート参照)、プログラム生成部112は、通常の処理によってプログラムを生成する(ステップS13)。そして、順伝播及び逆伝播のプログラムの生成処理は終了する。
次に、図13に示したホストマシン1における第2のReLU演算の順伝播処理(図20のステップS12)の詳細を、図21に示すフローチャートを用いて説明する。
ゼロ生成処理変形部111は、入力値xを一時領域に格納する(ステップS21)。
ゼロ生成処理変形部111は、入力値xが正数であるかを判定する(ステップS22)。
入力値xが正数である場合には(ステップS22のYesルート参照)、ゼロ生成処理変形部111の第1出力部1111は、入力値xを出力値zとする(ステップS23)。そして、処理はステップS25へ進む。
一方、入力値xが正数でない場合には(ステップS22のNoルート参照)、ゼロ生成処理変形部111の第2出力部1112は、入力値xεを出力値zとする(ステップS24)。
ゼロ生成処理変形部111は、出力値zを出力する(ステップS25)。そして、第2のReLU演算の順伝播処理は終了する。
次に、図13に示したホストマシン1における第2のReLU演算の逆伝播処理(図20のステップS12)の詳細を、図22に示すフローチャートを用いて説明する。
ゼロ生成処理変形部111は、順伝播の際の入力値xを一時領域から読み込む(ステップS31)。
ゼロ生成処理変形部111は、入力値xが正数であるかを判定する(ステップS32)。
入力値xが正数である場合には(ステップS32のYesルート参照)、ゼロ生成処理変形部111の第1出力部1111は、1を微分係数Dとする(ステップS33)。そして、処理はステップS35へ進む。
一方、入力値xが正数でない場合には(ステップS32のNoルート参照)、ゼロ生成処理変形部111の第2出力部1112は、εを微分係数Dとする(ステップS34)。
ゼロ生成処理変形部111は、微分係数Dと入力値dzとの積を出力する(ステップS35)。そして、第2のReLU演算の逆伝播処理は終了する。
次に、図13に示したホストマシン1における第3のReLU演算の順伝播処理(図20のステップS12)の詳細を、図23に示すフローチャートを用いて説明する。
ゼロ生成処理変形部111は、入力値xを一時領域に格納する(ステップS41)。
ゼロ生成処理変形部111は、入力値xが正数であるかを判定する(ステップS42)。
入力値xが正数である場合には(ステップS42のYesルート参照)、ゼロ生成処理変形部111の第1出力部1111は、入力値xを出力値zとする(ステップS43)。そして、処理はステップS50へ進む。
入力値xが正数でない場合には(ステップS42のNoルート参照)、ゼロ生成処理変形部111の第2出力部1112は、0,1,2,3の範囲で乱数rを生成する(ステップS44)。
第2出力部1112は、乱数rが0であるかを判定する(ステップS45)。
乱数rが0である場合には(ステップS45のYesルート参照)、第2出力部1112は、εを出力値zとする(ステップS46)。そして、処理はステップS50へ進む。
一方、乱数rが0でない場合には(ステップS45のNoルート参照)、第2出力部1112は、乱数rが1であるかを判定する(ステップS47)。
乱数rが1である場合には(ステップS47のYesルート参照)、第2出力部1112は、-εを出力値zとする(ステップS48)。そして、処理はステップS50へ進む。
一方、乱数rが1でない場合には(ステップS47のNoルート参照)、第2出力部1112は、0を出力値zとする(ステップS49)。
ゼロ生成処理変形部111は、出力値zを出力する(ステップS50)。そして、第3のReLU演算の順伝播処理は終了する。
次に、図13に示したホストマシン1における第3のReLU演算の逆伝播処理(図20のステップS12)の詳細を、図24に示すフローチャートを用いて説明する。
ゼロ生成処理変形部111は、順伝播の際の入力値xを一時領域から読み込む(ステップS51)。
ゼロ生成処理変形部111は、入力値xが正数であるかを判定する(ステップS52)。
入力値xが正数である場合には(ステップS52のYesルート参照)、ゼロ生成処理変形部111の第1出力部1111は、1を微分係数Dとする(ステップS53)。そして、処理はステップS60へ進む。
入力値xが正数でない場合には(ステップS52のNoルート参照)、ゼロ生成処理変形部111の第2出力部1112は、0,1,2,3の範囲で乱数rを生成する(ステップS54)。
第2出力部1112は、乱数rが0であるかを判定する(ステップS55)。
乱数rが0である場合には(ステップS55のYesルート参照)、第2出力部1112は、εを微分係数Dとする(ステップS56)。そして、処理はステップS60へ進む。
一方、乱数rが0でない場合には(ステップS55のNoルート参照)、第2出力部1112は、乱数rが1であるかを判定する(ステップS57)。
乱数rが1である場合には(ステップS57のYesルート参照)、第2出力部1112は、-εを微分係数Dとする(ステップS58)。そして、処理はステップS60へ進む。
一方、乱数rが1でない場合には(ステップS57のNoルート参照)、第2出力部1112は、0を微分係数Dとする(ステップS59)。
ゼロ生成処理変形部111は、微分係数Dと入力値dzとの積を出力する(ステップS60)。そして、第3のReLU演算の逆伝播処理は終了する。
〔B-3〕効果
上述した実施形態の一例におけるホストマシン1によれば、例えば、以下の作用効果を奏することができる。
第1出力部1111は、入力値を境界値と比較し、境界値を超過した入力値に対して入力値と等しい値を出力する。第2出力部1112は、境界値以下である入力値に対して一定の出力値を出力するReLU演算において、境界値以下の入力値に対して0よりも大きい微小値εの倍数を出力する。
これにより、消費電力を増加させずにプロセッサ11の電圧降下を防止することができる。具体的には、学習の品質を変えることなく、ゼロ値の生成を抑止し、電力の変動を防ぐことができる。また、ReLU演算及びその後の計算で電力が増加するものの、他の計算では基準電圧が低下するため、低電力でDLを実行できる。すなわち、電力変動を抑えて、高めの電圧設定を不要にできる。
第2出力部1112は、入力値と微小値εとの積を出力値として出力する。
これにより、ゼロ値の出力の可能性を低減できる。
第2出力部1112は、入力値を乗数とすると共に微小値εを被乗数として乗算器1000に入力することにより、出力値を出力する。
これにより、乗算器1000における電力低減を防止できる。
第2出力部1112は、微小値εについて、-εと0と+εとのうちいずれかの値を出力値として出力する。
これにより、ReLU演算の出力値を限定できるため、DL実行プログラムの生成を効率的に実施できる。
〔C〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
〔D〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
入力値を境界値と比較し、前記境界値を超過した前記入力値に対して前記入力値と等しい値を出力する第1出力部と、
前記境界値以下である前記入力値に対して一定の出力値を出力する正規化線形関数の演算において、前記境界値以下の前記入力値に対して0よりも大きい微小値εの倍数を出力する第2出力部と、
を備える、演算処理装置。
(付記2)
前記第2出力部は、前記入力値と前記微小値εとの積を前記出力値として出力する、
付記1に記載の演算処理装置。
(付記3)
前記第2出力部は、前記入力値を乗数とすると共に前記微小値εを被乗数として乗算器に入力することにより、前記出力値を出力する、
付記1又は2に記載の演算処理装置。
(付記4)
前記第2出力部は、前記微小値εについて、-εと0と+εとのうちいずれかの値を前記出力値として出力する、
付記1に記載の演算処理装置。
(付記5)
コンピュータに、
入力値を境界値と比較し、前記境界値を超過した前記入力値に対して前記入力値と等しい値を出力し、
前記境界値以下である前記入力値に対して一定の出力値を出力する正規化線形関数の演算において、前記境界値以下の前記入力値に対して0よりも大きい微小値εの倍数を出力する、
処理を実行させる、プログラム。
(付記6)
前記入力値と前記微小値εとの積を前記出力値として出力する、
処理を前記コンピュータに実行させる、付記5に記載のプログラム。
(付記7)
前記入力値を乗数とすると共に前記微小値εを被乗数として乗算器に入力することにより、前記出力値として出力する、
処理を前記コンピュータに実行させる、付記5又は6に記載のプログラム。
(付記8)
前記微小値εについて、-εと0と+εとのうちいずれかの値を前記出力値として出力する、
処理を前記コンピュータに実行させる、付記5に記載のプログラム。
(付記9)
入力値を境界値と比較し、前記境界値を超過した前記入力値に対して前記入力値と等しい値を出力し、
前記境界値以下である前記入力値に対して一定の出力値を出力する正規化線形関数の演算において、前記境界値以下の前記入力値に対して0よりも大きい微小値εの倍数を出力する、
演算処理装置の制御方法。
(付記10)
前記入力値と前記微小値εとの積を前記出力値として出力する、
付記9に記載の演算処理装置の制御方法。
(付記11)
前記入力値を乗数とすると共に前記微小値εを被乗数として乗算器に入力することにより、前記出力値として出力する、
付記9又は10に記載の演算処理装置の制御方法。
(付記12)
前記微小値εについて、-εと0と+εとのうちいずれかの値を前記出力値として出力する、
付記9に記載の演算処理装置の制御方法。
100 :演算処理システム
1000 :乗算器
101 :乗数
102 :被乗数
103 :セレクタ
104 :加算器
105 :出力
106 :ニューラルネットワーク記述データ
107 :プログラム生成パラメータ
108 :ニューラルネットワーク実行プログラム
110 :プログラム
1 :ホストマシン
11 :プロセッサ
111 :ゼロ生成処理変形部
112 :プログラム生成部
1111 :第1出力部
1112 :第2出力部
12 :RAM
13 :HDD
14 :内部バス
15,25:高速入出力インターフェース
16 :低速入出力インターフェース
2 :DL実行ハードウェア
21 :DL実行プロセッサ
22 :制御部
23 :メモリアクセスコントローラ
24 :内部RAM
3 :利用者
61 :細胞体
62 :シナプス
63 :樹状突起
64 :軸索

Claims (3)

  1. 入力値を境界値と比較し、前記境界値を超過した前記入力値に対して前記入力値と等しい値を出力する第1出力部と、
    前記入力値が境界値以下の場合に、前記入力値に対して-εと+εと0とのいずれかの値をランダムに出力する第2出力部と、
    を備える、演算処理装置
  2. 入力値を境界値と比較し、前記境界値を超過した前記入力値に対して前記入力値と等しい値を第1出力部が出力し、
    前記入力値が境界値以下の場合に、第2出力部が、前記入力値に対して-εと+εと0とのいずれかの値をランダムに出力する、
    処理をコンピュータに実行させる、プログラム。
  3. 入力値を境界値と比較し、前記境界値を超過した前記入力値に対して前記入力値と等しい値を第1出力部が出力し、
    前記入力値が境界値以下の場合に、第2出力部が、前記入力値に対して-εと+εと0とのいずれかの値をランダムに出力する、
    処理を演算処理装置が実行する、制御方法。
JP2019009395A 2019-01-23 2019-01-23 演算処理装置,プログラム及び演算処理装置の制御方法 Active JP7225831B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019009395A JP7225831B2 (ja) 2019-01-23 2019-01-23 演算処理装置,プログラム及び演算処理装置の制御方法
EP19218090.9A EP3686733B1 (en) 2019-01-23 2019-12-19 Calculation processing apparatus, program, and method of controlling the calculation processing apparatus
US16/732,930 US20200234138A1 (en) 2019-01-23 2020-01-02 Information processing apparatus, computer-readable recording medium recording program, and method of controlling the calculation processing apparatus
CN202010031892.7A CN111476359A (zh) 2019-01-23 2020-01-13 计算处理设备和计算机可读记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019009395A JP7225831B2 (ja) 2019-01-23 2019-01-23 演算処理装置,プログラム及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2020119213A JP2020119213A (ja) 2020-08-06
JP7225831B2 true JP7225831B2 (ja) 2023-02-21

Family

ID=69410919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019009395A Active JP7225831B2 (ja) 2019-01-23 2019-01-23 演算処理装置,プログラム及び演算処理装置の制御方法

Country Status (4)

Country Link
US (1) US20200234138A1 (ja)
EP (1) EP3686733B1 (ja)
JP (1) JP7225831B2 (ja)
CN (1) CN111476359A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7225831B2 (ja) * 2019-01-23 2023-02-21 富士通株式会社 演算処理装置,プログラム及び演算処理装置の制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017038104A1 (ja) 2015-09-03 2017-03-09 株式会社Preferred Networks 実装装置および実装方法
US20190005603A1 (en) 2017-06-30 2019-01-03 Intel Corporation Approximating image processing functions using convolutional neural networks
JP2019008383A (ja) 2017-06-21 2019-01-17 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3895031B2 (ja) 1998-02-06 2007-03-22 株式会社東芝 行列ベクトル乗算器
JP6556768B2 (ja) * 2017-01-25 2019-08-07 株式会社東芝 積和演算器、ネットワークユニットおよびネットワーク装置
DE102017206892A1 (de) * 2017-03-01 2018-09-06 Robert Bosch Gmbh Neuronalnetzsystem
WO2019088072A1 (ja) * 2017-11-01 2019-05-09 日本電気株式会社 情報処理装置、情報処理方法及びプログラム
JP7225831B2 (ja) * 2019-01-23 2023-02-21 富士通株式会社 演算処理装置,プログラム及び演算処理装置の制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017038104A1 (ja) 2015-09-03 2017-03-09 株式会社Preferred Networks 実装装置および実装方法
JP2019008383A (ja) 2017-06-21 2019-01-17 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体
US20190005603A1 (en) 2017-06-30 2019-01-03 Intel Corporation Approximating image processing functions using convolutional neural networks

Also Published As

Publication number Publication date
EP3686733B1 (en) 2022-08-03
CN111476359A (zh) 2020-07-31
EP3686733A1 (en) 2020-07-29
US20200234138A1 (en) 2020-07-23
JP2020119213A (ja) 2020-08-06

Similar Documents

Publication Publication Date Title
Chen et al. ReGAN: A pipelined ReRAM-based accelerator for generative adversarial networks
JP6773970B2 (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
WO2018101275A1 (ja) ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
WO2019220975A1 (ja) ニューラルネットワーク回路装置、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
KR102648665B1 (ko) 뉴럴 네트워크들의 아키텍처 최적화된 트레이닝
US10977338B1 (en) Reduced-area circuit for dot product computation
JP6933367B2 (ja) ニューラルネットワーク回路装置、システム、処理方法および実行プログラム
US20170061279A1 (en) Updating an artificial neural network using flexible fixed point representation
US11783200B2 (en) Artificial neural network implementation in field-programmable gate arrays
EP3528181B1 (en) Processing method of neural network and apparatus using the processing method
JPH07248841A (ja) 非線形関数発生装置およびフォーマット変換装置
JP7319271B2 (ja) 電子デバイスの活性化関数機能ブロック
WO2019006976A1 (zh) 神经网络权重离散化方法、系统、设备和可读存储介质
JP7225831B2 (ja) 演算処理装置,プログラム及び演算処理装置の制御方法
Shehzad et al. A scalable system-on-chip acceleration for deep neural networks
CN112396085B (zh) 识别图像的方法和设备
US20220229633A1 (en) Multiplication and accumulation(mac) operator and processing-in-memory (pim) device including the mac operator
KR20230132795A (ko) 정규화 기능을 위한 디지털 회로
JP6886389B2 (ja) 演算装置及び車載制御装置
CN115358390A (zh) 神经网络的训练方法、装置、电子设备及存储介质
EP4141646B1 (en) Method and apparatus with calculation
KR102651560B1 (ko) 프로그램된 활성화 함수 실행 유닛을 포함하는 신경 프로세싱 유닛
Joshi et al. Fast & energy efficient binary to bcd converter with complement based logic design (cbld) for bcd multipliers
US20220283778A1 (en) Method and device for encoding
Ying et al. Multi-objective Evolutionary Architecture Search of U-Net with Diamond Atrous Convolution

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221014

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20221014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230123

R150 Certificate of patent or registration of utility model

Ref document number: 7225831

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150