مقدمة
مع التطور السريع للذكاء الاصطناعي، أصبحت وحدات معالجة الرسومات (GPU) محور تركيز في سباق التسلح بين الشركات الكبرى. امتلاك المزيد من وحدات GPU يعني قوة حاسوبية أكبر، مما يتيح تدريبًا أسرع واستدلالًا أفضل للذكاء الاصطناعي.
لماذا وحدات GPU مهمة جدًا في عصر الذكاء الاصطناعي؟
وحدات GPU والحوسبة المتوازية
هل تساءلت يومًا لماذا تعمل الألعاب الكبيرة بسلاسة مع رسومات واقعية، بينما تبدو معالجة المستندات سهلة على جهاز الكمبيوتر الخاص بك؟ الأمر أشبه بالفرق بين شخص يعد وجبة وجهد جماعي. بغض النظر عن سرعة الفرد، لا يمكنه مجاراة كفاءة فريق يعمل بتناسق. ينطبق نفس المبدأ على كيفية معالجة أجهزة الكمبيوتر للمعلومات. وحدة المعالجة المركزية (CPU) تشبه طاهًا متمرسًا، بارعًا في التعامل مع مختلف التعليمات المعقدة. ومع ذلك، لديها “دماغ” واحد فقط، مما يحد من سرعة معالجتها. في المقابل، وحدة GPU تشبه مجموعة من العمال الأقوياء والنشطين. على الرغم من أن كل فرد قد لا يكون ماهرًا مثل الطاهي، إلا أن قوتهم المجتمعة تسمح لهم بالتعامل مع العديد من المهام البسيطة في وقت واحد.
تخيل بناء قلعة من مكعبات LEGO. تعمل وحدة CPU كمهندس معماري ماهر، مسؤول عن تصميم المخططات وتخطيط الخطوات. تمثل وحدة GPU مجموعة من الأطفال الذين، عند استلامهم المخططات، يمكنهم العمل معًا لتجميع أقسام مختلفة في وقت واحد، مثل الجدران والأبراج والبوابات. أخيرًا، تقوم وحدة CPU بتجميع هذه المكونات، مما ينتج قلعة كاملة.
يجسد هذا جوهر وحدات GPU والحوسبة المتوازية:
- GPU: صُممت أصلاً لمعالجة الرسومات، وقد تطورت وحدات GPU لتصبح أدوات حوسبة متوازية قوية.
- الحوسبة المتوازية: على غرار مجموعة تعمل في وقت واحد، يمكن لوحدات GPU تقسيم مهمة كبيرة إلى مهام أصغر، وتوزيعها على “نوى” متعددة لمعالجتها، مما يعزز الكفاءة بشكل كبير.
إلى جانب الألعاب، تجد وحدات GPU والحوسبة المتوازية تطبيقات واسعة في الذكاء الاصطناعي، وتحليل البيانات، والحوسبة العلمية، وغيرها من المجالات. إنها بمثابة “مسرعات” للكمبيوتر، مما يجعل حياتنا أكثر راحة وكفاءة.
ما هو CUDA؟
CUDA (معمارية الحوسبة الموحدة للأجهزة) هو منصة حوسبة متوازية ونموذج برمجة تم تطويره بواسطة NVIDIA. إنه يمكّن مطوري البرامج والمهندسين من استخدام وحدات GPU من NVIDIA للمهام الحاسوبية العامة، بما يتجاوز عرض الرسومات.
في جوهره، CUDA عبارة عن طبقة برمجية توفر وصولاً مباشرًا إلى وحدة GPU. يسمح هذا للمطورين بتسخير قدرات المعالجة المتوازية لوحدة GPU لتسريع التطبيقات كثيفة الحساب. يقدم CUDA واجهة برمجة تطبيقات (API) شاملة تدعم لغات البرمجة مثل C و C++ و Fortran، مما يمكّن المطورين من كتابة برامج يمكن تشغيلها على وحدات GPU.
تشمل الميزات الرئيسية لـ CUDA:
- التوازي: تمتلك وحدات GPU آلاف النوى المعالجة المتوازية القادرة على التعامل مع كميات هائلة من البيانات في وقت واحد، مما يجعل CUDA مناسبًا تمامًا لمهام الحوسبة المتوازية.
- إدارة الذاكرة: يوفر CUDA وصولاً مباشرًا إلى ذاكرة GPU، بما في ذلك الذاكرة العالمية والمشتركة والثابتة.
- الخيوط والكتل: تتكون برامج CUDA من خيوط متعددة منظمة في كتل، والتي يتم تعيينها بعد ذلك على معالجات GPU المتعددة.
- التوازي الديناميكي: يدعم CUDA الإطلاق الديناميكي لنوى جديدة على GPU، مما يسمح بإنشاء المزيد من المهام المتوازية في وقت التشغيل حسب الحاجة.
- التوافق: يتوافق CUDA مع نماذج البرمجة وسلاسل الأدوات الحالية، مما يسهل التكامل في التطبيقات الحالية.
- التحسين: تقدم NVIDIA أدوات متنوعة لمساعدة المطورين على تحسين أداء برامج CUDA الخاصة بهم، بما في ذلك محللات الأداء والمحسنات.
نموذج برمجة CUDA
قبل CUDA، كانت وحدات GPU تُستخدم أساسًا لعرض الرسومات، مما جعل من الصعب الاستفادة من قوتها للحوسبة العامة. تختلف وحدات CPU و GPU بشكل كبير في بنيات الذاكرة ومجموعات التعليمات والجوانب الأخرى. بالإضافة إلى ذلك، نماذج برمجة CPU تسلسلية عادة، بينما وحدات GPU أكثر ملاءمة للمعالجة المتوازية.
قدم CUDA نموذج حوسبة غير متجانس يسمح للمطورين بكتابة التعليمات البرمجية باستخدام لغات برمجة مألوفة (مثل C++) مع تسخير قدرات المعالجة المتوازية لوحدات GPU. إنه يجرد تفاصيل الأجهزة الأساسية، مما يحرر المطورين من الاهتمام ببنية GPU المحددة ويسمح لهم بالتركيز على التنفيذ المتوازي لخوارزمياتهم. والأهم من ذلك، توفر NVIDIA مجموعة غنية من المكتبات والأدوات التي تبسط برمجة GPU وتحسين الأداء.
يخفض نموذج برمجة CUDA حاجز الدخول للحوسبة العامة المعجلة بواسطة GPU، مما يمكّن المطورين من تسريع مختلف المهام كثيفة الحساب، مثل الحوسبة العلمية، والتعلم الآلي، ومعالجة الصور.
كيفية نشر CUDA
فيما يلي الخطوات التفصيلية لتثبيت CUDA على Ubuntu:
التحقق من توافق النظام
- تحقق مما إذا كانت وحدة GPU الخاصة بك من NVIDIA:
- تأكد من أن إصدار نواة Linux الخاص بك يفي بمتطلبات CUDA. راجع وثائق NVIDIA الرسمية للحصول على معلومات التوافق: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
lspci | grep -i nvidia
تنزيل CUDA Toolkit
- قم بزيارة صفحة تنزيل CUDA على موقع NVIDIA الرسمي: https://developer.nvidia.com/cuda/cuda-downloads
- حدد خيار التنزيل المناسب لإصدار Ubuntu الخاص بك، وهندسة النظام، وإصدار CUDA.
- قم بتنزيل ملف التشغيل (المحلي) type.
تثبيت CUDA
- افتح محطة طرفية، وانتقل إلى دليل التنزيل، واستخدم الأمر
chmod +xلمنح أذونات التنفيذ لملف التشغيل. - قم بتشغيل ملف التشغيل واتبع التعليمات لإكمال التثبيت:
- أثناء التثبيت، وافق على اتفاقية الترخيص واختر تثبيت جميع المكونات، بما في ذلك برامج التشغيل و CUDA Toolkit و cuDNN.
- بعد التثبيت، أضف مسار CUDA إلى متغيرات البيئة الخاصة بك:
echo 'export PATH=/usr/local/cuda-<version>/bin:$PATH' ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-<version>/lib64:$LD_LIBRARY_PATH' ~/.bashrc
source ~/.bashrc
sudo ./cuda_<version>_<distro>_<architecture>.run
chmod +x cuda_<version>_<distro>_<architecture>.run
التحقق من التثبيت
- قم بترجمة وتشغيل برنامج مثال CUDA:
- إذا نجح التثبيت، سترى معلومات حول وحدة GPU الخاصة بك، بما في ذلك إصدار CUDA.
cd /usr/local/cuda-<version>/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
استخدام CUDA على Novita AI
في Novita AI، يدمج منتج GPU Instance الخاص بنا CUDA بشكل افتراضي، مما يسمح بالبدء بنقرة واحدة دون أي عمليات إضافية مملة.

استخدام CUDA على Novita AI
الخاتمة
مع CUDA، يمكن للمطورين الاستفادة الكاملة من القوة الحاسوبية الهائلة لوحدات GPU من NVIDIA لتسريع مختلف المهام الحسابية.
باعتباره أحد أهم منتجات NVIDIA، يشكل CUDA أساس النظام البيئي البرمجي لـ NVIDIA. العديد من التقنيات المتطورة مبنية على CUDA، مثل TensorRT و Triton و Deepstream. تظهر حلول البرامج هذه، المطورة على منصة CUDA، قدرة CUDA على دفع الابتكار البرمجي.
تتميز أجهزة NVIDIA بأداء استثنائي. ومع ذلك، يتطلب إطلاق إمكاناتها الكاملة دعمًا برمجيًا مطابقًا. يعمل CUDA كجسر، حيث يوفر واجهة قوية للمطورين للاستفادة من أجهزة GPU لتسريع الحوسبة عالية الأداء. مثل سائق ماهر يقود سيارة عالية الأداء، يضمن CUDA تحقيق إمكانات الأجهزة بالكامل.
Novita AI هي منصة سحابية للذكاء الاصطناعي تقدم للمطورين طريقة سهلة لنشر نماذج الذكاء الاصطناعي باستخدام واجهة برمجة التطبيقات البسيطة الخاصة بنا، مع توفير سحابة GPU ميسورة التكلفة وموثوقة للبناء والتوسع.
قراءة موصى بها:
