パタヘネ、四則演算と数値表現の話に入りました だいぶ前に学校で習った、懐かしい 乗除算がムーアの法則により回路規模大きくしてでも高速化が図られているのは本質を示していて良い 頻出する処理はコストをかけるだけのメリットが大きい、 ムーアの法則万歳!そしてさようなら
パタヘネのつづき AVXを使った並列処理の実現で、C言語のプログラムが8倍弱に高速化!スピードと引き換えに可読性がどんどん犠牲になっていく 浮動小数点数も、精度が大事というわけでもなく、機械学習等の分野ではより少ないビット数で高速並列処理できる構造にしてたりする 要件定義大事
パタヘネ、浮動小数点のつづき 浮動小数点数向けの四則演算の実現についてでした 小数点の位置とゲタ履き表現(これは表示形式に依存するけど)と丸め処理に注意する、というまあ自然な話 前の動画作った積和演算を実現するメリットとして、丸め処理の回数削減による精度向上が挙げられてた
パタヘネのつづき x86の掘り下げパートでした 互換性が必須なせいで積み上がった複雑な命令セット その中には使うべきではない非効率な命令も残っていて…でも互換性のために消せない 辛い 作り直したほうが…まあ無理か 一般的な場合を最適化する これホント大事
パタヘネの続き 命令レベルの並列処理 語として聞き覚えのあるVLIWとかスーパースカラができた コンパイラが頑張ってパイプラインをうまく流す(静的)か、 コンパイラがちょっと頑張ってプロセッサがいい感じにやる(動的)か の違い 例外発生時にどうするかとかもあるのややこしい
パタヘネの続き パイプライン処理の話 演算リソースを休ませないため、わんこそば方式でじゃんじゃん処理を流すやつ かと言ってそんな簡単にできる話でもなく 前の計算が済まないとできないとか、分岐結果がどうなるかわからんとか… 多少複雑化してでも効率よく動かせているのがすごい
パタヘネ4章に入りプロセッサ設計の話を読んでいます バス設計を急ぎやる予定はないのでざっくり 必要な命令を構造に組み上げて設計が進んでいく …と思ったら最終的に「ま、今はこんなの使わないんだけど」でバッサリ いや今までの話なんだったんだ 真理値表懐かしい