インラインアセンブラの思い出

コンピュータ将棋をモータースポーツに例えて話すことが多い。

記憶に薄いがもしかしたら元ネタこれかなって気がする。

 

Supercomputing Contest - Supercomputing Programing Contest Official Site

SuperCon は、1995年より始まったプログラミングコンテストです。

(中略)

パソコンが乗用車ならば、スーパーコンピュータはレーシングカーです。

 

20年以上前になるが一度エントリーさせて頂いた気がする。動機は単純一度スパコンを触ってみたいって好奇心だけである。結果は完走勢で最下位近くだったように記憶している。

当時の雑な記憶であるが覚えているのは,一般向けの募集がかかっていた風になっているが上位陣は普段から身近にスパコンがある専門分野の大学院生で,当時テーマはFFTの高速化だったがトップ勢は中堅層の2桁も3桁も速かった。大半がms/opで計測されたものが上位2,3人だけμs/opで表示されていた。コードも公開された部分は見たが魔法使いの術式のように見えた。

要するにスパコンってのはそういう人が使わないとものすごくもったいないものなわけだ。全く新しい世界を覗くことができたので,これは良い経験だったように思う。

もちろんこれは当時の話でパイプラインの深いスパコンは今の主流ではない。

 

そういえば当時卒論の実験で周波数解析を行っていたのも偶然でFFTについてはPCレベルの高速化は既にやっていた。当時大学院生のS先輩には解析時間が短縮され感謝されていた。ちょっとは自信があったのかもしれない。

 

その後音楽CDからmp3と言う圧縮形式へのシフトが始まる頃,mp3エンコーダのコンテストがネット上であった。

個人的にはそれより前にIBMラベルのCyrix 6x86でmp2を実運用していたので少し世間より先行していた風に思う。mp2を用いた理由は当時の6x86でmp3はリアルタイムで再生するにはやや高負荷だったからだ。低ビットレートだとAMラジオのような音質になる。保存先もCD-Rがまだなかったので300MBとかのHDDだった。

mp2もmp3も本来はMPEGと言う動画圧縮規格の一部で音楽部分の圧縮規格である。mp2の方が簡単でmp3は高度な技術という理解でよい。もちろんその後カスタムICが出て簡単に再生可能となった。

こういった背景で個人のCDコレクションをmp3化することが流行の兆しであったが,mp3の圧縮は非常に時間がかかった。圧縮作業は再生の何倍も時間がかかる。ということで圧縮ソフトの競争である。わかる人はわかるが音声の圧縮にはFFTが用いられている。私は一度完敗したので一度完勝することができたわけだ。と言ってもオープンソースなので金銭的恩恵は特になかったし,トップスコアも一度だけでその後3DnowやSSEなど新命令を使う他のコードが圧倒したように記憶している。

 

というようなことをコンピュータ将棋のプログラムのインラインアセンブラを見ると思い出すのである。もちろん別のレイヤーの高速化も相当色々あるけどね。