CuDNN kurulumunu nasıl doğrularım?


145

Birçok yerde arama yaptım ama TÜM aldım NASIL yüklenir, nasıl yüklendiğini doğrulamak için değil. NVIDIA sürücümün kurulu olduğunu ve CUDA'nın kurulu olduğunu doğrulayabilirim, ancak CuDNN'nin kurulu olduğunu nasıl doğrulayacağımı bilmiyorum. Yardım çok takdir edilecektir, teşekkürler!

PS.
Bu bir kafe uygulaması içindir. Şu anda CuDNN etkinleştirilmeden her şey çalışıyor.


1
USE_CUDNNetkinleştirip etkinleştirmeden bir örnek çalıştırmayı denediniz mi?
pQB

NVIDIA ve CUDA sürücünüzün kurulu olduğunu nasıl doğrularsınız?
Charlie Parker

Yanıtlar:


43

CuDNN'nin yüklenmesi yalnızca dosyaların CUDA dizinine yerleştirilmesini içerir. Kafeyi kurarken yolları ve CuDNN seçeneğini doğru olarak belirlediyseniz, CuDNN ile derlenecektir.

Bunu kullanarak kontrol edebilirsiniz cmake. Bir dizin oluşturun caffe/buildve cmake ..oradan çalıştırın . Yapılandırma doğruysa şu satırları görürsünüz:

-- Found cuDNN (include: /usr/local/cuda-7.0/include, library: /usr/local/cuda-7.0/lib64/libcudnn.so)

-- NVIDIA CUDA:
--   Target GPU(s)     :   Auto
--   GPU arch(s)       :   sm_30
--   cuDNN             :   Yes

Her şey doğruysa make, oradan kafe yüklemek için emirleri çalıştırın .


Harika, cevap için teşekkürler. Make dosyasında etkinleştirdikten ve yeniden derleme çalıştı sonra cuDNN etkin oldu: D.
alfredox

72
CuDNN'nin Caffe kullanmadan yüklenip yüklenmediğini bulmanın bir yolu var mı? CUDA ile aldığınız örneklere benzer bir şey mi?
gokul_uf

6
: @gokul_uf aşağıda martin Yanıt başına kullanabileceğiniz aşağıdaki (/ usr / local / cuda için /usr/local/cuda-#.# Eğer sembolik olarak ettik varsayarak)cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
mat

2
@Boooooooooms O sadece programlama dili C için bir "başlık dosyası" içeriğini alıyor ve bizim için belirli bir değişkeni okumak için "grep" programını kullanıyor
Greg Hilston

Kafem yok.
rjurney

167

CuDNN kurulumu sadece bazı dosyaları kopyalıyor. Bu nedenle, CuDNN'nin kurulu olup olmadığını (ve hangi sürüme sahip olduğunuzu) kontrol etmek için sadece bu dosyaları kontrol etmeniz gerekir.

CuDNN'yi yükle

Adım 1: Bir nvidia geliştirici hesabı kaydedin ve cudnn'ı buradan indirin (yaklaşık 80 MB). İhtiyacın olabilirnvcc --versionCuda sürümünüzü .

Adım 2: Cuda kurulumunuzun nerede olduğunu kontrol edin. Çoğu insan için öyle olacak /usr/local/cuda/. İle kontrol edebilirsiniz which nvcc.

3. Adım: Dosyaları kopyalayın:

$ cd folder/extracted/contents
$ sudo cp include/cudnn.h /usr/local/cuda/include
$ sudo cp lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

Sürümü kontrol et

Yolu ayarlamanız gerekebilir. Kurulumun 2. adımına bakın.

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

notlar

Gibi bir hata aldığınızda

F tensorflow/stream_executor/cuda/cuda_dnn.cc:427] could not set cudnn filter descriptor: CUDNN_STATUS_BAD_PARAM

TensorFlow ile v5 yerine CuDNN v4 kullanmayı düşünebilirsiniz.

Bunu yükleyen Ubuntu kullanıcılarıapt : https://askubuntu.com/a/767270/10425


2
CuDNN için bu adımlar iyidir. Kopyalar sembolik koruyucuysa (-av bayrakları) bu kadar geliştirilebileceklerini söyleyebilir misiniz?
auro

8
yolu değiştirmek benim yükleme için biraz çalıştıcat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
Micah Stubbs

/usr/local/cuda/**/*.h
Yolumu

İndirmek için gönderdiğiniz bağlantı deb dosyalarına cudnn bağlantıları. Tar dosyalarını buradan indirebilirsiniz: developer.nvidia.com/rdp/cudnn-archive
BourbonCreams

Daha yakın zamanda, sürümü almak için aşağıdakiler çalışır. cat /usr/include/x86_64-linux-gnu/cudnn_v7.h | grep CUDNN_MAJOR -A 2
auro

106

Öncelikle yüklü cudnn dosyasını bulmanız ve ardından bu dosyayı ayrıştırmanız gerekir. Dosyayı bulmak için şunları kullanabilirsiniz:

whereis cudnn.h
CUDNN_H_PATH=$(whereis cudnn.h)

Bu işe yaramazsa, aşağıdaki "Redhat dağıtımları" bölümüne bakın.

Bu konumu bulduktan sonra aşağıdakileri yapabilirsiniz ( ${CUDNN_H_PATH}yolla değiştirerek ):

cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2

Sonuç şöyle görünmelidir:

#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

Yani sürüm 7.5.0.

Ubuntu 18.04 (sudo apt install nvidia-cuda-toolkit ile)

Bu yükleme yöntemi cuda'yı / usr / include ve / usr / lib / cuda / lib64 içine kurar, bu nedenle bakmanız gereken dosya /usr/include/cudnn.h dizinindedir.

CUDNN_H_PATH=/usr/include/cudnn.h
cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2

Debian ve Ubuntu

CuDNN v5'ten itibaren (en azından sudo dpkg -i <library_name>.deb paketler ), aşağıdakileri kullanmanız gerekebilir gibi görünüyor:

cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2

Örneğin:

$ cat /usr/include/x86_64-linux-gnu/cudnn_v*.h | grep CUDNN_MAJOR -A 2                                                         
#define CUDNN_MAJOR      6
#define CUDNN_MINOR      0
#define CUDNN_PATCHLEVEL 21
--
#define CUDNN_VERSION    (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"

CuDNN sürüm 6.0.21'in kurulu olduğunu belirtir.

Redhat dağılımları

CentOS'ta CUDA'nın yerini şu şekilde buldum:

$ whereis cuda
cuda: /usr/local/cuda

Daha sonra bu konumdan bulduğum cudnn.h dosyasında prosedürü kullandım:

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

47

CUDA'nın kurulumunu kontrol etmek için aşağıdaki komutu çalıştırın , eğer düzgün kurulursa aşağıdaki komut herhangi bir hata atmayacak ve kütüphanenin doğru sürümünü yazdıracaktır.

function lib_installed() { /sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep $1; }
function check() { lib_installed $1 && echo "$1 is installed" || echo "ERROR: $1 is NOT installed"; }
check libcuda
check libcudart

CuDNN kurulumunu kontrol etmek için, aşağıdaki komutu çalıştırın , CuDNN düzgün şekilde kurulmuşsa, herhangi bir hata almazsınız.

function lib_installed() { /sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep $1; }
function check() { lib_installed $1 && echo "$1 is installed" || echo "ERROR: $1 is NOT installed"; }
check libcudnn 

VEYA

herhangi bir dizinden aşağıdaki komutu çalıştırabilirsiniz

nvcc -V

çıktıya böyle bir şey vermeli

 nvcc: NVIDIA (R) Cuda compiler driver
 Copyright (c) 2005-2016 NVIDIA Corporation
 Built on Tue_Jan_10_13:22:03_CST_2017
 Cuda compilation tools, release 8.0, V8.0.61

Ben nvcc -V komutunu çalıştırın ve hata attı. böyle bir komut bulunamadı.
Sonsuz Döngüler

@InfiniteLoops nvidia cuda araç setini yüklediniz mi?
Sherlock

@Sherlock, Cuda n cudnn'i yüklediğimi varsaydığım doğrudan TensorFlow'un kurulum kılavuzundan cmd'yi çalıştırıyorum. Nvidia paket repo eklediğini ve cuda ve araçları kurduğunu söylüyor. Ancak daha önce belirttiğiniz işlev işe yarar. Libcudnn.so.7 -> libcudnn.so.7.2.1
Sonsuz Döngüler

@InfiniteLoops "nvidia tool kit'in kurulu olmadığı anlamına gelen" böyle bir komut bulunamadı "hatası alıyorsanız. komutu deneyin nvccve çıktınızı kontrol edin. aşağıdaki bağlantıyı da kontrol edin devtalk.nvidia.com/default/topic/457664/…
Sherlock

32

CuDNN Sürümü Alma [Linux]

CuDNN yolunu bulmak için aşağıdakini kullanın:

cat $(whereis cudnn.h) | grep CUDNN_MAJOR -A 2

Yukarıdaki sonuç işe yaramazsa şunu deneyin:

cat $(whereis cuda)/include/cudnn.h | grep CUDNN_MAJOR -A 2

CuDNN Sürümü Alma [Windows]

CuDNN yolunu bulmak için aşağıdakini kullanın:

C:\>where cudnn*
C:\Program Files\cuDNN6\cuda\bin\cudnn64_6.dll

Daha sonra sürümü başlık dosyasından dökümü için kullanın,

type "%PROGRAMFILES%\cuDNN6\cuda\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"

CUDA Sürümü Alma

Bu Linux ve Windows üzerinde çalışır:

nvcc --version

1
Sadece bir kullanıcı durumu eklemek için: cudnn.hDosyayı cuda kurulumumda bulamıyorum ve yüklü cudnn olmadığını düşündüm. Ama daha sonra resmi web sitesinden indirilen cuda örnek kodunu çalıştırdım ve geçti ...
yuqli

2
Tam sürüm numarasını bulmak için kullandığım tam komut:type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
Taran

Güzel! Cevabı güncelledim, böylece şimdi bu ayrıntıları yazdırıyor.
Shital Shah

16

Ubuntu'ya kurulum yaparken .debaşağıdakileri kullanabilirsiniz:sudo apt search cudnn | grep installed


6

Run ./mnistCUDNNiçinde/usr/src/cudnn_samples_v7/mnistCUDNN

İşte bir örnek:

cudnnGetVersion() : 7005 , CUDNN_VERSION from cudnn.h : 7005 (7.0.5)
Host compiler version : GCC 5.4.0
There are 1 CUDA capable devices on your machine :
device 0 : sms 30  Capabilities 6.1, SmClock 1645.0 Mhz, MemSize (Mb) 24446, MemClock 4513.0 Mhz, Ecc=0,    boardGroupID=0
Using device 0

4
Yanlış olduğu durumlar dışında bu aslında kötü bir tavsiye değildir. mnistCUDNNyazılabilir bir dizin olması gerekmediği için bu dizinde olmamalıdır. Bunun yerine, örnekler kullanıcı ana dizinine bir alt dizin olarak kopyalanmalı ve orada oluşturulmalıdır. Nvidia sitesindeki talimatlara göre düzgün bir şekilde kurulmuş ve yapılmışsa, içeride mnistCUDNN olacak~/cudnn_samples_v7
Mike Wise

Eklemek için, kod örneğini resmi NVIDIA web sitesinden alabilirsiniz, buradaki talimatları izleyerek ( docs.nvidia.com/deeplearning/sdk/cudnn-install/… ) nasıl kuracağınız ve doğrulayacağınız.
yuqli

1
Anlıyorum. Benim cudnn.hkuruldum, /usr/include/cudnn.hneden emin değilim ama bu CUDA'yı da kurduğumda daha önce oldu apt-get. Bu sefer kullanıyordum dpkgve hiçbir şey değiştirmedim ...
yuqli
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.