第112回 「デジタル家電向けCPUの規格統一」に見る「地道な取り組み」:頭脳放談
「デジタル家電向けCPUの規格統一」というニュースに、「ひと言でいい表す」難しさと、効率向上への「地道な取り組み」の大切さを考えた。
実をいえば記事が出たタイミングでは読んでおらず、最近、教えてもらって読んだのだが、タイトルを見て「おやおや?」と思ってしまった。日本経済新聞(日経ネット)の「デジタル家電向けCPU、国内勢が規格統一へ」という記事のことだ。そんなすごい話があったんだっけ? このタイトルだけ見ると、押されっぱなしの国内各社が大連合を組んで乾坤一擲(けんこんいってき)、起死回生の一手を打つ、という筋書きが想像されてしまう。これだと第二次大戦における「バルジの戦い」か「栗田艦隊のレイテ湾殴り込み」に匹敵する壮途(そうと)というか、無謀な挑戦という雰囲気なのだが、それにしては扱いが小さいし、だいたい各社から力の入ったニュースリリースも出ていないようだ。
「ひと言でいうと」の危険性
この記事を要約すると、「富士通、東芝、パナソニックなどがデジタル家電や携帯電話に搭載するCPUの規格を統一。早稲田大学の笠原博徳教授が考案したソフトウェア規格に対応するCPUを各社が開発することで、ソフトウェアの開発の手間を省く」といったものだ。
どうも、どこかでフィルタがかかったのか、誰かが「前向き」なことをいい過ぎたのかして、それをまたまともに受け止めて「ちょっと」インパクトの強いタイトルに作り過ぎた感じである。ただ調べてみると、実際は地道な取り組みのようで、センセーショナルでもなく、実現性も十分にありそうだ。
それにしても、技術的に深いものは、関係者以外のマスコミの方を含めた一般の人には、なかなか理解してもらえないことが多いように思われる。よく聞く言葉がある。
「ひと言でいうとどうですか?」
ありがちな質問かもしれない。その記事が書かれるまでの伝達経路のどこかでそういう言葉が発せられたかどうかは知らない。一般論として、「この言葉は危ない」と指摘したい。まぁ、書く方にすれば(こうして書いている自分も例外でないが)、なるべく多くの人に読んでもらいたいから、平易に分かりやすく、誰にでも「分かる」ように、また、忙しい人に多くの時間をとらせないように「要点だけを短くまとめて」書こうとする。どの記事がそうだとはいわないが、「やさしく」した結果、まったくもって意味不明になる、ということがタマにあるのだ。自分も気を付けなければ。
「高度な技術」を「ひと言」でまとめられる、という可能性は絶無ではないが、その「ひと言」はまた「高度な数式」であったりし、その理解のためには、その分野の何年間かの勉強が必須、ということがある。だいたい、ひと言、二言の言葉で本質が分かるようなものなら、とっくに誰かがやってしまっている、といってもよいだろう。それも3、4世紀も前にである。すでに21世紀になったはずだが、例えば2世紀前の19世紀の物理法則を読者が持っている「一般常識」として想定していいのは、専門書とか学会とかのレベルだけであろう。「マックスウエルの法則」を考えてもらえれば、言いすぎでないことは分かるであろう(マックスウエルの法則は、古典電磁気学の基礎ともいえるものだが、簡単に説明できないので、検索などして調べていただきたい)。マックスウエルは新撰組の土方歳三と同世代である。
しかし応用した商品は、まず誰でも使えるのが普通だから、使えるものはみんな分かった気になる。実際の技術そのものは「魔法」のようなものなのだが……。そこで「魔法」の中を詮索することは止めて、その「期待効果」をもって「技術を理解」しようとすることになる。ところが新技術の「可能性」は大抵の場合、非常に大きい。別に法螺(ほら)ということでもなく。低い確率でも起こり得るのであれば「可能性」として否定しないのが自然科学系の「見識」であろう。そして普通、そんな確率は「現時点では」計算不能である。結果、「期待効果」が膨らみすぎ、実像とは大分違った異形のイメージだけが一人歩きをするようなことになる。
地道な効率化が成果を生む?
今回、あわてて関係記事を漁ってみて、ようやく理解したつもりになったところでは、「通常のシーケンシャルなプログラム・コードに埋め込むことで、そのプログラム・コードの中に存在する並列性を効率よく抽出し、マルチコア・プロセッサ上で、効率よく実行できるようなプログラム・コードを自動生成できるようにするためのAPIとそれを使うためのコンパイラ(かなり高度ではあるけれど、一種のコンパイラ・プリプロセッサに見える)を作ったので、参画している各社で応用するつもりです」といった話のようだ。いまいち、どこの会社がどのくらい本気で、いつごろ、どのくらい応用するつもりなのかは分からない。
いまや各社ともマルチコア・プロセッサは普通だし、そのハードウェア能力を引き出すためのソフトウェアの方がネックとなっているのは周知の事実であるので、ターゲットとしては、極めて適切なものである。
また、大きなリスクもなさそうである。各社の既存のアーキテクチャはそのままに、APIをサポートするような比較的小規模なソフトウェアかハードウェアを設計し、既存のコンパイラの上に並列化をサポートするためのもう1つのコンパイラを被せればよいようだ。これで人手によるローレベルのプログラミングを何カ月も掛けてガリガリとやって性能を出していたところを、大幅に省力化できるのなら「ツールとしては」万々歳だ。昨今、どこの会社も乏しい資金の中でやりくりしているので、なにもかも自社でまかなうような時代ではない。他社と同じものであっても、大きなリスクがないのであれば、使えるものは使ってみる、というのが普通の態度であろう。差別化はまた別のストーリーだろう。
しかしツールの性能の一部だけを取り出して、これを使えば「すぐに性能が何倍にもなる」あるいは「『世界』を『征服』できる」というような理解は大間違いだろう。確かに、人間の頭ではなかなか高い並列性を生かしきるようなプログラミングは難しく、今回のツールはその難しさを軽減してくれはする。けれども、「ある」ハードウェアの限界を超えるものではない。「高速化」という形か、同じ性能で「より低い消費電力」という形かは選択の余地があるが、ともかくハードウェアの性能を「使い切る」ための「お道具」である。確かに、その「お道具」としての性能は悪くないようだが、別に電動のドライバがなくてもネジを締めることはできるのだ。
「効率化」というのは、ある特定の局面で何倍もの効果を上げることがある。実際、ベンチマーク・テストの結果を見ればそうだし、それを比較すること自体は間違いではない。しかし、「効率化」が効かない局面もまたあるのが普通だ。例えば、全体として40秒の仕事があり、うち20秒分は「効率化」のおかげで半分の10秒になったとしても、残りの20秒はそのままの時間がかかってしまうような仕事だったとすれば、30秒の仕事になる。エンジニアリングとしては10秒の短縮は大きな成果ではあるが、人間の感覚からすれば、40秒が30秒でもまだまだ長いかもしれない(人間の感覚は対数目盛りだ、ということを思い出すともっとよいかもしれない)。
何も成果を貶そうというのではない。進歩のためにはいくつもの「効率化」を絶えず積み上げ、追求し続けることが必要だ、といいたいのだ。そういう努力を積み上げて、ようやく対数目盛りの1目盛りアップが達成され、一般の方々の「期待効果」に追いつくのである。
そのためには「現代の魔法」にしか見えないような高度な理論やロジックを積み上げ続ける必要がある。「バルジの戦い」のように最初はうまくいっても補給が続かず頓挫したり、「レイテ」のように「なぞの反転」をして機を逸したりしては、折角の企図も身を結ばない。
健闘を祈る!
筆者紹介
Massa POP Izumida
日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部を経て、現在は某半導体メーカーでRISCプロセッサを中心とした開発を行っている。
「頭脳放談」
Copyright© Digital Advantage Corp. All Rights Reserved.