لماذا مازلنا نستخدم وحدات المعالجة المركزية (CPUs) بدلاً من وحدات معالجة الرسومات (GPU)؟
يتم استخدام وحدات معالجة الرسومات بشكل متزايد في المهام غير الرسومية مثل حسابات المخاطر وحسابات ديناميكيات السوائل والتحليل الزلزالي. ما الذي يمنعنا من اعتماد الأجهزة التي تعتمد على GPU?
تأتي جلسة الأسئلة والأجوبة اليوم مقدمة من SuperUser-a subdivision of Stack Exchange ، وهي مجموعة مجتمعية للمواقع على شبكة الإنترنت Q & A.
السؤال
قارئ SuperUser Ell يواكب أخبار التكنولوجيا وهو غريب لماذا لا نستخدم المزيد من الأنظمة القائمة على GPU:
يبدو لي أنه في هذه الأيام يتم إجراء الكثير من الحسابات على GPU. من الواضح أن هناك رسومات هناك ، ولكن باستخدام CUDA وما شابه ، AI ، خوارزميات التجزئة (أعتقد Bitcoins) وغيرها يتم أيضا على GPU. لماذا لا يمكننا فقط التخلص من وحدة المعالجة المركزية واستخدام GPU بمفردها؟ ما يجعل GPU أسرع بكثير من وحدة المعالجة المركزية?
لماذا الواقع؟ ما الذي يجعل وحدة المعالجة المركزية فريدة من نوعها?
الاجابة
مساهم SuperUser يقدم DragonLord نظرة عامة مدعومة بشكل جيد للاختلافات بين GPUs ووحدات المعالجة المركزية:
TL ، DR الإجابة: تحتوي وحدات معالجة الرسوم (GPU) على نواتٍ معالجة أكثر بكثير من وحدات المعالجة المركزية (CPUs) ، ولكن نظرًا لأن كل وحدة معالجة أساسية تعمل بشكل أبطأ بشكل ملحوظ من وحدة المعالجة المركزية الأساسية ولا تتوفر فيها الميزات اللازمة لأنظمة التشغيل الحديثة ، فهي غير مناسبة لأداء معظم المعالجة في الحوسبة اليومية. وهي أكثر ملاءمة لعمليات الحوسبة المكثفة مثل معالجة الفيديو ومحاكاة الفيزياء.
الجواب التفصيلي: GPGPU لا يزال مفهوما جديدا نسبيا. تم استخدام وحدات معالجة الرسومات في البداية لتقديم الرسومات فقط ؛ مع تقدم التكنولوجيا ، تم استغلال العدد الكبير من مراكز معالجة الرسوم (GPU) بالنسبة إلى وحدات المعالجة المركزية (CPUs) من خلال تطوير القدرات الحسابية لوحدات معالجة الرسومات (GPUs) حتى يتمكنوا من معالجة العديد من تيارات البيانات المتوازية في وقت واحد ، بغض النظر عن تلك البيانات. على الرغم من أن وحدات معالجة الرسوم يمكن أن تحتوي على مئات أو حتى آلاف من معالجات البث ، إلا أن كل منها يعمل بشكل أبطأ من وحدة المعالجة المركزية الأساسية ولها ميزات أقل (حتى إذا كانت متكاملة تمامًا ويمكن برمجتها لتشغيل أي برنامج يمكن تشغيل وحدة المعالجة المركزية). تتضمن الميزات المفقودة من وحدات معالجة الرسومات المقاطعات والذاكرة الظاهرية ، والتي تكون مطلوبة لتنفيذ نظام تشغيل حديث.
بمعنى آخر ، تحتوي وحدات المعالجة المركزية ووحدات معالجة الرسومات على أبنية مختلفة بشكل كبير تجعلها أكثر ملاءمةً للمهام المختلفة. يمكن لوحدة معالجة الرسومات معالجة كميات كبيرة من البيانات في العديد من التدفقات ، وإجراء عمليات بسيطة نسبياً عليها ، ولكنها غير ملائمة للمعالجة الثقيلة أو المعقدة في تدفقات بيانات واحدة أو قليلة. وحدة المعالجة المركزية أسرع بكثير على أساس كل وحدة أساسية (من حيث التعليمات في الثانية) ويمكنها تنفيذ عمليات معقدة على تدفق بيانات واحد أو عدد قليل من البيانات بسهولة أكبر ، ولكنها لا تستطيع التعامل مع العديد من التدفقات بشكل فعال في وقت واحد.
ونتيجة لذلك ، لا تكون وحدات معالجة الرسومات مناسبة للتعامل مع المهام التي لا تستفيد بشكل كبير من أو لا يمكن موازنتها ، بما في ذلك العديد من تطبيقات المستهلك الشائعة مثل معالجات النصوص. علاوة على ذلك ، تستخدم وحدات معالجة الرسوم البيانية بنية مختلفة بشكل أساسي. يجب على المرء أن يبرمج تطبيقًا خصيصًا لوحدة معالجة الرسومات (GPU) لكي يعمل ، وهناك حاجة إلى تقنيات مختلفة بشكل كبير من أجل برمجة وحدات معالجة الرسومات. وتشمل هذه التقنيات المختلفة لغات برمجة جديدة ، وتعديلات في اللغات الحالية ، ونماذج برمجة جديدة تكون أكثر ملاءمة للتعبير عن الحساب كعملية موازية يتم إجراؤها بواسطة العديد من معالجات التيار. لمزيد من المعلومات حول التقنيات اللازمة لبرمجة وحدات معالجة الرسومات ، راجع مقالات Wikipedia حول معالجة البث والحوسبة المتوازية.
وحدات معالجة الرسوم البيانية الحديثة قادرة على تنفيذ العمليات المتجهية والحساب العائم ، مع أحدث البطاقات القادرة على معالجة أرقام الفاصلة العائمة مزدوجة الدقة. وتمكّن أطر العمل مثل CUDA و OpenCL من كتابة البرامج لوحدات معالجة الرسومات (GPU) ، كما أن طبيعة وحدات معالجة الرسوم تجعلها أكثر ملاءمة للعمليات المتوازية للغاية ، كما هو الحال في الحوسبة العلمية ، حيث يمكن أن تكون سلسلة من بطاقات الحوسبة المتخصصة في GPU بديلاً صالحًا لصغير الحجم. حساب الكتلة كما هو الحال في NVIDIA تسلا الحواسيب الشخصية الشخصية. يمكن للمستهلكين مع وحدات معالجة الرسوم الحديثة الذين يتمتعون بالخبرة في Folding @ home استخدامها للمساهمة مع عملاء GPU ، الذين يمكنهم إجراء عمليات محاكاة لطي البروتين على سرعات عالية جدًا والمساهمة بمزيد من العمل في المشروع (تأكد من قراءة الأسئلة الشائعة أولاً ، وخاصة تلك المتعلقة بـ وحدات معالجة الرسومات). يمكن لوحدات معالجة الرسومات (GPU) أيضًا تمكين محاكاة الفيزياء بشكل أفضل في ألعاب الفيديو باستخدام PhysX وتسريع ترميز الفيديو وفك ترميزه ، وتنفيذ مهام حوسبة كثيفة أخرى. هذه الأنواع من المهام هي الأكثر ملاءمة لأداء وحدات معالجة الرسومات (GPU).
AMD هي شركة رائدة في تصميم المعالج تسمى وحدة المعالجة المتسارعة (APU) التي تجمع بين وحدات المعالجة المركزية التقليدية x86 CPU مع GPUs. قد يسمح ذلك لمكونات وحدة المعالجة المركزية ووحدة معالجة الرسومات بالعمل معًا وتحسين الأداء على الأنظمة ذات المساحة المحدودة للمكونات المنفصلة. مع استمرار التقدم التكنولوجي ، سنشهد درجة متزايدة من التقارب بين هذه الأجزاء التي كانت منفصلة مرة واحدة. ومع ذلك ، لا تزال العديد من المهام التي تقوم بها أنظمة تشغيل الكمبيوتر الشخصي والتطبيقات أكثر ملاءمة لوحدات المعالجة المركزية (CPUs) ، وهناك حاجة إلى الكثير من العمل لتسريع برنامج باستخدام وحدة معالجة الرسومات. نظرًا لأن الكثير من البرامج الحالية تستخدم بنية x86 ، ولأن GPU تتطلب تقنيات برمجة مختلفة وتفتقد العديد من الميزات الهامة اللازمة لأنظمة التشغيل ، فإن الانتقال العام من وحدة المعالجة المركزية إلى وحدة معالجة الرسوم (GPU) للحوسبة اليومية يعد أمرًا صعبًا للغاية.
هل لديك شيء تضيفه إلى الشرح؟ الصوت قبالة في التعليقات. هل ترغب في قراءة المزيد من الإجابات من مستخدمي Stack Exchange الآخرين المحترفين بالتكنولوجيا؟ تحقق من موضوع المناقشة الكامل هنا.