قياس أول تسارع لك
قِس أداء GPU مقابل CPU للمهمة نفسها.
قياس أول تسارع لك درس مجاني في CUDA Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في CUDA Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة CUDA Academy 4 دروس في المجموع.
قِس المكسب الآن
لديك kernel صحيحة، لذا فالسؤال الممتع هو: ما مقدار سرعتها مقارنةً بـ CPU؟ يحوّل القياس التخمين إلى رقم حقيقي. ⏱️
قِس خط الأساس لوحدة CPU
ابدأ بـ خط أساس عادل: قِس زمن عملية الجمع نفسها أثناء تشغيلها في حلقة CPU عادية. فأنت تحتاج إلى شيء تقارن به GPU.
لا تقس الزمن باستخدام الساعة بطريقة خاطئة
تجنّب القياس عبر عملية cudaMemcpy لم تنتظر اكتمالها. فعملية الإطلاق غير متزامنة، ولذلك قد تعرض المؤقتات الساذجة أرقامًا لا معنى لها.
استخدم أحداث CUDA
الأداة المناسبة هي زوج من كائنات cudaEvent. فهي تسجّل الطوابع الزمنية لوحدة GPU مباشرةً على الجهاز، ما يتيح قياسًا دقيقًا لزمن kernel.
cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);حدّد بداية ونهاية kernel
سجّل start قبل الإطلاق مباشرةً، وسجّل التوقف بعده مباشرةً. تُوضَع الأحداث في قائمة الانتظار داخل stream إلى جانب kernel.
cudaEventRecord(start);
vecAdd<<<blocks, threads>>>(d_A, d_B, d_C, n);
cudaEventRecord(stop);انتظر ثم اقرأ
استدعِ cudaEventSynchronize على حدث التوقف حتى تنتظر CPU اكتمال GPU. عندها فقط يصبح الزمن المنقضي جاهزًا للقراءة.
cudaEventSynchronize(stop);
float ms = 0;
cudaEventElapsedTime(&ms, start, stop);نفّذ إحماءً أولًا
يتحمّل الإطلاق الأول تكاليف إعداد تُدفع مرة واحدة. نفّذ إطلاق إحماء تجريبيًا قبل القياس حتى لا تشوّه تلك التكاليف الرقم.
احسب متوسط عدة تشغيلات
العينة الواحدة متذبذبة، لذا قِس زمن kernel عدة مرات واحسب المتوسط. تجعل الأرقام المستقرة ادعاءات تسارع الأداء جديرة بالثقة.
احسب عمليات النسخ
كن صريحًا بشأن ما تقيسه. قد يبدو زمن kernel وحده رائعًا، لكن التسارع الحقيقي يجب أن يشمل عمليات النقل عبر PCIe أيضًا.
احسب التسارع
التسارع هو ببساطة زمن CPU مقسومًا على زمن GPU. وقد تكون مصفوفة صغيرة أبطأ على GPU بعد احتساب عمليات النسخ.
float speedup = cpu_ms / gpu_ms;المصفوفات الأكبر تحقق مكاسب أكبر
تتألق GPU عندما يتوفر قدر كافٍ من العمل لإخفاء تكلفة النقل. كبّر n وراقب ارتفاع التسارع مع سيطرة التوازي. 📈
تحقّق سريعًا
أي أداة توفر قياسًا دقيقًا لزمن kernel على GPU؟
مراجعة
قست أول تسارع لك باستخدام أحداث CUDA: نفّذ الإحماء، وحدّد بداية ونهاية kernel، ثم أجرِ المزامنة واقسم زمن CPU على زمن GPU. المشكلات الأكبر تحقق مكاسب أكبر. 🎉
تعلم C++ مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «قياس أول تسارع لك» مجاني؟
نعم — نص درس «قياس أول تسارع لك» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة CUDA Academy، انتقل إلى CoddyKit PRO. تتضمن دورة CUDA Academy 4 دروس في المجموع.
ماذا ستتعلم في «قياس أول تسارع لك»؟
قِس أداء GPU مقابل CPU للمهمة نفسها. تتمرن على CUDA Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ CUDA Academy؟
لا تُشترط خبرة سابقة. CUDA Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «قياس أول تسارع لك»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس CUDA Academy هذا؟
نعم. كل درس في CUDA Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- نواة جمع المتجهات
- توصيل جانب المضيف
- التحقق من النتيجة على CPU
- قياس أول تسارع لك