سؤال

انتهيت بالفعل من طلبي الذي يضاعف مصفوفة CRS و Vector (SPMV) والشيء الوحيد الذي يجب القيام به الآن هو حساب التقلب الذي فعله طلبي. في رأيي ، من الصعب حقًا تقدير عدد عمليات النقطة العائمة في حالة المصفوفة المتفرقة - تكاثر المتجه ، لأن عدد مضاعفات في صف واحد "صريح" أو بطلاقة.

لقد حاولت فقط قياس الوقت باستخدام "Cudaprof" (متوفر في ./cuda/bin دليل) - إنه يعمل بشكل جيد.

أي Sugestions ومعجون التعليمات موضع تقدير!

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

المحلول

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

ربما يكون هذا أحد أنواع المواقف التي يمكنك التفكير فيها بجد لعدة ساعات (والقيام بالكثير من الأبحاث) لتقديم تقدير دقيق ، أو يمكنك قضاء بضع دقائق في كتابة متغير من تطبيقك الحالي الذي يزيد عداد في كل مرة تقوم فيها بعملية. بالتأكيد ، سيستغرق الأمر بعض الوقت للتشغيل (خاصة إذا لم تفعل ذلك في شكل يدعم CUDA) ، ولكن ربما يكون وقتًا أقل بكثير مما يتطلبه الأمر للقيام بالتفكير ، وعندما يخرج الإجابة ، ليس عليك القيام بالكثير من العمل لإقناع نفسك بأن هذا صحيح.

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