Tesla K40をUbuntuで動かす。CUDAとPytorchの環境構築とエラー対処方法も解説

機械学習
この記事は約6分で読めます。
※記事内には広告を含む場合がございます

Nvidia Tesla K40c とは?

Nvidiaのサーバー向けGPU、Kepler世代
現在中古で1~1.5万円ほどで取引されています
この価格帯でVRAM12Gは魅力的!

なお本記事ではNvidia Tesla K40 “C”
を扱います。以降はK40と呼びます。

K80との比較

K80はパッシブ冷却であり、ファンが付いていません。
自力で冷やす必要があります。
しかしK40はファンが付いています!

また、K80の電源コネクタは特殊です。
別途変換ケーブルが必要な場合が多いでしょう。
一方でK40は普通の8+6ピンです。

Ubuntu + CUDA + PyTorch で動かす!

基本的には一般的なCUDA環境のインストールと同じです。
K40でつまずきやすい点に絞って解説します。

Nvidiaドライバインストール

K40のドライバーバージョンは最大で、nvidia-driver-470です。

以下のコマンドで最適なドライバーバージョンとパッケージ名が表示されます。

$ sudo apt install -y ubuntu-drivers-common
$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001024sv000010DEsd00000983bc03sc02i00
vendor   : NVIDIA Corporation
model    : GK180GL [Tesla K40c]
driver   : nvidia-driver-470 - distro non-free recommended
driver   : nvidia-driver-418-server - distro non-free
driver   : nvidia-driver-390 - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-340 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

CUDAインストール

先程最大でnvidia-driver-470までしか入らないと言いました。
CUDAはnvidia-driverのバージョンと依存関係があります。
470だとCUDA 11.4 以降は導入できません。

CUDAインストール方法

NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8, NVIDIA cuDNN 8 のインストール(Ubuntu 上)
Ubuntu環境でのNVIDIAドライバ,CUDAツールキット11.8,cuDNN8のインストールには,以下のステップが必要である.始めに,NVIDIAの公式サイトからドライバをダウンロードし,インストールする.この操作は,NVIDIAグラフィックスカードを利用する場合にのみ行う.次に,nouveauドライバを無効化し...

参照

CUDA 12.2 Release Notes
The Release Notes for the CUDA Toolkit.

CUDAを入れると、Nvidia-smiが機能しなくなる問題 : (NVIDIA driver is installed and running)

CUDA Toolkit 12.1 Downloads
Get the latest feature updates to NVIDIA's proprietary compute stack.

Ubuntu環境にてCUDAをNvidia公式サイトの手順通り(localインストール)すると、
自動的にドライバーが、CUDAバージョンに合わせたものに上書きされるようです。

Tesla K40では、CUDA11.4までしかサポートされていないため、

Tesla K40では、CUDA11.4までしかサポートされていないため、
11.4のCUDAを入れてしまうと、サポート外のNvidiaドライバーがインストールされます。
そのためドライバーが機能しなくなり、nvidia-smiコマンドも”NVIDIA driver is installed and running”というエラーが表示されます。

Pytorchインストールできない、動かない問題

NvidiaのGPUにはCompute Capabilityという数値があります。
PytorchではCompute Capabilityごとにそれぞれビルドする必要があるそうです。
K40では古すぎて、pipで入るPytorchではサポート外となります。

しかし自分でPytorchをビルドすることでこの問題を解決できます。
やり方は先人の記事をぜひ、ご覧ください。
かなり時間がかかります。

Kepler世代のグラボ向けにPyTorchをビルドする - Qiita
この記事では、古いグラフィックボードでPyTorchを使うためにPyTorchをビルドする方法を記載します。 なぜPyTorchのビルドが必要か 私のPCはUbuntu 20.04で、グラフィックボードはGeForce 710 ...

なおCUDA11.4までしか入らない都合上、Pytorchのバージョンにも成約が発生します。

実際に使ってみてわかったこと

推論は遅い

具体的にはstable diffusionにて検証しました。
512pxの画像を一枚生成するのに3分を要します。
最適化技術(Tensor RT、xformers)等が一切使えません。

学習

学習する際、Nvidia Teslaシリーズは、バッチサイズを大きくすることで学習速度を大幅に向上させることができます。

しかし12GBのVRAMであると、通常の一般向けGPUと変わらないバッチサイズでの学習となります。
そうなると、同じ12GBのVRAMを搭載した、RTX3060やRTX2060(12GB)と比較した際、かなりの差がついてしまいます。

遅くてもゆっくり学習を回すこともできますが、もちろん電気代がかかります。
K40はTDPが225Wです。24時間使うと、約200円となります。
この200円で、クラウドにてGPUをレンタルするほうが学習面では良いでしょう。

結論としては、12GBのVRAMが欲しいならRTX3060かRTX2060の方がお得です。

活用方法

最近は、ColabのT4 GPUも無料プランだとかなりの時間制限があります。
有料プランに加入しても、ある程度の時間制限があります。

基礎的な機械学習、深層学習を勉強する際はK40で学習することも悪くはないです。
分類問題、回帰、クラス推定などです。
やはり、時間制限があると少し焦りますよね。

VRAMも12GBあるため、.csvが学習ソースの場合はバッチサイズも大きくできるでしょう。

また、監視カメラ等の機械学習を用いた映像処理など、
リアルタイム性の求められないバッチ処理などにも活用できると思います。



~サイト支援のお願い~

以下はアフェリエイトリンクです。
リンクから購入していただくと、当ブログに収益が入り、活動の支援になります。
以下で紹介する本は、私自身が実際に購入し、学習に活用した本です。

コメント

タイトルとURLをコピーしました