จะตรวจสอบการติดตั้ง CuDNN ได้อย่างไร?


145

ฉันค้นหาสถานที่หลายแห่ง แต่สิ่งที่ฉันได้รับทั้งหมดคือวิธีติดตั้งไม่ใช่วิธีการตรวจสอบว่าติดตั้งแล้ว ฉันสามารถตรวจสอบว่าติดตั้งไดรเวอร์ NVIDIA แล้วและติดตั้ง CUDA แล้ว แต่ฉันไม่ทราบวิธีการตรวจสอบว่ามีการติดตั้ง CuDNN หรือไม่ ความช่วยเหลือจะได้รับการชื่นชมมากขอบคุณ!

PS
นี่คือสำหรับการใช้งาน caffe ขณะนี้ทุกอย่างทำงานโดยไม่เปิดใช้งาน CuDNN


1
คุณลองใช้งานตัวอย่างโดยUSE_CUDNNใช้และไม่เปิดใช้งานหรือไม่
pQB

คุณจะตรวจสอบว่าติดตั้งไดรเวอร์ NVIDIA และ CUDA ของคุณอย่างไร?
Charlie Parker

คำตอบ:


43

การติดตั้ง CuDNN นั้นเกี่ยวข้องกับการวางไฟล์ในไดเรกทอรี CUDA หากคุณระบุเส้นทางและตัวเลือก CuDNN อย่างถูกต้องขณะติดตั้ง caffe จะถูกรวบรวมด้วย CuDNN

cmakeคุณสามารถตรวจสอบว่าการใช้ สร้างไดเรกทอรีcaffe/buildและเรียกใช้cmake ..จากที่นั่น หากการกำหนดค่าถูกต้องคุณจะเห็นบรรทัดเหล่านี้:

-- 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

หากทุกอย่างถูกต้องเพียงแค่เรียกใช้makeคำสั่งซื้อเพื่อติดตั้ง caffe จากที่นั่น


เยี่ยมมากขอบคุณสำหรับคำตอบ ฉันเปิดใช้งาน cuDNN หลังจากเปิดใช้งานในไฟล์ make และคอมไพล์ใหม่อีกครั้งทำงาน
alfredox

72
มีวิธีการค้นหาว่าติดตั้ง cuDNN โดยไม่ใช้ Caffe หรือไม่ มีตัวอย่างเช่นที่คุณได้รับจาก CUDA ไหม
gokul_uf

6
@gokul_uf ต่อคำตอบของมาร์ตินด้านล่างคุณสามารถใช้คำสั่งต่อไปนี้ (สมมติว่าคุณเชื่อมโยง / usr / local / cuda กับ /usr/local/cuda-#.#):cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
แม

2
@Boooooooooms เขาเพียงแค่นำเนื้อหาของ "ไฟล์ส่วนหัว" สำหรับภาษาการเขียนโปรแกรม C และใช้โปรแกรม "grep" เพื่ออ่านตัวแปรเฉพาะสำหรับเรา
Greg Hilston

ฉันไม่มีคาเฟอีน
rjurney

167

การติดตั้ง CuDNN กำลังคัดลอกไฟล์บางไฟล์ ดังนั้นเพื่อตรวจสอบว่ามีการติดตั้ง CuDNN (และเวอร์ชันใดที่คุณมี) คุณจะต้องตรวจสอบไฟล์เหล่านั้นเท่านั้น

ติดตั้ง CuDNN

ขั้นตอนที่ 1: ลงทะเบียนบัญชีนักพัฒนา nvidia และดาวน์โหลด cudnn ที่นี่ (ประมาณ 80 MB) คุณอาจต้องnvcc --versionรับเวอร์ชัน cuda ของคุณ

ขั้นตอนที่ 2: ตรวจสอบว่าการติดตั้ง cuda ของคุณอยู่ที่ไหน /usr/local/cuda/สำหรับคนส่วนใหญ่ก็จะเป็น which nvccคุณสามารถตรวจสอบด้วย

ขั้นตอนที่ 3: คัดลอกไฟล์:

$ 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*

ตรวจสอบเวอร์ชั่น

คุณอาจต้องปรับเปลี่ยนเส้นทาง ดูขั้นตอนที่ 2 ของการติดตั้ง

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

หมายเหตุ

เมื่อคุณได้รับข้อผิดพลาดเช่น

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

ด้วย TensorFlow คุณอาจพิจารณาใช้ CuDNN v4 แทน v5

ผู้ใช้ Ubuntu ที่ติดตั้งผ่านapt : https://askubuntu.com/a/767270/10425


2
ขั้นตอนเหล่านี้สำหรับ CuDNN นั้นดี คุณจะบอกว่าพวกเขาสามารถปรับปรุงเล็กน้อยได้ไหมถ้าสำเนาถูกสงวนไว้ symlink (แฟล็ก -av)?
auro

8
การปรับเปลี่ยนเส้นทางใช้งานได้กับการติดตั้งของฉันเล็กน้อยcat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
Micah Stubbs

ฉันต้องเปลี่ยนเส้นทางของฉันเป็น/usr/local/cuda/**/*.h
bwest87

ลิงก์ที่คุณโพสต์เพื่อดาวน์โหลดลิงค์ cudnn ไปยังไฟล์ deb ที่นี่คุณสามารถดาวน์โหลดไฟล์ tar ได้: developer.nvidia.com/rdp/cudnn-archive
BourbonCreams

ไม่นานมานี้เพื่อให้ได้งานเวอร์ชันต่อไปนี้ cat /usr/include/x86_64-linux-gnu/cudnn_v7.h | grep CUDNN_MAJOR -A 2
auro

106

คุณต้องค้นหาไฟล์ cudnn ที่ติดตั้งไว้ก่อนแล้วจึงแยกไฟล์นี้ ในการค้นหาไฟล์คุณสามารถใช้:

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

หากยังไม่ได้ผลโปรดดูที่ "Redhat distributions" ด้านล่าง

เมื่อคุณพบตำแหน่งนี้คุณสามารถทำสิ่งต่อไปนี้ (แทนที่${CUDNN_H_PATH}ด้วยเส้นทาง):

cat ${CUDNN_H_PATH} | grep CUDNN_MAJOR -A 2

ผลลัพธ์ควรมีลักษณะดังนี้:

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

ซึ่งหมายความว่ารุ่นคือ 7.5.0

Ubuntu 18.04 (ผ่าน sudo apt ติดตั้ง nvidia-cuda-toolkit)

วิธีการติดตั้งนี้จะติดตั้ง cuda ใน / usr / include และ / usr / lib / cuda / lib64 ดังนั้นไฟล์ที่คุณต้องดูอยู่ใน /usr/include/cudnn.h

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

Debian และ Ubuntu

จาก CuDNN v5 เป็นต้นไป (อย่างน้อยเมื่อคุณติดตั้งผ่านsudo dpkg -i <library_name>.debแพ็คเกจ) ดูเหมือนว่าคุณอาจต้องใช้สิ่งต่อไปนี้:

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

ตัวอย่างเช่น:

$ 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 เวอร์ชัน 6.0.21

กระจาย Redhat

บน CentOS ฉันพบที่ตั้งของ CUDA ด้วย:

$ whereis cuda
cuda: /usr/local/cuda

ฉันใช้ขั้นตอนเกี่ยวกับไฟล์ cudnn.h ที่ฉันพบจากที่ตั้งนี้:

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

47

หากต้องการตรวจสอบการติดตั้ง CUDA ให้รันคำสั่งด้านล่างหากติดตั้งอย่างถูกต้องคำสั่งด้านล่างจะไม่เกิดข้อผิดพลาดใด ๆ และจะพิมพ์ไลบรารี่ที่ถูกต้อง

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 ให้รันคำสั่งด้านล่างหากติดตั้ง CuDNN อย่างถูกต้องคุณจะไม่ได้รับข้อผิดพลาดใด ๆ

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 

หรือ

คุณสามารถเรียกใช้คำสั่งด้านล่างจากไดเรกทอรีใด ๆ

nvcc -V

มันควรให้ผลลัพธ์แบบนี้

 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

ฉันรันคำสั่ง nvcc -V และเกิดข้อผิดพลาด ไม่พบคำสั่งดังกล่าว
ลูปไม่มีที่สิ้นสุด

@InfiniteLoops คุณติดตั้งชุดเครื่องมือ nvidia cuda หรือไม่
Sherlock

@Sherlock ฉันเรียกใช้ cmd โดยตรงจากคู่มือการติดตั้งของ TensorFlow ว่าฉันถือว่าการติดตั้ง Cuda n cudnn มันบอกว่ามันเพิ่มแพ็คเกจ repo ของ Nvidia และติดตั้ง cuda และเครื่องมือ แต่ฟังก์ชั่นที่คุณระบุไว้ก่อนหน้านี้ใช้งานได้ มันแสดงบางอย่างเช่น libcudnn.so.7 -> libcudnn.so.7.2.1
Infinite Loops

@InfiniteLoops หากคุณได้รับข้อผิดพลาดว่า "ไม่พบคำสั่งดังกล่าว" ซึ่งหมายความว่าไม่ได้ติดตั้งชุดเครื่องมือ nvidia ลองคำสั่งnvccและตรวจสอบผลลัพธ์ของคุณ ตรวจสอบลิงค์ด้านล่างนี้ยังdevtalk.nvidia.com/default/topic/457664/…
Sherlock

32

รับเวอร์ชั่น cuDNN [Linux]

ใช้สิ่งต่อไปนี้เพื่อค้นหาพา ธ สำหรับ cuDNN:

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

ถ้าข้างต้นไม่ทำงานลองสิ่งนี้:

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

รับเวอร์ชั่น cuDNN [Windows]

ใช้สิ่งต่อไปนี้เพื่อค้นหาพา ธ สำหรับ cuDNN:

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

จากนั้นใช้สิ่งนี้เพื่อดัมพ์เวอร์ชันจากไฟล์ส่วนหัว

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

รับรุ่น CUDA

ใช้ได้กับ Linux และ Windows:

nvcc --version

1
เพียงเพื่อเพิ่มกรณีผู้ใช้: ฉันไม่พบcudnn.hไฟล์ในการติดตั้ง cuda ของฉันและฉันคิดว่าฉันไม่ได้ติดตั้ง cudnn แต่หลังจากนั้นฉันก็รันโค้ดตัวอย่าง cuda ที่ดาวน์โหลดจากเว็บไซต์อย่างเป็นทางการและมันก็ผ่าน ...
yuqli

2
คำสั่งทั้งหมดที่ฉันใช้ในการค้นหาหมายเลขเวอร์ชันเต็มคือ:type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
Taran

เย็น! ฉันอัปเดตคำตอบแล้วตอนนี้มันพิมพ์รายละเอียดเหล่านี้
Shital Shah

16

เมื่อติดตั้งบน Ubuntu ผ่าน.debคุณสามารถใช้sudo apt search cudnn | grep installed


6

วิ่ง./mnistCUDNNเข้ามา/usr/src/cudnn_samples_v7/mnistCUDNN

นี่คือตัวอย่าง:

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
จริงๆแล้วนี่ไม่ใช่คำแนะนำที่ไม่ดียกเว้นในกรณีที่มันผิด mnistCUDNNไม่ควรอยู่ในไดเรกทอรีนั้นเนื่องจากไม่ควรจะเป็นไดเรกทอรีที่เขียนได้ ค่อนข้างควรคัดลอกตัวอย่างเป็นไดเรกทอรีย่อยไปยังไดเรกทอรีบ้านของผู้ใช้และสร้างขึ้นที่นั่น ดังนั้นหากมีการติดตั้งและสร้างอย่างถูกต้องตามคำแนะนำบนเว็บไซต์ Nvidia mnistCUDNN จะอยู่ในนั้น~/cudnn_samples_v7
Mike Wise

เพียงเพิ่มคุณจะได้รับตัวอย่างรหัสจากเว็บไซต์ทางการของ NVIDIA ทำตามคำแนะนำที่นี่ ( docs.nvidia.com/deeplearning/sdk/cudnn-install/ ...... ) สำหรับวิธีการติดตั้งและตรวจสอบ
yuqli

1
ฉันเห็น. cudnn.hติดตั้งของฉันที่/usr/include/cudnn.hไม่แน่ใจว่าทำไม แต่สิ่งนี้เกิดขึ้นก่อนเมื่อฉันติดตั้ง CUDA ด้วยapt-getเช่นกัน ครั้งนี้ฉันกำลังใช้งานอยู่dpkgและไม่ได้เปลี่ยนแปลงอะไรเลย ...
yuqli
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.