الدرس 2: لماذا نستخدم GPU؟ الإنتاجية مقابل زمن الاستجابة
يحتوي CPU على عدد قليل من النوى القوية جدًا التي تُنهي مهمة واحدة بسرعة — وهذا زمن استجابة منخفض. أما GPU فيحتوي على آلاف النوى البسيطة التي تُنفّذ العملية نفسها على كميات كبيرة من البيانات دفعة واحدة — وهذه إنتاجية عالية. لجمع متجهين طول كل منهما مليون، يمرّ CPU عنصرًا عنصرًا في حلقة، بينما يُسند G
الـ CPU هو بضعة طهاة خبراء يُعدّون طبقًا واحدًا معقّدًا بسرعة. أما الـ GPU فهو ألف طبّاخ خط إنتاج، يُقطّع كل منهم حبة طماطم واحدة — كل واحد بمفرده بطيء، لكنهم معًا يُقطّعون ألف حبة طماطم في زمن تقطيع حبة واحدة.
- الإنتاجية (throughput)
- كمية العمل المُنجَز في وحدة الزمن. الـ GPU يتفوّق هنا: عمليات كثيرة متطابقة تجري بالتوازي.
- زمن الاستجابة (latency)
- الزمن اللازم لإنهاء عملية واحدة. الـ CPU يتفوّق هنا: نواة واحدة قوية تُنهي مهمة واحدة بسرعة.
- kernel
- دالة تعمل على الـ GPU. تُوسَم بـ __global__ ويُطلقها آلاف الـ threads دفعة واحدة.
- SIMT
- Single Instruction, Multiple Threads — كل الـ threads تُنفّذ التعليمة نفسها، كل منها على بيانات مختلفة.