نتائج برنامج CUDA هي دائمًا صفر في HW ، صحيحة في الاتحاد الأوروبي؟

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

  •  04-10-2019
  •  | 
  •  

سؤال

أواجه مشكلة غريبة .. لقد كتبت رمز CUDA الذي ينفذ بشكل صحيح في المحاكاة وجميع النتائج تظهر .. ومع ذلك ، عند تنفيذها على الأجهزة "G210" .. النتائج في ذاكرة النتيجة دائمًا 0

أقوم بتمرير متجهين إلى kernel ، أحدهما ذو متغيرات عشوائية ، والآخر تهيئة إلى الصفر ، ويقوم الكود بنسخ المتجه الأول إلى الذاكرة المشتركة ، ويقوم ببعض عمليات التبادل والعمليات الأخرى ثم يكتب النتائج على المتجه الثاني (واحد مع واحد أول 0)

أنا أستخدم دقة مزدوجة ، يتم استخدام علامة -Arch SM13 ، وتستخدم جميع تخصيص الذاكرة أيضًا SizeOF (مزدوج) ..

لقد راجعت ما إذا كانت النواة قد تم استدعاؤها ، فهي تفعل .. لذلك لا توجد مشاكل هنا .. لا يوجد لدى cudamemcpy أي مشاكل ..

ما الذي يمكن أن يكون المشكلة .. :( لماذا ستعمل في المحاكاة ولكن ليس على HW

أنا مرتبك تمامًا .. أي أفكار؟

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

المحلول

إذا كنت أتذكر بشكل صحيح ، فإن GeForce 210 لا يدعم القدرة على حساب 1.3 ، أي أنه لا يدعم الزوجي.

حاول إعادة كتابة التعليمات البرمجية الخاصة بك لاستخدام الفردي ، وتجميعها مع -arch = sm_12.

نصائح أخرى

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

تستخدم المحاكاة برنامج التحويل البرمجي مختلف ، وكل الذاكرة موجودة على المضيف ، وخيط واحد فقط يعمل ، وما إلى ذلك. إذا وجدت خطأ في مضاهاة ، فقد وجدت خطأ في الكود الخاص بك. إذا كان يعمل في المحاكاة ، فهذا لا يعني أنه ليس لديك أخطاء. سؤالك هو في الأساس ، لدي رمز عربات التي تجرها الدواب ، ما هو خطأ بلدي؟

النصيحة: تحقق من قيم الإرجاع لكل شيء. تعلم كيفية القيام بفحص الخطأ. أدرك أن الأخطاء على الجهاز يمكن أن تظهر بشكل غير متزامن فيما يتعلق برمز وحدة المعالجة المركزية. استخدم مصحح الأخطاء (ربما شراء وحدة معالجة الرسومات NVIDIA منخفضة الطرف لتسهيل ذلك). جرب Cuprintf إذا كنت تفضل printf لتصحيح الأخطاء (متوفرة في منتديات CUDA). اطلب المساعدة في منتديات Nvidia Cuda.

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