تهيئة بيئات الذكاء الاصطناعي: تثبيت تعريفات NVIDIA CUDA أو AMD ROCm على لينكس


يا هلا بالجميع! كمهندس أنظمة لينكس، كثير ما يطلب مني أضبط بيئات تطوير AI. وأول وأهم خطوة هي تثبيت تعريفات GPU صح عشان تستفيد من قوة المعالجة المتوازية. اليوم بنشوف كيف نركب تعريفات NVIDIA CUDA أو AMD ROCm على لينكس.

ليش CUDA أو ROCm؟

ببساطة، مكتبات زي TensorFlow و PyTorch تحتاج وحدة معالجة رسوميات (GPU) عشان تشتغل بكفاءة عالية، خاصة مع نماذج التعلم العميق. CUDA من NVIDIA و ROCm من AMD هي الواجهات البرمجية اللي تخلي تطبيقات الـ AI تتواصل مع الـ GPU وتستغل قدراتها الحسابية.

قبل ما نبدأ: تحضيرات عامة

تأكد إنك على توزيعة لينكس مدعومة (أوبونتو، CentOS، RHEL، إلخ) وإن عندك صلاحيات sudo.

1. تثبيت تعريفات NVIDIA CUDA

أ. التحقق من توافقية GPU

تأكد إن كرت الشاشة عندك من NVIDIA ويدعم CUDA. تقدر تشوف موديل الكرت بالأمر:

lspci | grep -i nvidia

وبعدين ابحث عن موديل الكرت في موقع NVIDIA عشان تتأكد من دعمه للـ CUDA.

ب. تحديث النظام وتثبيت حزم الضروريات

مهم جداً تحديث النظام وتثبيت kernel headers عشان التعريفات تشتغل صح مع نواة لينكس اللي عندك.

لأوبونتو/ديبيان:

sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential dkms linux-headers-$(uname -r)

لـ CentOS/RHEL:

sudo dnf update -y
sudo dnf install -y kernel-devel kernel-headers gcc make dkms

ج. إزالة أي تعريفات NVIDIA قديمة (مهم جداً!)

لو عندك تعريفات قديمة، لازم تشيلها قبل ما تركب الجديدة عشان ما تصير مشاكل.

sudo apt purge -y 'nvidia-*' # لأوبونتو/ديبيان
sudo dnf remove -y 'nvidia-*' # لـ CentOS/RHEL
sudo rm -rf /etc/X11/xorg.conf.d/nvidia-drm-outputclass.conf # إذا موجود

بعد إزالة التعريفات، قد تحتاج لإعادة تشغيل النظام.

د. تثبيت تعريفات NVIDIA والـ CUDA Toolkit

الطريقة الأسهل والأكثر توصية هي استخدام الـ runfile المباشر من موقع NVIDIA أو مدير حزم التوزيعة (إذا كان متوفر بآخر إصدار).

الطريقة الموصى بها: استخدام الـ runfile من موقع NVIDIA (الأكثر تحديثاً):

  1. ادخل على صفحة تحميل CUDA Toolkit.
  2. اختر نظام التشغيل، التوزيعة، المعمارية، والإصدار.
  3. انسخ الأوامر اللي تظهر لك. بتكون شيء زي كذا:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda-repo-ubuntu2204-12-3-local_12.3.2-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-3-local_12.3.2-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-3

الأوامر أعلاه كمثال لإصدار معين على أوبونتو 22.04. دائماً اتبع الأوامر من موقع NVIDIA الرسمي.

طريقة بديلة: باستخدام مدير الحزم (قد لا يكون أحدث إصدار):

لأوبونتو/ديبيان:

sudo apt install -y nvidia-driver-535 cuda

الرقم 535 هو مثال لإصدار التعريف. استخدم أحدث إصدار متوفر في مستودعات التوزيعة أو الذي توصي به NVIDIA.

هـ. إعدادات ما بعد التثبيت

أضف مسارات CUDA لمتغيرات البيئة PATH و LD_LIBRARY_PATH.

echo 'export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc

أو أنشئ ملف cuda.sh في /etc/profile.d/:

sudo nano /etc/profile.d/cuda.sh

وأضف فيه:

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

ثم اجعله قابلاً للتنفيذ:

sudo chmod +x /etc/profile.d/cuda.sh

و. التحقق من التثبيت

بعد إعادة تشغيل، تأكد إن كل شيء تمام:

nvidia-smi
nvcc --version

المفروض تشوف معلومات عن كرت الشاشة وإصدار CUDA Compiler.

2. تثبيت تعريفات AMD ROCm

أ. التحقق من توافقية GPU

تأكد إن كرت الشاشة عندك من AMD ويدعم ROCm. تقدر تشوف موديل الكرت بالأمر:

lspci | grep -i amd

وبعدين ابحث عن موديل الكرت في قائمة GPUs المدعومة من ROCm.

ب. تحديث النظام وتثبيت حزم الضروريات

لأوبونتو/ديبيان:

sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential dkms

لـ CentOS/RHEL:

sudo dnf update -y
sudo dnf install -y kernel-devel kernel-headers gcc make dkms

ج. إضافة مستودع ROCm

لأوبونتو 22.04:

echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/rocm-archive-keyring.gpg] https://repo.radeon.com/rocm/apt/5.7/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt update
sudo apt install -y rocm-keyring

لـ RHEL 9 (أو ما يعادلها):

echo '[rocm]
name=ROCm
baseurl=https://repo.radeon.com/rocm/rhel9/5.7
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg' | sudo tee /etc/yum.repos.d/rocm.repo
sudo dnf update

تأكد من استخدام الإصدار الصحيح من ROCm (مثلاً 5.7) والتوزيعة المناسبة من توثيقات AMD ROCm الرسمية.

د. تثبيت حزم ROCm

تقدر تثبت كل شيء أو تختار الحزم اللي تحتاجها.

sudo apt install -y rocm-hip-sdk # لأوبونتو/ديبيان
sudo dnf install -y rocm-hip-sdk # لـ CentOS/RHEL

أو ممكن تثبت حزم معينة زي rocBLAS أو MIOpen حسب استخدامك.

هـ. إعدادات ما بعد التثبيت

أضف المستخدم الحالي لمجموعة render و video:

sudo usermod -a -G render $LOGNAME
sudo usermod -a -G video $LOGNAME

وبعدين تحتاج تسوي logout و login عشان تتفعل الصلاحيات.

أضف مسارات ROCm لمتغيرات البيئة PATH و LD_LIBRARY_PATH:

echo 'export PATH=/opt/rocm/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

أو أنشئ ملف rocm.sh في /etc/profile.d/:

sudo nano /etc/profile.d/rocm.sh

وأضف فيه:

export PATH=/opt/rocm/bin:$PATH
export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH

ثم اجعله قابلاً للتنفيذ:

sudo chmod +x /etc/profile.d/rocm.sh

و. التحقق من التثبيت

بعد إعادة تشغيل، تأكد إن كل شيء تمام:

rocminfo
hipinfo

المفروض تشوف معلومات عن كرت الشاشة وإصدارات ROCm.

مشاكل شائعة وحلولها

  • تعريفات قديمة: دائماً شيل أي تعريفات قديمة قبل ما تركب الجديدة.
  • Kernel mismatch: تأكد إن kernel headers متطابقة مع نواة النظام اللي شغال عليها.
  • صلاحيات: تأكد إن المستخدم عنده الصلاحيات الكافية للوصول للـ GPU (خاصة لمستخدمي ROCm مع مجموعات render و video).
  • متغيرات البيئة: تأكد إن PATH و LD_LIBRARY_PATH مضبوطين صح.
  • إصدارات غير متوافقة: تأكد إن إصدار CUDA/ROCm متوافق مع إصدارات مكتبات الـ AI (TensorFlow/PyTorch) اللي ناوي تستخدمها.

وبكذا نكون انتهينا من تهيئة بيئة الـ AI الأساسية. الخطوة الجاية بتكون تثبيت مكتبات الـ AI نفسها زي TensorFlow أو PyTorch، وهذي قصة ثانية! بالتوفيق.