Stochastic Computing党

Stochastic Computing とは?

「Stochastic Computing…? 『確率的計算』って何…?」
と,思われた方がほとんどでしょう.

このページでは,Stochastic Computing について簡単にまとめてみます.

SCの概要

Stochastic Computing(SC)とは,ビット列内の ‘1’ の存在確率を用いた近似演算手法です.
‘1’の存在確率を値としたビット列をStochastic Number(SN)と呼びます.
SCでは,従来の二進数ではなく,このSNを用います.

SNの生成

SNの生成には,乱数生成器と比較器を用います.一般的に乱数生成器として線形フィードバックシフトレジスタ(LFSR)が用いられています.上のような回路をStochastic Number Generator(SNG)と呼びます.このSNGを利用して,二進数をSNに変換します.
ちなみに,SNを二進数に変換する際は,カウンタを用いてSN内の “1” の個数を数えることで二進数に変換できます.

SCの演算の流れ

上記のように、通常の二進数による演算をSCによる演算に置き換えて行います.

Stochastic Computing の利点

通常の演算をSCに置き換えることで、次のようなメリットがあります.

1.従来の二進数による演算と比較して、小規模な回路で演算処理が可能

例えば,

・乗算の場合は単一のANDゲート
・加算の場合は単一のマルチプレクサ(ただし,加算結果は1/2倍にスケーリングされる)

で実現できます!勿論,これらの他にも様々な演算回路が考えられています.

2.ビットフリップが発生しても誤差が小さいため、エラーに強いとされる

・二進数 の桁重みは 2のべき乗 → ビットフリップの影響が大きい…
・SN の桁重みは 全て1      → ビットフリップの影響が小さい!

 従来(二進数)Stochastic Number
3/80.0110, 0, 1, 0, 1, 0, 1, 0
ビットフリップ後0.111(=7/8)0, 1, 1, 0, 1, 0, 1, 0(=4/8)
3/8との誤差4/81/8

一方で、SCは近似演算手法であるため,多少の誤差が生じることがあります(*Approximate Computing).
そのため,SCは少しくらいの誤差なら許容できるアプリケーション(画像処理やニューラルネットワークなど)への活用が期待されます.
特に,昨今めざましく発展する人工知能分野において課題となっている,面積,低消費電力,大規模並列処理といった要求を同時に満たすアプローチとして,SC が注目されています!

こんな人にSC党はおすすめ!

こんな方がStochastic Computing党に来るとHAPPYになれると思います!

1.ソフトウェアとハードウェアの両方の研究をしたい人

演算や画像処理などのアプリケーションの精度を評価するためのソフトウェアの実装や,ハードウェア記述言語(Verilog HDLなど)を用いて実装や回路面積などの評価など,幅広い内容に挑戦できます.
つまり,扱えるテーマや技術の幅が非常に広いのが特徴です!
もちろん,すべての党員がソフトウェアとハードウェアの両方を実装しているわけではありません.研究の内容に応じて,ソフトウェアのみで実験や評価を行うメンバーもいます.

2.確率や数理モデルが好きな人

SC は,確率情報を計算に用いるという従来とは異なる計算パラダイムです.

  • 確率論
  • 統計的モデル
  • 離散数学
  • ランダム過程

こうした数学が好きな人は,SC の数学的性質(誤差解析,期待値,分散,SN の収束性,etc.)と相性が良いと思われます.

他にも……

3.コツコツとした実装から成果が出る研究がしたい人

4.試行錯誤が好きな人

SC党の公約(こんなことを目指します!)

・ SC回路の面積削減

・ SC演算の演算精度の向上

・ アプリケーションに適した効率的な回路設計

研究テーマ

・ Stochastic Numberの効率的な生成を行う回路の設計手法

・ Stochastic Computingで目的関数を実現する回路設計

・ 回路面積や演算誤差の削減手法

・ Stochastic Computingの新たな活用

・LFSRと異なる乱数生成器の設計と利用

…etc.

SC党についてさらに詳しく知りたい方は下のプレゼンテーションをご参照ください!
(※環境によっては正しく表示されない場合があります)

気になる方は、是非とも研究室紹介にお越しください!

(*Approximate Computing (AC))

画像処理などの多少の誤差を許容できるアプリケーションに用いる演算手法。
演算を近似化することで、誤差は生じるものの実行時間や消費電力、回路面積の削減を行う。
よって,Stochastic Computingは,Approximate Computingの一種と言える。