過去ページ CUDA210115
計算の一部をGPUに回して処理速度を向上させる. そのプログラムを作るのに、動かすのに必要なのがこのCUDAライブラリ
Compute Unified Device Architecture
CUDA自体はnvidia社からリリースされ、nvidia社製VGAカードにのみ有効である.
負荷テスト
RockyLinux9 †
CUDAの淹れ方. cudaライブラリのパッケージから入れるか、nvidiaドライバを入れてからcudaのtoolkitのみを入れるかになる
前者は「Persistence Mode」のツールも入れてくれるが、後者は入らない。
後者の場合 https://download.nvidia.com/XFree86/nvidia-persistenced にてnvidiaドライバと同じバージョンのツールを取得する
bash NVIDIA-Linux-x86_64-520.56.06.run --disable-nouveau --no-opengl-files --no-libglx-indirect
reboot
tar xf nvidia-persistenced-520.56.06.tar.bz2
cd nvidia-persistenced-520.56.06
make
make install
cd init
make install <--- 「nvidia-persistenced.service」がインストールされる
CUDAバージョン †
CUDA | OS | GCC | ICC | HW | 11.7.0 | RHEL8.5, RHEL7.9, ubuntu22.04, ubuntu20.04.4, ubuntu18.04.6 | gcc11まで対応 gcc6以上が推奨 | 2021 | 3.5 – 8.6 KeplerとMaxwellは非推奨, Pascal, Volta, Turing, Ampere | 11.6.2 | RHEL8.5, RHEL7.9, ubuntu20.04.4, ubuntu18.04.6 | 11.6.1 | RHEL8.5, RHEL7.9, ubuntu20.04.3, ubuntu18.04.6 | 11.6.0 | 11.5.1 | 11.5.0 | RHEL8.4, RHEL7.9, ubuntu20.04.3, ubuntu18.04.5 | 11.4.3 | 11.4.2 | 11.4.1 | RHEL8.4, RHEL7.9, ubuntu20.04.2, ubuntu18.04.5 | 11.4.0 | gcc9 まで対応 gcc6以上が推奨 | 19.1 2020 | 3.5 – 8.6 KeplerとMaxwellは非推奨, Pascal, Volta, Turing, Ampere | 11.3.1 | RHEL8.3, RHEL7.9, ubuntu20.04.1, ubuntu18.04.5 | 3.5 – 8.6 Kepler (in part), Maxwell, Pascal, Volta, Turing, Ampere | 11.3.0 | gcc9 まで対応 gcc5以上が推奨* | 19.1 2020 | 3.5 – 8.6 Kepler (in part), Maxwell, Pascal, Volta, Turing, Ampere | 11.2.2 | 11.2.1 | 11.2.0 | 11.1.1 | RHEL8.2, RHEL7.8, ubuntu20.04.1, ubuntu18.04.5 | 11.1.0 | 10.2.89 | RHEL8.1, RHEL7.7, ubuntu18.04.3 | 8 | 19.0 2018 | 3.0 – 7.5 Kepler, Maxwell, Pascal, Volta, Turing | 10.1.243 | RHEL8.0, RHEL7.6, ubuntu18.04.3 | 10.0.130 | RHEL7.5, ubuntu18.04.1 | 7 | 18.0 2017 | 9.2.148 | RHEL7.x, Ubuntu16.04.4 | 17.0 2016 | 3.0 – 7.2 Kepler, Maxwell, Pascal, Volta | 9.1.85 | RHEL7.x, Ubuntu16.04 | 6 | 9.0.176 | 8.0 | RHEL7.x, Ubuntu16.04 | 5.3 | 16 2015 | 2.0 – 6.x Fermi, Kepler, Maxwell, Pascal |
*https://docs.nvidia.com/cuda/archive/11.0/cuda-installation-guide-linux/index.html
c++の各バージョンでの言語機能実装状況(c++11とかc++14、c++17、c++20など)
https://cpprefjp.github.io/implementation-status.html
あとCUDAのバージョンで適用できるOSも限定されているようで、もしOSに適合しないCUDAを入れた場合下記のようなメッセージが出る
実質はCUDAドライバーとOSの組み合わせと思うのだが...
[ 10.253873] NVRM: The NVIDIA GPU 0000:13:00.0 (PCI ID: 10de:2531)
NVRM: installed in this system is not supported by the
NVRM: NVIDIA 465.19.01 driver release.
NVRM: Please see 'Appendix A - Supported NVIDIA GPU Products'
NVRM: in this release's README, available on the operating system
NVRM: specific graphics driver download page at www.nvidia.com.
[ 10.254137] nvidia: probe of 0000:13:00.0 failed with error -1
[ 10.254150] NVRM: The NVIDIA probe routine failed for 1 device(s).
インストール †
下記サイトからCUDAライブラリを入手します
https://developer.nvidia.com/cuda-downloads
取得ファイルは
- runfile(local)
- rpm(local)
- rpm(network)
と3種類ありますが、ここでは「rpm(local)」をいつも使用しています.
ただ事前に開発環境とepelリポジトリで配布されているdkmsパッケージをインストールする必要があります
yum install epel-release
yum install dmks
これらの前提が整っているなら
yum localinstall cuda-repo-rhel7-11-2-local-11.2.0_460.27.04-1.x86_64.rpm
yum install cuda-11-2
yum remove cuda-repo-rhel7-11-2-local
最新版の11.2のインストールはこれでいいのですが、アプリによってはcudaのバージョンが指定されているものもあります.
その際は、そのバージョンのcudaをインストールする必要がありますが、実行ライブラリさえあれば良く、全てのインストールは不要です.
っで10.2なら
yum localinstall cuda-repo-rhel7-10-2-local-10.2.89-440.33.01-1.0-1.x86_64.rpm
yum install cuda-libraries-10-2
yum remove cuda-repo-rhel7-10-2-local
として、必要な分のみインストールします。
10.1も同様に
yum localinstall cuda-repo-rhel7-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm
yum install cuda-libraries-10-1
yum remove cuda-repo-rhel7-10-1-local
IMODがCUDA8なので、これもインストールします
yum localinstall cuda-repo-rhel7-8-0-local-ga2-8.0.61-1.x86_64.rpm \
cuda-repo-rhel7-8-0-local-cublas-performance-update-8.0.61-1.x86_64.rpm
yum install cuda-cublas-8-0 \
cuda-cudart-8-0 \
cuda-cufft-8-0 \
cuda-curand-8-0 \
cuda-cusolver-8-0
yum remove cuda-repo-rhel7-8-0-local-ga2 \
cuda-repo-rhel7-8-0-local-cublas-performance-update
場合によっては開発環境も必要な時もあるようでその際は
yum install cuda-libraries-dev-10-2 cuda-libraries-10-2 cuda-command-line-tools-10-2
とする.「CUDA nsight」は要らない. 「cuda-samples」も要らない.
cuda-11-2 †
cuda-11-2でrelionをコンパイルすると
nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
と表記される.
Compute capabilityで言うところの3.5から5.0に該当する
次のcudaではKepler系とMaxwellの一部の製品のサポートが消えてるみたい.
Compute capability | chip | GeForce | Quadro, NVS | Tesla | 3.5 | Kepler | GeForce GTX Titan Z, GeForce GTX Titan Black, GeForce GTX Titan, GeForce GTX 780 Ti, GeForce GTX 780, GeForce GT 640 (GDDR5), GeForce GT 630 v2, GeForce GT 730, GeForce GT 720, GeForce GT 710, GeForce GT 740M (64-bit, DDR3), GeForce GT 920M | Quadro K6000, Quadro K5200 | Tesla K40, Tesla K20x, Tesla K20 | 3.7 | | | Tesla K80 | 5.0 | Maxwell | GeForce GTX 750 Ti, GeForce GTX 750, GeForce GTX 960M, GeForce GTX 950M, GeForce 940M, GeForce 930M, GeForce GTX 860M, GeForce GTX 850M, GeForce 845M, GeForce 840M, GeForce 830M | Quadro K1200, Quadro K2200, Quadro K620, Quadro M2000M, Quadro M1000M, Quadro M600M, Quadro K620M, NVS 810 | Tesla M10 | 5.2 | GeForce GTX Titan X, GeForce GTX 980 Ti, GeForce GTX 980, GeForce GTX 970, GeForce GTX 960, GeForce GTX 950, GeForce GTX 750 SE,GeForce GTX 980M, GeForce GTX 970M, GeForce GTX 965M | Quadro M6000 24GB, Quadro M6000, Quadro M5000, Quadro M4000, Quadro M2000, Quadro M5500,Quadro M5000M, Quadro M4000M, Quadro M3000M | Tesla M4, Tesla M40, Tesla M6, Tesla M60 |
当方所有の「GeForce GT 710」はcuda-11.5のドライバー(495.29.05)で未対応となった.
そのため直前のcuda-11.4.3のドライバ(470.82.01)のままにして、cudaライブラリを上げるしかないみたい
cuda-11.5はドライバーが「>=450.80.02」の要求なので辛うじていけそう
yum localinstall cuda-repo-rhel7-11-5-local-11.5.0_495.29.05-1.x86_64.rpm
yum install cuda-toolkit-11-5
(cuda-libraries-devel-11-5やcuda-command-line-tools-11-5らがインストールされるが、nvidia-driver-latestは入らない)
でドライバーはインストールされない.
参照先https://en.wikipedia.org/wiki/CUDA
|