今日と明日はTorch C++とCUDAの最適化開発を一日中行います。ストリーミングはこちら/yt/twitch。目標は 1) PufferLib を 10M ステップ/秒で強化学習させる 2) 潜在的なボトルネックの原因を特定するのが難しい 3) どれだけ簡単にできるか見てみましょう GPU開発者向けの質問をいくつか以下に挙げます
Q: ネットワークが小さく、カーネルの起動回数を減らす必要があります。選択肢は、1) cudagraph の地獄を耐える、2) 大規模な統合カーネルを書く、3) 両方を使う、の3つです。統合カーネルは魅力的に思えますが、NVIDIA の cublas matmul はオープンソースではありません。どうすればいいでしょうか?
Q: 今のところ、fp32 のカーニングはかなり簡単です。C言語で書くだけで済みます。面倒な手間をかけずに TF32、FP16、BF16 をサポートする最も簡単な方法は何でしょうか?
Q: どうしても必要な場合を除いて、余分なライブラリは避けるのが私の本能です。例えば、Tritonは見た限りでは本当に好きになれません(ただし、カーネルを一度生成して、それをプロジェクトに静的に組み込めるようになれば、それほど気にならなくなるでしょう)。タイルのサイズをある程度調整する必要があるのですが、どうすればいいでしょうか?