GPU機械学習環境の構築2022/11/29 18:50

機械学習を手軽に試すため「kepler世代,Compute Capability 3.5」な中古GPUカード(ハーフサイズで外部電源不要)を3千円で購入した。

使っているPyTorchのバージョン(1.10.0)に合わせて,nvidia-driver(470.141)⇛CUDA(10.2)⇛cuDNN(7.6)の順番にインストールして,morseangelを試したら, PyTorch no longer supports this GPU because it is too old. と表示されてCUDAが使えない!

>>> print(torch.cuda.get_arch_list())
['sm_37', 'sm_50', 'sm_60', 'sm_70']
>>> print(torch.cuda.get_device_capability())
(3, 5) 💦

この条件にあう・入手可能なGPUはPascal世代になるが,予算オーバーなので, Kepler世代のグラボ向けにPyTorchをビルドする記事を参考にして 野良ビルドして切り抜ける。

$ pip3 install torch-1.10.0a0+git71f889c-cp36-cp36m-linux_x86_64.whl 
...
>>> print(torch.cuda.get_arch_list())
['sm_35'] 💖

が,morseangelの動作はCUDAを使ってもモッサリしてた。

nn-morseはRuntimeError: CUDA out of memory.が出て学習に至らず。GPUメモリは2GBなのでシカタガナイか。 データサイズが96MiBと少ないのに,2GのGPUメモリに載らないのがツライ...

Tried to allocate 96.00 MiB (GPU 0; 1.95 GiB total capacity;
1.17 GiB already allocated; 79.25 MiB free; 1.37 GiB reserved in total by PyTorch)