💻
Google ColabでCUDA.jlを試してみた
Julia言語がGoogle Colabで正式にサポートされました! Google Colabでは有料プランでGPUが使えるので, CUDA.jlを試してみようと思います.
ランタイムの変更
T4 GPUは無料で使えるとのことですが, ここではA100 GPUを使ってみました. お試しとして月額プランではなく Pay As You Go で 100コンピューティング ユニット1179円(2025/3/14 15:15)を購入してみました. ランタイム > ランタイムのタイプを変更 からGPUを選択します.
ノートブック
下記のリンクからノートブックにアクセスできます. 行列積と固有値分解がGPUで高速化できることが確かめられました. 3時間ほど使って何回か実行し直してトータルで23ユニット消費しました. 1回流すだけならここまで消費しませんので, 実行してみてください.
速度の比較
リソースを抑えるため1回きりの測定しかしていません. ちゃんとしたベンチマークが気になる方はBenchmarkTools.jlで測定してください. Nは行列サイズ, 単位は秒, CPU は 12 × Intel(R) Xeon(R) CPU @ 2.20GHz ですが並列化されていないと思われるのでシングルコアだと考えてください(ちゃんと調べてません). GPU は A100 です. 行列積, 固有値分解のいずれも行列サイズが小さい場合はGPUを使うとむしろ遅くなっており, 10000×10000ではかなり早くなっていることがわかります. 1分以上かかっていた固有値分解が3秒かからずに終わることには驚きました.
行列積
N | CPU | GPU | CPU/GPU |
---|---|---|---|
3 | 0.000001 | 0.333959 | 0.000003 |
100 | 0.000126 | 0.000213 | 0.591549 |
1000 | 0.013791 | 0.000596 | 23.13926 |
10000 | 5.098877 | 0.139724 | 36.49249 |
固有値分解
N | CPU | GPU | CPU/GPU |
---|---|---|---|
3 | 0.000398 | 0.533481 | 0.000746 |
100 | 0.001979 | 0.006722 | 0.294406 |
1000 | 0.221054 | 0.034541 | 6.399757 |
10000 | 73.039423 | 2.743861 | 26.619214 |
参考文献
公式ドキュメント
解説記事
Discussion