CuDNN ইনস্টলেশন যাচাই করবেন কীভাবে?


144

আমি অনেকগুলি জায়গা অনুসন্ধান করেছি তবে আমার কাছে প্রাপ্ত সমস্তই এটি ইনস্টল করার উপায়, এটি কীভাবে এটি ইনস্টল করা আছে তা যাচাই করবেন না। আমি আমার এনভিআইডিআইএ ড্রাইভারটি ইনস্টলড আছে এবং যাচুডিএ ইনস্টল করা আছে তা যাচাই করতে পারি, তবে কীভাবে সিইউডিএনএন ইনস্টল করা আছে তা যাচাই করতে জানি না। সাহায্য অনেক প্রশংসা করা হবে, ধন্যবাদ!

পুনশ্চ.
এটি একটি ক্যাফে বাস্তবায়নের জন্য। বর্তমানে CUDNN সক্ষম না করে সবকিছুই কাজ করছে।


1
আপনি কি USE_CUDNNসক্ষম এবং ছাড়া কিছু উদাহরণ চালনার চেষ্টা করেছিলেন ?
pQB

আপনি কীভাবে যাচাই করবেন যে আপনার এনভিআইডিএ এবং সিইউডিএ ড্রাইভার ইনস্টল রয়েছে?
চার্লি পার্কার 17

উত্তর:


43

CUDNN ইনস্টল করার মধ্যে কেবল CUDA ডিরেক্টরিতে ফাইল স্থাপন করা জড়িত। ক্যাফে ইনস্টল করার সময় আপনি যদি রুটগুলি এবং সিউডিএনএন বিকল্পটি সঠিকভাবে নির্দিষ্ট করে থাকেন তবে এটি সিউডিএনএন দিয়ে সংকলিত হবে।

আপনি এটি ব্যবহার করে যাচাই করতে পারেন 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সেখান থেকে ক্যাফে ইনস্টল করার আদেশগুলি চালান ।


দুর্দান্ত, উত্তরের জন্য আপনাকে ধন্যবাদ। আমি মেক ফাইলটিতে এটি সক্ষম করার পরে এবং এটির কাজটি পুনরায় কম্পাইল করার পরে cuDNN সক্ষম করেছিলাম: ডি।
আলফ্রেডক্স

72
ক্যাফে ব্যবহার না করে cuDNN ইনস্টল করা আছে কিনা তা খুঁজে পাওয়ার কোনও উপায় আছে? আপনি উদাহরণস্বরূপ CUDA সঙ্গে পেতে কিছু?
gokul_uf

6
নীচে মার্টিনের উত্তর অনুসারে @ গোকুল_উফ, আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন (ধরে নিই / আপনি / ইউএসআর / স্থানীয় / চুদা প্রতি /usr/local/cuda-#.# তে মিশ্রিত করেছেন):cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
ম্যাট

2
@ বুবুooুমস তিনি কেবল প্রোগ্রামিং ল্যাঙ্গুয়েজ সি এর জন্য একটি "শিরোনাম ফাইল" এর বিষয়বস্তু নিচ্ছেন এবং আমাদের জন্য একটি নির্দিষ্ট ভেরিয়েবল পড়তে "গ্রেপ" প্রোগ্রামটি ব্যবহার করছেন
গ্রেগ হিলস্টন

আমার ক্যাফে নেই
rjurney

167

সিইউডিএনএন ইনস্টলেশন কেবলমাত্র কিছু ফাইল অনুলিপি করছে। সুতরাং CUDNN ইনস্টল করা আছে কিনা (এবং আপনার কোন সংস্করণ রয়েছে) তা পরীক্ষা করতে আপনার কেবল সেই ফাইলগুলি পরীক্ষা করতে হবে।

CuDNN ইনস্টল করুন

পদক্ষেপ 1: একটি এনভিডিয়া বিকাশকারী অ্যাকাউন্ট নিবন্ধন করুন এবং এখানে চুডন ডাউনলোড করুন (প্রায় 80 এমবি)। nvcc --versionআপনার চুদা সংস্করণ পেতে আপনার প্রয়োজন হতে পারে ।

পদক্ষেপ 2: আপনার চুদা ইনস্টলেশন কোথায় তা পরীক্ষা করুন। বেশিরভাগ মানুষের জন্য, এটি হবে /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

টেনসরফ্লো দিয়ে, আপনি v5 এর পরিবর্তে CuDNN v4 ব্যবহার করার বিষয়টি বিবেচনা করতে পারেন।

উবুন্টু ব্যবহারকারীরা যারা এটি ইনস্টল করেছেনapt : https://askubuntu.com/a/767270/10425 এর মাধ্যমে


2
CUDNN এর জন্য এই পদক্ষেপগুলি ভাল। আপনি কি বলবেন যে যদি সেগুলি অনুলিপি করা যায় তবে অনুলিপিগুলি যদি সিমলিংক-সংরক্ষণ (-ভাল পতাকা) থাকে?
অ্যারো

8
পাথটি পরিবর্তন করে আমার ইনস্টল করার জন্য সামান্য কাজ করেছিলcat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
মিকাহ স্টাবস

আমাকে আমার পথটি পরিবর্তন করতে হয়েছিল/usr/local/cuda/**/*.h
bwest87

আপনি যে লিঙ্কটি পোস্ট করেছেন চুদন ডাউনলোড করতে দেব ফাইলের লিঙ্কগুলি। আপনি এখানে
ট্যারি

সাম্প্রতিককালে, সংস্করণটি পেতে, নিম্নলিখিতটি কাজ করে। বিড়াল /usr/incolve/x86_64-linux-gnu/cudnn_v7.h | , grep CUDNN_MAJOR -A 2
ছাঁচনির্মাণ

106

আপনাকে প্রথমে ইনস্টল করা চুডন ফাইলটি খুঁজে বের করতে হবে এবং তারপরে এই ফাইলটিকে বিশ্লেষণ করতে হবে। ফাইলটি সন্ধান করতে আপনি এটি ব্যবহার করতে পারেন:

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

যদি এটি কাজ না করে তবে নীচে "রেডহাইট বিতরণ" দেখুন।

একবার এই অবস্থানটি সন্ধান করার পরে আপনি নিম্নলিখিতটি করতে পারেন ( ${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।

উবুন্টু 18.04 (সুডো অ্যাপটি ইনস্টল এনভিডিয়া-চুদা-টুলকিটের মাধ্যমে)

এই পদ্ধতির ইনস্টলেশনটি / usr / অন্তর্ভুক্ত এবং / usr / lib / cuda / lib64 এ চুদা ইনস্টল করে, সুতরাং আপনার যে ফাইলটি দেখতে হবে তা /usr/incolve/cudnn.h এ রয়েছে।

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

দেবিয়ান এবং উবুন্টু

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 সংস্করণটি .0.০.২১ ইনস্টল করা আছে।

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

আমি এনভিসিসি-ভি কমান্ড চালাচ্ছি এবং এটি ত্রুটি ছুঁড়েছে। যেমন আদেশ পাওয়া যায় নি।
অসীম লুপস

@ ইনফিনিটলুপস আপনি কী এনভিডিয়া চুদা টুলকিট ইনস্টল করেছেন?
শার্লক

@ শার্লক আমি টেনসরফ্লোয়ের ইনস্টলেশন গাইড থেকে সরাসরি সেন্টিমিডি চালাচ্ছি, যে আমি চুদা এন চুডন ইনস্টল করে নিয়েছি। এটি বলে যে এটি এনভিডিয়া প্যাকেজ রেপো এবং চুদা এবং সরঞ্জামগুলি ইনস্টল করে। তবে আপনি যে ফাংশনটি আগে বলেছেন তা কাজ করে। এটি libcudnn.so.7 -> libcudnn.so.7.2.1
অসীম লুপগুলি

@ ইনফিনিটলুপস যদি আপনি ত্রুটি পেয়ে থাকেন যে "এই জাতীয় কমান্ড পাওয়া যায় নি" যার অর্থ এনভিডিয়া সরঞ্জাম কিট ইনস্টল করা নেই। কমান্ড চেষ্টা করুন nvccএবং আপনার আউটপুট পরীক্ষা করুন। নীচের লিঙ্কটিও
শার্লক

32

CUDNN সংস্করণ প্রাপ্ত করা [লিনাক্স]

CuDNN এর জন্য সন্ধানের জন্য নিম্নলিখিত ব্যবহার করুন:

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

যদি উপরের কাজ না করে তবে এটি ব্যবহার করে দেখুন:

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

সিইউডিএনএন সংস্করণ পাওয়া [উইন্ডোজ]

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 সংস্করণ পাচ্ছি

এটি লিনাক্সের পাশাপাশি উইন্ডোজেও কাজ করে:

nvcc --version

1
কেবলমাত্র একটি ব্যবহারকারীর কেস যুক্ত করতে: আমি cudnn.hআমার চুদা ইনস্টলেশনটিতে ফাইলটি খুঁজে পাচ্ছি না এবং আমি ভেবেছিলাম আমার চুডন ইনস্টল করা হয়নি। তবে আমি পরে সরকারী ওয়েবসাইট থেকে ডাউনলোড করা চুদা নমুনা কোডটি চালিত করেছি এবং এটি পাস হয়ে গেছে ...
ইউক্লি

2
আমি পূর্ণ সংস্করণ নম্বরটি খুঁজে পেতে যে পুরো কমান্ডটি ব্যবহার করেছি তা হ'ল:type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\cudnn.h" | findstr "CUDNN_MAJOR CUDNN_MINOR CUDNN_PATCHLEVEL"
তারান

শান্ত! আমি উত্তর আপডেট করেছি তাই এখন এটি এই বিবরণগুলি মুদ্রণ করে।
শীতল শাহ

16

উবুন্টু ইনস্টল করার সময় .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সেই ডিরেক্টরিতে থাকা উচিত নয় যেহেতু এটি একটি লিখনযোগ্য ডিরেক্টরি হিসাবে বিবেচিত হয় না। বরং নমুনাগুলি উপ-ডিরেক্টরি হিসাবে ব্যবহারকারীদের হোম ডিরেক্টরিতে অনুলিপি করে সেখানে তৈরি করা উচিত ছিল। তাই আপনি যদি এটি সঠিকভাবে ইনস্টল এবং এনভিডিয়া সাইটে নির্দেশাবলী অনুযায়ী নির্মিত হয়েছিল, mnistCUDNN থাকবে~/cudnn_samples_v7
মাইক বিজ্ঞ

কেবল যুক্ত করার জন্য আপনি কীভাবে ইনস্টল এবং যাচাই করতে পারেন সে সম্পর্কে এখানে নির্দেশাবলীর নীচে অফিসিয়াল এনভিআইডিআইএ ওয়েবসাইট থেকে কোডের নমুনা পেতে পারেন ( ডক্টস.এনভিডিয়া.com / ডিপ্লিয়ারিং / এসডিকি / সিডনএন- ইনস্টল/ ) install
yuqli

1
আমি দেখি. আমার cudnn.hইনস্টল করা হয়েছিল /usr/include/cudnn.h, কেন তা নিশ্চিত নয় তবে কেন আমি সিউডিএ ইনস্টল করার আগে এটি ঘটেছিল apt-get। এবার আমি ব্যবহার করছিলাম dpkgএবং কিছুই পরিবর্তন করিনি ...
yuqli
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.