Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Lispマシン・シミュレータの紹介

1,086 views

Published on

Intorduce some Lisp Machine Simulator

Published in: Engineering
  • Be the first to comment

Lispマシン・シミュレータの紹介

  1. 1. Lispマシン シミュレータ の紹介 2017/OCT/07 たけおか@AXE @takeoka
  2. 2. 2 竹岡って誰?1977年(高校2年生): MITのJames Slagleの書いたAIの教科書(日本語版)を読んで 「○×」を打つプログラムを8bitマイコンTK-80(8080,RAM 512Bytes)の機械語で書く 1980年代:UNIXのサーバクライアント方式の仮名漢字変換システムWnn、国産シンクライアン ト(X Window端末”XMiNT”)などの設計開発に携わる。TCP/IPスタックの独自実装。時相 論理型言語Temporal Prologの合理的な実装などを行う 1990年代初頭: 1024PE規模の超並列計算機”SM-1”(豊橋技科大 湯淺研,住友金属)のLSI ハードウェア、ソフトウェアの設計開発に携わる。Common Lispで開発ツール書いた。 1992年:(株)アックスを興し、マイクロカーネルXTALを設計。XTALはオリンパス社製デジタルカ メラ、シャープ ザウルスなどに使用された。アックスは、人工知能を開発&販売中 OSSコンソーシアム副会長, JASA技術本部長/理事,PCクラスタコンソーシアム理事,DEOS協会 事務局長/理事 超並列計算機SM-1 (1992年) シンクライアントXMiNT (1988年) オリンパス デジカメ (2000年) カラーザウルス(1996年)
  3. 3. 3 (株)アックスの基本ソフトの採用実績  axLinux組込みLinux  家電、デジタルTV  ネットワーク機器  携帯機器  ロボット(AIST)  航空自衛隊  スケジューラを強化  組込みBSD  ネットワーク機器  HPC  ExaOSの研究(AICS)  つくば次世代スパコン研究  独自RTOS  XTAL  ザウルス  オリンパスデジカメ  絹;Posix1003.13 RTOS  AUTOSAR  JasParへの参加
  4. 4. 超並列計算機とAI • 第二次AIブームの頃、 超並列計算機は、ニューラルネットのシミュレーションによく使われた • Connection Machine 1 • 1980年代末期から1990年代初頭に商業的に成功した超並列計算機 • 作った人は、Lisper • 演算器は1bit, PEのローカル・メモリは 1bit×1024ワード • 65536PE SIMD動作 • Lispマシンがフロントエンド (VAX版もあったが) • CM-5はPEをSPARCにした(なにそれ) Connection Machine 1豊橋技化大 湯淺研+住友金属SM-1
  5. 5. 5 AXEの人工知能エンジン「ごまめ」の 内部構造(概略) • AXEの人工知能 – 自然言語解析 – ルールベースの論理推論系AI – 機械学習と推論系のハイブリッドAI • 特許出願中 • 応用 – 人工無脳ちゃん 対話機能 – エキスパート・システム 機能 – 写真へのタグ付け • 小さなコンピュータで、快適に動作 スケジュール 中間ゴール 生成 パターン マッチング 処理により 規則を起動 ルール ベース 日本語解析部 (形態素解析 & 構文解析) 形態素解析 & 構文解析 辞書等 メール SNSログ アクション1 スケジュール登録 アクション2 アラート・メール 生成&送信 アクション3 個人情報収集 アクション4 学習 (記憶更新) 短期記憶 長期記憶 (RDB) 帰納 推論 エンジン 中間ゴール 生成用 ルール ベース 前処理 中間 ゴール 中間 ゴール 中間 ゴール センサ出力 機械学習 出力 写真 メタ情報
  6. 6. AIの特許 ● 機械学習を、論理推論 機構の中心に使う ● 推論の探索空間を小さくする → 推論が高速に
  7. 7. 7 AXE 人工知能 対話• AXEの人工知能 1.人工無脳ちゃん 対話機能 2.エキスパート・システム 機能 3.嗜好分析 いずれも、本当の推論システムが動作 • 推論システム: IBM Watsonと同様 • 日本語 解析を、かなり真面目に行っている→高精度 • 文中の単語による、文章のクラス分けができる • 小さなコンピュータで、快適に動作 • 組込みARMで、完全スタンドアロン動作 • 特許出願中 • デモ用 フロントエンドは、 – PC用チャット・クライアント – Androidスマホ・アプリ の2種を用意 チャットAIサーバ: オモチャ・ロボット 型 (中にRaspi3を内蔵) AI: 顔追尾 自律ロボット
  8. 8. 8 AXE提案) 機械学習と推論システムのハイブリッド 故障診断 装置 学習結果 機械学習による 判定器 推論規則 出力 複合事象から、近未来、 なにが起きる? あるパターンの振動が いくつか 検出された 推論システム 実世界 出力 近日に、 どこかが故障しそうな ことを、推論 推論システム: ・滅多に発生しない事柄を ルールで記述 ・複合事象から推論 振動センサ 入力 現象を「記号化」してから、推論を行う 記号にするのは、機械学習による認識 音響センサ 入力装置 学習結果 機械学習 出力 機械学習: 複合的な現象から、 近い将来なにが起きるか までは、判定しにくい。 滅多に起きない現象は、 学習データが入手できな い カメラカメラ対象物 入力 学習結果 機械学習 出力
  9. 9. 9 現在、AXE AI が行えることの例ーー推論システム/自然言語処理 • メールを読んで、会議/デートのスケジュール予定を読み取る • 過去スケジュールから、ユーザの周期性行動を検出 • 嗜好の分析 (メール、SNSログ、対話から) – 自然言語処理+推論 • エキスパート・システム – 顔占いなど • 人工知能チャット • 入力文をクラス分けして、応答 • 出前注文シーケンスを実現 • 写真へのタグ付け/つかみ出し – 過去スケジュール/メールなどから タグ付け – 自然言語による、つかみ出し ーーー 顔追跡ロボット 人間の顔を見つけたら、それを追跡する • 阪急電車 判定 • 機械学習+推論 • 阪急電車を見つけたら、鉄道に関するニュースを読み上げる • ● テキスト無脳ちゃん対話 movie https://www.youtube.com/watch?
  10. 10. 自動運転ソフトウェア「Autoware」の開発&サポート提供 ■ 東大/名古屋大学 加藤真平先生のAutoware – 日本で一番、自動運転の研究が進んでいる – 名古屋 守山市で、公道を自動運転走行 – 自動車メーカなどもスポンサー http://www.pdsl.jp/%E6%97%A5%E6%9C%AC%E8%AA%9E %E3%83%88%E3%83%83%E3%83%97/ http://news.mynavi.jp/series/coolchips18_auto_car/003/ AXEは、Autoware開発を、最初から手伝っている – 自動運転には、KnowHowが多くある • 研究発表されているのは、KnowHowではない ■ Autowareは、オープンソース・ソフトウェアとして無償配布されている ■ AXEは、Autowareサポートを、有償で提供 – Autowareを入手しても、即座に自動車を走らせることができるわけではない
  11. 11. Lispマシン
  12. 12. 12 MIT系Lispマシン ● MIT CONS, CADR ● Symbolics, LMI Lambda ● (TI ExplorerがMIT系か否かは知らない。スマン) ● Lispのトップレベルで対話してなんでも行う ※symbolics.comは世界最初の”.com” MIT CONS Symbolics 36x0
  13. 13. Lispマシン,高級言語マシン  Lispマシンは、OSもLispで記述  Smalltalkマシンも、環境はすべてSmalltalkで記述  ウインドウ・システムなどもその言語で書く  ファイル・システムをIOプロセッサにやらせている軟弱なシ ステムもあった
  14. 14. 14 Symbolicsのキーボード ● Control:左親指,DEL:左小指 ● ‘(‘,’)’が、シフト無しで入力可能 ● 憧れのMeta,Super,Hyper
  15. 15. りすぷ・しーんにゅある  Lispマシン・マニュアル一式も読め る http://www.bitsavers.org/pdf/mit/cadr/ しーんにゅある  和訳する気はない  Hackers’ dictionary も読もう  MIT Lispドキュメントを読むには 必須
  16. 16. 16 高級言語マシン Symbolics 3600 Alto Mac初代 年代 1983 1973 1984 CPU bit slice (マイクロ・プログラム) @5MHz〜8MHz bit slice (マイクロ・プログラム) 0.3MIPS 68000 @5MHz 0.3MIPS ROM (micro code) (micro code) 64KB RAM 〜2.3MB 128KB〜512KB 128KB 基本ワード長 36bit word 16bit word 16bit word
  17. 17. Lispマシン シミュレータ
  18. 18. Lispマシン シミュレータ ● Nano Pi Neo2で 動作している → ● 画面は、 他のLinuxマシンに飛ばしている ● X Windowアプリケーションだから、 普通にできる (NanoPiNeo2は、 ヘッドレス(表示器が無い))
  19. 19. Lispマシン・シミュレータ● Usim ● CADR Emulator – 08/07/2006 – Brad Parker氏 (brad@heeltoe.com) ● http://www.unlambda.com/index.php?n=Main.Cadr ● VLM – Symbolics Virtual Lisp Machine – DEC Alpha向けに Symbolics自身によって作られた – https://github.com/hanshuebner/vlm – http://www.cliki.net/VLM_on_Linux – https://loomcom.com/genera/genera-install.html ● Lambda Delta – LMI Lambdaのシミュレータ – https://github.com/dseagrav/ld ● Meroko – TI Explorer I (E1) Lisp machine emulator – http://www.unlambda.com/index.php?n=Main.Meroko – めろこ:「満月をさがして」(2002)の死神 – https://ja.wikipedia.org/wiki/%E6%BA%80%E6%9C%88%E3%82%92%E3%81%95%E3%81%8C %E3%81%97%E3%81%A6 TI Explorer I
  20. 20. Lispマシン・シミュレータ usim ● x86Linux, Windows, Mac OS Xで動く – 画面が縦長 768x1024 で、NotePCでは辛い • プロジェクタにも映せない (^^; ● オープン・ソース ● Raspberry Pi 1で動く – ARM-11@700MHz, メモリ:512MB ● Nano Pi Neo2で動く – ARM64@1GHz×4core, メモリ:512MB ● 49MBも使っていない
  21. 21. CADR ステータス・ラインがカッコいい 時々表示される、アンダーライン – CPU,HDDアクセス, ページ・スワップなど を表しているらしい 時刻 ユーザ マシン状態 RUN/ TYI(ユーザ・インプット) この行には、マウス・ボタンでできることなどが表示される ココ
  22. 22. CADR よく使うキー● "Abort"(F4) ● エラーでbreak levelに入ったら、abortして、top levelに戻る ● Terminal(F1)+S ● 現在のプロセスをサスペンドして、切り替える ● 特に、元の地の対話部分だけになって、エディタ窓が消えた時、 エディタ窓に戻りたい時、行う。地のプロセスがサスペンドになる。 --Zmacsキーバインド-- ● C-S-E – カーソルの直前のS式をエバる。結果は、エディタのステータス行に、表 示。そして、キー入力待ち。 ● C-S-C – カーソルがあるS式をコンパイル。 ● Metaキーは普通に使える
  23. 23. CADR,Lispマシン ● 数の基数のデフォールトが、8進数 \(^^;/ ● (+ 2 7) 11⇒ ; 表示が8進, 値は9(10進) ● (format t "~D” … )大事www ● *print-base* , *read-base* が無い \(^^;/ ● さすが、Zeta Lispだぜっ! (涙)
  24. 24. Lispマシン・シミュレータ usim ● ホスト(Linux)で、C-Cを2度行うと、メモリ・イメージをダンプする ● 次回 起動は、そのイメージが使用できる ● HDDイメージと、メモリ・イメージは関係が深いので、バラバ ラな状態のものを使用してはいけない ● マクロ命令の実行のトレースなどが取れる ● マイクロ命令の実行のトレースなどが取れる
  25. 25. Usim ファンクション・キー● esc Alt Mode ● f1 Terminal ● f2 System ● f3 Network ● f4 Abort ←breakレベルから出るの に大事。 ● f5 Clear Input ● f6 Help ←ちょいちょい役立つ ● f7 Page ● f8 ● f9 ● f10 ● f11 ● f12 ● pgup Break ● pgdn {appears to crash usim} ● home Call ● end End ● backspace rubout ● backspace Rub Out ● Terminal-M Toggle **MORE** processing. ● Terminal-0-M Disable **MORE** processing. ※keyboard.cfgで変更可能 私は、デフォールトでは、Hyperキー、Superキーがイマイチわからない (^^;
  26. 26. Nano Pi Neo2● ¥2,400(税込) ● ARM Cortex-A53(64bit)@1GHz×4core ● CPU:Allwinner H5(クアッドコア Cortex-A53 ) ● メモリ:DDR3 512MB ● かなり熱くなるので、放熱器は必須だろう ● ディスプレイ出力は無い ● シリアル・コンソールが基本 ● EtherNet:10/100/1000M ● USBホスト:TypeAx1、2.54mmピンヘッダx2 ● MicroSD:x1 ● シリアルポート:x2+(デバック用x1) ● I2S:x1 ● SPIO:x1 ● I2C:x1 ● PWM:x1 ● ラインアウト:x1 ● マイク入力:x1 ● GPIO:36ピン ● 基板サイズ:40x40mm ● 動作電源:5V2A http://akizukidenshi.com/catalog/g/gM-12302/
  27. 27. CADR or VLM ● さすが、Zeta Lispだぜっ! (涙) ● VLM=Symblics Open Genera が実行できる機械を試そうか… ● Generaは、Common Lispになっている ● 私の持ってる Symbolics 3600(実機)は、 Genera7で、Common Lispなんだよぅ
  28. 28. Lispマシン文書
  29. 29. CADRのハードウェア・アーキテクチャ解説書 和訳 CADRのハードウェア・アーキテクチャ解説書 MIT AIメモ, AIM 528 http://www.bitsavers.org/pdf/mit/cadr/AIM-528_CADR.pdf 私が和訳した http://www.takeoka.org/~take/ailabo/cadr/cadr-j.html LispとCPUハードウェアの機微を知りたい若者に さすがに、本当にちゃんと動いているだけのことはある (低レイヤな)若い人は読んだ方がいい
  30. 30. Lisp マシンのマクロ命令セットの説明 和訳 Lisp マシンのマクロ命令セットの説明 MIT のTom Knight氏の、 "The LISP Machine Macro-instruction Set." http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/mit /cadr/Knight-LISP_Machine_Macro_Instruction_Set- 1979.pdf 私が和訳した http://www.takeoka.org/~take/ailabo/cadr/knight-lispm- macroinst.html
  31. 31. URL CADRハードウェア和訳 http://www.takeoka.org/~take/ailabo/cadr/cadr-j.html Lispマシン マクロ命令解説 和訳 http://www.takeoka.org/~take/ailabo/cadr/knight-lispm- macroinst.html WAM論文 和訳 http://www.takeoka.org/~take/ailabo/prolog/wam/wam.html 実用Prolog入門(短い文書) http://www.takeoka.org/~take/ailabo/prolog/metakuta.html CRAY-XMP マニュアル 和訳 http://www.takeoka.org/~take/supercom/cray-xmp.html www.takeoka.org/~take/ www.axe.bz
  32. 32. おまけ
  33. 33. Lispマシン  Lispマシンのハードウェアについては  下記のスライドの、P.17〜P.21を参照 https://www.slideshare.net/takeoka1/lisp-lisp
  34. 34. 以上

×