كم عدد دورات زمن انتقال الذاكرة لكل نوع وصول للذاكرة في OpenCl/CUDA؟

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

سؤال

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

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

الذاكرة المشتركة هي نفس السجلات طالما لا توجد صراعات بنكية؟ إذا كان هناك إذن كيف يتكشف الكمون؟

ماذا عن ذاكرة التخزين المؤقت الملمس؟

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

المحلول

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

السبب في أن الأدلة تتحدث عن زمن الوصول إلى الذاكرة العالمية هو أن زمن الوصول هو أوامر من حيث الحجم أعلى من الذكريات الأخرى ، مما يعني أن الكمون السائد الذي يجب مراعاته للتحسين.

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

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

نصائح أخرى

بالنسبة إلى (Kepler) Tesla K20 ، فإن الكمون على النحو التالي:

الذاكرة العالمية: 440 ساعة
ذاكرة ثابتة
L1: 48 ساعة
L2: 120 ساعة
الذاكرة المشتركة: 48 ساعة
ذاكرة الملمس
L1: 108 ساعات
L2: 240 ساعة

كيف أعرف؟ ركضت علامات Microbenchs التي وصفها مؤلفو إزالة الغموض عن GPU microarchitical. أنها توفر نتائج مماثلة لـ GTX 280 الأقدم.

تم قياس هذا على مجموعة Linux ، لم يتم استخدام عقدة الحوسبة حيث كنت أقوم بتشغيل المعايير من قبل أي مستخدمين آخرين أو تشغيل أي عمليات أخرى. إنه Bullx Linux مع زوج من 8 Core Xeons و 64 GB RAM ، NVCC 6.5.12. لقد غيرت sm_20 إلى sm_35 لتجميع.

هناك أيضا تكلفة المعاملات الفصل في PTX ISA على الرغم من أنه ليس مفيدًا للغاية ، إلا أنه يكرر فقط ما تتوقعه بالفعل ، دون إعطاء أرقام دقيقة.

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