इस प्रोजेक्ट के बारे में

NVIDIA CUDA सैंपल्स आधिकारिक रिपॉजिटरी है जो CUDA टूलकिट की सुविधाओं और क्षमताओं को प्रदर्शित करने वाले उदाहरण कार्यक्रमों का संग्रह है। ये सैंपल NVIDIA GPU के साथ काम करने वाले डेवलपर्स के लिए शैक्षिक और संदर्भ सामग्री के रूप में कार्य करते हैं, जो बुनियादी CUDA अवधारणाओं से लेकर उन्नत GPU प्रोग्रामिंग तकनीकों तक विषयों की एक विस्तृत श्रृंखला को कवर करते हैं। रिपॉजिटरी को दो मुख्य वर्गों में व्यवस्थित किया गया है: C++ सैंपल और Python सैंपल। C++ सैंपल दस समूहों में वर्गीकृत हैं: परिचय (बुनियादी CUDA अवधारणाएं और रनटाइम API), उपयोगिताएं (डिवाइस क्षमता क्वेरी और बैंडविड्थ माप), अवधारणाएं और तकनीकें (सामान्य समस्या-समाधान दृष्टिकोण), CUDA सुविधाएं (सहकारी समूह, गतिशील समानांतरता, CUDA ग्राफ), CUDA लाइब्रेरी (NPP, NVJPEG, cuBLAS, cuFFT, cuSPARSE, cuSOLVER, cuRAND), डोमेन विशिष्ट (ग्राफिक्स, वित्त, छवि प्रसंस्करण), प्रदर्शन (अनुकूलन तकनीकें), libNVVM (NVVM IR उपयोग), प्लेटफ़ॉर्म विशिष्ट (Tegra, cuDLA, NvMedia, NvSci, OpenGL ES), और CUDA टाइल (CUDA टाइल C++)। Python सैंपल डिवाइस, प्रोग्राम, लॉन्च और मेमोरी प्रबंधन के लिए cuda.core के साथ CUDA Python का उपयोग करते हैं, साथ ही NumPy, CuPy, या फ्रेमवर्क इंटरऑप के साथ। वे आरंभ करना, मुख्य अवधारणाएं, फ्रेमवर्क इंटरऑप (PyTorch और TensorFlow), वितरित कंप्यूटिंग, और उपयोगिताओं में व्यवस्थित हैं। बिल्ड सिस्टम CMake का उपयोग करता है और Linux, Windows, Tegra क्रॉस-कंपाइलेशन, QNX, और QNX सेफ्टी प्लेटफ़ॉर्म का समर्थन करता है। सैंपल सभी समर्थित GPU आर्किटेक्चर के लिए या विशिष्ट आर्किटेक्चर के लिए बनाए जा सकते हैं। रिपॉजिटरी में एक टेस्ट रनर स्क्रिप्ट (run_tests.py) शामिल है जो सभी सैंपल को सैनिटी चेक के रूप में निष्पादित कर सकती है, जिसमें कॉन्फ़िगर करने योग्य तर्क, समानांतर निष्पादन, और ग्राफिकल डिस्प्ले की आवश्यकता वाले सैंपल के लिए स्किप विकल्प शामिल हैं। कुछ सैंपल में FreeImage, MPI, DirectX, और DirectX 12 सहित तृतीय-पक्ष निर्भरताएं हैं। इंस्टॉलेशन सिस्टम निर्मित सैंपल को लक्ष्य आर्किटेक्चर, OS, और बिल्ड प्रकार के आधार पर एक संरचित निर्देशिका लेआउट में व्यवस्थित करता है। सैंपल CUDA के लिए सत्यापन सूट के रूप में नहीं हैं, बल्कि GPU प्रोग्रामिंग पैटर्न और तकनीकों के व्यावहारिक प्रदर्शन के रूप में कार्य करते हैं।