Today アクセスカウンター Yesterday アクセスカウンター

やっぱりハードウェア方面の人々には話が通じやすくてよいなと

ソフトウェアの人に 「仕様記述が… 検証が… 自動合成が…」 という話をしたとしても,「はぁ ? んな面倒で大げさなことしなくても,Ruby で書けばいいじゃん (プゲラ」 というような反応をされがちで,日々枕を濡らしているわけですが (大げさ w)

ハードウェアの世界は,バグがあったら Windows update 〜とかはできないし,ずっとβ版でいいや〜 Web アプリはいつでも bugfix できるし〜 という甘い世界でも無いので,検証のコストが馬鹿みたいに高いわけです.ハードにバグがあって 「なんだこのチップは ! 女将を呼べ !!」 と回収騒ぎになったら,あっという間に会社が傾きもう死んだも同然なので.豚肉や中国の兎肉は混ぜてなくても,「従業員も全部辞めて頂きますので」 となっちゃう.

もちろん,ハードウェアロジックの複雑度なんてのは,ソフトウェアに比べたら相対的に単純なんだけど.現在のハードウェアはどんどん大規模化複雑化が進み,テストなどの品質保証のコストの割合が,全行程の半分以上とかいう,ソフト屋さんの世界から見たら考えられないような異常事態になってきている.

そうなってくると,プログラムが「人間にとって」書きやすいか,とか読みやすいか,とかは何の意味も無くなってくる.どうせテストで全てのバグを洗い出すことなんて不可能だし,巨大な論理回路を全て人手で検証するなんてことは非現実的だから.

なもんで,ハードの人たちは,僕が今ソフトウェアに対して憂いているような事態が,既にもう現実になってきているわけで.仕様記述とか検証とか自動合成とかいう概念の重要性が,ツーカーに通じるような感じなのがうれしい (笑)

なつたん 2007.06.26 最近のへこみ

Lispの人って文章上手いよね。びっくりするくらい読んでいて面白い。C++/Perlの人ってのは混沌としている。ニッチな最適化の話をしていると思ったら、普通に晩飯とかアニメとかの話がでてくる。言語が性格を作るのかもしれない。C++とかPerlをやっていると、practicalな汚さを汚いまま受け入れられるようになるのだと思う。Lispの人たちは抽象度を上げていく過程で、晩飯の話は隠蔽されるのだろう。

おお,なにやらありがたい感じのお言葉が.どうもです.普段こういう話を書いても全然反応が無いので,うれしいなぁ.

なんか,僕は「Lisp の人」ってことになってますが (笑) 普段僕は,ET といううちの研究室独自の Rule-based なプログラミング言語しか使ってないので,全然 Lisp の人では無いです.プログラム変換の利便性のため,表記こそ S 式 (ソースコード上はルール形式でも書けるけど,内部では S 式になってる) ですが,セマンティクスが全然違うので.

あと,「晩飯の話」 とかのどうでもいいはなしは,別に隠蔽しているわけではなく,全部 mixi に書いてるだけですよ (笑)

ESLの本の5章から、bluespecなる言語を発見。こっちの記事からソースがダウンロードできます。見てみたけど意味がわからない。ESLの本によると、rule-based, declarative hardware specification language based on term rewriting らしい。素独を解いているのがN-queenを彷彿させてすごい。

ここらへんの,宣言的記述からの論理回路合成の研究は,うちの研究室でもやってる人がいます.

その人曰く,もともと,ここらへんの研究は,MIT のJames C. Hoe という研究者が,項書き換え系 (term rewriting system ; TRS) によるハードウェアの仕様記述と,仕様からの論理回路合成を考えたそうです.なので,今この分野は,MIT がリードしているみたい.ただ,表現力が TRS では不十分で,あまり性能も出なかったという話らしいです.

ちょっと 「term rewiting」 とか 「hardware synthesis」 とかでググっただけでも,いっぱいヒットしますねぇ.

上に挙げた Hoe さんのは,これなのかな ?
Hardware Synthesis from Term Rewriting Systems

なので最近は,いろいろアドホックなルールベース型の制約記述言語が考えられたりして,けっこうゴチャゴチャしてきているみたいです.

# 僕からすると,ここらへんの話は,全然新しいわけではなく.既存の C 言語のような逐次実行モデルや関数的な簡約モデルを持つ高級言語では,並行に動作するハードウェア間の制約の記述や検証が難しいので,過去にもいろいろ専用言語が作られている.例えば GHC/KL1 みたいな並列論理型言語も,その並列動作の意味論がハードウェアと親和性が高いので,いろいろ応用されたりしてきた.

Hardware synthesis from guarded atomic actions with performance specifications

もともとうちの研究室のボスは,同じように混沌としてきて進歩が停滞してしまった論理プログラミング (Logic Programming) や制約プログラミング (Constraint Programming) の世界をなんとかしようとして,今の汎用的な等価変換計算モデル (Equivalent Transformation Computation Model) を提唱したんですよね.

なもんで,それと同じように,ET のモデルと ET 言語という汎用的な枠組を使えば,そんなにゴチャゴチャいろんなプログラミング言語を新しく作らなくても,論理回路合成まで含んだ計算モデル全体を統合して,体系化できるのではないかという見通しをもって,うちの研究室の人々はみんな研究しているわけです.

まぁ,僕がやってる研究では無いので,どこまで論文ができてて書いて良いのかとはよくわからないし,そもそも研究内容の深いところまでは理解してないので,この辺で.




カコイイ !

なつたん 2007.06.26 Bluespecは凄い!

関数型言語で高位合成をがすでにプロダクトになっていた。

まずはこのPDF見て欲しい。
Future Programming of FPGAs
英語だけど、10ページくらいしかないから大丈夫。
40年前の話を持ち出して、ソフトウェアの世界では、FortranとCは成功したけどLisp/Prologは失敗したよね。
でもハードウェアの世界は違うよ。C/C++/Javaが失敗して、Bluespecが成功するよ。からプレゼンは始まる。

最後は、ソフトウェアの歴史から学んだ教訓を忘れるな!で終わる。
cf. why Fortran and C succeeded
cf. why Lisp/Prolog/Functional Languages (mostly) failed
cf. why automatic parallelization (mostly) failed

以前は,ソフトウェアに比べてハードウェア周りのエンジニアリング技術は遅れがちだったように思うけど.これからはどうなるかわからないねぇ.むしろハードウェアの合成技術の進歩がソフトウェアに大きな影響を与えて行くのかもしれない.そして徐々にハードウェアの柔軟性が増し続ける極限には,ハードウェアとかソフトウェアとかいう区別は過去の物になっていくのかもしれない.今後とも目が離せませんな !

コメント

Secret

Bluespecで一人ではしゃいでいます。

自分のblogの方に書きましたが、手でハードウェアの動きを書いている人間から見ると、記述にCLKもloopの概念も無いのが信じられません。SICPの最初の方で、両替の問題とか、パスカルの三角形を初めて解いたときの衝撃に近いです。

BluespecはおそらくMITからのベンチャー企業ですね。
つまりあろはさんの隣人の方も、Bluespec以上の性能が出せるならポールに出資してもらって起業できる可能性も十分あるということです。

> なつたん さん

あ,いや,なんか嫌味にも取れる書き方になっててすいません.そういうつもりではなかったのですが… (^-^;

>> ポールに出資してもらって起業できる可能性

やっぱり,いくら論文レベルの技術が進もうとも,実用化にはまだまだ長い年月がかかると思います.そもそも ET パラダイム自体が,高々 10 年ぐらいの新しい理論体系ですし.まだ抽象的なレベルの論文がようやく固まってきたような段階で,処理系も検証ツールも具体的な応用例レベルの事例も全然整備されてません.今すぐベンチャーがどうこうというレベルではないと思いますねぇ.

# うちのボスは,理論屋にもかかわらず,実用化や商用化にも積極的というエネルギッシュで珍しいタイプなのですが.

まだまだ私は全然ぺーぺーで口だけの人間ですが,多少アカデミック方面の感覚からすると,もっと現場の技術移転が進んで欲しいとは思いますが.実際に手を動かしてコードを書いて,着実に成果物を作って世の中を支えている社会人の人々を尊敬しています.

テストで半分くらいならソフトでもそれなりにあった気がしますし、異常事態というほどでもないような…

> shinh さん

ああ,最近はそうかもしれないですね.テストファーストとかも浸透してきてるみたいですし.

要するに,検証のコストに比べれば,プログラムを書くコストは相対的にどうでもよくなってきてる,ということが言いたかったのです.
プロフィール
  • Author:あろは (alohakun)
  • 京都のデバッガベンダーに勤めるアラサー会社員。

    本ブログの内容は,あくまでも個人的な感想や意見であり,会社の意見を代表するものでは一切ありません.

    連絡先 : alohakun ___at___ gmail.com
    mixi : http://mixi.jp/show_friend.pl?id=182927
    twitter : http://twitter.com/alohakun













    あわせて読みたい


    この日記のはてなブックマーク数


    スカウター : ホワット・ア・ワンダフル・ワールド


    Map
FC2カウンター
ブロとも申請フォーム

この人とブロともになる

最近のコメント
リンク
最近のトラックバック
人生の残り日数
日本人男性の平均寿命は 28700日.
RSSフィード
カテゴリー
  1. RSSリーダー