كودا
CUDA ( معمارية الحوسبة الموحدة للأجهزة ) هي منصة حوسبة متوازية وواجهة برمجة تطبيقات (API) مملوكة لشركة Nvidia، [ 3 ] تتيح للبرامج استخدام أنواع معينة من وحدات معالجة الرسومات (GPUs) لتسريع المعالجة العامة، مما يوسع نطاق استخدامها بشكل كبير في مجالات الذكاء الاصطناعي والحوسبة العلمية والحوسبة عالية الأداء . تم إنشاء CUDA في عام 2004 وأُصدرت رسميًا في عام 2007. [ 4 ] عند طرحها، كان الاسم اختصارًا لعبارة Compute Unified Device Architecture ، [ 5 ] لكن Nvidia تخلت لاحقًا عن المعنى الأصلي للاختصار، ونادرًا ما تُوسّعه الآن. [ 6 ]
تُعدّ CUDA طبقة برمجية لإدارة البيانات، تتيح الوصول المباشر إلى وحدة معالجة الرسومات (GPU) ووحدة المعالجة المركزية (CPU) حسب الحاجة، بالإضافة إلى مكتبة من واجهات برمجة التطبيقات (APIs) التي تُمكّن الحوسبة المتوازية. [ 7 ] [ 8 ] إلى جانب برامج التشغيل ونوى وقت التشغيل ، تتضمن منصة CUDA مُجمّعات برمجية ومكتبات وأدوات تطوير لمساعدة المبرمجين.
كُتبت CUDA بلغة البرمجة C ، ولكنها مصممة للعمل مع لغات برمجة أخرى ، بما في ذلك C++ و Fortran و Python و Julia . هذه الميزة تُسهّل على المتخصصين في البرمجة المتوازية استخدام موارد وحدة معالجة الرسومات (GPU)، على عكس واجهات برمجة التطبيقات السابقة مثل Direct3D و OpenGL ، التي تتطلب مهارات متقدمة في برمجة الرسومات. [ 9 ] تدعم وحدات معالجة الرسومات المُشغّلة بواسطة CUDA أُطر البرمجة مثل OpenMP و OpenACC و OpenCL . [ 10 ] [ 7 ]
وحدة معالجة الرسومات
وحدة معالجة الرسومات (GPU) هي معالج متخصص. تلبي متطلبات المهام عالية الدقة التي تتطلب قدرة حسابية عالية في الوقت الفعلي ، مثل الرسومات ثلاثية الأبعاد . بحلول عام 2012، تطورت وحدات معالجة الرسومات إلى أنظمة متعددة النوى عالية التوازي ، مما يسمح بمعالجة كميات كبيرة من البيانات بكفاءة. يُعد هذا التصميم أكثر فعالية من وحدات المعالجة المركزية للأغراض العامة (CPU) للخوارزميات في الحالات التي تتم فيها معالجة كميات كبيرة من البيانات بالتوازي، مثل:
تاريخ
يعود تاريخ CUDA إلى أوائل العقد الأول من القرن الحادي والعشرين، عندما بدأ إيان باك ، طالب الدكتوراه في علوم الحاسوب بجامعة ستانفورد ، تجاربه في استخدام وحدات معالجة الرسومات (GPUs) لأغراض تتجاوز مجرد عرض الرسومات. وقد نما اهتمام باك بوحدات معالجة الرسومات خلال دراسته الجامعية في جامعة برينستون ، بدايةً من خلال ألعاب الفيديو . بعد تخرجه، تدرب في شركة Nvidia، مما أتاح له فرصةً أكبر للتعرف على بنية وحدات معالجة الرسومات. في ستانفورد، قام ببناء جهاز ألعاب بدقة 8K باستخدام 32 بطاقة رسومات GeForce ، وكان هدفه الأساسي في البداية هو اختبار حدود أداء الرسومات في ألعاب مثل Quake و Doom . إلا أن اهتماماته تحولت لاحقًا نحو استكشاف إمكانات وحدات معالجة الرسومات في الحوسبة المتوازية للأغراض العامة . [ 11 ]
ولتحقيق هذه الغاية، طوّر باك لغة البرمجة بروك ، المصممة لتمكين الحوسبة العامة على وحدات معالجة الرسومات (GPUs). وقد حظي عمله بدعم من شركتي إنفيديا ووكالة مشاريع البحوث الدفاعية المتقدمة (DARPA). في عام 2004، وظّفت إنفيديا باك وضمّته إلى جون نيكولز، [ 12 ] الذي كان آنذاك مدير هندسة الحوسبة باستخدام وحدات معالجة الرسومات. وبدأ الاثنان معًا بتحويل بروك إلى كودا. [ 11 ] أُصدرت كودا رسميًا في عام 2007.
أصبحت CUDA عنصراً أساسياً في استراتيجية الشركة الرامية إلى تسويق وحدات معالجة الرسومات (GPUs) كأجهزة متعددة الاستخدامات للتطبيقات العلمية. وبحلول عام 2015، ركز تطوير CUDA بشكل متزايد على تسريع عمليات التعلم الآلي وشبكات التعلم الآلي . [ 13 ]
علم الوجود
يقدم الجدول التالي ملخصًا تقريبيًا لعلم الوجود الخاص بـ CUDA .
| الذاكرة (الأجهزة) | الذاكرة (الرمز، أو نطاق المتغيرات ) | الحوسبة (الأجهزة) | الحساب (بنية الكود) | الحساب (دلالات الشفرة) |
|---|---|---|---|---|
| كبش | المتغيرات غير المتعلقة بـ CUDA | يستضيف | برنامج | مكالمة روتينية واحدة |
| ذاكرة الوصول العشوائي للفيديو (VRAM) ، ذاكرة التخزين المؤقت L2 لوحدة معالجة الرسومات | عام، ثابت، نسيج | جهاز | شبكة | استدعاء متزامن لنفس الروتين الفرعي على العديد من المعالجات |
| ذاكرة التخزين المؤقت L1 لوحدة معالجة الرسومات | محلي، مشترك | SM ("معالج متعدد التدفق") | حاجز | استدعاء روتين فرعي فردي |
| عدد الخيوط = 32 خيطًا | تعليمات SIMD | |||
| ذاكرة التخزين المؤقت L0 لوحدة معالجة الرسومات، سجل | الخيط (المعروف أيضًا باسم "SP" أو "معالج البث" أو "نواة كودا"، ولكن هذه الأسماء أصبحت الآن مهملة) | على غرار العمليات العددية الفردية داخل عملية متجهة |
القدرات البرمجية
- انسخ البيانات من الذاكرة الرئيسية إلى ذاكرة وحدة معالجة الرسومات
- يقوم المعالج المركزي بتشغيل نواة حساب وحدة معالجة الرسومات
- تقوم نوى CUDA الخاصة بوحدة معالجة الرسومات بتنفيذ النواة بالتوازي
- انسخ البيانات الناتجة من ذاكرة وحدة معالجة الرسومات إلى الذاكرة الرئيسية
تُتاح منصة CUDA لمطوري البرامج من خلال مكتبات مُسرّعة بتقنية CUDA، وتوجيهات المُصرّف مثل OpenACC ، وامتدادات للغات البرمجة القياسية في المجال، بما في ذلك C و C++ و Fortran و Python . يمكن لمبرمجي C/C++ استخدام "CUDA C/C++"، المُصرّفة إلى PTX باستخدام nvcc ( مُصرّف C/C++ من Nvidia القائم على LLVM ) [ 14 ] أو باستخدام clang نفسه. [ 15 ] أما مبرمجو Fortran فيمكنهم استخدام "CUDA Fortran"، المُصرّفة باستخدام مُصرّف PGI CUDA Fortran من مجموعة بورتلاند .يمكن لمبرمجي بايثون استخدام مكتبة cuPyNumeric لتسريع التطبيقات على وحدات معالجة الرسومات من إنفيديا.
بالإضافة إلى المكتبات، وتوجيهات المُصرّف، وCUDA C/C++ وCUDA Fortran، تدعم منصة CUDA واجهات حسابية أخرى، بما في ذلك OpenCL من مجموعة Khronos ، [ 16 ] وDirectCompute من Microsoft ، و OpenGL Compute Shader، و C++ AMP . [ 17 ] كما تتوفر أغلفة برمجية من جهات خارجية للغات Python و Perl وFortran و Java و Ruby و Lua و Common Lisp و Haskell و R و MATLAB و IDL و Julia ، بالإضافة إلى دعم أصلي في Mathematica .
في صناعة ألعاب الفيديو ، تُستخدم وحدات معالجة الرسومات (GPUs) لعرض الرسومات، ولحسابات فيزياء الألعاب (التأثيرات الفيزيائية مثل الحطام والدخان والنيران والسوائل)؛ ومن الأمثلة على ذلك PhysX و Bullet . كما استُخدمت CUDA لتسريع التطبيقات غير الرسومية في علم الأحياء الحاسوبي وعلم التشفير وغيرها من المجالات بمقدار عشرة أضعاف أو أكثر. [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ]
توفر CUDA واجهة برمجة تطبيقات منخفضة المستوى (واجهة برمجة تطبيقات برنامج تشغيل CUDA ، غير أحادية المصدر) وواجهة برمجة تطبيقات عالية المستوى ( واجهة برمجة تطبيقات وقت تشغيل CUDA، أحادية المصدر). تم إطلاق حزمة تطوير البرامج ( SDK) الأولية لـ CUDA للجمهور في 15 فبراير 2007، لأنظمة تشغيل Microsoft Windows و Linux . أُضيف دعم نظام التشغيل Mac OS X لاحقًا في الإصدار 2.0، [ 23 ] الذي حل محل الإصدار التجريبي الصادر في 14 فبراير 2008. [ 24 ] تعمل CUDA مع جميع وحدات معالجة الرسومات من Nvidia بدءًا من سلسلة G8x، بما في ذلك GeForce و Quadro وسلسلة Tesla . تتوافق CUDA مع معظم أنظمة التشغيل القياسية.
يأتي CUDA 8.0 مع المكتبات التالية (للتجميع ووقت التشغيل، بالترتيب الأبجدي):
- مكتبة cuBLAS - مكتبة إجراءات الجبر الخطي الأساسية لـ CUDA
- CUDART – مكتبة وقت تشغيل CUDA
- مكتبة cuFFT - مكتبة تحويل فورييه السريع CUDA
- مكتبة cuRAND – مكتبة توليد الأرقام العشوائية CUDA
- cuSOLVER – مجموعة من الحلول المباشرة الكثيفة والمتفرقة القائمة على CUDA
- cuSPARSE – مكتبة CUDA Sparse Matrix
- مكتبة NPP – مكتبة NVIDIA للأداء الأساسي
- nvGRAPH – مكتبة تحليلات الرسوم البيانية من NVIDIA
- مكتبة إدارة NVML - NVIDIA
- NVRTC – مكتبة تجميع وقت التشغيل من NVIDIA لـ CUDA C++
يأتي برنامج CUDA 8.0 مزودًا بمكونات البرامج الأخرى التالية:
- برنامج إدارة سطح المكتب nView من NVIDIA
- NVWMI - مجموعة أدوات إدارة المؤسسات من NVIDIA
- GameWorks PhysX – هو محرك فيزيائي للألعاب متعدد المنصات
يأتي CUDA 9.0–9.2 مع هذه المكونات الأخرى:
- كاتلاس 1.0 – خوارزميات الجبر الخطي المخصصة،
- تم إيقاف دعم NVIDIA Video Decoder في CUDA 9.2؛ وهو متوفر الآن في NVIDIA Video Codec SDK
يأتي CUDA 10 مزودًا بهذه المكونات الأخرى:
- nvJPEG – معالجة صور JPEG هجينة (وحدة المعالجة المركزية ووحدة معالجة الرسومات)
يأتي CUDA 11.0–11.8 مع هذه المكونات الأخرى: [ 25 ] [ 26 ] [ 27 ] [ 28 ]
- CUB هي واحدة من مكتبات C++ الجديدة الأكثر دعمًا
- دعم وحدة معالجة الرسومات متعددة النسخ من MIG
- nvJPEG2000 – برنامج ترميز وفك ترميز JPEG 2000
المزايا
تتمتع CUDA بالعديد من المزايا مقارنة بالحوسبة التقليدية للأغراض العامة على وحدات معالجة الرسومات (GPGPU) باستخدام واجهات برمجة التطبيقات الرسومية:
- القراءة المبعثرة – يمكن للبرنامج القراءة من عناوين عشوائية في الذاكرة
- الذاكرة الافتراضية الموحدة (CUDA 4.0 وما فوق)
- الذاكرة الموحدة (CUDA 6.0 وما فوق)
- الذاكرة المشتركة – يوفر CUDA منطقة ذاكرة مشتركة سريعة يمكن مشاركتها بين الخيوط. يمكن استخدام هذه المنطقة كذاكرة تخزين مؤقتة يديرها المستخدم، مما يتيح نطاقًا تردديًا أعلى مما هو ممكن باستخدام عمليات البحث في النسيج. [ 29 ]
- تنزيلات وقراءات أسرع من وإلى وحدة معالجة الرسومات
- دعم كامل لعمليات الأعداد الصحيحة والعمليات الثنائية، بما في ذلك عمليات البحث عن نسيج الأعداد الصحيحة
القيود
- سواءً للحاسوب المضيف أو وحدة معالجة الرسومات، تتم معالجة جميع أكواد CUDA المصدرية الآن وفقًا لقواعد بناء جملة C++. [ 30 ] لم يكن هذا هو الحال دائمًا. فقد كانت الإصدارات السابقة من CUDA تعتمد على قواعد بناء جملة C. [ 31 ] وكما هو الحال مع الحالة العامة لتجميع أكواد C باستخدام مُجمِّع C++، فمن المحتمل أن تفشل أكواد CUDA المصدرية القديمة المكتوبة بلغة C في التجميع أو أن لا تعمل كما هو مُخطط لها أصلاً.
- إن التوافق مع لغات العرض مثل OpenGL هو أحادي الاتجاه، حيث يمكن لـ OpenGL الوصول إلى ذاكرة CUDA المسجلة ولكن CUDA لا يمكنها الوصول إلى ذاكرة OpenGL.
- قد يؤدي النسخ بين ذاكرة المضيف وذاكرة الجهاز إلى انخفاض في الأداء بسبب عرض نطاق ناقل النظام وزمن الوصول (يمكن التخفيف من ذلك جزئيًا عن طريق عمليات نقل الذاكرة غير المتزامنة، والتي تتم معالجتها بواسطة محرك DMA الخاص بوحدة معالجة الرسومات).
- لتحقيق أفضل أداء، ينبغي تشغيل الخيوط في مجموعات لا تقل عن 32 خيطًا، مع عدد إجمالي للخيوط يصل إلى الآلاف. لا تؤثر التفرعات في كود البرنامج بشكل كبير على الأداء، شريطة أن يسلك كل خيط من الخيوط الـ 32 نفس مسار التنفيذ؛ ويصبح نموذج تنفيذ SIMD قيدًا كبيرًا لأي مهمة متباينة بطبيعتها (مثل اجتياز بنية بيانات تقسيم المساحة أثناء تتبع الأشعة ).
- لا تتوفر وظائف المحاكاة أو الرجوع إلى الإصدارات القديمة في الإصدارات الحديثة.
- قد يتم أحيانًا وضع علامة على لغة C++ الصحيحة ومنع عملية التجميع بسبب الطريقة التي يتعامل بها المترجم مع التحسين لقيود جهاز GPU المستهدف.
- لا يتم دعم معلومات نوع وقت التشغيل C++ (RTTI) ومعالجة الاستثناءات على نمط C++ إلا في كود المضيف، وليس في كود الجهاز.
- في وضع الدقة المفردة على أجهزة الجيل الأول من CUDA ذات قدرة الحوسبة 1.x، لا يتم دعم الأعداد غير الطبيعية ، ويتم تصفيرها بدلاً من ذلك، وتكون دقة عمليات القسمة والجذر التربيعي أقل قليلاً من دقة العمليات الحسابية أحادية الدقة المتوافقة مع معيار IEEE 754. أما الأجهزة التي تدعم قدرة الحوسبة 2.0 وما فوق، فتدعم الأعداد غير الطبيعية، وتكون عمليات القسمة والجذر التربيعي متوافقة مع معيار IEEE 754 افتراضيًا. مع ذلك، يمكن للمستخدمين الحصول على سرعة العمليات الحسابية السابقة المخصصة للألعاب، والمتوفرة في أجهزة قدرة الحوسبة 1.x، عن طريق ضبط علامات المُصرّف لتعطيل عمليات القسمة والجذر التربيعي الدقيقة، وتمكين تصفير الأعداد غير الطبيعية. [ 32 ]
- على عكس OpenCL ، فإن وحدات معالجة الرسومات التي تدعم CUDA متوفرة فقط من Nvidia لأنها تقنية احتكارية. [ 33 ] [ 3 ] وتشمل محاولات تطبيق CUDA على وحدات معالجة رسومات أخرى ما يلي:
- مشروع كوريندر: يحوّل شفرة CUDA C++11 المصدرية إلى OpenCL 1.2 C. وهو نسخة معدلة من CUDA-on-CL مصممة لتشغيل TensorFlow . [ 34 ] [ 35 ] [ 36 ]
- CU2CL: تحويل CUDA 3.2 C++ إلى OpenCL C. [ 37 ]
- GPUOpen HIP: طبقة تجريد بسيطة فوق CUDA و ROCm مصممة خصيصًا لوحدات معالجة الرسومات من AMD وNvidia. تتضمن أداة تحويل لاستيراد مصدر CUDA C++. تدعم CUDA 4.0 بالإضافة إلى C++11 وfloat16.
- يُعدّ ZLUDA بديلاً مباشراً لـ CUDA على معالجات AMD الرسومية، وكان يدعم سابقاً معالجات Intel الرسومية، ويُقدّم أداءً قريباً من الأداء الأصلي. [ 38 ] تعاقدت كلٌّ من Intel وAMD بشكل منفصل مع مطوّر البرنامج، أندريه يانيك، لتطويره في عامي 2021 و2022 على التوالي. مع ذلك، لم تُقرّر أيٌّ من الشركتين إصداره رسمياً لعدم وجود حالة استخدام تجارية واضحة. تضمّن عقد AMD بنداً يسمح ليانيك بنشر شفرته البرمجية بشكل مستقلّ، ما مكّنه من إصدار النسخة الجديدة التي تدعم معالجات AMD الرسومية فقط. [ 39 ]
- يمكن لبرنامج ChipStar تجميع وتشغيل برامج CUDA/HIP على منصات OpenCL 3.0 أو Level Zero المتقدمة. [ 40 ]
- SCALE هي مجموعة أدوات برمجة متوافقة مع CUDA لتجميع كود مصدر CUDA مسبقًا على وحدات معالجة الرسومات AMD، وتهدف إلى توسيع الدعم لوحدات معالجة الرسومات الأخرى في المستقبل. [ 41 ]
مثال
يقوم هذا المثال البرمجي المكتوب بلغة C++ بتحميل نسيج من صورة إلى مصفوفة على وحدة معالجة الرسومات (GPU):
texture < float , 2 , cudaReadModeElementType > tex ;void foo () { cudaArray * cu_array ؛// تخصيص مصفوفة cudaChannelFormatDesc description = cudaCreateChannelDesc <float> ( ); cudaMallocArray ( & cu_array , & description , width , height );// نسخ بيانات الصورة إلى مصفوفة cudaMemcpyToArray ( cu_array , image , width * height * sizeof ( float ), cudaMemcpyHostToDevice );// ضبط معلمات النسيج ( افتراضي ) tex.addressMode [ 0 ] = cudaAddressModeClamp ; tex.addressMode [ 1 ] = cudaAddressModeClamp ; tex.filterMode = cudaFilterModePoint ; tex.normalized = false ; // عدم تطبيع الإحداثيات// ربط المصفوفة بالنسيج cudaBindTextureToArray ( tex , cu_array );// تشغيل النواة dim3 blockDim ( 16 , 16 , 1 ); dim3 gridDim (( width + blockDim . x - 1 ) / blockDim . x , ( height + blockDim . y - 1 ) / blockDim . y , 1 ); kernel <<< gridDim , blockDim , 0 >>> ( d_data , height , width );// فك ارتباط المصفوفة من النسيج 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 ; if ( x < width && y < height ) { float c = tex2D ( tex , x , y ); odata [ y * width + x ] = c ; } }فيما يلي مثال مكتوب بلغة بايثون لحساب حاصل ضرب مصفوفتين على وحدة معالجة الرسومات (GPU). يمكن الحصول على روابط لغة بايثون غير الرسمية من PyCUDA . [ 42 ]
استيراد numpy استيراد pycuda.autoinitمن numpy.typing استورد NDArray و float32 ، ومن pycuda.compiler استورد SourceModule، ومن pycuda.driver استورد Function و In و Outmod : SourceModule = SourceModule ( """ __global__ void multiply_them(float* dest, float* a, float* b) { const int i = threadIdx.x; dest[i] = a[i] * b[i]; } """ )دالة الضرب : دالة = mod.get_function ( " multiply_them " )أ : NDArray [ float32 ] = numpy . عشوائي . راندن ( 400 ) . astype ( numpy . float32 ) ب : NDArray [ float32 ] = numpy . عشوائي . راندن ( 400 ) . أستيب ( numpy . float32 )dest : NDArray [ float32 ] = numpy.zeros_like ( a ) multiply_them ( Out ( dest ), In ( a ), In ( b ) , block = ( 400 , 1 , 1 ) )اطبع ( الوجهة - أ * ب )يمكن العثور على روابط بايثون إضافية لتبسيط عمليات ضرب المصفوفات في برنامج pycublas . [ 43 ]
استيراد numpyfrom pycublas import CUBLASMatrixA : CUBLASMatrix = CUBLASMatrix ( numpy.mat ([[ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ], numpy.float32 )) B : CUBLASMatrix = CUBLASMatrix ( numpy.mat ([ [ 2 , 3 ] , [ 4 , 5 ] , [ 6 , 7 ] ] , numpy.float32 ) ) C : CUBLASMatrix = A * B print ( C.np_mat ( ) )بينما يحل CuPy محل NumPy مباشرة: [ 44 ]
استيراد كوبيfrom cupy.typing import NDArray , float64أ : NDArray [ float64 ] = cupy . عشوائي . Randn ( 400 ) b : NDArray [ float64 ] = cupy . عشوائي . راندن ( 400 )dest : NDArray [ float64 ] = cupy . الأصفار_مثل ( أ )اطبع ( الوجهة - أ * ب )وحدات معالجة الرسومات المدعومة
ملاحظة حول الترميز: تُكتب قدرة الحوسبة XY أيضًا على شكل SMXY أو sm_XY (على سبيل المثال 10.3 كـ SM103 أو sm_103) في برامج Nvidia الاحترافية وفي الكود الذي ساهمت به Nvidia في LLVM. [ 45 ]
فيما يلي جدول يوضح إمكانيات الحوسبة المدعومة في CUDA بناءً على إصدار CUDA SDK والبنية الدقيقة، مرتبة حسب الاسم الرمزي:
| إصدار (إصدارات) CUDA SDK | تسلا | فيرمي | كيبلر (المبكر) | كيبلر (رحمه الله) | ماكسويل | باسكال | فولتا | تورينج | أمبير | آدا لوفليس | هوبر | بلاكويل |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.0 [ 46 ] | 1.0 – 1.1 | |||||||||||
| 1.1 | 1.0 – 1.1+x | |||||||||||
| 2.0 | 1.0 – 1.1+x | |||||||||||
| 2.1 – 2.3.1 [ 47 ] [ 48 ] [ 49 ] [ 50 ] | 1.0 – 1.3 | |||||||||||
| 3.0 – 3.1 [ 51 ] [ 52 ] | 1.0 | 2.0 | ||||||||||
| 3.2 [ 53 ] | 1.0 | 2.1 | ||||||||||
| 4.0 – 4.2 | 1.0 | 2.1 | ||||||||||
| 5.0 – 5.5 | 1.0 | 3.0 | 3.5 | |||||||||
| 6.0 | 1.0 | 3.2 | 3.5 | |||||||||
| 6.5 | 1.1 | 3.7 | 5.x | |||||||||
| 7.0 – 7.5 | 2.0 | 5.x | ||||||||||
| 8.0 | 2.0 | 6.x | ||||||||||
| 9.0 – 9.2 | 3.0 | 7.0 – 7.2 | ||||||||||
| 10.0 – 10.2 | 3.0 | 7.5 | ||||||||||
| 11.0 [ 54 ] | 3.5 | 8.0 | ||||||||||
| 11.1 – 11.4 [ 55 ] | 3.5 | 8.6 | ||||||||||
| 11.5 – 11.7.1 [ 56 ] | 3.5 | 8.7 | ||||||||||
| 11.8 [ 57 ] | 3.5 | 8.9 | 9.0 | |||||||||
| 12.0 – 12.6 | 5.0 | 9.0 | ||||||||||
| 12.8 | 5.0 | 12.0 | ||||||||||
| 12.9 | 5.0 | 12.1 | ||||||||||
| 13.0 – 13.3 [ 58 ] | 7.5 | 12.1 |
ملاحظة: CUDA SDK 10.2 هو آخر إصدار رسمي لنظام macOS، حيث لن يكون الدعم متاحًا لنظام macOS في الإصدارات الأحدث.
قدرة الحوسبة لـ CUDA حسب الإصدار مع أشباه موصلات وحدة معالجة الرسومات ونماذج بطاقات وحدة معالجة الرسومات المرتبطة بها (مفصولة حسب مجالات التطبيق المختلفة):
| القدرة الحاسوبية (الإصدار) | البنية الدقيقة | وحدات معالجة الرسومات | جي فورس | كوادرو ، إن في إس | تسلا/مركز البيانات | تيغرا ، جيتسون ، درايف |
|---|---|---|---|---|---|---|
| 1.0 | تسلا | جي 80 | GeForce 8800 Ultra، GeForce 8800 GTX، GeForce 8800 GTS (G80) | Quadro FX 5600، Quadro FX 4600، Quadro Plex 2100 S4 | تسلا C870، تسلا D870، تسلا S870 | |
| 1.1 | G92، G94، G96، G98، G84، G86 | GeForce GTS 250، GeForce 9800 GX2، GeForce 9800 GTX، GeForce 9800 GT، GeForce 8800 GTS (G92)، GeForce 8800 GT، GeForce 9600 GT، GeForce 9500 GT، GeForce 9400 GT، GeForce 8600 GTS، GeForce 8600 GT، GeForce 8500 GT، GeForce G110M، GeForce 9300M GS، GeForce 9200M GS، GeForce 9100M G، GeForce 8400M GT، GeForce G105M | Quadro FX 4700 X2، Quadro FX 3700، Quadro FX 1800، Quadro FX 1700، Quadro FX 580، Quadro FX 570، Quadro FX 470، Quadro FX 380، Quadro FX 370، Quadro FX 370 Low Profile، Quadro NVS 450، Quadro NVS 420، Quadro NVS 290، Quadro NVS 295، Quadro Plex 2100 D4، Quadro FX 3800M، Quadro FX 3700M، Quadro FX 3600M، Quadro FX 2800M، Quadro FX 2700M، Quadro FX 1700M، Quadro FX 1600M، Quadro FX 770M، Quadro FX 570M، Quadro FX 370M، Quadro FX 360M، Quadro NVS 320M، Quadro NVS 160M، Quadro NVS 150M، Quadro NVS 140M، Quadro NVS 135M، Quadro NVS 130M، Quadro NVS 450، Quadro NVS 420، [ 59 ] Quadro NVS 295 | |||
| 1.2 | GT218، GT216، GT215 | GeForce GT 340*، GeForce GT 330*، GeForce GT 320*، GeForce 315*، GeForce 310*، GeForce GT 240، GeForce GT 220، GeForce 210، GeForce GTS 360M، GeForce GTS 350M، GeForce GT 335M، GeForce GT 330M، GeForce GT 325M، GeForce GT 240M، GeForce G210M، GeForce 310M، GeForce 305M | Quadro FX 380 Low Profile، Quadro FX 1800M، Quadro FX 880M، Quadro FX 380M، Nvidia NVS 300، NVS 5100M، NVS 3100M، NVS 2100M، ION | |||
| 1.3 | GT200، GT200b | GeForce GTX 295، GTX 285، GTX 280، GeForce GTX 275، GeForce GTX 260 | Quadro FX 5800، Quadro FX 4800، Quadro FX 4800 لنظام Mac، Quadro FX 3800، Quadro CX، Quadro Plex 2200 D2 | تسلا C1060، تسلا S1070، تسلا M1060 | ||
| 2.0 | فيرمي | GF100، GF110 | GeForce GTX 590، GeForce GTX 580، GeForce GTX 570، GeForce GTX 480، GeForce GTX 470، GeForce GTX 465، GeForce GTX 480M | كوادرو 6000، كوادرو 5000، كوادرو 4000، كوادرو 4000 لنظام ماك، كوادرو بليكس 7000، كوادرو 5010M، كوادرو 5000M | تسلا C2075، تسلا C2050/C2070، تسلا M2050/M2070/M2075/M2090 | |
| 2.1 | GF104، GF106، GF108، GF114، GF116، GF117، GF119 | GeForce GTX 560 Ti، GeForce GTX 550 Ti، GeForce GTX 460، GeForce GTS 450، GeForce GTS 450*، GeForce GT 640 (GDDR3)، GeForce GT 630، GeForce GT 620، GeForce GT 610، GeForce GT 520، GeForce GT 440، GeForce GT 440*، GeForce GT 430، GeForce GT 430*، GeForce GT 420*، GeForce GTX 675M، GeForce GTX 670M، GeForce GT 635M، GeForce GT 630M، GeForce GT 625M، GeForce GT 720M، GeForce GT 620M، GeForce 710M، GeForce 610M، GeForce 820M، GeForce GTX 580M، GeForce GTX 570M، GeForce GTX 560M، GeForce GT 555M، GeForce GT 550M، GeForce GT 540M، GeForce GT 525M، GeForce GT 520MX، GeForce GT 520M، GeForce GTX 485M، GeForce GTX 470M، GeForce GTX 460M، GeForce GT 445M، GeForce GT 435M، GeForce GT 420M، GeForce GT 415M، GeForce 710M، GeForce 410M | كوادرو 2000، كوادرو 2000D، كوادرو 600، كوادرو 4000M، كوادرو 3000M، كوادرو 2000M، كوادرو 1000M، NVS 310، NVS 315، NVS 5400M، NVS 5200M، NVS 4200M | |||
| 3.0 | كيبلر | GK104، GK106، GK107 | GeForce GTX 770، GeForce GTX 760، GeForce GT 740، GeForce GTX 690، GeForce GTX 680، GeForce GTX 670، GeForce GTX 660 Ti، GeForce GTX 660، GeForce GTX 650 Ti BOOST، GeForce GTX 650 Ti، GeForce GTX 650، GeForce GTX 880M، GeForce GTX 870M، GeForce GTX 780M، GeForce GTX 770M، GeForce GTX 765M، GeForce GTX 760M، GeForce GTX 680MX، GeForce GTX 680M، GeForce GTX 675MX، GeForce GTX 670MX، GeForce GTX 660M، GeForce GT 750M، GeForce GT 650M، GeForce GT 745M، GeForce GT 645M، GeForce GT 740M، GeForce GT 730M، GeForce GT 640M، GeForce GT 640M LE، GeForce GT 735M، GeForce GT 730M | Quadro K5000، Quadro K4200، Quadro K4000، Quadro K2000، Quadro K2000D، Quadro K600، Quadro K420، Quadro K500M، Quadro K510M، Quadro K610M، Quadro K1000M، Quadro K2000M، Quadro K1100M، Quadro K2100M، Quadro K3000M، Quadro K3100M، Quadro K4000M، Quadro K5000M، Quadro K4100M، Quadro K5100M، NVS 510، Quadro 410 | تسلا K10، GRID K340، GRID K520، GRID K2 | |
| 3.2 | GK20A | Tegra K1، Jetson TK1 | ||||
| 3.5 | GK110، GK208 | GeForce GTX Titan Z، GeForce GTX Titan Black، GeForce GTX Titan، GeForce GTX 780 Ti، GeForce GTX 780، GeForce GT 640 (GDDR5)، GeForce GT 630 v2، GeForce GT 730، GeForce GT 720، GeForce GT 710، GeForce GT 740M (64 بت، DDR3)، GeForce GT 920M | Quadro K6000، Quadro K5200 | تسلا K40، تسلا K20x، تسلا K20 | ||
| 3.7 | GK210 | تسلا K80 | ||||
| 5.0 | ماكسويل | GM107، GM108 | GeForce GTX 750 Ti، GeForce GTX 750، GeForce GTX 960M، GeForce GTX 950M، GeForce 940M، GeForce 930M، GeForce GTX 860M، GeForce GTX 850M، GeForce 845M، GeForce 840M، GeForce 830M | Quadro K1200، Quadro K2200، Quadro K620، Quadro M2000M، Quadro M1000M، Quadro M600M، Quadro K620M، NVS 810 | تسلا M10 | |
| 5.2 | GM200، GM204، GM206 | جيفورس جي تي اكس تيتان اكس، جي فورس جي تي اكس 980 تي آي، جي فورس جي تي اكس 980، جي فورس جي تي اكس 970، جي فورس جي تي اكس 960، جي فورس جي تي اكس 950، جي فورس جي تي اكس 750 اس اي، جي فورس جي تي اكس 980 ام، جي فورس جي تي اكس 970 ام، جي فورس جي تي اكس 965 ام | كوادرو M6000 سعة 24 جيجابايت، كوادرو M6000، كوادرو M5000، كوادرو M4000، كوادرو M2000، كوادرو M5500، كوادرو M5000M، كوادرو M4000M، كوادرو M3000M | تسلا M4، تسلا M40، تسلا M6، تسلا M60 | ||
| 5.3 | GM20B | Tegra X1، Jetson TX1، Jetson Nano، DRIVE CX، DRIVE PX | ||||
| 6.0 | باسكال | GP100 | كوادرو GP100 | تسلا P100 | ||
| 6.1 | GP102، GP104، GP106، GP107، GP108 | بطاقات الرسومات Nvidia TITAN Xp، وTitan X، وGeForce GTX 1080 Ti، وGTX 1080، وGTX 1070 Ti، وGTX 1070، وGTX 1060، وGTX 1050 Ti، وGTX 1050، وGT 1030، وGT 1010، و MX350، وMX330، وMX250، وMX230، وMX150، وMX130، وMX110 | Quadro P6000، Quadro P5000، Quadro P4000، Quadro P2200، Quadro P2000، Quadro P1000، Quadro P400، Quadro P500، Quadro P520، Quadro P600، Quadro P5000 (محمول)، Quadro P4000 (محمول)، Quadro P3000 (محمول) | تسلا P40، تسلا P6، تسلا P4 | ||
| 6.2 | GP10B [ 60 ] | Tegra X2، Jetson TX2، DRIVE PX 2 | ||||
| 7.0 | فولتا | GV100 | إنفيديا تايتان 5 | كوادرو جي في 100 | تسلا V100، تسلا V100S | |
| 7.2 | GV10B [ 61 ] | Tegra Xavier، Jetson Xavier NX، Jetson AGX Xavier، DRIVE AGX Xavier، DRIVE AGX Pegasus، Clara AGX | ||||
| 7.5 | تورينج | TU102، TU104، TU106، TU116، TU117 | NVIDIA TITAN RTX، GeForce RTX 2080 Ti، RTX 2080 Super، RTX 2080، RTX 2070 Super، RTX 2070، RTX 2060 Super، RTX 2060 12GB، RTX 2060، GeForce GTX 1660 Ti، GTX 1660 Super، GTX 1660، GTX 1650 Super، GTX 1650، MX550، MX450 | Quadro RTX 8000، Quadro RTX 6000، Quadro RTX 5000، Quadro RTX 4000، T1000، T600، T400، T1200 (للأجهزة المحمولة)، T600 (للأجهزة المحمولة)، T500 (للأجهزة المحمولة)، Quadro T2000 (للأجهزة المحمولة)، Quadro T1000 (للأجهزة المحمولة) | تسلا تي 4 | |
| 8.0 | أمبير | GA100 | A100 بسعة 80 جيجابايت، A100 بسعة 40 جيجابايت، A30 | |||
| 8.6 | GA102، GA103، GA104، GA106، GA107 | GeForce RTX 3090 Ti، RTX 3090، RTX 3080 Ti، RTX 3080 12GB، RTX 3080، RTX 3070 Ti، RTX 3070، RTX 3060 Ti، RTX 3060، RTX 3050، RTX 3050 Ti (للأجهزة المحمولة)، RTX 3050 (للأجهزة المحمولة)، RTX 2050 (للأجهزة المحمولة)، MX570 | RTX A6000، RTX A5500، RTX A5000، RTX A4500، RTX A4000، RTX A2000، RTX A5000 (للأجهزة المحمولة)، RTX A4000 (للأجهزة المحمولة)، RTX A3000 (للأجهزة المحمولة)، RTX A2000 (للأجهزة المحمولة) | A40، A16، A10، A2 | ||
| 8.7 | GA10B | جيتسون أورين نانو، جيتسون أورين NX، جيتسون AGX أورين، DRIVE AGX أورين، IGX أورين | ||||
| 8.9 | آدا لوفليس [ 64 ] | 102 م، 103 م، 104 م، 106 م، 107 م | GeForce RTX 4090، RTX 4080 Super، RTX 4080، RTX 4070 Ti Super، RTX 4070 Ti، RTX 4070 Super، RTX 4070، RTX 4060 Ti، RTX 4060، RTX 4050 (للأجهزة المحمولة) | RTX 6000 Ada، RTX 5880 Ada، RTX 5000 Ada، RTX 4500 Ada، RTX 4000 Ada، RTX 4000 Ada، RTX 2000 Ada، RTX 5000 Ada (محمول)، RTX 4000 Ada (محمول)، RTX 3500 Ada (محمول)، RTX 2000 ادا (للجوال) | L40S، L40، L20، L4، L2 | |
| 9.0 | هوبر | GH100 | H200، H100، GH200 | |||
| 10.0 | بلاكويل | GB100 | B200، B100، GB200 | |||
| 10.3 | GB110 | B300، GB300 | ||||
| 11.0 [ أ ] | GB10B | جيتسون AGX ثور، درايف AGX ثور | ||||
| 12.0 | GB202، GB203، GB205، GB206، GB207 | GeForce RTX 5090، RTX 5080، RTX 5070 Ti، RTX 5070، RTX 5060 Ti، RTX 5060، RTX 5050 | محطة عمل بلاكويل RTX PRO 6000، محطة عمل بلاكويل RTX PRO 5000، محطة عمل بلاكويل RTX PRO 4500، محطة عمل بلاكويل RTX PRO 4000 | خادم بلاكويل RTX PRO 6000 | ||
| 12.1 | GB20B | دي جي إكس سبارك | ||||
| القدرة الحاسوبية (الإصدار) | البنية الدقيقة | وحدات معالجة الرسومات | جي فورس | كوادرو ، إن في إس | تسلا/مركز البيانات | تيغرا ، جيتسون ، درايف |
* – منتجات مخصصة لمصنعي المعدات الأصلية فقط
- ↑ قامت مجموعة أدوات CUDA 13.0 بإعادة تسمية SM101 لوحدات معالجة الرسومات Thor إلى SM110.
ميزات ومواصفات الإصدار
ملاحظة: يمكن لوحدة معالجة رسومية (GPU) ذات قدرة حسابية أعلى تنفيذ كود PTX المُصمم لوحدة معالجة رسومية ذات قدرة حسابية أقل. مع ذلك، من الممكن ترجمة كود CUDA إلى صيغة تعمل فقط على عائلة واحدة (نفس "X") من وحدات معالجة الرسوميات؛ إذا تمت ترجمة الكود الحالي بهذه الطريقة، فسيلزم إعادة ترجمته ليعمل على وحدة معالجة رسومية أحدث. [ 45 ]
| دعم الميزات (الميزات غير المدرجة مدعومة لجميع إمكانيات الحوسبة) | القدرة الحاسوبية (الإصدار) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.0، 1.1 | 1.2، 1.3 | 2.x | 3.0 | 3.2 | 3.5، 3.7، 5.x، 6.x، 7.0، 7.2 | 7.5 | 8.x | 9.0، 10.x، 12.x | ||||||
| وظائف التصويت في عملية الالتفاف (__all()، __any()) | لا | نعم | ||||||||||||
| وظائف التصويت المحرفة (__ballot()) | لا | نعم | ||||||||||||
| وظائف حاجز الذاكرة (__threadfence_system()) | ||||||||||||||
| وظائف التزامن (__syncthreads_count(), __syncthreads_and(), __syncthreads_or()) | ||||||||||||||
| دوال السطح | ||||||||||||||
| شبكة ثلاثية الأبعاد من كتل الخيوط | ||||||||||||||
| وظائف خلط الالتواء | لا | نعم | ||||||||||||
| برمجة الذاكرة الموحدة | ||||||||||||||
| تحول قمعي | لا | نعم | ||||||||||||
| التوازي الديناميكي | لا | نعم | ||||||||||||
| مسار البيانات الموحد [ 65 ] | لا | نعم | ||||||||||||
| النسخ غير المتزامن المُسرّع بواسطة الأجهزة | لا | نعم | ||||||||||||
| حاجز الوصول/الانتظار المقسم المُسرّع بواسطة الأجهزة | ||||||||||||||
| دعم على مستوى الالتواء لعمليات التخفيض | ||||||||||||||
| إدارة الإقامة في ذاكرة التخزين المؤقت من المستوى الثاني | ||||||||||||||
| تعليمات DPX للبرمجة الديناميكية المعجلة | لا | نعم | ||||||||||||
| الذاكرة المشتركة الموزعة | ||||||||||||||
| مجموعة كتل الخيوط | ||||||||||||||
| وحدة تسريع ذاكرة الموتر (TMA) | ||||||||||||||
| دعم الميزات (الميزات غير المدرجة مدعومة لجميع إمكانيات الحوسبة) | 1.0، 1.1 | 1.2، 1.3 | 2.x | 3.0 | 3.2 | 3.5، 3.7، 5.x، 6.x، 7.0، 7.2 | 7.5 | 8.x | 9.0، 10.x، 12.x | |||||
| القدرة الحاسوبية (الإصدار) | ||||||||||||||
أنواع البيانات
أنواع الفاصلة العائمة
| نوع البيانات | أنواع المتجهات المدعومة | أجزاء | تعليقات | ||||
|---|---|---|---|---|---|---|---|
| طول التخزين (متجه كامل) | الطول المستخدم (قيمة واحدة) | لافتة | الأس | مانتيسا | |||
| E2M1 = FP4 | e2m1x2 / e2m1x4 | 8 / 16 | 4 | 1 | 2 | 1 | |
| E2M3 = متغير FP6 | e2m3x2 / e2m3x4 | 16 / 32 | 6 | 1 | 2 | 3 | |
| E3M2 = متغير FP6 | e3m2x2 / e3m2x4 | 16 / 32 | 6 | 1 | 3 | 2 | |
| UE4M3 | ue4m3 | 8 | 7 | 0 | 4 | 3 | يُستخدم للقياس (E2M1 فقط) |
| E4M3 = متغير FP8 | e4m3 / e4m3x2 / e4m3x4 | 8 / 16 / 32 | 8 | 1 | 4 | 3 | |
| E5M2 = متغير FP8 | e5m2 / e5m2x2 / e5m2x4 | 8 / 16 / 32 | 8 | 1 | 5 | 2 | الأس/نطاق FP16، يتناسب مع 8 بتات |
| UE8M0 | ue8m0x2 | 16 | 8 | 0 | 8 | 0 | يستخدم للتحجيم (أي تنسيق FP4 أو FP6 أو FP8) |
| FP16 | f16 / f16x2 | 16 / 32 | 16 | 1 | 5 | 10 | |
| BF16 | bf16 / bf16x2 | 16 / 32 | 16 | 1 | 8 | 7 | الأس/نطاق FP32، يتناسب مع 16 بت |
| TF32 | tf32 | 32 | 19 | 1 | 8 | 10 | الأس/المدى من نوع FP32، والجزء الكسري/الدقة من نوع FP16 |
| FP32 | f32 / f32x2 | 32 / 64 | 32 | 1 | 8 | 23 | |
| FP64 | f64 | 64 | 64 | 1 | 11 | 52 | |
دعم الإصدارات
| نوع البيانات | العمليات الأساسية | مدعوم منذ | العمليات الذرية | مدعوم منذ ذلك الحين للذاكرة العالمية | مدعوم منذ ذلك الحين للذاكرة المشتركة |
|---|---|---|---|---|---|
| عدد صحيح ذو 8 بتات ، موقّع/غير موقّع | التحميل، التخزين، التحويل | 1.0 | غير متوفر | غير متوفر | |
| عدد صحيح ذو 16 بت، موقّع/غير موقّع | العمليات العامة | 1.0 | atomicCAS() | 3.5 | |
| عدد صحيح 32 بت، موقّع/غير موقّع | العمليات العامة | 1.0 | الدوال الذرية | 1.1 | 1.2 |
| عدد صحيح 64 بت، مُوقّع/غير مُوقّع | العمليات العامة | 1.0 | الدوال الذرية | 1.2 | 2.0 |
| أي نوع قابل للنسخ بسهولة مكون من 128 بت | العمليات العامة | لا | atomicExch, atomicCAS | 9.0 | |
| 16 بت نقطة عائمة FP16 | الجمع، الطرح، الضرب، المقارنة، وظائف خلط الأرقام، التحويل | 5.3 | إضافة ذرية نصف 2 | 6.0 | |
| الإضافة الذرية | 7.0 | ||||
| BF16 ذو 16 بت بنظام الفاصلة العائمة | الجمع، الطرح، الضرب، المقارنة، وظائف خلط الأرقام، التحويل | 8.0 | الإضافة الذرية | 8.0 | |
| فاصلة عائمة 32 بت | العمليات العامة | 1.0 | atomicExch() | 1.1 | 1.2 |
| الإضافة الذرية | 2.0 | ||||
| الفاصلة العائمة 32 بت float2 و float4 | العمليات العامة | لا | الإضافة الذرية | 9.0 | |
| فاصلة عائمة 64 بت | العمليات العامة | 1.3 | الإضافة الذرية | 6.0 | |
ملاحظة: أي أسطر مفقودة أو إدخالات فارغة تعكس نقصًا في المعلومات المتعلقة بهذا العنصر تحديدًا. [ 67 ]
نوى الموتر
| FMA لكل دورة لكل نواة موتر [ 68 ] | مدعوم منذ | 7.0 | 7.2 | محطة عمل 7.5 | 7.5 سطح المكتب | 8.0 | 8.6 محطة العمل | 8.7 | 8.6 سطح المكتب | 8.9 سطح المكتب | 8.9 محطة العمل | 9.0 | 10.0 | 10.1 | 12.0 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| نوع البيانات | للمصفوفات الكثيفة | للمصفوفات المتفرقة | الجيل الأول (8x/SM) | الجيل الأول؟ (8x/SM) | الجيل الثاني (8x/SM) | الجيل الثالث (4x/SM) | الجيل الرابع (4x/SM) | الجيل الخامس (4x/SM) | |||||||||
| قيم أحادية البت (AND) | 8.0 كإصدار تجريبي | لا | لا | 4096 | 2048 | 8192 | لا | ||||||||||
| قيم أحادية البت (XOR) | 7.5–8.9 كتجربة | لا | 1024 | لا | |||||||||||||
| أعداد صحيحة مكونة من 4 بت | 8.0–8.9 كتجربة | 256 | 1024 | 512 | مزامنة mma القديمة | لا | |||||||||||
| 4 بت نقطة عائمة FP4 (E2M1) | 10.0 | لا | 4096 | سيتم تحديده لاحقاً | 512 | ||||||||||||
| 6 بت نقطة عائمة FP6 (E3M2 و E2M3) | 10.0 | لا | 2048 | سيتم تحديده لاحقاً | |||||||||||||
| أعداد صحيحة من 8 بت | 7.2 | 8.0 | لا | 128 | 128 | 512 | 256 | 1024 | 2048 | 256 | |||||||
| نظام الفاصلة العائمة 8 بت FP8 (E4M3 و E5M2) مع تراكم FP16 | 8.9 | لا | 256 | ||||||||||||||
| نظام الفاصلة العائمة 8 بت FP8 (E4M3 و E5M2) مع تجميع FP32 | 128 | 128 | |||||||||||||||
| فاصلة عائمة 16 بت FP16 مع تراكم FP16 | 7.0 | 8.0 | 64 | 64 | 64 | 256 | 128 | 512 | 1024 | 128 | |||||||
| فاصلة عائمة 16 بت FP16 مع تراكم FP32 | 32 | 64 | 128 | 64 | |||||||||||||
| BF16 ذو 16 بت بنظام الفاصلة العائمة مع تراكم FP32 | 7.5 [ 69 ] | 8.0 | لا | 64 [ 70 ] | |||||||||||||
| TF32 ذو 32 بت (19 بت مستخدمة) نقطة عائمة | السرعة غير محددة (32؟) [ 70 ] | 128 | 32 | 64 | 256 | 512 | 32 | ||||||||||
| فاصلة عائمة 64 بت | 8.0 | لا | لا | 16 | السرعة غير محددة | 32 | 16 | سيتم تحديده لاحقاً | |||||||||
ملاحظة: أي أسطر مفقودة أو خانات فارغة تعكس نقصًا في المعلومات المتعلقة بهذا العنصر تحديدًا. [ 71 ] [ 72 ] [ 73 ] [ 74 ] [ 75 ] [ 76 ]
| تركيب النواة الموترية | 7.0 | 7.2، 7.5 | 8.0، 8.6 | 8.7 | 8.9 | 9.0 |
|---|---|---|---|---|---|---|
| عرض وحدة الضرب النقطي بوحدات FP16 (بالبايت) [ 77 ] [ 78 ] [ 79 ] [ 80 ] | 4 (8) | 8 (16) | 4 (8) | 16 (32) | ||
| وحدات الضرب النقطي لكل نواة موتر | 16 | 32 | ||||
| عدد النوى الموترية لكل قسم من أقسام SM | 2 | 1 | ||||
| معدل النقل الكامل (بايت/دورة) [ 81 ] لكل قسم SM [ 82 ] | 256 | 512 | 256 | 1024 | ||
| نوى موتر FP: الحد الأدنى من الدورات لحساب المصفوفة على مستوى الالتفاف | 8 | 4 | 8 | |||
| نوى موتر FP: الحد الأدنى لشكل المصفوفة لتحقيق الإنتاجية الكاملة (بايت) [ 83 ] | 2048 | |||||
| أنوية موتر الأعداد الصحيحة: الحد الأدنى من الدورات لحساب المصفوفة على مستوى الالتفاف | لا | 4 | ||||
| أنوية موتر الأعداد الصحيحة: الحد الأدنى لحجم المصفوفة لتحقيق الإنتاجية الكاملة (بايت) | لا | 1024 | 2048 | 1024 | ||
| تكوين النواة الموترية FP64 | 8.0 | 8.6 | 8.7 | 8.9 | 9.0 |
|---|---|---|---|---|---|
| عرض وحدة الضرب النقطي بوحدات FP64 (بالبايت) | 4 (32) | سيتم تحديده لاحقاً | 4 (32) | ||
| وحدات الضرب النقطي لكل نواة موتر | 4 | سيتم تحديده لاحقاً | 8 | ||
| عدد النوى الموترية لكل قسم من أقسام SM | 1 | ||||
| معدل النقل الكامل (بايت/دورة) [ 81 ] لكل قسم SM [ 82 ] | 128 | سيتم تحديده لاحقاً | 256 | ||
| الحد الأدنى من الدورات لحساب المصفوفة على مستوى الالتفاف | 16 | سيتم تحديده لاحقاً | |||
| الحد الأدنى لشكل المصفوفة لتحقيق الإنتاجية الكاملة (بايت) [ 83 ] | 2048 | ||||
المواصفات الفنية
| المواصفات الفنية | القدرة الحاسوبية (الإصدار) | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.0 | 1.1 | 1.2 | 1.3 | 2.x | 3.0 | 3.2 | 3.5 | 3.7 | 5.0 | 5.2 | 5.3 | 6.0 | 6.1 | 6.2 | 7.0 | 7.2 | 7.5 | 8.0 | 8.6 | 8.7 | 8.9 | 9.0 | 10.x | 12.x | |
| الحد الأقصى لعدد الشبكات المقيمة لكل جهاز (تنفيذ النواة المتزامن، ويمكن أن يكون أقل بالنسبة لأجهزة معينة) | 1 | 16 | 4 | 32 | 16 | 128 | 32 | 16 | 128 | 16 | 128 | ||||||||||||||
| أقصى أبعاد لشبكة كتل الخيوط | 2 | 3 | |||||||||||||||||||||||
| أقصى بُعد س لشبكة من كتل الخيوط | 65535 | 2 31 − 1 | |||||||||||||||||||||||
| أقصى بُعد y أو z لشبكة من كتل الخيوط | 65535 | ||||||||||||||||||||||||
| أقصى أبعاد لكتلة الخيوط | 3 | ||||||||||||||||||||||||
| أقصى بُعد س أو ص للكتلة | 512 | 1024 | |||||||||||||||||||||||
| أقصى بُعد z للكتلة | 64 | ||||||||||||||||||||||||
| الحد الأقصى لعدد الخيوط لكل كتلة | 512 | 1024 | |||||||||||||||||||||||
| حجم الالتواء | 32 | ||||||||||||||||||||||||
| الحد الأقصى لعدد الكتل المقيمة لكل معالج متعدد | 8 | 16 | 32 | 16 | 32 | 16 | 24 | 32 | |||||||||||||||||
| الحد الأقصى لعدد الالتفافات المقيمة لكل معالج متعدد | 24 | 32 | 48 | 64 | 32 | 64 | 48 | 64 | 48 | ||||||||||||||||
| الحد الأقصى لعدد الخيوط المقيمة لكل معالج متعدد | 768 | 1024 | 1536 | 2048 | 1024 | 2048 | 1536 | 2048 | 1536 | ||||||||||||||||
| عدد السجلات العادية ذات 32 بت لكل معالج متعدد | 8 آلاف | 16 ألف | 32 ألف | 64 ألف | 128 ألف | 64 ألف | |||||||||||||||||||
| عدد سجلات 32 بت الموحدة لكل معالج متعدد | لا | 2 ألف [ 88 ] | |||||||||||||||||||||||
| الحد الأقصى لعدد المسجلات 32 بت لكل كتلة مؤشر ترابط | 8 آلاف | 16 ألف | 32 ألف | 64 ألف | 32 ألف | 64 ألف | 32 ألف | 64 ألف | 32 ألف | 64 ألف | |||||||||||||||
| الحد الأقصى لعدد السجلات العادية ذات 32 بت لكل مؤشر ترابط | 124 | 63 | 255 | ||||||||||||||||||||||
| الحد الأقصى لعدد سجلات 32 بت الموحدة لكل مجموعة من الحزم | لا | 63 [ 88 ] | |||||||||||||||||||||||
| مقدار الذاكرة المشتركة لكل معالج متعدد (من إجمالي الذاكرة المشتركة + ذاكرة التخزين المؤقت L1، إن وجدت) | 16 كيلوبايت | 16 / 48 كيلوبايت (من أصل 64 كيلوبايت) | 16 / 32 / 48 كيلوبايت (من أصل 64 كيلوبايت) | 80 / 96 / 112 كيلو بايت (من 128 كيلو بايت) | 64 كيلوبايت | 96 كيلوبايت | 64 كيلوبايت | 96 كيلوبايت | 64 كيلوبايت | 0 / 8 / 16 / 32 / 64 / 96 كيلو بايت (من 128 كيلو بايت) | 32 / 64 كيلوبايت (من أصل 96 كيلوبايت) | 0 / 8 / 16 / 32 / 64 / 100 / 132 / 164 كيلو بايت (من 192 كيلو بايت) | 0 / 8 / 16 / 32 / 64 / 100 كيلو بايت (من 128 كيلو بايت) | 0 / 8 / 16 / 32 / 64 / 100 / 132 / 164 كيلو بايت (من 192 كيلو بايت) | 0 / 8 / 16 / 32 / 64 / 100 كيلو بايت (من 128 كيلو بايت) | 0 / 8 / 16 / 32 / 64 / 100 / 132 / 164 / 196 / 228 كيلو بايت (من 256 كيلو بايت) | 0 / 8 / 16 / 32 / 64 / 100 كيلو بايت (من 128 كيلو بايت) | ||||||||
| الحد الأقصى لمقدار الذاكرة المشتركة لكل كتلة مؤشر ترابط | 16 كيلوبايت | 48 كيلوبايت | 96 كيلوبايت | 48 كيلوبايت | 64 كيلوبايت | 163 كيلوبايت | 99 كيلوبايت | 163 كيلوبايت | 99 كيلوبايت | 227 كيلوبايت | 99 كيلوبايت | ||||||||||||||
| عدد بنوك الذاكرة المشتركة | 16 | 32 | |||||||||||||||||||||||
| مقدار الذاكرة المحلية لكل خيط | 16 كيلوبايت | 512 كيلوبايت | |||||||||||||||||||||||
| حجم ذاكرة ثابت يمكن الوصول إليه بواسطة CUDA C/C++ (بنك واحد، يمكن لـ PTX الوصول إلى 11 بنكًا، يمكن لـ SASS الوصول إلى 18 بنكًا) | 64 كيلوبايت | ||||||||||||||||||||||||
| مجموعة عمل ذاكرة التخزين المؤقت لكل معالج متعدد للذاكرة الثابتة | 8 كيلوبايت | 4 كيلوبايت | 8 كيلوبايت | ||||||||||||||||||||||
| مجموعة عمل ذاكرة التخزين المؤقت لكل معالج متعدد لذاكرة النسيج | 16 كيلوبايت لكل TPC | 24 كيلوبايت لكل TPC | 12 كيلوبايت | 12 – 48 كيلوبايت [ 90 ] | 24 كيلوبايت | 48 كيلوبايت | 32 كيلوبايت [ 91 ] | 24 كيلوبايت | 48 كيلوبايت | 24 كيلوبايت | 32 – 128 كيلوبايت | 32 – 64 كيلوبايت | 28 – 192 كيلوبايت | 28 – 128 كيلوبايت | 28 – 192 كيلوبايت | 28 – 128 كيلوبايت | 28 – 256 كيلوبايت | ||||||||
| أقصى عرض لمرجع نسيج أحادي البعد مرتبط بمصفوفة CUDA | 8192 | 65536 | 131072 | ||||||||||||||||||||||
| أقصى عرض لمرجع نسيج أحادي البعد مرتبط بالذاكرة الخطية | 2 27 | 2 28 | 2 27 | 2 28 | 2 27 | 2 28 | |||||||||||||||||||
| أقصى عرض وعدد طبقات لمرجع نسيجي أحادي البعد متعدد الطبقات | 8192 × 512 | 16384 × 2048 | 32768 × 2048 | ||||||||||||||||||||||
| أقصى عرض وارتفاع لمرجع نسيج ثنائي الأبعاد مرتبط بمصفوفة CUDA | 65536 × 32768 | 65536 × 65535 | 131072 × 65536 | ||||||||||||||||||||||
| أقصى عرض وارتفاع لمرجع نسيج ثنائي الأبعاد مرتبط بذاكرة خطية | 65000 × 65000 | 65536 × 65536 | 131072 × 65000 | ||||||||||||||||||||||
| أقصى عرض وارتفاع لمرجع نسيج ثنائي الأبعاد مرتبط بمصفوفة CUDA تدعم تجميع النسيج | غير متوفر | 16384 × 16384 | 32768 × 32768 | ||||||||||||||||||||||
| الحد الأقصى للعرض والارتفاع وعدد الطبقات لمرجع نسيج ثنائي الأبعاد متعدد الطبقات | 8192 × 8192 × 512 | 16384 × 16384 × 2048 | 32768 × 32768 × 2048 | ||||||||||||||||||||||
| أقصى عرض وارتفاع وعمق لمرجع نسيج ثلاثي الأبعاد مرتبط بذاكرة خطية أو مصفوفة CUDA | 2048 3 | 4096 3 | 16384 3 | ||||||||||||||||||||||
| أقصى عرض (وارتفاع) لمرجع نسيج مكعب الخريطة | غير متوفر | 16384 | 32768 | ||||||||||||||||||||||
| الحد الأقصى للعرض (والارتفاع) وعدد الطبقات لمرجع نسيج مكعب الطبقات | غير متوفر | 16384 × 2046 | 32768 × 2046 | ||||||||||||||||||||||
| الحد الأقصى لعدد الصور التي يمكن ربطها بنواة النظام | 128 | 256 | |||||||||||||||||||||||
| أقصى عرض لمرجع سطح أحادي البعد مرتبط بمصفوفة CUDA | غير مدعوم | 65536 | 16384 | 32768 | |||||||||||||||||||||
| أقصى عرض وعدد طبقات لسطح مرجعي أحادي البعد متعدد الطبقات | 65536 × 2048 | 16384 × 2048 | 32768 × 2048 | ||||||||||||||||||||||
| أقصى عرض وارتفاع لمرجع سطح ثنائي الأبعاد مرتبط بمصفوفة CUDA | 65536 × 32768 | 16384 × 65536 | 131072 × 65536 | ||||||||||||||||||||||
| أقصى عرض وارتفاع وعدد طبقات لسطح مرجعي ثنائي الأبعاد متعدد الطبقات | 65536 × 32768 × 2048 | 16384 × 16384 × 2048 | 32768 × 32768 × 2048 | ||||||||||||||||||||||
| أقصى عرض وارتفاع وعمق لمرجع سطح ثلاثي الأبعاد مرتبط بمصفوفة CUDA | 65536 × 32768 × 2048 | 4096 × 4096 × 4096 | 16384 × 16384 × 16384 | ||||||||||||||||||||||
| أقصى عرض (وارتفاع) لمرجع سطح مكعب الخريطة المرتبط بمصفوفة CUDA | 32768 | 16384 | 32768 | ||||||||||||||||||||||
| الحد الأقصى للعرض وعدد الطبقات لمرجع سطح مكعب الطبقات | 32768 × 2046 | 16384 × 2046 | 32768 × 2046 | ||||||||||||||||||||||
| الحد الأقصى لعدد الأسطح التي يمكن ربطها بنواة | 8 | 16 | 32 | ||||||||||||||||||||||
| الحد الأقصى لعدد التعليمات لكل نواة | مليونان | 512 مليون | |||||||||||||||||||||||
| الحد الأقصى لعدد كتل الخيوط لكل مجموعة من كتل الخيوط [ 92 ] | لا | 16 | 8 | ||||||||||||||||||||||
| المواصفات الفنية | 1.0 | 1.1 | 1.2 | 1.3 | 2.x | 3.0 | 3.2 | 3.5 | 3.7 | 5.0 | 5.2 | 5.3 | 6.0 | 6.1 | 6.2 | 7.0 | 7.2 | 7.5 | 8.0 | 8.6 | 8.7 | 8.9 | 9.0 | 10.x | 12.x |
| القدرة الحاسوبية (الإصدار) | |||||||||||||||||||||||||
بنية المعالجات المتعددة
| مواصفات معمارية | القدرة الحاسوبية (الإصدار) | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.0 | 1.1 | 1.2 | 1.3 | 2.0 | 2.1 | 3.0 | 3.2 | 3.5 | 3.7 | 5.0 | 5.2 | 5.3 | 6.0 | 6.1 | 6.2 | 7.0 | 7.2 | 7.5 | 8.0 | 8.6 | 8.7 | 8.9 | 9.0 | 10.x | 12.x | |
| عدد مسارات وحدة الحساب والمنطق (ALU) لعمليات الحساب INT32 | 8 | 32 | 48 | 192 [ 95 ] | 128 | 128 | 64 | 128 | 128 | 64 | 64 | 64 | 128 | |||||||||||||
| عدد مسارات وحدة الحساب والمنطق لأي عملية حسابية من نوع INT32 أو FP32 | غير متوفر | غير متوفر | ||||||||||||||||||||||||
| عدد مسارات وحدة الحساب والمنطق (ALU) لعمليات الحساب FP32 | 64 | 64 | 128 | 128 | ||||||||||||||||||||||
| عدد مسارات وحدة الحساب والمنطق (ALU) لعمليات الحساب FP16x2 | لا | 1 | 128 [ 96 ] | 128 [ 97 ] | 64 [ 98 ] | |||||||||||||||||||||
| عدد مسارات وحدة الحساب والمنطق لعمليات الحساب FP64 | لا | 1 | 16 بواسطة FP32 [ 99 ] | 4 بواسطة FP32 [ 100 ] | 8 | 8 / 64 [ 101 ] | 64 | 4 [ 102 ] | 32 | 4 | 32 | 2 | 32 | 2 | 64 | 2 | ||||||||||
| عدد وحدات التحميل/التخزين | 4 لكل 2 سم | 8 لكل 2 سم | 8 لكل 2 SM / 3 SM [ 101 ] | 8 لكل 3 سم | 16 | 32 | 16 | 32 | 16 | 32 | ||||||||||||||||
| عدد وحدات الدوال الخاصة للدوال المتسامية ذات الفاصلة العائمة أحادية الدقة | 2 [ 103 ] | 4 | 8 | 32 | 16 | 32 | 16 | |||||||||||||||||||
| عدد وحدات رسم الخرائط النسيجية (TMU) | 4 لكل 2 سم | 8 لكل 2 سم | 8 لكل 2 / 3SM [ 101 ] | 8 لكل 3 سم | 4 | 4 / 8 [ 101 ] | 16 | 8 | 16 | 8 | 4 | |||||||||||||||
| عدد مسارات وحدة الحساب والمنطق (ALU) لعمليات حسابية موحدة من نوع INT32 | لا | 2 [ 104 ] | ||||||||||||||||||||||||
| عدد نوى الموتر | لا | 8 (الجيل الأول) [ 105 ] | 0 / 8 [ 101 ] (الجيل الثاني) | 4 (الجيل الثالث) | 4 (الجيل الرابع) | |||||||||||||||||||||
| عدد نوى تتبع الأشعة | لا | 0 / 1 [ 101 ] (الجيل الأول) | لا | 1 (الجيل الثاني) | لا | 1 (الجيل الثالث) | لا | |||||||||||||||||||
| عدد أقسام SM = كتل المعالجة [ 106 ] | 1 | 4 | 2 | 4 | ||||||||||||||||||||||
| عدد مُجدولي الالتفاف لكل قسم من أقسام SM | 1 | 2 | 4 | 1 | ||||||||||||||||||||||
| الحد الأقصى لعدد التعليمات الجديدة التي يصدرها كل دورة جدولة واحدة [ 107 ] | 2 [ 108 ] | 1 | 2 [ 109 ] | 2 | 1 | |||||||||||||||||||||
| حجم الذاكرة الموحدة لذاكرة التخزين المؤقت للبيانات والذاكرة المشتركة | 16 كيلوبايت [ 110 ] | 16 كيلوبايت [ 110 ] | 64 كيلوبايت | 128 كيلوبايت | 64 كيلو بايت SM + 24 كيلو بايت L1 (منفصل) [ 111 ] | 96 كيلو بايت SM + 24 كيلو بايت L1 (منفصل) [ 111 ] | 64 كيلو بايت SM + 24 كيلو بايت L1 (منفصل) [ 111 ] | 64 كيلو بايت SM + 24 كيلو بايت L1 (منفصل) [ 111 ] | 96 كيلو بايت SM + 24 كيلو بايت L1 (منفصل) [ 111 ] | 64 كيلو بايت SM + 24 كيلو بايت L1 (منفصل) [ 111 ] | 128 كيلوبايت | 96 كيلوبايت [ 112 ] | 192 كيلوبايت | 128 كيلوبايت | 192 كيلوبايت | 128 كيلوبايت | 256 كيلوبايت | |||||||||
| حجم ذاكرة التخزين المؤقت للتعليمات من المستوى الثالث لكل وحدة معالجة رسومية | 32 كيلوبايت [ 113 ] | استخدام ذاكرة التخزين المؤقت للبيانات من المستوى الثاني | ||||||||||||||||||||||||
| حجم ذاكرة التخزين المؤقت للتعليمات من المستوى الثاني لكل مجموعة معالج نسيج (TPC) | 8 كيلوبايت | |||||||||||||||||||||||||
| حجم ذاكرة التخزين المؤقت للتعليمات من المستوى 1.5 لكل وحدة معالجة متعددة [ 114 ] | 4 كيلوبايت | 32 كيلوبايت | 32 كيلوبايت | 48 كيلوبايت [ 91 ] | 128 كيلوبايت | 32 كيلوبايت | 128 كيلوبايت | ~46 كيلوبايت [ 115 ] | 128 كيلوبايت [ 116 ] | |||||||||||||||||
| حجم ذاكرة التخزين المؤقت للتعليمات من المستوى الأول لكل وحدة معالجة متعددة | 8 كيلوبايت | 8 كيلوبايت | ||||||||||||||||||||||||
| حجم ذاكرة التخزين المؤقت للتعليمات من المستوى L0 لكل قسم من أقسام SM | قسم واحد فقط لكل وحدة تخزين | لا | 12 كيلوبايت | 16 كيلوبايت؟ [ 117 ] | 32 كيلوبايت | |||||||||||||||||||||
| عرض التعليمات [ 114 ] | تعليمات 32 بت وتعليمات 64 بت [ 118 ] | تعليمات 64 بت + منطق تحكم 64 بت كل 7 تعليمات | تعليمات 64 بت + منطق تحكم 64 بت كل 3 تعليمات | منطق تعليمي وتحكمي مدمج 128 بت | ||||||||||||||||||||||
| عرض ناقل الذاكرة لكل وحدة تحكم بالذاكرة بالبتات | 64 ((G)DDR) | 32 ((G)DDR) | 512 (HBM) | 32 ((G)DDR) | 512 (HBM) | 32 ((G)DDR) | 512 (HBM) | 32 ((G)DDR) | 512 (HBM) | 32 ((G)DDR) | ||||||||||||||||
| ذاكرة تخزين مؤقتة من المستوى الثاني لكل وحدة تحكم في الذاكرة | 16 كيلوبايت [ 119 ] | 32 كيلوبايت [ 119 ] | 128 كيلوبايت | 256 كيلوبايت | 1 ميجابايت | 512 كيلوبايت | 128 كيلوبايت | 512 كيلوبايت | 256 كيلوبايت | 128 كيلوبايت | 768 كيلوبايت | 64 كيلوبايت | 512 كيلوبايت | 4 ميجابايت | 512 كيلوبايت | 8 ميجابايت [ 120 ] | 5 ميجابايت | 6.25 ميجابايت | 8 ميجابايت [ 121 ] | |||||||
| عدد وحدات إخراج العرض (ROP) لكل وحدة تحكم في الذاكرة (أو لكل GPC في الطرازات الأحدث) | 4 | 8 | 4 | 8 | 16 | 8 | 12 | 8 | 4 | 16 | 2 | 8 | 16 | 16 لكل جالون | 3 لكل GPC | 16 لكل جالون | ||||||||||
| مواصفات معمارية | 1.0 | 1.1 | 1.2 | 1.3 | 2.0 | 2.1 | 3.0 | 3.2 | 3.5 | 3.7 | 5.0 | 5.2 | 5.3 | 6.0 | 6.1 | 6.2 | 7.0 | 7.2 | 7.5 | 8.0 | 8.6 | 8.7 | 8.9 | 9.0 | 10.x | 12.x |
| القدرة الحاسوبية (الإصدار) | ||||||||||||||||||||||||||
للمزيد من المعلومات، اقرأ دليل برمجة Nvidia CUDA C++. [ 122 ]
استخدامات بنية CUDA
- تسريع عرض الرسومات ثلاثية الأبعاد
- التحويل السريع بين تنسيقات ملفات الفيديو
- التشفير وفك التشفير والضغط المُسرّع
- المعلوماتية الحيوية ، على سبيل المثال تسلسل الحمض النووي NGS BarraCUDA [ 123 ]
- الحسابات الموزعة، مثل التنبؤ بالبنية الأصلية للبروتينات
- محاكاة التحليل الطبي، على سبيل المثال الواقع الافتراضي القائم على صور الأشعة المقطعية والتصوير بالرنين المغناطيسي
- المحاكاة الفيزيائية، [ 124 ] وخاصة في ديناميكيات الموائع
- تدريب الشبكات العصبية في مشاكل التعلم الآلي
- استدلال نموذج اللغة الكبير
- التعرف على الوجه
- مشاريع الحوسبة التطوعية ، مثل SETI@home وغيرها من المشاريع التي تستخدم برنامج BOINC
- الديناميكا الجزيئية
- تعدين العملات المشفرة
- برنامج إعادة بناء الهيكل من الحركة (SfM)
مقارنة مع المنافسين
تتنافس CUDA مع مجموعات الحوسبة الأخرى لوحدات معالجة الرسومات: Intel OneAPI و AMD ROCm .
بينما يعتبر برنامج CUDA من Nvidia مغلق المصدر، فإن برنامج OneAPI من Intel وبرنامج ROCm من AMD مفتوح المصدر.
Intel OneAPI
oneAPI هي مبادرة قائمة على معايير مفتوحة، أُنشئت لدعم تطوير البرمجيات لبنى أجهزة متعددة. [ 125 ] يجب أن تُطبّق مكتبات oneAPI مواصفات مفتوحة تُناقش علنًا من قِبل مجموعات الاهتمام الخاصة، مما يُتيح لأي مطوّر أو مؤسسة إمكانية تطبيق إصداراتهم الخاصة من مكتبات oneAPI. [ 126 ] [ 127 ]
صُنعت هذه الأجهزة في الأصل بواسطة شركة إنتل، ومن بين الشركات الأخرى التي اعتمدتها فوجيتسو وهواوي.
مؤسسة التسريع الموحدة (UXL)
مؤسسة التسريع الموحد (UXL) هي اتحاد تقني جديد يعمل على مواصلة مبادرة OneAPI، بهدف إنشاء نظام بيئي جديد لبرمجيات التسريع مفتوحة المصدر، بالإضافة إلى مشاريع المعايير والمواصفات المفتوحة ذات الصلة من خلال فرق العمل ومجموعات الاهتمام الخاصة (SIGs). ويتمثل الهدف في توفير بدائل مفتوحة لتقنية CUDA من Nvidia. وتشمل الشركات الرئيسية الداعمة لها: Intel وGoogle وARM وQualcomm وSamsung وImagination وVMware. [ 128 ]
AMD ROCm
ROCm [ 129 ] عبارة عن حزمة برامج مفتوحة المصدر لبرمجة وحدة معالجة الرسومات (GPU) من شركة Advanced Micro Devices (AMD).
انظر أيضاً
- برمجة المصفوفات
- BrookGPU – مُجمِّع برامج مجموعة الرسومات بجامعة ستانفورد
- ثنائي CUDA (كوبين) - نوع من الثنائيات الدهنية
- النمذجة الجزيئية على وحدات معالجة الرسومات
- مجموعة المكتبات الرقمية - من إنتاج شركة NEC لمعالج المتجهات الخاص بها
- OptiX – واجهة برمجة تطبيقات تتبع الأشعة من NVIDIA
- الحوسبة المتوازية
- rCUDA – واجهة برمجة تطبيقات للحوسبة على أجهزة الكمبيوتر البعيدة
- معالجة البيانات المتدفقة
- SYCL – معيار مفتوح من مجموعة Khronos لبرمجة مجموعة متنوعة من المنصات، بما في ذلك وحدات معالجة الرسومات، باستخدام لغة C++ الحديثة ذات المصدر الواحد ، على غرار واجهة برمجة تطبيقات CUDA Runtime ذات المستوى الأعلى ( مصدر واحد )
- فولكان – واجهة برمجة تطبيقات رسومية وحوسبة ثلاثية الأبعاد منخفضة المستوى وعالية الأداء
مراجع
- ↑ "إنفيديا® كودا™ تُطلق العنان لقوة الحوسبة باستخدام وحدة معالجة الرسومات - بيان صحفي" . nvidia.com . مؤرشف من الأصل بتاريخ 29 مارس 2007. تم الاطلاع عليه بتاريخ 26 يناير 2025 .
- ↑ "فهرس /compute/cuda/redist" . تم الاسترجاع في 16 يونيو 2026 .
- 1 2 شاه، أغام. "إنفيديا ليست ضد قيام جهات خارجية بتصنيع رقائق CUDA" . www.theregister.com . تاريخ الاسترجاع: 25 أبريل 2024 .
- ↑ "الصفحة الرئيسية لـ Nvidia CUDA" . 18 يوليو 2017.
- ↑ شيمبي، أناند لال؛ ويلسون، ديريك (8 نوفمبر 2006). "معالج الرسوميات GeForce 8800 (G80) من إنفيديا: إعادة تصميم معمارية لـ DirectX 10" . AnandTech. مؤرشف من الأصل في 24 أبريل 2010. تم الاطلاع عليه في 16 مايو 2015 .
- ↑ "مقدمة - وثائق nsight-visual-studio-edition 12.6" . docs.nvidia.com . تم الاطلاع عليه بتاريخ 10-10-2024 .
- 1 2 أبي شحلة، فيدي (18 يونيو 2008). "كودا من إنفيديا: نهاية وحدة المعالجة المركزية؟" . تومز هاردوير . تم الاسترجاع في 17 مايو 2015 .
- ↑ جونز، ستيفن (22 أبريل 2025). ما هي CUDA؟ (فيديو). كمبيوتر فايل . تم الاطلاع عليه بتاريخ 24 يوليو 2025 – عبر يوتيوب.
- ↑ زونيتش، بيتر (24 يناير 2018). "CUDA مقابل OpenCL مقابل OpenGL" . Videomaker . تم الاسترجاع في 16 سبتمبر 2018 .
- ↑ "OpenCL" . مطورو NVIDIA . 24-04-2013 . تم الاطلاع عليه بتاريخ 04-11-2019 .
- 1 2 كوسغروف، إيما. "إيان باك هو من ابتكر سلاح إنفيديا السري. وقد يقضي بقية حياته المهنية في الدفاع عنه" . بزنس إنسايدر . تاريخ الاسترجاع: 24 يوليو 2025 .
- ↑ «نعي جون نيكولز - لوس ألتوس، كاليفورنيا» . صحيفة ميركوري نيوز . 29 سبتمبر 2011. تاريخ الاطلاع: 23 نوفمبر 2025.
توفي جون ريتشارد نيكولز في لوس ألتوس، كاليفورنيا، في 13 أغسطس 2011 بعد صراع شجاع مع مرض السرطان. وُلد في 6 مارس 1950 لكينيث وكاثرين نيكولز، ونشأ في ويلبراهام، ماساتشوستس.
- ↑ ويت، ستيفن (27 نوفمبر 2023). "كيف تُسهم شركة إنفيديا بقيادة جنسن هوانغ في ثورة الذكاء الاصطناعي" . مجلة نيويوركر . الرقم الدولي الموحد للدوريات 0028-792X . تاريخ الاسترجاع: 10 ديسمبر 2023 .
- ↑ "مترجم CUDA LLVM" . 7 مايو 2012.
- ↑ "تجميع CUDA باستخدام clang - وثائق LLVM 22.0.0git" . llvm.org .
- ↑ أول عرض توضيحي لـ OpenCL على وحدة معالجة الرسومات على يوتيوب
- ↑ عرض توضيحي لـ DirectCompute Ocean يعمل على وحدة معالجة رسومات Nvidia CUDA على YouTube
- ↑ فاسيلياديس، جورجوس؛ أنتوناتوس، سبيروس؛ بوليكروناكيس، ميخاليس؛ ماركاتوس، إيفانجيلوس ب.؛ إيوانيديس، سوتيريس (سبتمبر 2008). "Gnort: كشف اختراق الشبكات عالي الأداء باستخدام معالجات الرسومات" (ملف PDF) . التطورات الحديثة في كشف الاختراق . سلسلة محاضرات في علوم الحاسوب. المجلد 5230. الصفحات 116-134 . doi : 10.1007/978-3-540-87403-4_7 . ISBN 978-3-540-87402-7.
- ↑ شاتز، مايكل سي؛ ترابنيل، كول؛ ديلشر، آرثر إل؛ فارشني، أميتاب (2007). "محاذاة التسلسل عالية الإنتاجية باستخدام وحدات معالجة الرسومات" . BMC Bioinformatics . 8 474. doi : 10.1186/1471-2105-8-474 . PMC 2222658. PMID 18070356 .
- ↑ "أرشيف كود جوجل - تخزين طويل الأمد لاستضافة مشاريع كود جوجل" . code.google.com .
- ↑ "استخدم وحدة معالجة الرسومات Nvidia الخاصة بك للحوسبة العلمية" . boinc.berkeley.edu . البنية التحتية المفتوحة للحوسبة الشبكية في بيركلي (BOINC). ١٨ ديسمبر ٢٠٠٨. مؤرشف من الأصل في ٢٨ ديسمبر ٢٠٠٨. تم الاطلاع عليه في ٨ أغسطس ٢٠١٧ .
- ↑ "مجموعة تطوير برامج Nvidia CUDA (CUDA SDK) - ملاحظات الإصدار 2.0 لنظام التشغيل MAC OS X" . مؤرشف من الأصل بتاريخ 2009-01-06.
- ↑ "CUDA 1.1 – متوفر الآن على نظام التشغيل Mac OS X" . 14 فبراير 2008. مؤرشف من الأصل في 22 نوفمبر 2008.
- ↑ "الكشف عن ميزات CUDA 11" . 14 مايو 2020.
- ↑ "مجموعة أدوات CUDA 11.1 تقدم دعمًا لوحدات معالجة الرسومات من سلسلة GeForce RTX 30 وسلسلة Quadro RTX" . 23 سبتمبر 2020.
- ↑ "تحسين تخصيص الذاكرة باستخدام ميزات NVIDIA CUDA 11.2 الجديدة" . 16 ديسمبر 2020.
- ↑ "استكشاف الميزات الجديدة لـ CUDA 11.3" . 16 أبريل 2021.
- ↑ سيلبرشتاين، مارك؛ شوستر، عساف ؛ جايجر، دان؛ باتني، أنجول؛ أوينز، جون د. (2008). "حساب فعال لمجموع الضرب على وحدات معالجة الرسومات من خلال ذاكرة تخزين مؤقتة مُدارة برمجياً" (ملف PDF) . وقائع المؤتمر الدولي السنوي الثاني والعشرين للحوسبة الفائقة – ICS '08 (ملف PDF) . وقائع المؤتمر الدولي السنوي الثاني والعشرين للحوسبة الفائقة – ICS '08. الصفحات 309-318 . doi : 10.1145/1375527.1375572 . ISBN 978-1-60558-158-3.
- ↑ "دليل برمجة CUDA C الإصدار 8.0" (ملف PDF) . منطقة مطوري nVidia . يناير 2017. صفحة 19. تاريخ الاطلاع: 22 مارس 2017 .
- ↑ "NVCC يفرض تجميع ملفات .cu باستخدام لغة C++" . 29 نوفمبر 2011.
- ↑ وايت هيد، ناثان؛ فيت-فلوريا، أليكس. "الدقة والأداء: التوافق مع معيار الفاصلة العائمة ومعيار IEEE 754 لوحدات معالجة الرسومات من إنفيديا" (ملف PDF) . إنفيديا . تم الاطلاع عليه بتاريخ 18 نوفمبر 2014 .
- ↑ "منتجات تدعم تقنية CUDA" . منطقة CUDA . شركة Nvidia . تم الاطلاع بتاريخ 3 نوفمبر 2008 .
- ↑ "مشروع الكزبرة: تجميع أكواد CUDA إلى OpenCL، وتشغيلها في كل مكان" . Phoronix.
- ↑ بيركنز، هيو (2017). "cuda-on-cl" (ملف PDF) . IWOCL . تم الاطلاع عليه بتاريخ 8 أغسطس 2017 .
- ↑ "hughperkins/coriander: بناء كود NVIDIA® CUDA™ لأجهزة OpenCL™ 1.2" . GitHub. 6 مايو 2019.
- ↑ "وثائق CU2CL" . chrec.cs.vt.edu .
- ↑ "GitHub – vosen/ZLUDA" . GitHub .
- ↑ لارابيل، مايكل (12 فبراير 2024)، "شركة AMD مولت بهدوء تطبيقًا جاهزًا لـ CUDA مبنيًا على ROCm: وهو الآن مفتوح المصدر" ، فورونيكس ، تاريخ الاطلاع : 12 فبراير 2024
- ↑ "GitHub – chip-spv/chipStar" . GitHub .
- ↑ "أداة SCALE الجديدة تُمكّن تطبيقات CUDA من العمل على وحدات معالجة الرسومات من AMD" . موقع Tom's Hardware. 17 يوليو 2024.
- ^ "بيكودا" . mathema.tician.de .
- ↑ "pycublas" . مؤرشف من الأصل بتاريخ 20 أبريل 2009. تم الاطلاع عليه بتاريخ 8 أغسطس 2017 .
- ↑ "CuPy" . cupy.dev . تم الاطلاع عليه بتاريخ 23-09-2025 .
- 1 2 "دليل المستخدم لواجهة NVPTX الخلفية - وثائق LLVM 22.0.0git" . llvm.org .
- ↑ "دليل برمجة NVIDIA CUDA. الإصدار 1.0" (PDF) . 23 يونيو 2007.
- ↑ "دليل برمجة NVIDIA CUDA. الإصدار 2.1" (PDF) . 8 ديسمبر 2008.
- ↑ "دليل برمجة NVIDIA CUDA. الإصدار 2.2" (PDF) . 2 أبريل 2009.
- ↑ "دليل برمجة NVIDIA CUDA. الإصدار 2.2.1" (PDF) . 26 مايو 2009.
- ↑ "دليل برمجة NVIDIA CUDA. الإصدار 2.3.1" (PDF) . 26 أغسطس 2009.
- ↑ "دليل برمجة NVIDIA CUDA. الإصدار 3.0" (PDF) . 20 فبراير 2010.
- ↑ "دليل برمجة NVIDIA CUDA C. الإصدار 3.1.1" (PDF) . 21 يوليو 2010.
- ↑ "دليل برمجة NVIDIA CUDA C. الإصدار 3.2" (PDF) . 9 نوفمبر 2010.
- ↑ "ملاحظات إصدار CUDA 11.0" . مطورو NVIDIA .
- ↑ "ملاحظات إصدار CUDA 11.1" . مطورو NVIDIA .
- ↑ "ملاحظات إصدار CUDA 11.5" . مطورو NVIDIA .
- ↑ "ملاحظات إصدار CUDA 11.8" . مطورو NVIDIA .
- ↑ "مصفوفة الدعم - الواجهة الخلفية لـ NVIDIA cuDNN" . docs.nvidia.com . تم الاطلاع عليه بتاريخ 20 أغسطس 2025 .
- ↑ "مواصفات بطاقة الرسومات NVIDIA Quadro NVS 420" . قاعدة بيانات TechPowerUp لوحدات معالجة الرسومات . 25 أغسطس 2023.
- ↑ لارابيل، مايكل (29 مارس 2017). "إنفيديا تُطلق دعم معالج الرسوميات Tegra X2 في نوفو" . فورونيكس . تم الاطلاع عليه في 8 أغسطس 2017 .
- ↑ مواصفات بطاقة Nvidia Xavier على موقع TechPowerUp (أولية)
- ↑ "مرحباً — وثائق دليل مطوري Jetson Linux 34.1" . docs.nvidia.com .
- ↑ "NVIDIA تُفعّل دعم وحدة معالجة الرسومات Volta مفتوحة المصدر لمعالج Xavier SoC الخاص بها" .
- ↑ "هندسة إنفيديا آدا لوفليس" .
- ↑ "تشريح بنية وحدة معالجة الرسومات تورينج من خلال القياس الدقيق" (PDF) .
- ↑ "H.1. الميزات والمواصفات الفنية - الجدول 13. دعم الميزات لكل قدرة حسابية" . docs.nvidia.com . تم الاطلاع عليه بتاريخ 23-09-2020 .
- ↑ "دليل برمجة CUDA C++" .
- ↑ عملية الضرب والجمع المدمجة، المنفذة فعليًا، مصفوفة كثيفة
- ↑ كـ SASS منذ الإصدار 7.5، وكـ PTX منذ الإصدار 8.0
- 1 2 دعم غير رسمي في SASS
- ^ "موجز تقني. سلسلة NVIDIA Jetson AGX Orin" (PDF) . nvidia.com . تم الاسترجاع في 5 سبتمبر 2023 .
- ↑ "معمارية معالج الرسوميات NVIDIA Ampere GA102" (ملف PDF) . nvidia.com . تم الاطلاع عليه بتاريخ 5 سبتمبر 2023 .
- ^ لوه ويلي. مروحة، رويبو؛ لي زيو. دو، دايو؛ وانغ، تشيانغ. تشو، شياو ون (2024). “قياس وتشريح بنية Nvidia Hopper GPU”. أرخايف : 2402.13499v1 [ cs.AR ].
- ↑ "ورقة بيانات NVIDIA A40" (ملف PDF) . nvidia.com . تم الاطلاع عليها بتاريخ 27 أبريل 2024 .
- ↑ "معمارية وحدة معالجة الرسومات NVIDIA AMPERE GA102" (ملف PDF) . 27 أبريل 2024.
- ↑ "ورقة بيانات NVIDIA L40" (ملف PDF) . nvidia.com . 27 أبريل 2024.
- ↑ في الأوراق البيضاء، تمثل مخططات مكعبات Tensor Core عرض وحدة الضرب النقطي في الارتفاع (4 وحدات FP16 لـ Volta وTuring، و8 وحدات FP16 لـ A100، و4 وحدات FP16 لـ GA102، و16 وحدة FP16 لـ GH100). يمثل البعدان الآخران عدد وحدات الضرب النقطي (4×4 = 16 لـ Volta وTuring، و8×4 = 32 لـ Ampere وHopper). تمثل الكتل الرمادية الناتجة عمليات FMA من نوع FP16 لكل دورة. تم عرض Pascal بدون Tensor Core فقط لمقارنة السرعة، وكذلك Volta V100 مع أنواع البيانات غير FP16.
- ↑ "ورقة عمل معمارية تورينج من إنفيديا" (ملف PDF) . nvidia.com . تم الاطلاع عليها بتاريخ 5 سبتمبر 2023 .
- ↑ "معالج الرسوميات Tensor Core من NVIDIA" (ملف PDF) . nvidia.com . تم الاطلاع عليه بتاريخ 5 سبتمبر 2023 .
- ↑ "نظرة معمقة على بنية NVIDIA Hopper" . 22 مارس 2022.
- 1 2 شكل × حجم المعامل المحول، على سبيل المثال 2 نواة موتر × 4×4×4×FP16/دورة = 256 بايت/دورة
- 1 2 = ناتج أول 3 صفوف من الجدول
- 1 2 = حاصل ضرب صفي الجدول السابقين؛ الشكل: على سبيل المثال 8×8×4×FP16 = 512 بايت
- ↑ صن، وي؛ لي، أنغ؛ جينغ، تونغ؛ ستويك، ساندر؛ كوربورال، هينك (2023). "تحليل نوى الموتر عبر المعايير الدقيقة: زمن الاستجابة، والإنتاجية، والسلوكيات العددية". معاملات IEEE للأنظمة المتوازية والموزعة . 34 (1): 246-261 . arXiv : 2206.02874 . Bibcode : 2023ITPDS..34..246S . doi : 10.1109/tpds.2022.3217824 . S2CID 249431357 .
- ↑ "Parallel Thread Execution ISA Version 7.7" .
- ↑ ريحان، محمد عامر؛ جولي، نيجار؛ عامودت، تور (2018). "نمذجة وحدات معالجة الرسومات المُمكّنة بواسطة مُسرّع التعلم العميق". arXiv : 1811.08309 [ cs.MS ].
- ↑ "هندسة إنفيديا آدا لوفليس" .
- 1 2 جيا، زهي؛ ماجيوني، ماركو؛ سميث، جيفري. دانييلي باولو سكاربازا (2019). “تشريح وحدة معالجة الرسومات NVidia Turing T4 عبر Microbenchmarking”. أرخايف : 1903.07486 [ cs.DC ].
- 1 2 بورغيس، جون (2019). "RTX ON – معالج الرسوميات تورينج من إنفيديا". ندوة IEEE Hot Chips 31 لعام 2019 (HCS) . الصفحات 1-27 . doi : 10.1109/HOTCHIPS.2019.8875651 . ISBN 978-1-7281-2089-8. S2CID 204822166 .
- ↑ يعتمد على الجهاز
- 1 2 "Tegra X1" . 9 يناير 2015.
- ↑ "gtc22-whitepaper-hopper.pdf" . nvdam.widen.net .
- ↑ "دليل برمجة CUDA — دليل برمجة CUDA" . docs.nvidia.com .
- ↑ "نظرة معمقة على بنية NVIDIA Hopper" . مدونة NVIDIA التقنية . 22 مارس 2022.
- ↑ لا يمكنه تنفيذ سوى 160 تعليمة عددية صحيحة وفقًا لدليل البرمجة
- ↑ 128 وفقًا لـ. 64 من FP32 + 64 وحدة منفصلة؟
- ↑ 64 بواسطة أنوية FP32 و 64 بواسطة أنوية FP32/INT المرنة.
- ↑ "دليل برمجة CUDA C++" . docs.nvidia.com .
- ↑ يتم دمج 32 مسارًا من نوع FP32 لتصبح 16 مسارًا من نوع FP64. قد يكون العدد أقل حسب الطراز.
- ↑ مدعومة فقط بـ 16 مسار FP32، وتتحد لتشكل 4 مسارات FP64
- 1 2 3 4 5 6 حسب الطراز
- ↑ سرعة فعالة، على الأرجح عبر منافذ FP32. لا يوجد وصف لأنوية FP64 الفعلية.
- ↑ يمكن استخدامه أيضًا لجمع الأعداد الصحيحة ومقارنتها
- ↑ دورتان ساعة لكل تعليمة لكل قسم من أقسام SM. بورغيس، جون (2019). "RTX ON - وحدة معالجة الرسومات NVIDIA TURING". ندوة IEEE Hot Chips 31 لعام 2019 (HCS) . الصفحات 1-27 . doi : 10.1109/HOTCHIPS.2019.8875651 . ISBN 978-1-7281-2089-8. S2CID 204822166 .
- ↑ دورانت، لوك؛ جيرو، أوليفييه؛ هاريس، مارك؛ ستام، نيك (10 مايو 2017). "نظرة داخلية على فولتا: وحدة معالجة الرسومات الأكثر تطوراً في العالم لمراكز البيانات" . مدونة مطوري إنفيديا .
- ↑ يمتلك المخططون والموزعون وحدات تنفيذ مخصصة على عكس ما هو الحال مع فيرمي وكبلر.
- ↑ يمكن أن تتداخل عمليات الإرسال بشكل متزامن، إذا استغرقت أكثر من دورة واحدة (عندما يكون هناك عدد أقل من وحدات التنفيذ من 32/SM Partition)
- ↑ يمكن إصدار أنبوب MAD وأنبوب SFU بشكل مزدوج
- ↑ لا يمكن لأكثر من مُجدوِل واحد إصدار تعليمتين في وقت واحد. المُجدوِل الأول مسؤول عن مجموعات الالتفاف ذات المعرّفات الفردية، بينما المُجدوِل الثاني مسؤول عن مجموعات الالتفاف ذات المعرّفات الزوجية.
- 1 2 3 4 5 6 الذاكرة المشتركة منفصلة، لكن L1 يتضمن ذاكرة تخزين مؤقتة للنسيج
- ↑ "H.6.1. البنية" . docs.nvidia.com . تم الاطلاع عليه بتاريخ 13-05-2019 .
- ↑ وونغ، هنري؛ بابادوبولو، ميسيل-ميرتو؛ سادوغي-ألفاندي، مريم؛ موشوفوس، أندرياس (مارس 2010). تبسيط بنية المعالجات الرسومية الدقيقة من خلال القياس المعياري الدقيق (ملف PDF) . ندوة IEEE الدولية لتحليل أداء الأنظمة والبرمجيات (ISPASS) لعام 2010. وايت بلينز، نيويورك، الولايات المتحدة الأمريكية: جمعية IEEE للحاسبات. doi : 10.1109/ISPASS.2010.5452013 . ISBN 978-1-4244-6023-6.
- 1 2 جيا، زهي؛ ماجيوني، ماركو؛ ستيجر، بنيامين. سكاربازا، دانييلي ب. (2018). “تشريح بنية NVIDIA Volta GPU عبر Microbenchmarking”. أرخايف : 1804.06826 [ cs.DC ].
- ^ جيا زهي. ماجيوني، ماركو؛ سميث، جيفري. دانييلي باولو سكاربازا (2019). “تشريح وحدة معالجة الرسومات NVidia Turing T4 عبر Microbenchmarking”. أرخايف : 1903.07486 [ cs.DC ].
- ↑ فان ساندت، بيتر؛ جيا، تشي (أبريل 2021). "تشريح بنية معالج الرسوميات أمبير من خلال القياسات الدقيقة" . nvidia.com .
- ↑ لاحظ أن جيا زهي؛ ماجيوني، ماركو؛ سميث، جيفري. دانييلي باولو سكاربازا (2019). “تشريح وحدة معالجة الرسومات NVidia Turing T4 عبر Microbenchmarking”. أرخايف : 1903.07486 [ cs.DC ].ويخالف هذا الرأي ويذكر أن ذاكرة التخزين المؤقت للتعليمات من المستوى L0 تبلغ 2 كيلوبايت لكل قسم من أقسام SM، وذاكرة التخزين المؤقت للتعليمات من المستوى L1 تبلغ 16 كيلوبايت لكل قسم من أقسام SM.
- ↑ "asfermi Opcode" . GitHub .
- 1 2 للوصول باستخدام محرك النسيج فقط
- ↑ تم تعطيل 25% على بطاقات RTX 4060 و RTX 4070 و RTX 4070 Ti و RTX 4090
- تم تعطيل ↑ بنسبة 25% على RTX 5070 Ti و RTX 5090
- ↑ "دليل برمجة CUDA C++، إمكانيات الحوسبة" . docs.nvidia.com . تم الاطلاع عليه بتاريخ 2025-02-06 .
- ↑ "معلوماتية حيوية باستخدام nVidia CUDA: BarraCUDA" . BioCentric . 19-07-2019 . تم الاطلاع عليه بتاريخ 15-10-2019 .
- ↑ "الجزء الخامس: محاكاة الفيزياء" . مطورو NVIDIA . تم الاطلاع عليه بتاريخ 11 سبتمبر 2020 .
- ↑ "نموذج برمجة oneAPI" . oneAPI.io . تم الاطلاع عليه بتاريخ 27-07-2024 .
- ↑ "المواصفات | oneAPI" . oneAPI.io . تم الاطلاع عليه بتاريخ 27-07-2024 .
- ↑ "مواصفات oneAPI - وثائق مواصفات oneAPI 1.3-rev-1" . oneapi-spec.uxlfoundation.org . تم الاطلاع عليه بتاريخ 27-07-2024 .
- ↑ تشيرني، ماكس أ.؛ تشيرني، ماكس أ. (26 مارس 2024). "حصري: وراء مؤامرة كسر سيطرة إنفيديا على الذكاء الاصطناعي من خلال استهداف البرمجيات" . رويترز . تم الاسترجاع في 5 أبريل 2024 .
- ↑ "سؤال: ما هو اختصار ROCm؟ · العدد 1628 · RadeonOpenCompute/ROCm" . Github.com . تم الاطلاع عليه في 18 يناير 2022 .
للمزيد من القراءة
- باك، إيان؛ فولي، تيم؛ هورن، دانيال؛ سوغرمان، جيريمي؛ فتاحاليان، كيفون؛ هيوستن، مايك؛ هانراهان، بات (1 أغسطس 2004). "بروك لوحدات معالجة الرسومات: الحوسبة المتدفقة على أجهزة الرسومات" . معاملات ACM في الرسومات . 23 (3): 777-786 . doi : 10.1145/1015706.1015800 . ISSN 0730-0301 .
- نيكولز، جون؛ باك، إيان؛ جارلاند، مايكل؛ سكادرون، كيفن (1 مارس 2008). "البرمجة المتوازية القابلة للتوسع باستخدام CUDA: هل CUDA هي نموذج البرمجة المتوازية الذي طال انتظاره من قِبل مطوري التطبيقات؟" . مجلة ACM Queue . 6 (2): 40-53 . doi : 10.1145/1365490.1365500 . ISSN 1542-7730 .
روابط خارجية
- محركات الفيزياء الحاسوبية
- GPGPU
- مكتبات GPGPU
- أجهزة الرسومات
- برنامج Nvidia
- الحوسبة المتوازية
- بطاقات الرسومات
- أجهزة ألعاب الفيديو
- لغات البرمجة التي تم إنشاؤها في عام 2007
