كيفية قياس عامل cholesky على وحدات معالجة الرسومات المتعددة

StackOverflow https://stackoverflow.com/questions/1397804

سؤال

لقد قمت بتطبيق عامل cholesky لحل المعادلة الخطية الكبيرة على GPU باستخدام ATI Stream SDK. الآن أريد استغلال طاقة الحساب لمزيد من وحدات معالجة الرسومات وأريد تشغيل هذا الرمز على وحدات معالجة الرسومات المتعددة.

حاليًا لدي جهاز واحد و GPU واحدة مثبتة على ذلك ، ويعمل عامل cholesky بشكل صحيح. أريد أن أفعل ذلك من أجل آلة N وجميعها تم تثبيتها عليها. لذلك اقترح لي كيف يجب أن أتابع.

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

المحلول

أولاً ، عليك أن تدرك أن هذا النهج سيقدم ثلاثة مستويات من الكمون لأي اتصال بين العقد:

  1. ذاكرة GPU على الجهاز 1 إلى الذاكرة الرئيسية على الجهاز 1
  2. الذاكرة الرئيسية على الجهاز 1 للذاكرة الرئيسية على الجهاز 2
  3. الذاكرة الرئيسية على الجهاز 2 إلى ذاكرة GPU على الجهاز 2

تتمثل الخطوة الأولى الجيدة في القيام ببعض حسابات الغلاف لتحديد ما إذا كانت السرعة التي تكسبها عن طريق تقسيم المشكلة بين الأجهزة المتعددة ستتفوق على الكمون الذي تقدمه.

بمجرد أن تكون متأكدًا من أن النهج هو النهج الذي تريد متابعته ، فإن الأمر متروك لك إلى حد كبير لتنفيذ هذا بشكل صحيح. لاحظ أنه في الوقت الحالي ، ستكون مكتبات NVIDIA CUDA أو OpenCL خيارات أفضل لك لأنها تسمح لك بالوصول إلى وحدة معالجة الرسومات للحساب دون أن تقترن بجلسة X. بمجرد أن يدعم تطبيق ATI OpenCL وحدة معالجة الرسومات ، يجب أن يكون هذا أيضًا خيارًا قابلاً للتطبيق.

نظرًا لأن لديك بالفعل تنفيذ وحدة معالجة الرسومات العاملة ، فإليك الخطوات الأساسية التي يجب اتباعها:

  • حدد كيفية تحديث خوارزمية تحديد العوامل الخاصة بك لدعم المعالجة عن طريق العقد المنفصلة
  • قم بإعداد تبادل البيانات بين أجهزة الكمبيوتر N (لاحظت أنك اخترت MPI لهذا الغرض)
  • قم بإعداد عملية الانتثار التي ستقسم مشكلة الإدخال بين العقد الحسابية
  • قم بإعداد تبادل البيانات بين الجهاز و GPU
  • قم بإعداد عملية التجمع التي ستجمع النتائج من العقد في العقدة الواحدة

نصائح أخرى

إنه سؤال متخصص للغاية. اقترح عليك التحقق من دفق موارد المطورين و ال منتديات مطور الدفق.

لقد عرضت هذا Q على زميل لي يعرف عن هذه الأشياء. اقترح أن تستخدم scalapack.

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