در این مطلب قصد دارم نحوه نصب تنسورفلو به گونهای که کارت گرافیک رو بشناسه و باهاش کار کنه رو آموزش بدم. این آموزش برای کارت گرافیکهای nvidia تنظیم شده.
بطور کلی مراحل کار به شرح زیر هستند:
ابتدا به قسمت Additional Drivers برید و مطمئن شید که درایورهای nvidia نصب هستند. برای نصب CUDA 10.1 نیاز به درایورهای nvidia نسخه ۴۱۸.۳۹ و بالاتر دارید. بطور مثال درایور من نسخه 450.80 هست و در نتیجه میتونم CUDA 10.1 رو نصب کنم.
علت این که ما نسخه 10.1 CUDA رو برای نصب انتخاب کردیم هم اینه که این نسخه با Tensorflow GPU سازگاره. دقت کنید که به دلیل تفاوتهای اوبونتو در نسخههای مختلف، از نصب CUDA 10.1 نسخههای 18.04 و 18.10 بر روی 20.4 خودداری کنید.
خب بریم سر اصل مطلب. در اوبونتو 20.04 شما میتونید با دستور زیر CUDA 10.1 رو روی سیستمتون نصب کنید:
$ sudo apt install nvidia-cuda-toolkit
پس از نصب، برای اطمینان از اینکه همه چیز درست انجام شده، با اجرای nvcc -V باید اطلاعات و نسخه CUDA 10.1 رو دریافت کنید:
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Sun_Jul_28_19:07:16_PDT_2019 Cuda compilation tools, release 10.1, V10.1.243
برخلاف اوبونتو 18.04، در 20.04 CUDA در مسیر متفاوتی نصب میشه. میتونید با دستور زیر مطمئن شید:
$ whereis cuda cuda: /usr/lib/cuda /usr/include/cuda.h
در اوبونتو 18.04 CUDA در یکی از دو مسیر زیر نصب میشد:
/usr/local/cuda /usr/local/cuda-10.1
خب رسیدیم به مهمترین مرحله، پس از نصب CUDA 10.1 باید cuDNN نسخه 7.6.5 رو دریافت کنید. برای دریافت این بسته شما باید در سایت توسعهدهندگان nvidia حساب کاربری داشته باشید پس اگر حساب کاربری ندارید عضو شید. توجه کنید که بهتره در این مرحله از ابزار عبور از تحریم برای ساخت حساب، ورود و دریافت بسته استفاده کنید. پس از ورود به حساب کاربریتون به صفحه آرشیو cuDNN برید.پس از تایید شرایط استفاده از cuDNN و بروکراسی معمول (!)، لیستی از نسخههای موجود cuDNN رو میبینید. در زمان نگارش این مطلب، جدیدترین نسخه 8.0.4 هست اما دقت کنید همونطور که گفتم شما باید دقیقا نسخه 7.6.5 رو دریافت کنید (من نسخه 8.0.4 رو نصب کردم و به مشکل خوردم و با استفاده از نسخه 7.6.5 مشکلم حل شد.) پس گزینه Download cuDNN v7.6.5 (November 5th, 2019), for CUDA 10.1 رو انتخاب کنید. در منوی باز شده با انتخاب cuDNN Library for Linux دریافت بسته شروع میشه که حجمش حدود ۵۰۰ مگابایت هست.
پس از دریافت cuDNN با دستور زیر از حالت فشرده خارجش کنید:
$ tar -xvzf cudnn-10.1-linux-x64-v7.6.5.32.tgz
حالا باید فایلهای استخراج شده رو در محل نصب CUDA کپی کنید. اینجوری:
$ sudo cp cuda/include/cudnn.h /usr/lib/cuda/include/ $ sudo cp cuda/lib64/libcudnn* /usr/lib/cuda/lib64/
حالا مجوزهارو براشون ست کنید:
$ sudo chmod a+r /usr/lib/cuda/include/cudnn.h /usr/lib/cuda/lib64/libcudnn*
خب این مرحله تموم شد!
برای اینکه Tensorflow از GPU پشتیبانی کنه، باید متغیرهای محیطی CUDA رو بشناسه. ما این کار رو با اضافه کردن این متغیرها به فایل ~/.bashrc انجام میدیم. دستور زیر رو اجرا کنید:
$ echo 'export LD_LIBRARY_PATH=/usr/lib/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc $ echo 'export LD_LIBRARY_PATH=/usr/lib/cuda/include:$LD_LIBRARY_PATH' >> ~/.bashrc
حالا برای بارگزاری متغیرهای محیطی استخراج شده دستور زیر رو اجرا کنید:
$ source ~/.bashrc
بعد از نصب بستههای پیش نیاز، حالا میتونیم Tensorflow 2.0 رو نصب کنیم. از pip استفاده میکنیم:
$ pip install tensorflow
پکیج tensorflow پشتیبانی از GPU رو به طور پیشفرض در خودش داره و نیازی نیست مثل روزهای قدیم به طور خاص پکیج tensorflow-gpu رو نصب کنیم!
برای تایید این که Tensorflow کارت گرافیک شمارو شناسایی کرده، در ترمینال python رو اجرا کرده و دو خط زیر رو وارد کنید:
>>> import tensorflow as tf >>> tf.config.list_physical_devices("GPU")
اگر خروجی زیر رو دریافت کردید، تبریک میگم! همه چیز به خوبی انجام شده.
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
اما اگر آرایهای خالی [ ] دریافت کردید، یه جای کارتون میلنگه! مراحل رو بار دیگه مرور کنید.
حالا میتونید به راحتی برای پروژههای یادگیری عمیقتون از Tensorflow و کارت گرافیکتون استفاده کنید و از سرعتش لذت ببرید.
از توجهتون ممنونم، منتظر بازخوردها و پیشنهادات شما برای مطالب بعدی هستم.
منبع، با کمی دخل و تصرف