كودا
نوع | |
---|---|
نظام التشغيل | |
النموذج المصدري | |
المطورون | |
موقع الويب |
الإصدار الأول | |
---|---|
الإصدار الأخير | القائمة ...
|
الرخصة |
CUDA تلفظ كودا هي اختصار لعبارة Compute Unified Device Architecture هي معمارية للحوسبة المتوازية وضعتها شركة إنفيديا.[25][26][27] كودا هو محرك الحساب في وحدة معالجة الرسومات التي يستطيع المبرمجون التحكم بها باستخدام لغات البرمجة القياسية. يستخدم المبرمجون عادة 'سي لكودا' ('C for CUDA') لبرمجة خوارزميات ليتم تنفيذها على وحدات معالجة الرسوميات. تدعم معمارية كودا مجموعة واسعة من واجهات الحساب بما في ذلك أوبن سي أل، دايركت كومبيوت كما يوجد مغلفات تنتجها أطراف أخرى تدعم بايثون، فورتران، جافا وماتلاب.
تحتوي أحدث برامج تشغيل وحدات الرسوميات على جميع العناصر الضرورية لبرنامج كودا. يعمل برنامج كودا مع جميع وحدات معالجة الرسومات من إنتاج شركة إنفيديا من سلسلة G8X فصاعدا، بما في ذلك جي-فورس، كوادرو وسلسلة تسلا. يوفر برنامج كودا للمطورين الوصول إلى مجموعة الأوامر الأصلية والذاكرة لعناصر الحساب المتوازي في وحدات معالجة الرسوميات الداعمة لكودا. باستخدام برنامج كودا، تصبح أحدث وحدات معالجة الرسومات من إنفيديا مفتوحة بفعالية وحدة المعالجة المركزية. لكن على عكس وحدات المعالجة المركزية، فإن وحدات معالجة الرسومات لها معمارية متوازية "متعددة النوى"، ولكل نواة القدرة على إجراء الآلاف من العمليات في وقت واحد. وإذا كان البرنامج مناسب لمثل هذا النوع من العمليات، فيمكن لوحدة معالجة الرسوميات عندها تقديم فوائد كبيرة فيما يتعلق بالأداء.
مزايا
[عدل]كودا له العديد من المزايا المتفوقة على وحدات معالجة الرسومات التقليدية باستخدام واجهات برمجة التطبيقات.
- قراءة مبعثرة للذاكرة.
- الذاكرة المشتركة. قراءة وكتابة أسرع إلى وحدة معالجة الرسوميات
- الدعم الكامل للعمليات سواء على الأعداد الصحيحة أو على البتات.
وحدات معالجة الرسوميات المدعومة
[عدل]جدول يوضح أنواع معالجات الرسوميات التي تدعم كودا.
|
|
|
مثال
[عدل]هذا مثال في لغة C++ يحمل صورة في مصفوفة في وحدة المعالجة المركزية:
cudaArray* cu_array;
texture<float, 2> tex;
// Allocate array
cudaChannelFormatDesc description = cudaCreateChannelDesc<float>();
cudaMallocArray(&cu_array, &description, width, height);
// Copy image data to array
cudaMemcpy(cu_array, image, width*height*sizeof(float), cudaMemcpyHostToDevice);
// Bind the array to the texture
cudaBindTextureToArray(tex, cu_array);
// Run kernel
dim3 blockDim(16, 16, 1);
dim3 gridDim(width / blockDim.x, height / blockDim.y, 1);
kernel<<<gridDim, blockDim, 0>>>(d_odata, width, height);
cudaUnbindTexture(tex);
__global__ void kernel(float* odata, int height, int width)
{
unsigned int x = blockIdx.x*blockDim.x + threadIdx.x;
unsigned int y = blockIdx.y*blockDim.y + threadIdx.y;
float c = tex2D(tex, x, y);
odata[y*width+x] = c;
}
مراجع
[عدل]- ^ ا ب وصلة مرجع: https://developer.nvidia.com/cuda-downloads.
- ^ ا ب "CUDA Toolkit Archive". 30 يوليو 2013. اطلع عليه بتاريخ 2018-01-02.
- ^ ا ب "NVIDIA CUDA Toolkit Release Notes". اطلع عليه بتاريخ 2018-01-02.
- ^ ا ب "NVIDIA CUDA TOOLKIT 9.2.88" (PDF). اطلع عليه بتاريخ 2018-07-07.
- ^ ا ب "NVIDIA CUDA TOOLKIT 10.0.130" (PDF). اطلع عليه بتاريخ 2018-09-26.
- ^ ا ب "NVIDIA CUDA TOOLKIT 10.1.105" (PDF). اطلع عليه بتاريخ 2019-04-02.
- ^ ا ب "NVIDIA CUDA TOOLKIT 10.1.243(English)" (PDF). اطلع عليه بتاريخ 2019-09-05.
- ^ ا ب "CUDA 10.2 Released With VMM APIs, libcu++ As Parallel Standard C++ Library For GPUs". اطلع عليه بتاريخ 2020-09-01.
- ^ ا ب "CUDA Toolkit 11 and Nsight Developer Tools Released for General Availability". اطلع عليه بتاريخ 2020-09-01.
- ^ ا ب "NVIDIA CUDA Toolkit Release Notes". اطلع عليه بتاريخ 2020-09-01.
- ^ ا ب وصلة مرجع: https://docs.nvidia.com/cuda/.
- ^ ا ب ج د وصلة مرجع: https://developer.nvidia.com/cuda-toolkit-archive.
- ^ ا ب وصلة مرجع: https://docs.nvidia.com/cuda.
- ^ ا ب وصلة مرجع: https://docs.nvidia.com/cuda/. الوصول: 23 مايو 2022.
- ^ ا ب وصلة مرجع: https://developer.nvidia.com/cuda-toolkit-archive. الوصول: 23 مايو 2022.
- ^ ا ب "CUDA Toolkit Documentation v12.0". اطلع عليه بتاريخ 2023-01-10.
- ^ ا ب "CUDA Toolkit 12.0 Released for General Availability". 12 ديسمبر 2022. اطلع عليه بتاريخ 2023-01-10.
- ^ ا ب "CUDA 12.1 Release Notes". 1 مارس 2023.
- ^ ا ب وصلة مرجع: https://docs.nvidia.com/cuda/pdf/CUDA_Toolkit_Release_Notes.pdf. تاريخ النشر: 1 مارس 2023.
- ^ ا ب "CUDA 12.2 Release Notes". اطلع عليه بتاريخ 2023-07-02.
- ^ ا ب "CUDA 12.3 Release Notes". اطلع عليه بتاريخ 2023-12-14.
- ^ ا ب "CUDA Toolkit Archive". اطلع عليه بتاريخ 2024-07-29.
- ^ ا ب "CUDA Toolkit Archive". اطلع عليه بتاريخ 2024-09-12.
- ^ وصلة مرجع: https://www.theregister.com/2021/11/10/nvidia_cuda_silicon/.
- ^ Larabel، Michael (29 مارس 2017). "NVIDIA Rolls Out Tegra X2 GPU Support In Nouveau". فورونيكس. مؤرشف من الأصل في 2017-08-09. اطلع عليه بتاريخ 2017-08-08.
- ^ "Nvidia CUDA Home Page". مؤرشف من الأصل في 2017-09-06.
- ^ Vasiliadis، Giorgos؛ Antonatos، Spiros؛ Polychronakis، Michalis؛ Markatos، Evangelos P.؛ Ioannidis، Sotiris (سبتمبر 2008). "Gnort: High Performance Network Intrusion Detection Using Graphics Processors" (PDF). Proceedings of the 11th International Symposium on Recent Advances in Intrusion Detection (RAID). مؤرشف من الأصل (PDF) في 2018-12-28.
وصلات خارجية
[عدل]- برنامج كودا إنفيديا الموقع الرسمي