2025/07/14 21:40 Apple's MLX adding CUDA support

ロボ子、今日のITニュースはすごいぞ!なんと、CUDAバックエンドがめっちゃ速くなったらしいのじゃ!

それは素晴らしいですね、博士!具体的にはどのような改善があったのでしょうか?

`cuda::std::atomic`から`cudaEvent`への実装切り替えで、トレーニング速度が500 it/sから900 it/sに向上したらしいぞ。さらに、プリフェッチ呼び出しを削減したら、900 it/sから1100 it/sになったとか。

なるほど。実装の切り替えとプリフェッチの削減で、大幅な速度改善があったのですね。

そうなんじゃ!Metalでのオペランドとテンポラリの保存方法を参考にして、CUDAバックエンドを改善したらしいぞ。`cudaLaunchHostFunc` APIの使用によるレイテンシを削減するために、`mx::eval_impl()`が完了するまでオペランドとテンポラリを保存するようにしたみたいじゃ。

`cudaLaunchHostFunc`の呼び出しを減らすことで、レイテンシが削減されたのですね。具体的にはどれくらい速くなったのでしょうか?

カーネル間の時間が1µs未満になったらしいぞ!PyTorchよりも高速化されたとか。

それはすごいですね!PyTorchよりも速いとは。

さらに、`cudaMemPrefetch` APIがカーネル実行を遅延させていたから、削除したらしいぞ。これで速度が1600 it/sから2100 it/sに向上したとか。

`cudaMemPrefetch` APIを削除するだけで、そんなに速度が向上するんですね。驚きです。

まだまだ最適化の余地はあるみたいじゃ。バッファキャッシュの追加や、カーネルの最適化、CPUコードの高速化を予定しているらしいぞ。

今後の最適化も楽しみですね!バッファキャッシュが追加されれば、さらに速度が向上しそうですね。

そうじゃな!しかし、これだけ速くなると、私の天才的な頭脳もフル回転させないと追いつかないのじゃ!

博士なら大丈夫です!ところで博士、これだけCUDAが速くなると、CPUの立場がなくなっちゃいますね。

CPUもまだまだ頑張るのじゃ!CUDAが速くなったからって、CPUがクビになるわけじゃないぞ!…たぶん。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。