カテゴリー
Free

AIを作ってみよう11

電圧測定
電圧測定

 いくら安価な部品で構築できたとしても運用に費用がかかっては意味がありません。実際の事業として考えると人件費や何やらと運用費はかかりますが、ここでは消費電力について考えます。一般にCPUの消費電力は、


P = fptCV 2 


で表されます。f は動作周波数,、pt はスイッチング確率, C は負荷容量、V は電源電圧です。

 動作周波数を下げる 計算量を減らすことにつながるので動作周波数を下げないで考えます。

 スイッチング確率を減らす 目的の計算以外をさせないようなハードウェア、ソフトウェア設計が可能です。

 負荷容量を減らす いつか1チップ内に集積できれば容量を減らせるでしょう。

 電源電圧を下げる 当面5Vでいつか1〜3.3Vで制御できます。

 動作周波数、スイッチング確率、負荷容量、電圧(FSCVと命名します)に注意を払い設計を進めれば低電力のAIが作れるでしょう。

カテゴリー
Free

AIを作ってみよう10

D28C64C-25
D28C64C-25

 AIを作るための最低限のシルテム構成を考えてみましょう。構成を考える上での条件は
8ビット ー ビット以外でバイトが最小単位だから
マイコン ー 最小の安価なコンピュータだから
ロジックIC ー 論理演算できるから
アセンブラ ー 最も実行効率の良いプログラム言語だから
実数は使わない ー 演算上効率が悪いから
とします。

 8ビットのマイコンは大概16ビットのアドレス空間にアクセスできます。記憶装置は必ず必要なので16ビットのアドレスであれば64KByteのメモリが1セットです。

 RAMを使うと補助記憶装置からデータロードが必要となるのでそれがいらないROMを使います。記憶のアップデートはできませんが計算原理の確認なのでこれで良しとします。

カテゴリー
Free

AIを作ってみよう9

半加算器
半加算器

 AI開発で欠かせないのはどのように計算させるかです。あまりにも多くの計算を短時間で実行しなければならないので、その計算能力によって性能が左右されるだけではなく、そのAIの存在自体をも問われます。

 コンピュータは計算が得意と言われていますが、その計算の中にも得意不得意があります。例えば桁数がある一定の値よりも大きい数値、乗除算を何度も繰り返す計算、極めて小さい数値等です。なぜこのようなことが起こるかというとコンピュータの中で実際に行われている演算とは論理演算だからです。

 論理演算には小数点もなければ桁上がりもありません。計算方法だけ見れば算盤以下です。随分昔ですが算盤の上級者になるとπの算出を暗算でできると聞いたことがあります。論理演算とは電気で計算させるための原始的な方法なのです。

 ではなぜコンピュータは計算では人を凌駕できるのか。それは単純な論理演算を一瞬の間に膨大な回数を実行できるからです。2進数の論理演算を組み合わせて10進数の四則演算や難しい関数演算を行える複雑なハードウェアとソフトウェアでコンピュータはできています。

 最もコンピュータに向いているのは論理演算なのでそれを基本に計算装置を作ることができれば製造費も電気代も安価な高性能AIができるはずです。

カテゴリー
Free

AIを作ってみよう8

高級言語
高級言語

 AIシステム構築には良くPythonが使われいるようです。Wikiによると「インタープリタ型の高水準汎用プログラミング言語である。」とあるように30年前からあるようですがだいぶ高級な言語のようです。

 Pythonもコンパイルしてネイティブ実行ファイルを作ることができますが今はインタープリタ型のプログラムが動作する仕組みを考えてみます。

パソコンでPythonプログラムを実行

Pythonプログラムを読んで実行するプログラム

オペレーティングシステム&デバイスドライバー

ベーシックIOシステム

ハードウェア

 Pythonプログラムをハードウェアが実行するまでに何層ものプログラムが動かなければなりません。もし同じプログラムをマイコンで実行するとどうなるでしょうか。

マイコン用プログラム

ハードウェア

 マイコン用プログラムであれば直接ハードウェアを実行することができます。もちろん高級言語では簡単なことでもマイコン用プログラムでは大変な労力を必要とすることが多いので単純に比較して優劣を云々できません。しかしAIの中枢は単純な計算の繰り返しなはずです。マイコン用プログラムでもできるに違いありません。

 同じ計算でも全体の計算量が大きく違えばその性能差も大変な違いが生まれます。

カテゴリー
Free

AIを作ってみよう7

アセンブラ
アセンブラ

 ハードウェアの話が続いたのでここでソフトウェアに話題を切り替えます。AIを構築するためには膨大な計算を処理する装置が必要です。その計算をこなすためには電力が必要です。なぜ計算機は電力を必要とするのか。それは電気の有無を2進数として論理演算を繰り返すため電気がある状態とない状態を何度も何度も繰り返し作らなければならなくなったからです。

 であれば使う電力を減らすためには計算の回数が減るようにするのも一つの方法です。性能を上げるためには計算量を増やさなければならない、消費電力を減らすためには計算量を減らなさければならない。矛盾してますね。

 電子計算機が生まれたと同時にソフトウェアをどう効率よく製造するかの悩みも双子のように誕生したのです。それから幾十年人類の効率の良いソフトウェア製造方法へのチャレンジは続いています。

 プラグ付きケーブルをあっちこっち挿したり抜いたりして作っていたソフトウェアがメモリ内蔵にされるようになった時にマシン語が生まれ、すぐにマシン語と一対になったアセンブラ言語が作られました。この時人類は抽象化された言語でコンピュータと交流できるようになりました。