ما طرق الرياضيات المنفذة في أجهزة FPU مع .NET؟

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

  •  19-09-2019
  •  | 
  •  

سؤال

هل يعرف أحد أساليب الرياضيات عن طريق أجهزة المعالج ل .NET؟ على سبيل المثال، لدي خوارزمية تجعل الكثير من استخدام Atan. يمكنني بسهولة كتابة جدول بحث لهذا لهذا، ولكن إذا كانت Math.net تنفذ هذا باستخدام FPU أو ملحقات الأجهزة الأخرى، فلن يستحق كل هذا العناء.

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

المحلول

سواء تم تنفيذ الأساليب في استخدام إرشادات الأجهزة X87 هي المشكلة، لأن إرشادات لوظيفة Transcendental الأجهزة بطيئة.

"Intel 64 و IA-32 - دليل المراجع الأمثل" (تنزيل هنا) قوائم fpatan كما وجود زمنانية 150-300 دورة في الأجهزة الأخيرة. يمكن لتنفيذ برامج مكتوبة جيدا تقديم نتيجة بدقة مزدوجة بدقة كاملة في وقت أقل بكثير - في الواقع ومكتبات الرياضيات عالية الجودة تفعل ذلك.

نصائح أخرى

لماذا لا تقترب فقط مقاربة جدول البحث عن Atan () المقدمة مع .NET. ثم ستكون قادرا على معرفة مقدار اختلاف السرعة باستخدام جدول البحث يجعله حقا.

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

وفقا لهذه المدونة، محمول Microsoft JIT يفعل الاستفادة من تعليمات FPU على منصة X86:

http://blogs.msdn.com/davidnotario/archive/2004/10/26/247792.aspx.

إنه شيء ابتدائي للغاية للقيام به، نظرا لأن FPUs كانت معيارا على وحدة المعالجة المركزية X86 لأكثر من عقد من الزمان الآن.

مع تطبيق معيار صغير، يبدو أنه حتى لو تم استخدام FPU، فإن أداء Math.atan2 ليس جيدا كدالة تقريبية بديلة.

في معياري البسيط، تستغرق حلقة الرياضيات 8 ثوان، في حين أن الإصدار التقريبي يستغرق 5.5 ثانية.

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