コンピュータ将棋や囲碁の掲示板
TOP > 記事閲覧
fld_nor.gif Ubuntu 24.04 LTS, 4090 にCaffeをインストールする手順
投稿日 : 2024/06/23(Sun) 11:26
投稿者 山下
Caffeはメンテが終了してるので面倒でした。
Ubuntu 22.04 LTS, 3090 にインストールする場合も併記しています。

CUDA 11.8 と cuDNN 8.2.0, と TensorRT-8.6.1.6 を入れる。(Ubuntu 22.04 では --overrideは不要)
CUDAのインストールでは「CUDA Toolkit」のみをインストールしてdriverやsample、documentは外しておきます。
CUDA 11.8が動作するdriverがインストールされているとします。
(例: $ sudo apt install nvidia-driver-545)

$ sudo sh cuda_11.8.0_520.61.05_linux.run --override
$ tar xvf cudnn-11.3-linux-x64-v8.2.0.53.tgz
$ cd cuda
$ sudo mv lib64/* /usr/local/cuda-11.8/lib64/
$ sudo mv include/* /usr/local/cuda-11.8/include/

(TensorRTはCaffeには不要です。dlshogiを動かす場合)
$ mkdir tensorrt
$ cd tensorrt/
$ tar xvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz
$ mv TensorRT-8.6.1.6 trt8.6.1.6_cuda_11.8

必要なライブラリを
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
$ sudo apt-get install libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev 
$ sudo apt-get install --no-install-recommends libboost-all-dev
$ sudo apt-get install libatlas-base-dev

protoc の最新版はコンパイルでエラーになるので下の2つは入れない。
libprotobuf-dev と protobuf-compiler

protocは古いのをソースからインストール。
$ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz
$ tar -xvzf protobuf-all-3.6.1.tar.gz
$ cd protobuf-3.6.1/
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig

/usr/local/include
/usr/local/bin

に入る。

g++11を入れる(Ubuntu 22.04 では不要)
$ sudo apt install g++-11

Caffe本体を。詳細は https://github.com/BVLC/caffe/pull/7000
$ cd
$ git clone -b fixes_for_cudnn8_bvlc_master https://github.com/artyom-beilis/caffe.git caffe_artyom
$ cd caffe_artyom
$ cp Makefile.config.example Makefile.config
$ nano Makefile.config
以下の変更を。(g++-11 の指定は Ubuntu 22.04 では不要)

3090は
CUDA_ARCH := -gencode arch=compute_86,code=sm_86
4090は
CUDA_ARCH := -gencode arch=compute_89,code=sm_89

USE_CUDNN := 1
USE_OPENCV := 0 
CUSTOM_CXX := g++-11
CUDA_DIR := /usr/local/cuda-11.8

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial


$ make clean
$ protoc src/caffe/proto/caffe.proto --cpp_out=.
$ mkdir include/caffe/proto
$ mv src/caffe/proto/caffe.pb.h include/caffe/proto

$ make all -j 12
$ make test -j 12
$ make runtest
[  FAILED  ] が出なければ成功。

pycaffe は python3 の boost_python3 がないので
$ ldconfig -p | grep "boost_python3"
出てきた lib*.so の * の部分がライブラリ名なので、それに変更
 
# PYTHON_LIBRARIES := boost_python3 python3.6m
 PYTHON_LIBRARIES := boost_python312
 PYTHON_INCLUDE := /usr/include/python3.12 \
 /usr/lib/python3/dist-packages/numpy/core/include \
 /usr/lib/python3.12

$ sudo apt install python3-pip
$ sudo apt install python3-numpy
$ sudo apt install python3-skimage
$ sudo apt install python3-protobuf
$ make pycaffe

CUDA 12.4 と cuDNN 8.9.7では make runtest が通らず
$ sudo sh cuda_12.4.0_550.54.14_linux.run
$ cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar
CUDA 11.2 と cuDNN 8.1.1では make test がエラー。
$ sudo sh cuda_11.2.2_460.32.03_linux.run --override
$ tar xvf cudnn-11.2-linux-x64-v8.1.1.33.tgz

$ sudo apt-get install protobuf-compiler
だと下が入り、コンパイルがエラーになります。
$ protoc --version
libprotoc 3.21.12
src/caffe/util/io.cpp:57:34: error: no matching function for call to 'google::protobuf::io::CodedInputStream::SetTotalBytesLimit(const int&, int)'
編集 編集
件名 スレッドをトップへソート
名前
画像添付


暗証キー
画像認証 (右画像の数字を入力「四三」なら「43」) 投稿キー
コメント

- WEB PATIO -