【Vol.2】割り算って難しいよね

系で割り算は悪です.なぜならば,CPUは割り算を苦手とするからです.割り算は足し算や掛け算の10倍はかかります.

世の中には物好きがいて,様々なCPUの命令を調べている人がいます

上記の報告では,様々なCPUのLatency(CPU時間の遅れ)を調査しています.DIV命令(割り算)はADD命令(足し算)やMUL命令(掛け算)と比べると10倍ほどの差が出ていることがわかります.

CPUには割り算が苦手という特性があるため,繰り返し計算する場面,特に数の逆数(1 / N)はあらかじめ計算しておいて,掛け算で対応するように工夫します.ゲームとかだとフレーム落ち(画面のカクつき)がシビアなので,このような工夫を随所に凝らすわけです.

他にも,サイン波やコサイン波,ルート,指数関数などを使う場面(物体の回転を表したいとき,長さを求めたいとき,微分・積分をするとき)では,あらかじめ数字が決まっているのならばソフト起動時に計算するテクニックは昔から今までずっと使われているテクニックです.

今の情報学部でこのようなテクニックを教える教員は変態だと思いますが,情報系ならば知らないと開発したソフトが重くなります.

そういうわけで,情報系をやると割り算から程遠い位置にいることになるわけです.「いや,そもそも電卓使うしnumpy使えばすぐ終わるでしょ……」と思った情報系学生は多いと思います.

Vol.1では,私が情報系から工学系に移った,という話をしました.工学系ってすごく大変で,割り算をいっぱい使うんです

例えば,今までメートルを使ってたけどミリメートルに直したいよね,ってことがよくあります.工学系なら「次元解析やって単位落とせばええやん」と即答できるのですが,情報系だと「theanoで計算できないから単位落とすやん」って思うわけです.

今の情報系ではテンソルと呼ばれる謎の単位で概念を省略します.N(ニュートン)という記号を見ると「リンゴが落ちたのに気づいた人,もしくはジョブズ」ぐらいの認識だと思います.おぞましいですね.

情報系は論理があって理論がありません.すなわち,抽象化できるなら扱わないという選択をします.ソフトウェアの設計・開発でもブラックボックス化が重要と言われていて,誰かが開発した内容はその中身がわからなくても使えるように設計することが重要だと書かれています.

つまるところ,工学系が物理を勉強している横で「別に数値計算するだけならニュートンなんて単位いらなくね?」とか五寸釘で打ち殺されるレベルの情報戦がなされます.

工学系は問いかけます.「じゃあ,パスカル(平面あたりにかかる力)の単位をミリメートルに直せるのか?」と.

ここから先は

2,490字
この記事のみ ¥ 100

普段は研究していて生活が厳しいのでサポートしてくれる方がいるととても嬉しいです.生活的な余裕が出ると神が僕の脳に落書きを残してくれるようになります.