第2話 デコード

「コンピュータの中には、高速化の工夫がたくさん仕込まれているわ」


 静華さんは言った。


「たとえば、投機実行と分岐予測」


 学生室の彼女の机の前に、椅子を並べて、僕は彼女の流れるような説明を聞く。


「コンピュータは一方向に計算したほうが速い。メモリをまとめて読み込んだり、処理をパイプライン化したりするからね。でも、分岐、つまり処理をジャンプさせたりすると、この一方向が乱れることになる。分かる?」


「分かります」


「そこで投機的実行をしておくの。条件Aが成立した時と、成立しない時にそれぞれ行われる次の処理を両方実行してしまって、結果的に条件に当てはまったほうを採用するようにする。一か八かだけれど、当たったらラッキーね」


「なるほど」


「問題は分岐処理なので、分岐がどちらになるのかを予測する技術が必要になるわ。これが分岐予測。最近のプロセッサだと、人工知能にも使われているニューラルネットの簡易版を組み込んで分岐予測しているものもあるわね」


「すごいですね」


「次にやることが予測できるのなら、高速に処理できるのよ。メモリアクセスだって、次にアクセスする場所が予測できるのなら、前もってキャッシュラインに載せてしまえばいいわけだしね」


「はあ」


「というあたりの細工をもうちょっと頑張ってみようってのが、最近の私の研究」


「はあ」


 半分くらい分からなかったけれど、とりあえず感心しておく。


 僕らが話しているところに、ぬっと(本当にぬっとという感じなのだ、この人は)男性が現れた。僕の父さんであり、静華さんの先生である、この研究室の准教授だ。


「桐生さん、どうですか?」


「どう……うーん、推論エンジンの性能は悪くないのですが、あとはどこにどう組み込んで、何をどう学習させるかですね」


「ちょっといいですか?」


 父さんは静華さんの机の端末の画面を覗き込んだ。


「もしかして、高位合成とVHDLを混ぜています?」


「はい、推論エンジンは高位合成で、ベースにしたIPコアのコードがVHDLなので、連携させています」


「その箇所のオーバーヘッドは?」


「問題ないレベルだと思います。テクニックに依存している部分はありますが、そこはまあ、経験値でカバーっていうか」


「力技コーディング得意ですものね」


 父さんはさらに、ぬっと画面に接近する。必然的に、静華さんにも接近したのだが、どういうことか変な姿勢になって、一定以上は近づかないようにしているように見えた。静華さんもそれに気づいたのか、


「先生、なんか無理してます? なんか、こう、無理矢理に距離をとっているように見えるんですけど。15cmくらい?」


「まあ……だって、こんなおじさんに近づかれたら嫌でしょう」


「そんなことないです!」


「気を使わなくていいですよ。それに、最近大学がうるさいんですよね、セクハラ委員会とかが」


「そんな委員会があるんですか」


「ありますよ。セクハラ・パワハラ・アカハラ全部合わせて、ハラスメント対策委員会ってのがあります。いや実は、僕も委員のひとりでしてね」


「大変そうですね」


「委員会の会議なんかで時間とられるってのもあるのですが、訴えられた事例とか見ていると、明らかにアウトってのと、ちょっとグレイってのと千差万別なんですよ。でもそういうのを見ちゃうと、下手なことはできないなあと思ってしまいます」


「それで15cm距離を取っているんですか」


「いやそれは……だって、おじさんに接近されたら嫌なものなのでしょう?」


「そんなことないです」


 とかいうやりとりを見ていた僕は、気づいてしまった。多分、静華さんは父さんのことが好きなんだ。妻子がいるから、どうこうしようってのはないのだけれど(そして妻子ってのは、僕と母さんのことなんだけど)、人より15cm先を行こうとする父さんのことを尊敬していると同時に好きなんだと思う。


 だけど、僕が家で見ている父さんはそんな高性能CPUなんかじゃなくて、むしろスリープしている時間のほうが長い。スリープってのは、つまり寝ているってことだ。


 昼間のパパはなんとかっていう歌があるので、もしかしたら研究室での父さんのCPUはもっとバリバリ動いているのかもしれないけれど、今の静華さんとのやりとりを見ている限りは、ぬっとした感じとか、捕え所のない感じとか、やっぱり家のスリープ状態の姿とそんなに違っているようには見えない。


 それでも静華さんにとって、父さんが特別なのだとしたら、不思議なことだなあと思う。


 そしてなんか、ちょっと、くやしいなあとも思う。


 父さんが去った後の静華さんは、僕に向かって猛烈に説明を始めた。


「あのね、少年。高位合成ってのはね、高級言語でFPGAのプログラミングをすることでね。これまではVHDLみたいな低レベルの言語が一般的だったんだけれど、高級言語をばしばしコンパイルしてLLVM経由してVHDLに落とせるようになったのね。ただ、私が使っているオープンなRISCプロセッサのコアの実装がVHDLなんで、そことのつなぎ込みは頑張らないといけないんだけれど、頑張ったってこと。うん、頑張った。そこは頑張っているんだけれど、全体の性能がねぇ……」


「悪いんですか」


「悪くはないし、推論エンジンの精度はいいんだけれど、狙ったところにビシッとこない感じ?」


「推論って、要するに分からないことを予測するってことですよね? 狙ったところに当たらないのなら、片っ端から予測すればどれか当たるんじゃないですか?」


 静華さんはドラマで出てくるみたいに、指を左右に揺らしながらチッチッチと言った。


「それだとコストがかかりすぎる。トレードオフで負けるわ」


「難しいですね」


「そうなのよ。推論がね……推論が……あれ? 全部予測ってのは……そうか、分岐だけじゃなくて前部予測するってのは……アリ?」


「さあ」


「アリな気がしてきたわ。ありがとう少年、明日の日曜日の朝に、ここに来れる?」


「何時頃ですか?」


「ニチアサタイム。つまり7時半から9時の間」


「来れると思いますけど」


「じゃあ来て。私はこれから、徹夜モードにするから」


「はあ」


 僕は、無理をしないでくださいねとだけ言って、研究室を出た。


 静華さんの目が、やけにギラギラとしているのが気になっていた。


  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る