عن المشروع

NVIDIA CUDA Samples هو مستودع رسمي لأمثلة برمجية توضح ميزات وإمكانيات CUDA Toolkit. تعمل هذه الأمثلة كمواد تعليمية ومرجعية للمطورين الذين يعملون مع وحدات معالجة الرسوميات من NVIDIA، وتغطي مجموعة واسعة من المواضيع بدءًا من مفاهيم CUDA الأساسية وحتى تقنيات برمجة GPU المتقدمة. يتم تنظيم المستودع في قسمين رئيسيين: أمثلة C++ وأمثلة Python. تُصنف أمثلة C++ إلى عشر مجموعات: المقدمة (مفاهيم CUDA الأساسية وواجهات برمجة التطبيقات)، الأدوات (الاستعلام عن قدرات الجهاز وقياسات النطاق الترددي)، المفاهيم والتقنيات (أساليب حل المشكلات الشائعة)، ميزات CUDA (المجموعات التعاونية، التوازي الديناميكي، رسوميات CUDA)، مكتبات CUDA (NPP، NVJPEG، cuBLAS، cuFFT، cuSPARSE، cuSOLVER، cuRAND)، المجال المحدد (الرسوميات، التمويل، معالجة الصور)، الأداء (تقنيات التحسين)، libNVVM (استخدام NVVM IR)، المنصة المحددة (Tegra، cuDLA، NvMedia، NvSci، OpenGL ES)، وCUDA Tile (C++ لـ CUDA Tile). تستخدم أمثلة Python CUDA Python مع cuda.core للأجهزة والبرامج والإطلاق وإدارة الذاكرة، جنبًا إلى جنب مع NumPy أو CuPy أو التفاعل مع الأطر. وهي منظمة في البدء، المفاهيم الأساسية، التفاعل مع الأطر (PyTorch وTensorFlow)، الحوسبة الموزعة، والأدوات. يستخدم نظام البناء CMake ويدعم Linux وWindows وTegra cross-compilation وQNX ومنصات QNX Safety. يمكن بناء الأمثلة لجميع بنى GPU المدعومة أو استهداف بنى محددة. يتضمن المستودع سكربت تشغيل الاختبارات (run_tests.py) الذي يمكنه تنفيذ جميع الأمثلة كفحص سلامة، مع وسائط قابلة للتكوين، وتنفيذ متوازٍ، وخيارات تخطي للأمثلة التي تتطلب شاشات عرض رسومية. بعض الأمثلة لها تبعيات خارجية تشمل FreeImage وMPI وDirectX وDirectX 12. ينظم نظام التثبيت الأمثلة المبنية في تخطيط دليل منظم بناءً على بنية الهدف ونظام التشغيل ونوع البناء. لا تُقصد الأمثلة كمجموعة تحقق لـ CUDA بل تعمل كعروض عملية لأنماط وتقنيات برمجة GPU.