SlideShare a Scribd company logo
Lispマシン
シミュレータ
の紹介
2017/OCT/07
たけおか@AXE
@takeoka
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
(株)アックスの基本ソフトの採用実績

axLinux組込みLinux

家電、デジタルTV

ネットワーク機器

携帯機器

ロボット(AIST)

航空自衛隊

スケジューラを強化

組込みBSD

ネットワーク機器

HPC

ExaOSの研究(AICS)

つくば次世代スパコン研究

独自RTOS

XTAL

ザウルス

オリンパスデジカメ

絹;Posix1003.13 RTOS

AUTOSAR

JasParへの参加
超並列計算機と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
AXEの人工知能エンジン「ごまめ」の
内部構造(概略)
•
AXEの人工知能
– 自然言語解析
– ルールベースの論理推論系AI
– 機械学習と推論系のハイブリッドAI
• 特許出願中
•
応用
– 人工無脳ちゃん 対話機能
– エキスパート・システム 機能
– 写真へのタグ付け
•
小さなコンピュータで、快適に動作
スケジュール 中間ゴール
生成
パターン
マッチング
処理により
規則を起動
ルール
ベース
日本語解析部
(形態素解析
&
構文解析)
形態素解析
&
構文解析
辞書等
メール
SNSログ
アクション1
スケジュール登録
アクション2
アラート・メール
生成&送信
アクション3
個人情報収集
アクション4
学習
(記憶更新)
短期記憶
長期記憶
(RDB)
帰納
推論
エンジン
中間ゴール
生成用
ルール
ベース
前処理
中間
ゴール
中間
ゴール
中間
ゴール
センサ出力
機械学習
出力
写真
メタ情報
AIの特許
●
機械学習を、論理推論 機構の中心に使う
●
推論の探索空間を小さくする
→ 推論が高速に
7
AXE 人工知能 対話•
AXEの人工知能
1.人工無脳ちゃん 対話機能
2.エキスパート・システム 機能
3.嗜好分析
いずれも、本当の推論システムが動作
•
推論システム: IBM Watsonと同様
•
日本語 解析を、かなり真面目に行っている→高精度
•
文中の単語による、文章のクラス分けができる
•
小さなコンピュータで、快適に動作
•
組込みARMで、完全スタンドアロン動作
•
特許出願中
•
デモ用 フロントエンドは、
– PC用チャット・クライアント
– Androidスマホ・アプリ
の2種を用意
チャットAIサーバ: オモチャ・ロボット
型
(中にRaspi3を内蔵)
AI: 顔追尾 自律ロボット
8
AXE提案) 機械学習と推論システムのハイブリッド
故障診断
装置
学習結果
機械学習による
判定器
推論規則
出力
複合事象から、近未来、 なにが起きる?
あるパターンの振動が
いくつか
検出された
推論システム
実世界
出力
近日に、
どこかが故障しそうな
ことを、推論
推論システム:
・滅多に発生しない事柄を
ルールで記述
・複合事象から推論
振動センサ 入力
現象を「記号化」してから、推論を行う
記号にするのは、機械学習による認識
音響センサ 入力装置
学習結果
機械学習
出力
機械学習:
複合的な現象から、
近い将来なにが起きるか
までは、判定しにくい。
滅多に起きない現象は、
学習データが入手できな
い
カメラカメラ対象物 入力
学習結果
機械学習
出力
9
現在、AXE AI が行えることの例ーー推論システム/自然言語処理
•
メールを読んで、会議/デートのスケジュール予定を読み取る
•
過去スケジュールから、ユーザの周期性行動を検出
•
嗜好の分析 (メール、SNSログ、対話から)
– 自然言語処理+推論
•
エキスパート・システム
– 顔占いなど
•
人工知能チャット
•
入力文をクラス分けして、応答
•
出前注文シーケンスを実現
•
写真へのタグ付け/つかみ出し
– 過去スケジュール/メールなどから
タグ付け
– 自然言語による、つかみ出し
ーーー
顔追跡ロボット
人間の顔を見つけたら、それを追跡する
•
阪急電車 判定
•
機械学習+推論
•
阪急電車を見つけたら、鉄道に関するニュースを読み上げる
•
●
テキスト無脳ちゃん対話 movie https://www.youtube.com/watch?
自動運転ソフトウェア「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を入手しても、即座に自動車を走らせることができるわけではない
Lispマシン
12
MIT系Lispマシン
●
MIT CONS, CADR
●
Symbolics, LMI Lambda
●
(TI ExplorerがMIT系か否かは知らない。スマン)
●
Lispのトップレベルで対話してなんでも行う
※symbolics.comは世界最初の”.com”
MIT CONS
Symbolics 36x0
Lispマシン,高級言語マシン

Lispマシンは、OSもLispで記述

Smalltalkマシンも、環境はすべてSmalltalkで記述

ウインドウ・システムなどもその言語で書く

ファイル・システムをIOプロセッサにやらせている軟弱なシ
ステムもあった
14
Symbolicsのキーボード
●
Control:左親指,DEL:左小指
●
‘(‘,’)’が、シフト無しで入力可能
●
憧れのMeta,Super,Hyper
りすぷ・しーんにゅある

Lispマシン・マニュアル一式も読め
る
http://www.bitsavers.org/pdf/mit/cadr/
しーんにゅある

和訳する気はない

Hackers’ dictionary も読もう

MIT Lispドキュメントを読むには
必須
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
Lispマシン
シミュレータ
Lispマシン
シミュレータ
●
Nano Pi Neo2で
動作している →
●
画面は、
他のLinuxマシンに飛ばしている
●
X Windowアプリケーションだから、
普通にできる
(NanoPiNeo2は、
ヘッドレス(表示器が無い))
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
Lispマシン・シミュレータ usim
●
x86Linux, Windows, Mac OS Xで動く
– 画面が縦長 768x1024 で、NotePCでは辛い
• プロジェクタにも映せない (^^;
●
オープン・ソース
●
Raspberry Pi 1で動く
– ARM-11@700MHz, メモリ:512MB
●
Nano Pi Neo2で動く
– ARM64@1GHz×4core, メモリ:512MB
●
49MBも使っていない
CADR ステータス・ラインがカッコいい
時々表示される、アンダーライン
– CPU,HDDアクセス,
ページ・スワップなど
を表しているらしい
時刻 ユーザ
マシン状態
RUN/
TYI(ユーザ・インプット)
この行には、マウス・ボタンでできることなどが表示される
ココ
CADR よく使うキー●
"Abort"(F4)
●
エラーでbreak levelに入ったら、abortして、top levelに戻る
●
Terminal(F1)+S
●
現在のプロセスをサスペンドして、切り替える
●
特に、元の地の対話部分だけになって、エディタ窓が消えた時、
エディタ窓に戻りたい時、行う。地のプロセスがサスペンドになる。
--Zmacsキーバインド--
●
C-S-E
– カーソルの直前のS式をエバる。結果は、エディタのステータス行に、表
示。そして、キー入力待ち。
●
C-S-C
– カーソルがあるS式をコンパイル。
●
Metaキーは普通に使える
CADR,Lispマシン
●
数の基数のデフォールトが、8進数 \(^^;/
●
(+ 2 7) 11⇒ ; 表示が8進, 値は9(10進)
●
(format t "~D” … )大事www
●
*print-base* , *read-base* が無い \(^^;/
●
さすが、Zeta Lispだぜっ! (涙)
Lispマシン・シミュレータ usim
●
ホスト(Linux)で、C-Cを2度行うと、メモリ・イメージをダンプする
●
次回 起動は、そのイメージが使用できる
●
HDDイメージと、メモリ・イメージは関係が深いので、バラバ
ラな状態のものを使用してはいけない
●
マクロ命令の実行のトレースなどが取れる
●
マイクロ命令の実行のトレースなどが取れる
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キーがイマイチわからない (^^;
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/
CADR or VLM
●
さすが、Zeta Lispだぜっ! (涙)
●
VLM=Symblics Open Genera が実行できる機械を試そうか…
●
Generaは、Common Lispになっている
●
私の持ってる Symbolics 3600(実機)は、
Genera7で、Common Lispなんだよぅ
Lispマシン文書
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ハードウェアの機微を知りたい若者に
さすがに、本当にちゃんと動いているだけのことはある
(低レイヤな)若い人は読んだ方がいい
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
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
おまけ
Lispマシン

Lispマシンのハードウェアについては

下記のスライドの、P.17〜P.21を参照
https://www.slideshare.net/takeoka1/lisp-lisp
以上

More Related Content

PDF
組み込み関数(intrinsic)によるSIMD入門
PPTX
C#とILとネイティブと
PDF
Ethernetの受信処理
PDF
いまさら聞けないarmを使ったNEONの基礎と活用事例
PDF
レシピの作り方入門
PDF
機械学習で泣かないためのコード設計 2018
PDF
ARM CPUにおけるSIMDを用いた高速計算入門
PDF
関数型言語ElixirのIoTシステム開発への展開
組み込み関数(intrinsic)によるSIMD入門
C#とILとネイティブと
Ethernetの受信処理
いまさら聞けないarmを使ったNEONの基礎と活用事例
レシピの作り方入門
機械学習で泣かないためのコード設計 2018
ARM CPUにおけるSIMDを用いた高速計算入門
関数型言語ElixirのIoTシステム開発への展開

What's hot (20)

PDF
目grep入門 +解説
PDF
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
PDF
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
PDF
ドキュメントを作りたくなってしまう魔法のツールSphinx
PPTX
RustによるGPUプログラミング環境
PPTX
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
PDF
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
PDF
フーリエ変換と画像圧縮の仕組み
PDF
Lispマシン ドキュメント和訳とか、 ちびLispとか
PDF
Rustに触れて私のPythonはどう変わったか
PDF
テスト文字列に「うんこ」と入れるな
PDF
イマドキのExcelスクショの撮り方
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
PDF
マルチコアを用いた画像処理
PDF
Marp Tutorial
PPT
Glibc malloc internal
PPTX
本当は恐ろしい分散システムの話
PDF
RHEL7/CentOS7 NetworkManager徹底入門
PDF
Linux女子部 systemd徹底入門
目grep入門 +解説
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
ドキュメントを作りたくなってしまう魔法のツールSphinx
RustによるGPUプログラミング環境
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
フーリエ変換と画像圧縮の仕組み
Lispマシン ドキュメント和訳とか、 ちびLispとか
Rustに触れて私のPythonはどう変わったか
テスト文字列に「うんこ」と入れるな
イマドキのExcelスクショの撮り方
コンテナの作り方「Dockerは裏方で何をしているのか?」
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
マルチコアを用いた画像処理
Marp Tutorial
Glibc malloc internal
本当は恐ろしい分散システムの話
RHEL7/CentOS7 NetworkManager徹底入門
Linux女子部 systemd徹底入門
Ad

Similar to Lispマシン・シミュレータの紹介 (20)

PDF
昔の外付けキャッシュ & コヒーレント・キャッシュ
PDF
Ichigojam ossc-170819
PDF
Common Lisp ユーザへのScheme紹介
PDF
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
PDF
無脳スマートスピーカを 越えレレレのレ
PDF
RISC-V User level ISA
PDF
PDF
Dataflow140711@Kernel/VM北陸1
PDF
Dataflow140711-a@Kernel/VM北陸1
PDF
What's Operating System?
PPTX
最小セット
PDF
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
PPTX
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
PPTX
ロボットシステム学2015年第5回
PPTX
2017年に「伽藍とバザール」を読み返す
PDF
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
PDF
Lisp_chibi_machine 190427
PDF
Windows Subsystem for Linux 2
PDF
そういえばRとはなんだったか
昔の外付けキャッシュ & コヒーレント・キャッシュ
Ichigojam ossc-170819
Common Lisp ユーザへのScheme紹介
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
無脳スマートスピーカを 越えレレレのレ
RISC-V User level ISA
Dataflow140711@Kernel/VM北陸1
Dataflow140711-a@Kernel/VM北陸1
What's Operating System?
最小セット
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
ロボットシステム学2015年第5回
2017年に「伽藍とバザール」を読み返す
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
Lisp_chibi_machine 190427
Windows Subsystem for Linux 2
そういえばRとはなんだったか
Ad

More from たけおか しょうぞう (20)

PDF
the original SoC "ORE_SoC" with "ROS2rapper"
PDF
俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...
PDF
俺のSoC, AX1001 ができたぞー. AX1001:the SoC for edge Devices and robot modules,
PDF
Using Retro-CPU with low aspirations, No FPGA
PDF
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
PDF
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
PDF
SOAR:Smalltalk on RISC
PDF
俺ASICと俺CPU“松竹V(しょうちくぶい)”
PDF
あるRISC-V CPUの 浮動小数点数(異常なし)
PDF
RISC-Vの可能性
PDF
RISC-Vの可能性
PDF
どうして昔の人は八進数でしゃべるのか?
PDF
PDF
Takep lpc1114-190614
PDF
Takep lpc1114-190613
PDF
初歩的な部品の知識
PDF
PDF
Mt basic as-os_on_danbot
the original SoC "ORE_SoC" with "ROS2rapper"
俺SoC (Laxer Chip, AX1001)の Prolog加速命令.New multiple branch instruction for RIS...
俺のSoC, AX1001 ができたぞー. AX1001:the SoC for edge Devices and robot modules,
Using Retro-CPU with low aspirations, No FPGA
"ros2rapper", Hardware implimentation of ROS2 communication Protocol without ...
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
SOAR:Smalltalk on RISC
俺ASICと俺CPU“松竹V(しょうちくぶい)”
あるRISC-V CPUの 浮動小数点数(異常なし)
RISC-Vの可能性
RISC-Vの可能性
どうして昔の人は八進数でしゃべるのか?
Takep lpc1114-190614
Takep lpc1114-190613
初歩的な部品の知識
Mt basic as-os_on_danbot

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