新着情報

機械学習に関する備忘録

自作PCにNvidia のグラフィック・ボードRTX 2060を組み込んだので、ぜひWindows 10とUbuntu 20.04のOSに、このグラフィック・ボードを Deep Learning用のGPUとして利用したいと思う。これを実現するには、グラフィック・ボードを並列計算に用いるCUDA(並列計算ライブラリ)のインストール、及びDeep Learning専用のニューラル・ネットワーク・ライブラリ(cuDNNライブラリ) のインストールが不可欠である。これにより、GPU利用を前提とした並列演算やニューラル・ネットワーク演算が可能なTensorflow-gpuやPyTorch-gpuの導入が可能となる為、自作PCでもDeep Learningの高速計算が実現できる。自作PCの高速計算環境の構築手順について調べた事を備忘録メモとしてここに述べる。

Pythonで機械学習する場合、現在TensorFlowとPyTorchの2つの人気フレームワーク(Framework:システムを効率的に開発する為の枠組み)がある。

(a) TensorFlow : TensorFlowは現在、最も多く使用されているDeep Learning用のフレームワークである。Googleが開発し、2017年にTensorFlow Ver. 1.0 を公開した。2019年に大幅に更新されて、TensorFlow Ver. 2.0となった。TensorFlow Ver. 2.0は直観的にTensorFlowを使用できるラッパー・ライブラリKerasをモジュールとして内部に取り込み、より直観的にコーディングができる様に改良された。

(b) PyTorch: Deep Learning用として2018年にFacebookが公開したフレームワークで、最近は利用者が急増し、TensorFlowと人気を二分している。直観的にコーディングが可能で、デバッグが容易という特徴がある。

上記のフレームワークを高速処理可能にする Deep Learning のNvidia GPU環境の設定方法をOS毎に述べる。

(1) Ubuntu 20.04+GPU(Nvidia Geforce RTX 2060) Deep Learning環境設定、

(2) Windows 10+GPU(Nvidia Geforce RTX 2060) Deep Learning環境設定、

(1)と(2)についてDeep Learning + Nvidia GPU環境を実現する手順を調べた結果を次節以下に具体的に記載する。

概要としてDeep LearningにおいてGPUを利用可能にする為には、

① まず、導入したGPUに対応するNvidiaドライバーを設定し、

② 設定したNvidiaドライバに対応したCUDA(Compute Unified  Device Archtecture)

ソフトウェアのインストール、

③ 導入したCUDA toolkit に対応するcuDNN(Cuda Deep Neuaral Network) ライブラリのインストールが必要である。

この3つを正しく実行して、初めて tensorflow-gpu や pytorch-gpu のインストールが実現できる。GPUは元々画像処理目的のグラフィックス・ボードであり、それをGPGPU(General Purpose Graphic Processing Unit: 汎用計算用のGPU)に転用利用する 為に、並列演算用のCUDAソフトウェアのインストールは不可欠であり、又更にDeep Learning用に、ニューラル・ネットワーク演算に特化したライブラリcuDNNのインストールも不可欠である。

(1)と(2)に関してはLinuxとWindowsのOSの違いによる、手順が異なるだけでCUDAとcuDNNを使用する本質は変わらない。しかし、Mac OSの場合はNvidiaからのCUDAとcuDNNサポートが受けられない為、Deep LearningにNvidia GPUを使用することができない。私が現在利用しているMacbook Pro (Retina 15 inch、Mid 2014)はNvidia のGPU: GeForce GT 750Mを搭載しているにも関わらず、CUDA ToolkitとcuDNNのサポートが受けられない。AppleとNvidiaの両社の喧嘩に一般客に被害を及ぼす愚を一刻も早く止めてほしいと思う。

コメント投稿フォーム

メールアドレスが公開されることはありません。 が付いている欄は必須項目です