علی شیرائی
علی شیرائی
خواندن ۳ دقیقه·۴ سال پیش

نصب Tensorflow GPU در Ubuntu 20.04

برای مدل‌های یادگیری عمیق، از کارت گرافیکتون بیشترین استفاده رو ببرید!
برای مدل‌های یادگیری عمیق، از کارت گرافیکتون بیشترین استفاده رو ببرید!


در این مطلب قصد دارم نحوه نصب تنسورفلو به گونه‌ای که کارت گرافیک رو بشناسه و باهاش کار کنه رو آموزش بدم. این آموزش برای کارت گرافیک‌های nvidia تنظیم شده.

بطور کلی مراحل کار به شرح زیر هستند:

  • نصب CUDA 10.1
  • نصب cuDNN سازگار با CUDA نصب شده
  • استخراج متغیرهای محیطی (Environment Variables) برای CUDA
  • نصب Tensorflow 2.0 با پشتیبانی از GPU

نصب CUDA 10.1

ابتدا به قسمت Additional Drivers برید و مطمئن شید که درایورهای nvidia نصب هستند. برای نصب CUDA 10.1 نیاز به درایورهای nvidia نسخه ۴۱۸.۳۹ و بالاتر دارید. بطور مثال درایور من نسخه 450.80 هست و در نتیجه می‌تونم CUDA 10.1 رو نصب کنم.

چک کردن نسخه درایور Nvidia نصب شده بر روی سیستم
چک کردن نسخه درایور Nvidia نصب شده بر روی سیستم

علت این که ما نسخه 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

نصب cuDNN

خب رسیدیم به مهم‌ترین مرحله، پس از نصب 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*

خب این مرحله تموم شد!

استخراج متغیرهای محیطی CUDA

برای اینکه 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

بعد از نصب بسته‌های پیش نیاز، حالا می‌تونیم Tensorflow 2.0 رو نصب کنیم. از pip استفاده می‌کنیم:

$ pip install tensorflow

پکیج tensorflow پشتیبانی از GPU رو به طور پیش‌فرض در خودش داره و نیازی نیست مثل روزهای قدیم به طور خاص پکیج tensorflow-gpu رو نصب کنیم!

برای تایید این که Tensorflow کارت گرافیک شمارو شناسایی کرده، در ترمینال python رو اجرا کرده و دو خط زیر رو وارد کنید:

>>> import tensorflow as tf >>> tf.config.list_physical_devices(&quotGPU&quot)

اگر خروجی زیر رو دریافت کردید، تبریک میگم! همه چیز به خوبی انجام شده.

[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

اما اگر آرایه‌ای خالی [ ] دریافت کردید، یه جای کارتون می‌لنگه! مراحل رو بار دیگه مرور کنید.

حالا می‌تونید به راحتی برای پروژه‌های یادگیری عمیق‌تون از Tensorflow و کارت گرافیک‌تون استفاده کنید و از سرعتش لذت ببرید.

از توجهتون ممنونم، منتظر بازخوردها و پیشنهادات شما برای مطالب بعدی هستم.

منبع، با کمی دخل و تصرف

یادگیری عمیقتنسورفلوهوش مصنوعیtensorflowcuda
فارغ‌التحصیل علوم کامپیوتر، علاقه‌مند به هوش مصنوعی و یادگیری عمیق.
شاید از این پست‌ها خوشتان بیاید