さらに学ぶには
本書で扱った各分野を深めるための、定評ある資料を挙げます。
コンピュータアーキテクチャ全般
Section titled “コンピュータアーキテクチャ全般”- 『コンピュータシステムの理論と実装』/ CS:APP — 英語では Computer Systems: A Programmer’s Perspective (Bryant & O’Hallaron)。 プログラマ視点でハードウェアを学ぶ定番の教科書です。 本書のPart Iを体系的に深めたい場合の第一候補です
- What Every Programmer Should Know About Memory (Ulrich Drepper) — メモリ階層とキャッシュについての古典的な論文です。 2007年の文書ですが、2章の内容の原典として今も読む価値があります
- Agner Fog’s optimization manuals — x86の命令レイテンシ表や最適化技法の網羅的資料。 アセンブリレベルの最適化に踏み込むなら必携です
Rustの性能
Section titled “Rustの性能”- The Rust Performance Book — Rustの性能改善手法を簡潔にまとめた無料の電子書籍です。 本書のPart IIの実務的な補完として最適です
- Rust Atomics and Locks (Mara Bos) — 5章で「1冊の本になる」と書いた、アトミックとメモリオーダリングの その1冊です。無料公開されています
- The Rustonomicon —
unsafe Rustの公式ガイド。
get_uncheckedなどに手を出す前に
- criterion — ベンチマーク(8章)
- samply — プロファイラ(8章)
- cargo-show-asm — アセンブリ表示(8章)
- Compiler Explorer — ブラウザでアセンブリ確認(1章)
- cargo-flamegraph — フレームグラフ生成
- WebGPU仕様 / WGSL仕様 — 一次情報です
- Learn wgpu — wgpuの定番チュートリアル。グラフィックス寄りですが、 11章の先へ進むのに適しています
- wgpu公式サンプル — 本書のコードもここのhello-computeを出発点にしています
- CUDA C++ Programming Guide (NVIDIA) — CUDAに進む場合の一次資料。 ワープ、共有メモリ、コアレッシングなど、9〜10章の概念の NVIDIA版の詳細が学べます
- burn / candle — Rustの機械学習フレームワーク。「行列演算を速くしたいだけ」なら 自作カーネルより先にこちらを検討してください
応用編の先へ
Section titled “応用編の先へ”- Computer Architecture: A Quantitative Approach (Hennessy & Patterson) — アーキテクチャの定量的研究の standard。Part IVの先の世界です
- Operating Systems: Three Easy Pieces (OSTEP) — 仮想メモリ(14章)とOSの層(27章)を体系的に学ぶ 無料公開の教科書です
- Systems Performance (Brendan Gregg) — 27〜28章の実務面 (計測・OS・クラウド)の決定版です
- Programming Massively Parallel Processors (Hwu, Kirk & Hajj) — Part VIのカーネル最適化をCUDAで深める定番教科書です
- Async Book / tokioチュートリアル — 19章の先の async実務です
- crossbeam — 17章の ロックフリー既製品。HdrHistogram — 28章のレイテンシ分布計測の定番です
- iai-callgrind — 命令数ベースの安定したベンチマーク(28章)
本書のコードについて
Section titled “本書のコードについて”本書のすべての実行可能コードは、リポジトリのsrc/snippets/
(ブラウザ実行対応)とexamples/(ローカル実行、GPU含む)にあります。
数値は筆者の環境(Apple M4 / Rust Playground)での実測であり、
環境が違えば数字も変わります。ぜひ手元で再計測してください。
それこそが8章で学んだことの実践です。