0Pricing
CUDA Academy · درس

تعداد اتجاه النسخ

استخدم cudaMemcpyKind بشكل صحيح.

تعداد اتجاه النسخ درس مجاني في CUDA Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في CUDA Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة CUDA Academy 4 دروس في المجموع.

الوسيطة الرابعة

ينتهي كل استدعاء cudaMemcpy بعلامة اتجاه من النوع cudaMemcpyKind. وتخبر هذه العلامة بيئة التشغيل بالاتجاه الذي تنتقل فيه البايتات. 🧭

cudaMemcpy(dst, src, bytes, kind);

من المضيف إلى الجهاز

استخدم cudaMemcpyHostToDevice لرفع المدخلات من ذاكرة RAM الخاصة بـ CPU إلى ذاكرة GPU قبل تشغيل النواة.

cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);

من الجهاز إلى المضيف

استخدم cudaMemcpyDeviceToHost لتنزيل النتائج من ذاكرة GPU إلى ذاكرة RAM الخاصة بـ CPU بعد إتمام الحساب.

cudaMemcpy(h_c, d_c, bytes, cudaMemcpyDeviceToHost);

من الجهاز إلى الجهاز

لنسخ البيانات بين مخزنين مؤقتين على GPU دون لمس CPU، استخدم cudaMemcpyDeviceToDevice.

cudaMemcpy(d_b, d_a, bytes, cudaMemcpyDeviceToDevice);

من المضيف إلى المضيف

يوجد أيضًا cudaMemcpyHostToHost، وهو نسخ عادي داخل CPU. ونادرًا ما تحتاج إليه، لأن memcpy القياسي يؤدي المهمة.

دع برنامج التشغيل يحدّد الاتجاه

مع cudaMemcpyDefault، تستنتج بيئة التشغيل الاتجاه من المؤشرات. ويجب أن يكون العنونة الموحّدة مفعّلة لكي يعمل ذلك بأمان.

cudaMemcpy(dst, src, bytes, cudaMemcpyDefault);

يجب أن يطابق الاتجاه المؤشرات

يجب أن تتوافق العلامة مع مؤشراتك الفعلية. فاستخدام مؤشر جهاز مع نوع HostToHost يؤدي إلى error أو إلى تعطل البرنامج.

خطأ شائع في الخلط

يُعد تبديل HostToDevice وDeviceToHost bug شائعًا. لا يُصدر المصرّف أي تحذير، لذا اقرأ كل استدعاء بعناية. 🐛

اقرأه كأنه جملة

يوضّح اسم التعداد تدفق البيانات: يعني HostToDevice الانتقال من المضيف إلى الجهاز. طابقه مع المصدر والوجهة.

طابقه مع المؤشرات

حدّد أي مخزن هو source وأيّها هو الوجهة، ثم اختر النوع الذي يصف ذلك المسار تحديدًا.

عند الشك، كن صريحًا

فضّل تحديد الاتجاه بالاسم على استخدام cudaMemcpyDefault. فكونك explicit يجعل مقصدك واضحًا ويكشف الأخطاء في وقت أبكر.

تحقّق سريع

تنسخ مخزنًا مؤقتًا على الجهاز إلى مخزن آخر على الجهاز، من دون لمس CPU. أي نوع يناسب ذلك؟

مراجعة

تعرّفت إلى جميع أنواع cudaMemcpyKind: HostToDevice وDeviceToHost وDeviceToDevice وHostToHost وDefault. طابق العلامة مع مؤشراتك في كل مرة. 🎉

الأسئلة الشائعة

هل درس «تعداد اتجاه النسخ» مجاني؟

نعم — نص درس «تعداد اتجاه النسخ» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة CUDA Academy، انتقل إلى CoddyKit PRO. تتضمن دورة CUDA Academy 4 دروس في المجموع.

ماذا ستتعلم في «تعداد اتجاه النسخ»؟

استخدم cudaMemcpyKind بشكل صحيح. تتمرن على CUDA Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ CUDA Academy؟

لا تُشترط خبرة سابقة. CUDA Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «تعداد اتجاه النسخ»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس CUDA Academy هذا؟

نعم. كل درس في CUDA Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. النقل من المضيف إلى الجهاز
  2. النقل من الجهاز إلى المضيف
  3. تعداد اتجاه النسخ
  4. عنق زجاجة النقل عبر PCIe
← العودة إلى CUDA Academy