سؤال

أنا حاليا تنفيذ raytracer.منذ تون للغاية حساب الثقيلة منذ وانا ذاهب الى أن تبحث في برمجة CUDA على أي حال, أنا أتساءل عما إذا كان أي شخص لديه أي خبرة مع الجمع بين الاثنين.لا أستطيع أن أقول حقا إذا كانت النماذج الحسابية مباراة أود أن أعرف ما يمكن توقعه.لدي انطباع أنه ليس مباراة في السماء, ولكن سرعة لائقة increasy سيكون أفضل من لا شيء.

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

المحلول

شيء واحد أن تكون حذرا جدا في CUDA هو أن متباينة التحكم في التدفق في النواة البرمجية يقتل الاطلاق الأداء ، نظرا للبنية الأساسية الأجهزة GPU.وحدات معالجة الرسومات عادة على نطاق واسع بيانات موازية أعباء العمل مع درجة عالية متماسكة التحكم في التدفق (أيلديك بضعة ملايين بكسل ، كل منها (أو على الأقل مساحات كبيرة منها) سيتم تشغيلها من قبل بالضبط نفس تظليل البرنامج ، حتى أخذ نفس الاتجاه من خلال جميع الفروع.وهذا يتيح لهم جعل بعض الأجهزة التحسينات مثل وجود تعليمة واحدة ذاكرة التخزين المؤقت, جلب وحدة فك المنطق لكل مجموعة من 32 المواضيع.في الحالة المثالية ، وهو أمر شائع في الرسومات ، يتمكنوا من بث نفس التعليمات لجميع 32 مجموعات من وحدات التنفيذ في نفس دورة (هذا هو المعروف SIMD واحدة أو تعليمات متعددة البيانات).أنها يمكن أن محاكاة MIMD (متعددة-تعليمات) وSPMD (واحد) ، ولكن عندما المواضيع في تدفق متعدد المعالجات (SM) تتباعد (تأخذ رمز مختلف المسارات من فرع) مسألة المنطق في الواقع التبديل بين كل مسار رمز على دورة تلو دورة الأساس.يمكنك أن تتخيل أنه في أسوأ الأحوال ، حيث كل المواضيع على مسارات منفصلة ، الجهاز استخدام فقط ذهبت إلى أسفل بمقدار 32, بشكل فعال في قتل أي فائدة كنت قد يعمل على GPU أكثر من وحدة المعالجة المركزية, ولا سيما بالنظر إلى النفقات العامة المرتبطة بتعبئة البيانات من وحدة المعالجة المركزية على PCIe ، GPU.

وقال ray-tracing, في حين أن بيانات موازية في بعض المعنى على نطاق واسع متباينة التحكم في التدفق حتى متواضعة المشاهد المعقدة.حتى إذا كنت تدير خريطة مجموعة من بإحكام متباعدة الأشعة التي يلقي بها بجوار بعضها البعض على نفس SM البيانات و التعليمات محلة لديك الأولي ترتد لن تصمد لفترة طويلة جدا.على سبيل المثال, تخيل كل 32 عالية متماسكة أشعة كذاب قبالة المجال.أنها سوف تذهب في اتجاهات مختلفة إلى حد ما بعد هذا الارتداد ، وربما ضرب كائنات مصنوعة من مواد مختلفة ، مع ظروف الإضاءة المختلفة ، وهكذا دواليك.كل المواد و مجموعة من الإضاءة, انسداد, الخ.الشروط الخاصة التعليمات تيار المرتبطة به (لحساب الانكسار, انعكاس, امتصاص, الخ) ، وهكذا يصبح من الصعب جدا لتشغيل نفس التعليمات تيار على جزء كبير من المواضيع في SM.هذه المشكلة مع الدولة من الفن في راي تتبع الكود يقلل من GPU استخدام عامل 16-32 ، الأمر الذي قد يجعل أداء غير مقبول للتطبيق الخاص بك, لا سيما إذا كان في الوقت الحقيقي (على سبيل المثاللعبة).فإنه لا يزال قد تكون متفوقة على وحدة المعالجة المركزية على سبيل المثالمزرعة تجعل.

هناك فئة الناشئة من MIMD أو SPMD مسرعات يجري النظر الآن في المجتمع البحثي.أود أن ننظر في هذه المنطقي منصات البرمجيات في الوقت الحقيقي تون.

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

نصائح أخرى

فإنه يمكن بالتأكيد أن يتم ، تم القيام به ، و هو موضوع ساخن في الوقت الراهن بين تون و Cuda معلمو.إنني في البداية يلاحقونهم http://www.nvidia.com/object/cuda_home.html

لكنه في الأساس مشكلة البحث.الناس الذين يفعلون ذلك أيضا على استعراض الأقران البحوث من ذلك.ولكن حسنا في هذه المرحلة لا يزال يعني أن أفضل GPU/Cuda النتائج تقريبا تنافسية مع أفضل الحلول على وحدة المعالجة المركزية/multi-core/SSE.لذلك أعتقد أنه من المبكر أن نفترض أن استخدام Cuda هو الذهاب إلى تسريع التتبع راي.المشكلة هي أنه على الرغم من راي اقتفاء الأثر هو "محرج موازية" (كما يقولون) ، ليس هذا هو نوع من "ثابت المدخلات والمخرجات حجم" المشكلة أن الخرائط بشكل مباشر على وحدات معالجة الرسومات -- تريد الأشجار, مداخن, ديناميكية هياكل البيانات ، إلخ.ويمكن أن يتم ذلك مع Cuda/GPU, لكنه صعب.

سؤالك لم يكن واضح عن مستوى الخبرة الخاصة بك أو أهداف المشروع الخاص بك.إذا كان هذا هو أول التتبع راي و أنت تحاول أن تتعلم ، وأود أن تجنب Cuda -- سيستغرق 10 مرات أطول لتطوير وربما لن تحصل على سرعة جيدة.إذا أنت شهدت معتدلة Cuda مبرمج و تبحث عن تحدي المشروع راي اقتفاء الأثر هو مجرد متعة ما تعلم, بكل الوسائل, تحاول أن تفعل ذلك في Cuda.إذا كنت صنع التجارية التطبيق كنت تبحث للحصول على تنافسية سرعة الحافة -- حسنا ، ربما حماقة تبادل لاطلاق النار في هذه النقطة...قد تحصل على أداء الحافة ، ولكن على حساب أكثر صعوبة التطوير و الاعتماد على أجهزة معينة.

التحقق مرة أخرى في السنة ، قد تكون الإجابة مختلفة بعد جيل آخر أو اثنين من سرعة GPU, Cuda مترجم التنمية والبحوث تجربة المجتمع.

Nvidia تجريبي رائد راي التتبع في CUDA في مؤتمر NVision هذا العام.هنا هو ارتباط إلى الشرائح عن ذلك.

http://www.nvidia.com/object/nvision08-IRT.html

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