新しいGPUで古いverの深層学習フレームワークのコードを動かす際の注意点
はじめに
深層学習界隈は時の進みが異常に早くて,一年前のコードが今のフレームワークで動かないことがザラにある.
ハマった例
手元にNvidiaのRTX 2080 Ti 及び GTX 1080 Tiがある環境で,下記のコードを動かすことを考える.
SetUpの項目に次のように書いてある.
Install Chainer v1.24 on a machine with CUDA GPU.
それならばと思ってchainerのdockerhubへ飛び,v1.24.0をpullする.
ところが,そのままだと次のエラーが出てプログラムが終了する.
nvcc fatal : Value ‘sm_75’ is not defined for option ‘gpu-architecture’
GTX 1080 Tiに切り替えても同様のエラーが生じる.
nvcc fatal : Value ‘sm_61’ is not defined for option ‘gpu-architecture’
原因は何か?
GPUが新しすぎるため,CUDAが対応していないためだった.
sm_(num)は,GPUのアーキテクチャの番号を表しており,ここに詳細が載っている.
chainerのtag:v1.24.0の環境では,CUDAのバージョンが7.5だったが,GTX 1080 TiはCUDA 8 から,RTX 2080 Tiに至ってはCUDA 10以降でないとCUDAが使えない.
解決策
公式GitHubに転がっているDockerfileを拝借し,cuda 8.0に書き換えてbuildした
FROM nvidia/cuda:8.0-cudnn5-devel
RUN apt-get update -y && \
apt-get install -y --no-install-recommends \
python3-dev \
python3-pip \
python3-wheel \
git \
cmake \
libblas3 \
python3-setuptools && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
RUN pip3 install chainer==1.24.0
おわりに
公式イメージだけだとどうしても限界があるので,自前でどんどんbuildしようね.
Author And Source
この問題について(新しいGPUで古いverの深層学習フレームワークのコードを動かす際の注意点), 我々は、より多くの情報をここで見つけました https://qiita.com/verb55/items/6c023377b390fa4ea8ef著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .