Deep Learningを「Brrrr」と速くするための第一原理ガイド
深層学習の高速化は、Compute / Memory / Overhead の3つに分けて考えると整理しやすい GPUを速く使うには、まずどこで時間を食っているかを見極めるのが大事 多くの小さな演算は、計算そのものよりメモリ往復で遅くなる そこで効いてくるのが operator fusion(演算のまとめ実行) 速さは「理論上のFLOPS」だけでは決まらず、データ移動の少なさがかなり効く PyTorchやGPU最適化の話に見えるが、考え方はかなり汎用的 元記事の主張はかなりシンプルです。 深層学習を速くしたいとき、闇雲に「このテクニックが効くらしい」「とりあえず in-place にしよう」みたいな小技を積むのではなく、何に時間を使っているかを第一原理で分解して考えよう、という話です。 ここは個人的にすごく好きなポイントです。 性能チューニングって、経験則が強すぎて魔術っぽく見えがちなんですよね。でも著者はそこに対して、「いや、まずは大きく3分類しようよ」と言ってくる。こういう整理の仕方は、地味だけど本当に強いと思います。 --- 記事で
papoo.work