سؤال

أقوم بالتحقيق في طرق استخدام GPU من أجل معالجة بيانات الدفق. كان لدي خياران ولكن لم أستطع تحديد أي طريقة للذهاب؟

المعيار الخاص بي على النحو التالي:

  1. سهولة الاستخدام (API جيد)
  2. المجتمع والوثائق
  3. أداء
  4. مستقبل

سوف رمز في C و C ++ ضمن Linux.

هل كانت مفيدة؟

المحلول

opencl

  • تم ربطه من رمز الإنتاج الخاص بك
  • محمول بين أجهزة الرسومات المختلفة
  • عمليات محدودة ولكن اختصارات مرفوعة مسبقا

كودا

  • لغة منفصلة (كودا ج)
  • NVIDIA الأجهزة فقط
  • تحكم كامل تقريبًا على الكود (الترميز بلغة تشبه C)
  • الكثير من أدوات التنميط والتصحيح

خلاصة القول - opencl محمول ، كودا هو nvidia فقط. ومع ذلك ، كونها لغة مستقلة ، فإن CUDA أكثر قوة ولديه مجموعة من الأدوات الجيدة حقًا.

  1. سهولة الاستعمال - OpenCl أسهل في الاستخدام خارج المربع ، ولكن بمجرد إعداد بيئة ترميز CUDA ، يشبه الترميز تقريبًا في C.
  2. المجتمع والوثائق - كلاهما لديهما وثائق وأمثلة واسعة ، لكنني أعتقد أن كودا أفضل.
  3. أداء -CUDA يسمح بمزيد من التحكم ، وبالتالي يمكن أن تكون أفضل لضبط الأداء العالي.
  4. مستقبل - من الصعب أن أقول حقا.

نصائح أخرى

كانت تجاربي الشخصية:

  1. API: OPENCL لديه واجهة برمجة تطبيقات أكثر تعقيدًا قليلاً. ومع ذلك ، فإن معظم الوقت ستقضيه في كتابة رمز kernel ، وهنا متطابقان تقريبًا.

  2. المجتمع: CUDA لديه مجتمع أكبر بكثير ثم opencl حتى الآن ، ولكن هذا ربما على وشك الخروج.

  3. الوثائق: كلاهما موثق جيدًا.

  4. الأداء: لقد جعلنا التجربة ، أن برامج تشغيل OpenCL لم يتم تحسينها بالكامل بعد.

  5. المستقبل: يكمن المستقبل في OpenCl لأنه معيار مفتوح ، لا يقتصر على بائع أو أجهزة محددة!

هذا التقييم هو من عام 2010 ، لذلك ربما يميز.

OpenCl على طول الطريق ما لم يكن لديك سبب محدد لاستخدام CUDA. يعمل OpenCl جيدًا على متعددة مثل Intel i7 بالإضافة إلى تشغيل وحدات معالجة الرسومات. باستخدام OpenCL ، يمكنك تشغيله على مجموعة واسعة من الأجهزة من الهواتف المحمولة الروبوت إلى عقد حساب IBM Power7 لأكبر الحاسبات الخارقة في العالم ، المياه الزرقاء, ، الذي من المفترض أن يأتي عبر الإنترنت في العام المقبل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top