الحوسبة باستخدام وحدة معالجة الرسوميات – ما هي؟

هل تسمع باستمرار عن الحوسبة أو التسريع باستخدام وحدة معالجة الرسوميات، ولكنك غير متأكد مما تعنيه؟ إليك كل ما تحتاج إلى معرفته.

تتواجد وحدات معالجة الرسومات (GPU) في جميع الدوائر الإلكترونية التي تنتج شكلاً واحدًا أو آخر من أشكال العرض، وخاصةً الكمبيوتر.

كانت معالجات الرسوميات المبكرة بسيطة نسبيًا. ولكن مع ظهور الألعاب والرسوم المتحركة ثلاثية الأبعاد ومهام عرض الفيديو التي دفعت وحدات المعالجة المركزية إلى ما هو أبعد من حدودها، كان لزامًا على وحدات معالجة الرسوميات الأكثر قوة أن تتدخل لإنقاذ الموقف.

لقد ازدادت قوة وتعقيد بطاقات معالجة الرسوميات الجديدة هذه بمرور الوقت، حيث سعت شركات وباحثون مختلفون إلى إيجاد طرق للاستفادة من ميزة التنفيذ المتوازي. يوضح لك هذا المنشور كيف سارت الأمور حتى الآن.

ما هي وحدة معالجة الرسوميات (GPU)؟

وحدة معالجة الرسومات (GPU) عبارة عن دائرة متخصصة مصممة لمعالجة البيانات للمساعدة في إنشاء الصور للعرض. بعبارة أخرى، وحدة معالجة الرسومات (GPU) عبارة عن نظام ينشئ الصور التي تراها على أي سطح عرض، مثل شاشة الكمبيوتر، وشاشة الهاتف الذكي، وأجهزة الألعاب، وما إلى ذلك.

كانت وحدات معالجة الرسوميات في البداية عبارة عن أجهزة بسيطة تجمع بين العناصر الرسومية لإنشاء مخرجات مثالية لجهاز معين. ومع مرور الوقت، ومع ظهور ألعاب الكمبيوتر، بدأت وحدات معالجة الرسوميات في النمو في التعقيد والقوة، مما أدى إلى ولادة GPGPU أو الحوسبة للأغراض العامة على وحدات معالجة الرسومات.

ما هي الحوسبة GPU؟

حوسبة وحدة معالجة الرسومات (GPU) هي استخدام وحدة معالجة الرسومات (GPU) في عمليات حسابية تتجاوز الرسومات. هذا يعني استخدام وحدات معالجة الرسومات المُدمجة في بطاقة الفيديو الخاصة بالحاسوب، والمُخصصة أصلاً لمعالجة رسومات الحاسوب، وذلك لحساب أنواع أخرى من البيانات، مثل المحاكاة العلمية، وتعدين العملات المشفرة، وحسابات الجبر، والتنبؤات الجوية، والشبكات العصبية، وغيرها.

السبب وراء هذا التطور في الحوسبة بواسطة وحدة معالجة الرسوميات يأتي من التطور المذهل لوحدات معالجة الرسوميات، والذي يأتي من بنية التوازي الموزعة لأنظمة وحدة معالجة الرسوميات الحديثة.

مع تزايد قوة وحدة المعالجة المركزية للكمبيوتر وقدرتها على التعامل مع برامج وألعاب أكثر تعقيدًا، حاول مصنعو بطاقات الفيديو أيضًا مواكبة التطورات في الحوسبة الحديثة والرسومات ثلاثية الأبعاد. كشفت شركة Nvidia عن غيفورس شنومكس في عام 1999 كأول بطاقة فيديو GPU في العالم وتطورت الأمور من هناك.

الميزة الرئيسية لبطاقات وحدة معالجة الرسومات على وحدات المعالجة المركزية هي بنية المعالجة المتوازية، مما يجعلها قادرة على معالجة مهام البيانات الكبيرة بطريقة موزعة ومتوازية تمنع الاختناقات وتجميد وحدة المعالجة المركزية.

ما هي تطبيقات الحوسبة GPU؟

تتعدد تطبيقات الحوسبة باستخدام وحدة معالجة الرسوميات، وفيما يلي نظرة على بعض الاستخدامات الرئيسية:

  1. التعلم الآلي والشبكات العصبية
  2. منطق غامض
  3. المعلوماتية الحيوية
  4. النمذجة الجزيئية
  5. عرض الفيديو
  6. الحوسبة الهندسية
  7. أبحاث المناخ والتنبؤ بالطقس
  8. الفيزياء الفلكية
  9. التشفير
  10. رؤية الحاسوب
  11. تكسير كلمة المرور
  12. البحث الكمي

معالجة وحدة معالجة الرسوميات (GPU) مقابل معالجة وحدة المعالجة المركزية (CPU)

تعالج كل من وحدات معالجة الرسوميات ووحدات المعالجة المركزية البيانات الرقمية، لكنهما تقومان بذلك بطرق مختلفة. تم تصميم وحدة المعالجة المركزية للمعالجة التسلسلية بسرعات عالية، في حين تم تصميم وحدات معالجة الرسوميات للمعالجة المتوازية بسرعات أقل بكثير. بالطبع، يمكن لوحدة المعالجة المركزية استخدام تقنية المعالجة المتعددة الخيوط للحصول على خيطين لكل نواة، أو حتى الحصول على عشرات النوى، لكنها في الأساس معالجات تسلسلية.

في حين أن وحدات المعالجة المركزية يمكن أن تحتوي على عدد قليل من النوى، فإن وحدات معالجة الرسومات الحديثة تأتي مع آلاف النوى، على سبيل المثال، Nvidia GeForce RTX 3090 الذي يضم أكثر من 10 آلاف نواة. ولكن للحصول على ميزة على وحدات المعالجة المركزية، يتعين أن تكون البيانات قادرة على المعالجة المتوازية، مثل معالجة تدفق يحتوي على آلاف الصور دفعة واحدة.

وحدات معالجة الرسوميات (GPU) مقابل وحدات ASIC

ASIC تعني الدائرة المتكاملة المخصصة للتطبيق وهذا يعني أنها لا تستطيع سوى أداء مهمة واحدة - أي المهمة التي صُممت لأدائها. ASIC هي آلة فريدة تم تطويرها من الصفر وتتطلب معرفة متخصصة بالأجهزة لبنائها. تُستخدم ASICs بشكل شائع في تعدين العملات المشفرة، لأنها توفر فوائد معالجة متوازية جيدة وكفاءة أفضل من وحدات معالجة الرسوميات.

لكن الفارق الرئيسي بين الاثنين هو أن وحدات معالجة الرسوميات أكثر تنوعًا. على سبيل المثال، يمكنك بسهولة بناء جهاز تعدين للعملات المشفرة باستخدام وحدات معالجة الرسوميات. الأجزاء متوفرة بسهولة وإذا انتهيت من التعدين، فيمكنك دائمًا بيع بطاقة وحدة معالجة الرسوميات للاعبين أو عمال مناجم آخرين. ومع ASICs، لا يمكنك بيع جهاز مستعمل إلا لعمال مناجم آخرين، لأنك بالكاد تستطيع القيام بأي شيء آخر به.

بعيدًا عن تعدين العملات المشفرة، يصبح الحصول على جهاز ASIC أكثر صعوبة، لأنها ليست منتجات تجارية. وهذا يتناقض بشدة مع أنظمة GPU التي يمكنك الحصول عليها في كل مكان وتكوينها بسهولة.

وحدة معالجة الرسوميات (GPU) مقابل الحوسبة العنقودية

في حين أن بطاقة وحدة معالجة الرسومات (GPU) الواحدة تحتوي على آلاف النوى، والتي تضيف قوة هائلة إلى أي جهاز كمبيوتر تقوم بتوصيلها به، يمكنك نظريًا إضافة العديد من بطاقات وحدة معالجة الرسومات (GPU) إلى اللوحة الرئيسية للكمبيوتر بقدر ما يمكنها التعامل معها، وبالتالي زيادة قدرتها على المعالجة.

من ناحية أخرى، يشير مصطلح مجموعة أجهزة الكمبيوتر إلى أجهزة كمبيوتر متعددة متصلة ببعضها البعض لتعمل كجهاز كمبيوتر واحد كبير - وهو جهاز كمبيوتر فائق. يُطلق على كل جهاز كمبيوتر على الشبكة اسم عقدة ويمكن أن يحتوي على وحدة معالجة مركزية متعددة النواة، بالإضافة إلى بطاقة وحدة معالجة رسومية واحدة أو أكثر على اللوحة.

يجب أن يكون لكل مجموعة عقدة رئيسية، وهي الكمبيوتر الأمامي المسؤول عن إدارة وجدولة العقد العاملة بها. كما ستحتوي على برنامج يخصص البيانات والبرامج للعقد العاملة بها لحساب النتائج وإرجاعها.

تسريع وحدة معالجة الرسوميات مقابل تقنية Hyper-threading

تم تصميم وحدة المعالجة المركزية للتعامل مع مهام متعددة في وقت واحد، ولهذا السبب تعمل بسرعات عالية جدًا، وتجدول وقت المعالجة بين هذه العمليات المتعددة. ومع ذلك، عندما تواجه وظيفة تتطلب عمليات حسابية مكثفة، فقد تقضي بعض الوقت في الحلقة قبل أن تعود إلى العمليات الأخرى. وعادةً ما يؤدي هذا إلى تباطؤ عام في الكمبيوتر، وفي أسوأ الحالات، تجميد كامل للنظام.

يستطيع مصممو الكمبيوتر تجنب هذا السيناريو المروع إما باستخدام تقنية HyperThreading أو تسريع وحدة معالجة الرسوميات. تسمح تقنية HyperThreading لنواة وحدة المعالجة المركزية الواحدة بالعمل كخيطين معالجة. لذا، عندما يتم حبس خيط واحد في حلقة كثيفة الحوسبة، لا يزال الخيط الآخر قادرًا على إبقاء النظام متماسكًا.

تحتوي أجهزة الكمبيوتر الحديثة الآن على عدة أنوية تتراوح من 2 إلى 4، و8، و16، و32، وما إلى ذلك. بالإضافة إلى ذلك، تتميز هذه الأجهزة بتعدد الخيوط، لذا فإن وحدة المعالجة المركزية ثنائية النواة توفر 2 خيوط، وتوفر وحدة المعالجة المركزية رباعية النواة 4 خيوط، وما إلى ذلك.

إن تقنية Hyper-threading مع وحدات المعالجة المركزية متعددة النواة ستحل معظم مشاكل الحوسبة، وتمنع الاختناقات، وتوفر أداءً عاليًا للألعاب البسيطة، وإنتاج الموسيقى، والمشاريع الصغيرة في مجال الرسومات والفيديو والتعلم الآلي. ولكن عندما تحتاج إلى طاقة أكبر من ذلك، فغالبًا ما تكون وحدة معالجة الرسومات هي الحل المناسب.

تسريع وحدة معالجة الرسوميات أو تسريع الأجهزة هو قدرة تطبيق برمجي على الاستفادة من قوة المعالجة المتوازية لوحدة معالجة الرسوميات لمعالجة أعداد كبيرة من البيانات، دون إبطاء وحدة المعالجة المركزية. تعتمد العديد من التطبيقات المهنية على تسريع وحدة معالجة الرسوميات للعمل بشكل جيد. وتشمل هذه برامج تصميم/عرض الفيديو والرسوم المتحركة، وأجهزة الترميز، والتشفير، والشبكات العصبية الكبيرة، وما إلى ذلك.

أساسيات برمجة GPGPU

تم إجراء برمجة عامة لوحدات معالجة الرسوميات في البداية باستخدام دايركت و برنامج OpenGL تم تصميم هذه المكتبات خصيصًا لتطوير الرسومات، ومع ذلك، كان عليك إعادة استخدام بياناتك في نماذج تشبه الرسومات حتى تعمل.

لحسن الحظ، حدثت تطورات كبيرة في GPGPU على مر السنين، مما أدى إلى ظهور المكتبات ولغات البرمجة والأطر. أشهر هذه الأطر هي CUDA من Nvidia.

يجعل CUDA من السهل على أي مطور التعمق في برمجة وحدة معالجة الرسوميات دون الحاجة إلى معرفة التفاصيل الدقيقة لبرمجة وحدة معالجة الرسوميات الكلاسيكية. فهو يوفر ميزات تعزز التطوير بما يتجاوز الرسومات، حيث تتميز العديد من الوحدات بوظائف خاصة بالتعلم الآلي.

كما تسهل المكتبات المتاحة إنشاء برامج جديدة معجلة بواسطة وحدة معالجة الرسوميات من البداية أو تكييف البرامج المكتوبة مسبقًا مع المعالجة المتوازية. ما عليك سوى اختيار المكتبة المناسبة وتحسين الكود الخاص بك للحلقات المتوازية وإعادة التجميع، وهذا كل شيء.

أنوية CUDA مقابل معالجات التدفق

في كثير من الأحيان، سوف تصادف المصطلحات نوى كودا و دفق المعالجاتيشير كلا المصطلحين ببساطة إلى جوهر وحدة معالجة الرسوميات أو وحدات المنطق الحسابي من وحدة معالجة الرسوميات. CUDA Core هي تقنية خاصة من Nvidia، في حين أن معالجات Stream هي من AMD.

مصطلح آخر قد تصادفه هو Streaming Multi-Processor أو SM. هذه تقنية أخرى من Nvidia كانت تجمع في الأصل 8 نوى CUDA لكل SM. وهي تنفذ عمليات تشوه مكونة من 32 خيطًا في المرة الواحدة، باستخدام 4 دورات ساعة لكل أمر. تتميز التصميمات الأحدث الآن بأكثر من 100 نواة لكل معالج متعدد البث.

أفضل لغات ومكتبات وحدة معالجة الرسوميات

هناك العديد من المكتبات واللغات المتاحة التي تعمل على كل من منصتي Nvidia CUDA وAMD. فيما يلي بعض منها:

  1. إنفيديا كيو بلاس - برامج فرعية للجبر الخطي الأساسي لـ CUDA
  2. cuDNN - مكتبة الشبكات العصبية العميقة
  3. OpenCL - معيار مفتوح للبرمجة المتوازية
  4. برنامج OpenMP - لوحدات معالجة الرسوميات AMD
  5. ورك او نتوء - مكتبة C++
  6. إنفيديا كيوراند - توليد أرقام عشوائية
  7. كوففت - لتحويل فورييه السريع
  8. إنفيديا NPP - معالجة الصور والإشارات ثنائية الأبعاد
  9. وحدة معالجة الرسوميات VSIPL - معالجة الصور المتجهة والإشارات
  10. مكتبة برمجية مفتوحة للرؤية الحاسوبية - مكتبة وحدة معالجة الرسوميات لرؤية الكمبيوتر
  11. OpenACC - لغة للتنمية الموازية
  12. في بي سي يو – Python لمنصة CUDA
  13. TensorRT - التعلم العميق لـ CUDA
  14. كودا سي++ - لغة C++ لـ CUDA
  15. كودا سي - لغة C لـ CUDA
  16. كودا فورتران – CUDA لمطوري FORTRAN

أفضل مشاريع مجموعة GPU

اعتبارًا من يونيو 2022، تم تسريع 8 من أسرع 10 أجهزة كمبيوتر عملاقة في العالم بواسطة وحدة معالجة الرسوميات. وتشترك جميعها في نظام التشغيل Linux أيضًا، وهي على النحو التالي:

الترتيبالاسمبيتافلوبسوحدة المعالجة المركزية النوىGPU النوىالطاقة (كيلو واط)السنة
1.حدود1,102591,8728,138,24021,1002022
2.لومي151.9075,2641,034,8802,9002022
3.قمة148.6202,7522,211,84010,0962018
4.سييرا94.64190,0801,382,4007,4382018
5.بيرلماتر64.59لا يوجدلا يوجد2,5892021
6.سيلين63.4671,680483,8402,6462020
7.تيانخه-261.445427,0084,554,75218,4822013
8.أداسترا46.121,632297,4409212022

الخاتمة

مع وصولنا إلى نهاية هذه الغوصة في الحوسبة GPU وكل ما يأتي معها، يجب أن تكون لديك فكرة عن قوتها ونطاقها الآن.

لمزيد من المعلومات، يمكنك الاطلاع على منصة المطورين الخاصة بـ نفيديا هنا أو ذاك AMD هنا.

ننامدي أوكيكي

ننامدي أوكيكي

ننامدي أوكيكي هو من عشاق الكمبيوتر ويحب قراءة مجموعة كبيرة من الكتب. يفضل Linux على Windows/Mac وكان يستخدمه
أوبونتو منذ بداياته. يمكنك متابعته على تويتر عبر بونجوتراكس

المقالات: 298

تلقي المواد التقنية

اتجاهات التكنولوجيا، واتجاهات الشركات الناشئة، والمراجعات، والدخل عبر الإنترنت، وأدوات الويب والتسويق مرة أو مرتين شهريًا