رد: NVIDIA تصدر Driver لل OpenCL خاص بالمطورين
أخي الخلف
أولاً : بارك الله فيك على علمك الواسع وعلى ترتيبك النقاط بشكل رائع
ثانياً : أحب أن أخبرك أن كل ما ذكرته أعرفه جيداً وأن الذي أظهر انني ربما أكون لم أفهم الأمر جيداً هو استخدامي لفظي Phyisics و PhysX
دائماً أحب أن أفرق بين كلاهما
فبالنسبة لي :
Physics (وأعني بها هنا GPU Physics أي التسريع الفيزيائي الرسومي للألعاب وليست الفيزياء في المطلق) : هي التكنولوجيا نفسها أي الحركات الفيزيائية في الألعاب من انفجارات وغيره وهي التي تعتمد على واجهات مفتوحة المصدر أو حتى تأتي ضمن برمجة اللعبة مثل Farcry 2 أو Crysis
PhysX : وأعني بها ما حولت Nvidia ال Physics اليه وهي عمليات التسريع الفيزيائية التي تعمل على كروتها فقط ببرنامج CUDA فقط
من وجهة نظري ال PhysX شيء مغلق على إنفيديا فقط بال CUDA وإذا تحول الى ال OpenCL فلن يكون اسمه وقتها PhysX (بالنسبة لي) بل سيكون GPU Physics
رد: NVIDIA تصدر Driver لل OpenCL خاص بالمطورين
اقتباس:
المشاركة الأصلية كتبت بواسطة Hitman.1stGame
هل معنى كلامك ان الفيزيائة سابقاً كانت تقوم على تعليمات جاهزة ومحددة في أحداث معينة فقط ..
ألا ينطبق نفس الكلام على GPU Physics ..ام انها الآن تعني Real Time Physics
نعم، كان يتم تحديد الحركات الفيزيائية بأمور معينة فقط وبسيطة، كما لايتم زيادتها عن عدد معين، فمثلاً في كومة صناديق كان يتم فقط التأثير على بضع صناديق فقط وليس جميعها، نظراً لأن كل صندوق يحتاج لخط معالجة وحسابات خاص به ناهيك عن أنه كلما زاد عدد الصناديق كلما زادت إمكانية أن تختلف حركة كل صندوق نظراً لتأثره بحركة الصناديق الأخرى، فزيادة الصناديق والأجسام تؤدي إلى زيادة أكبر من المضاعفة في قوة الحوسبة اللازمة...
حتى مع الـ GPU Physics ما فعلوه هو زيادة التأثيرات ونطاق الفيزياء وليس فتح كامل تقنيات الفيزيائية لأن فتحها ستحتاج إلى ساعات عديدة حتى مع أسرع الـ GPU's، فما تم فعله هو زيادة عدد التأثيرات خصوصاً التي يمكن للشخص رؤيتها...
اقتباس:
المشاركة الأصلية كتبت بواسطة Hitman.1stGame
أعتقد ان سبب انخفاض الأداء في اللعب بسبب ان الـ PhysX غير داعم للـPhysics عبر ال CPU ..والي يحدث داخل اللعبة عند وجود تعليمات خاصة بالـ PhysX أن محرك اللعبة يقوم بمحاكاتها عبر ال CPU وليس تحويلها لتعمل عليها ...
هذا الشي يمكن ملاحظته عند تفعيل الPhysX في Mirror Edge حيث انخفاض الإطارات يكون كبيراً جداً حتى في حال حدوث عمليات فيزيائية بسيطة في اللعبة ...قد تكون موجودة في المحركات الفيزيائية المعتمدة على ال CPU فقط مثل محرك Havoc
لعبة StranglHold ..
خطأ كبير يقع فيه الكثيرون هنا بالقول أن الـ PhysX لايدعم التسريع عبر الـ CPU، بل هو يدعم وإلا لما عملت الألعاب تماماً، فخارطة Tornado يمكن للجميع تشغيلها ولكنها تصبح بطيئة جداً في حال عدم وجود تسريع عتادي، السبب كما ذكرت أن معالجة الحسابات الفيزيائية ستستهلك طاقة المعالج مما يجعله غير قادر على تلبية حاجة اللعبة نفسها، سيشبه الأمر حينها تركيب معالج Pentium 4 بتردد 1.5 جيجا للعبة متطلبة مثل Crysis ، بسبب أن معالجة الفيزيائية ستستهلك أغلب طاقة المعالج نفسه تاركة النزر اليسير لباقي متطلبات اللعبة...
شركات التطوير تتجه لواجهات برمجية مثل PhysX لتخفيف العبء على تطوير محركها الفيزيائي الخاص، فمن الأفضل لها الحصول على ترخيص محرك فيزيائي آخر بدلاً من تطوير المحرك الخاص بها...
ومن شروط تلك الشركات أن يكون المحرك الفيزيائي مرناً بشكل يجعل بالإمكان اختيار مستوى التعقيد في الدقة الفيزيائية...
محرك PhysX يتيح ذلك شأنه شأن كل المحركات الفيزيائية، ولكن ما جعله منتشر هو أنه بالإمكان زيادة التفاصيل الفيزيائية بشكل أكبر عند استخدام تسريع عتادي للفيزيائية أي في GPU Accelerated Physics...
ضمن خيارات ألعاب الـ PhysX هناك خيار مثل Enable Hardware Phyics، هذا الخيار يقوم بزيادة التفاصيل الفيزيائية، يستخدم هذا الخيار من يمتلك تسريع فيزيائي عتادي سواء كان بـ Ageia Card أو بالـ GeForce Card
... عدم تفعيل ذلك الخيار سيخفض التفاصيل الفيزيائية بشكل معالج النظام قادر على إجراء حسابات الفيزياء وإعطاء اللعبة حقها بشكل عادي، أي مثل حالة تركيب اللعبة على جهاز لا يتضمن بطاقة GeForce مثلاً
وهناك نقطة أخرى، المعالجة الفيزيائية تستهلك من قدرة المسرع الرسومي أيضاً، فإن كان لديك مسرع رسومي من الفئة الدّنيا لنقل GeForce 8400GS مع 256 ميجا من الذاكرة وهو الحد الأدنى لتشغيل الـ CUDA ( وبالتالي الـ GPU Accelerated PhysX ) فإنه على الرغم من أنك ستستطيع تشغيل لعبة مثل UT3 أو ME مع التفاصيل الفيزيائية، إلا أن قوة المعالج الرسومي نفسها بالكاد تكفي لتشغيل اللعبة بتفاصيلها الرسومية، وتأتي الحسابات الفيزيائية لتزيد الأمر سوءاً أيضاً...
فتتكرر حالة ضغط الفيزياء على المعالج العادي ولكن مع المعالج الرسومي، فبدلاً من أن تحصل على أداء أعلى ستجد نفسك تحصل على أداء أقل...
من يملكون بطاقات GeForce يعرفون ذلك، فتفعيل أو تعطيل الـ PhysX من لوحة التحكم يؤدي إلى تخصيص جزء من طاقة المعالج الرسومي لمعالجة الفيزياء حتى لو لم تكن تشغّل الفيزياء أساساً ( كعدم وجود لعبة ) ويلاحظ مستخدمي بطاقات GeForce ذلك في مختلف أنواع الألعاب وحتى تطبيقات CUDA مثل تحويل الفيديو والـ Folding، فبمجرد تفعيل الـ PhysX فإن أداء المسرع الرسومي يقلّ، وسرعة الـ Folding مثلاً تقل إذا كان الـ PhysX مفعلاً رغم أنك لا تُشغّل أي شيء... وإن شغلت لعبة لا تستخدم محرك PhysX ( مثل NFS التي تستخدم محركها الخاص أو Half-Life التي تستخدم محرك Havok ) فإن مجرد تفعيل PhysX من لوحة تحكم nVIDIA يؤدي إلى تخفيض الأداء... فتعطيل الـ PhysX يمكن اللعبة من استخدام كامل قوة المعالج الرسوميّة...
رد: NVIDIA تصدر Driver لل OpenCL خاص بالمطورين
اقتباس:
المشاركة الأصلية كتبت بواسطة HD5870X2
أخي الخلف
أولاً : بارك الله فيك على علمك الواسع وعلى ترتيبك النقاط بشكل رائع
ثانياً : أحب أن أخبرك أن كل ما ذكرته أعرفه جيداً وأن الذي أظهر انني ربما أكون لم أفهم الأمر جيداً هو استخدامي لفظي Phyisics و PhysX
دائماً أحب أن أفرق بين كلاهما
فبالنسبة لي :
Physics (وأعني بها هنا GPU Physics أي التسريع الفيزيائي الرسومي للألعاب وليست الفيزياء في المطلق) : هي التكنولوجيا نفسها أي الحركات الفيزيائية في الألعاب من انفجارات وغيره وهي التي تعتمد على واجهات مفتوحة المصدر أو حتى تأتي ضمن برمجة اللعبة مثل Farcry 2 أو Crysis
PhysX : وأعني بها ما حولت Nvidia ال Physics اليه وهي عمليات التسريع الفيزيائية التي تعمل على كروتها فقط ببرنامج CUDA فقط
من وجهة نظري ال PhysX شيء مغلق على إنفيديا فقط بال CUDA وإذا تحول الى ال OpenCL فلن يكون اسمه وقتها PhysX (بالنسبة لي) بل سيكون GPU Physics
الـ PhysX هو الاسم التجاري لمحرك الفيزيائي الذي تستخدمه nVIDIA ( وطورته Ageia )، وسواء كان على الـ CUDA أو OpenCL فهو يحمل اسم PhysX، مثله مثل Havok لايضر كونه يعمل على OpenCL أو غيره فهو مجرد اسم تجاري
المطورين يستخدمون نفس الواجهات البرمجية API دون تغيير سواء لدى CUDA أو OpenCL فهذا ما يميز الواجهة البرمجية أنها تعمل بغض النظر عن طريقة حديثها مع العتاد
مثل الـ Direct 3D حيث يستخدم المطورين نفس التعليمات والأوامر ثم يتصرف الـ Direct 3D لوحده فهو بعد ذلك يهتم ببرامج القيادة ونوع المسرع الرسومي، وإلا فأمر رسم مكعب أو إلصاق مواد هو ذاته ذاته لا يتغيّر...
نعم بعض الأمور تختلف نتيجة اختلاف المسرعات ( مثل الـ AA ) ولكن في واجهة مثل PhysX الأمر لا يتغير لأن المحرك الفيزيائي يسعى لضمان التوافق قدر المستطاع
مثلاً عندما طُوّرت لعبة UT3 كانت تستخدم محرك Ageia وواجهة Ageia API، ولكن عندما قامت nVIDIA بشراء الشركة وحوّلت الـ PhysX ليستخدم CUDA لم يتغير شيء في اللعبة، كل ما تحتاجه هو تنزيل برامج قيادة الـ PhysX الأحدث وربما تحديث الـ UT3 لأنها كانت تبحث عن برنامج قيادة Ageia والذي لم يعد لازماً الآن...
أما داخل اللعبة وكل فيزيائياتها فهي ذات الأوامر وذات التأثيرات... فلعبة UT3 وجميع خرائط الـ PhysX الأولى لها تم تطويرها قبل شراء nVIDIA لـ Ageia ولكن كلها تعمل الآن بشكل عادي...
بخصوص تسميتك، فالأفضل حتى لايتيه المستخدمين الآخرين والقراء تسميتها باسم صحيح وهو المحرك الفيزيائي أو Physics Engine
فالأمر سبب ربكة كبيرة حتى قال الكثيرون في المنتدى أن الـ ATi لا تدعم الفيزيائية لأنهم لم يكونوا يعلمون ما هي الفيزيائية أساساً واختلط عليهم الـ PhysX بالـ Physics...
رد: NVIDIA تصدر Driver لل OpenCL خاص بالمطورين
تسلم عزيز ..
وشكرا ( لموسوعة المنتدى ) الأخ الخلف على المعلومات والإضافات القيمة .
رد: NVIDIA تصدر Driver لل OpenCL خاص بالمطورين
اقتباس:
المشاركة الأصلية كتبت بواسطة HD5870X2
ثانياً : أحب أن أخبرك أن كل ما ذكرته أعرفه جيداً وأن الذي أظهر انني ربما أكون لم أفهم الأمر جيداً هو استخدامي لفظي Phyisics و PhysX
أخي مينا إن كنت تعرف كل ما قام الأخ الخلف بشرحه فقد تأكد لي أنك لا تعبر عن الامر جيداً كما قلت في أول رد لي في هذا الموضوع و ياريت جميع الأعضاء يبدؤن بتسمية الأمور بمسمياتها أو بأسماء دلالية و توضيحية أكثر لتجنب إيقاع غيرهم من الأعضاء ممن لا فكرة لديهم في الخطأ
اقتباس:
المشاركة الأصلية كتبت بواسطة HD5870X2
Physics (وأعني بها هنا GPU Physics أي التسريع الفيزيائي الرسومي للألعاب وليست الفيزياء في المطلق) : هي التكنولوجيا نفسها أي الحركات الفيزيائية في الألعاب من انفجارات وغيره وهي التي تعتمد على واجهات مفتوحة المصدر أو حتى تأتي ضمن برمجة اللعبة مثل Farcry 2 أو Crysis
حاول أن تناديها GPGPU فهو المصطلح الاكثر وضوح و الأقل تسبباً للتشويش أما إذا ناديتها Physics فقط فأنت تعطي إيحاء بأنك فاهم الأمر خطأ بل و تتسبب بإعطاء أفكار خاطئة لبقية الأعضاء
اقتباس:
المشاركة الأصلية كتبت بواسطة HD5870X2
PhysX : وأعني بها ما حولت Nvidia ال Physics اليه وهي عمليات التسريع الفيزيائية التي تعمل على كروتها فقط ببرنامج CUDA فقط
هل لديك إعتراض على هذا :confused: شركة قامت بشراء تقنية لإستخدامها في منتجاتها فماذا كنت تتوقع
اقتباس:
المشاركة الأصلية كتبت بواسطة HD5870X2
من وجهة نظري ال PhysX شيء مغلق على إنفيديا فقط بال CUDA وإذا تحول الى ال OpenCL فلن يكون اسمه وقتها PhysX (بالنسبة لي) بل سيكون GPU Physics
مسمار جحا, أبيع لك الدار و لا أبيع لك المسمار :rolleyes:
شكراً جزيلاً أخي الخلف على المداخلة الممتازة جداً
رد: NVIDIA تصدر Driver لل OpenCL خاص بالمطورين
شكرا اخي عزيز على الخبر الرائع وارجو ان يضيف الافضل الى عالم البرمجيات والفيجا
رد: NVIDIA تصدر Driver لل OpenCL خاص بالمطورين
اووف
واووو
waww
:ah4:
اخى الخلف
اسهرتنى الليل بدلا من النوم قارئا لهذا التوضيح الرائع
اخى مينا
ليست المصطلحات بما تهواه النفس :)
اخى عزيز
شكرا على الخبر
اقوم انام بقى واريح المعالج الفيزيائى بتاعى :D
رد: NVIDIA تصدر Driver لل OpenCL خاص بالمطورين
اقتباس:
المشاركة الأصلية كتبت بواسطة الخلف
نعم عزيزي عزيز، وتجد مقطعي الفيديو الخاصين بذلك العرض من كلا الشركتين في أول وصلتين وضعتهم في مشاركتي السابقة :)
هدفي من وضع الروابط هو قراءة تفاصيل التجربة فقط حتى نكون فكره كاملة
اقتباس:
المشاركة الأصلية كتبت بواسطة HD5870X2
هل يعني هذا دعم ال GPU Physics عبر واجهة مفتوحة المصدر تختلف عن ال CUDA PhysX ؟
وهل يعني هذا بالتالي إنتهاء ال Nvidia PhysX ؟!
:)
للأسف نفس الأخطاء تتكرر بالرغم من التنبيه أكثر من مره ولاكن يبدوا أننا نستخدم المصطلحات حسب رغبتنا وليس حسب صحتها :).
اقتباس:
المشاركة الأصلية كتبت بواسطة HD5870X2
أخي الخلف
أولاً : بارك الله فيك على علمك الواسع وعلى ترتيبك النقاط بشكل رائع
ثانياً : أحب أن أخبرك أن كل ما ذكرته أعرفه جيداً وأن الذي أظهر انني ربما أكون لم أفهم الأمر جيداً هو استخدامي لفظي Phyisics و PhysX
دائماً أحب أن أفرق بين كلاهما
فبالنسبة لي :
Physics (وأعني بها هنا GPU Physics أي التسريع الفيزيائي الرسومي للألعاب وليست الفيزياء في المطلق) : هي التكنولوجيا نفسها أي الحركات الفيزيائية في الألعاب من انفجارات وغيره وهي التي تعتمد على واجهات مفتوحة المصدر أو حتى تأتي ضمن برمجة اللعبة مثل Farcry 2 أو Crysis
PhysX : وأعني بها ما حولت Nvidia ال Physics اليه وهي عمليات التسريع الفيزيائية التي تعمل على كروتها فقط ببرنامج CUDA فقط
من وجهة نظري ال PhysX شيء مغلق على إنفيديا فقط بال CUDA وإذا تحول الى ال OpenCL فلن يكون اسمه وقتها PhysX (بالنسبة لي) بل سيكون GPU Physics
ربما سأقول لك مفاجئه لا تعلم بها وهي أن التجربة التي قامت بها Nvidia على ال OpenCL كأول تجربة على GPU أستخدمت واجهه CUDA لضم ال OpenCL : هل زادت حيرتك ياأخ مينا :).
Nvidia أستخدمت مايسمى ب CUDA architecture وهي تقنية جديده قامت بتطويرها عندما كانت تساهم في تطوير ال OpenCL مع شركة أبل , CUDA architecture هي قاعده أو واجهه للتعامل مع ال GPU يمكنها ضم تطبيقات ال OpenCL و C++ و DX11 وغيرها من التطبيقات وبالتالي يمكن دمع عده تقنيات داخلها , بحيث يحوي التطبيق تقنية CUDA في جزئيه تتفوق فيها تقنية CUDA مثلا , وأستخدام ال OpenCL في جزئية أخرى مما يعطي التطبيق قوة أكبر , وبالتالي فإن Nvidia حولت ال OpenCL إلى مكمل ل CUDA وليس منافس :) .
رد: NVIDIA تصدر Driver لل OpenCL خاص بالمطورين
اقتباس:
المشاركة الأصلية كتبت بواسطة aziz-50
ربما سأقول لك مفاجئه لا تعلم بها وهي أن التجربة التي قامت بها Nvidia على ال OpenCL كأول تجربة على GPU أستخدمت واجهه CUDA لضم ال OpenCL : هل زادت حيرتك ياأخ مينا :).
Nvidia أستخدمت مايسمى ب CUDA architecture وهي تقنية جديده قامت بتطويرها عندما كانت تساهم في تطوير ال OpenCL مع شركة أبل , CUDA architecture هي قاعده أو واجهه للتعامل مع ال GPU يمكنها ضم تطبيقات ال OpenCL و C++ و DX11 وغيرها من التطبيقات وبالتالي يمكن دمع عده تقنيات داخلها , بحيث يحوي التطبيق تقنية CUDA في جزئيه تتفوق فيها تقنية CUDA مثلا , وأستخدام ال OpenCL في جزئية أخرى مما يعطي التطبيق قوة أكبر , وبالتالي فإن Nvidia حولت ال OpenCL إلى مكمل ل CUDA وليس منافس :) .
يبدو أنك عزيزي عزيز لم تفهم القضية كما ينبغي...
الـ CUDA هو أساساً واجهة تقع بين المعالج الرسوميّ وبين لغة البرمجة، بمعنى أنها امتدادات للغة الأصلية وذلك لكي تتواصل مع معالجات CUDA، فمثلاً عندما تريد البرمجة بلغة الـ C فإنك ستحتاج لنسخة خاصة تسمى C for CUDA وهي مجرد لغة C العادية ولكن مع امتدادات CUDA، فعندما تبدأ بالعمل مع البرنامج فإنك تقوم بطلب بعض الوظائف الخاصة بالـ CUDA ثم تقوم بتشغيل البرنامج...
الـ OpenCL ليس مكمّل للـ CUDA هنا وإنما وسيلة أخرى للبرمجة... ما فعلته nV هو أنها جعلت الـ OpenCL يعمل من خلال الـ CUDA وذلك حفاظاً على الـ CUDA نفسه، فعندما تريد في الـ OpenCL أن تطلب وظيفة معينة فإنك ستطلب ذلك من الـ CUDA وليس من من المعالج الرسومي مباشرة عن طريق برامج القيادة
الأمر فيه حسنة هنا، فالـ CUDA لو أردنا تشبيهها بما يقابلها في AMD ستكون هي الـ Stream، فالـ Stream ستكون الواجهة بين برنامج القيادة وبين الـ OpenCL...
لماذا إذاً لايكون هناك شيء مباشر وحقيقي أي Native لجعل الـ OpenCL يتواصل مباشرة مع برنامج القيادة وبالتالي مع العتاد نفسه ؟
الحقيقة هذا له مساوئه مثلما له حسناته، فرغم أن حسناته تعني أنه سيمكن للشركات المالكة للـ GPU وهنا AMD و nVIDIA أن يعدّلان ويطوّران ويحسنان من الـ CUDA والـ Stream أكثر وأكثر خصوصاً عند إطلاق جيل جديد من المنتجات وذلك بدلاً من إجراء تلك التعديلات والتحديثات على الـ OpenCL ( والتي تأخذ زمناً طويلاً جداً ) فإن السؤال الذي يطرح نفسه هل سيتمكن الـ OpenCL من الوصول لكافة موارد المسرع الرسومي نظراً لكون CUDA نفسه لايتيح ذلك ؟
كلا من CUDA و Stream يعتبران منافسان لبعضهما، والـ OpenCL تستخدمهما كلاهما للوصول لموارد المسرع الرسومي، فبينما الـ Stream توفر واجهة CAL التي تتيح وصولاً مباشراً لجميع موارد المسرع الرسومي ( أو على الأقل أغلبها ) فإن CUDA لا توفر ذلك بمثل مرونة Stream، والحقيقة أنه يمكن لـ nVIDIA تغيير ذلك عبر تغيير CUDA نفسها، ولكن السؤال، لو أراد شخص ما أن يطوّر تطبيق OpenCL ويحتاج للوصول لبعض الموارد التي تتيحها Stream ولكن لايتيحها CUDA فكيف سيمكن للشخص ذلك أن يطوّر البرنامج ؟
سيضطر إلى اتباع أساليب برمجية مختلفة حتى تعوّض هذا النقص، على حساب الأداء أو على حساب المرونة
1- الأداء : عندما يستخدم أسلوباً لايحتاج لوصول مباشرة لموارد المسرع الرسومي، مثلاً الذاكرة الكاش الخاصة بالمعالج الرسوميّ، عند ذلك سيضطر لاستخدام أسلوب تقليدي غير مباشر مما يحدّه من الأداء
2- المرونة : يقوم بتطوير خطين معالجة أحدها لمعالجات AMD عبر Stream حيث سيكون له وصول لذاكرة الكاش الرسوميّة، وآخر ذكرناه في النقطة الأخرى وهو أن يستخدم أسلوب غير مباشر يحدّ من الأداء وذلك للتعامل مع معالجات nVIDIA عبر CUDA...
في كلتا الحالتين الأمر غير محبّذ لأنه في الحالة الأولى سيفتقد للأداء عن تطبيقات AMD وفي الحالة الثانية سيضطر لعمل خطّي معالجة وهذا أمر لا يحبّه المطوّرين لكونه يسهلك موارد الوقت والمال والتطوير... خصوصاً أن أحد أسباب تطوير OpenCL هو الابتعاد عن تصميم عدة خطوط معالجة من أجل التطبيقات المختلفة...
رد: NVIDIA تصدر Driver لل OpenCL خاص بالمطورين
اقتباس:
المشاركة الأصلية كتبت بواسطة الخلف
يبدو أنك عزيزي عزيز لم تفهم القضية كما ينبغي...
الـ CUDA هو أساساً واجهة تقع بين المعالج الرسوميّ وبين لغة البرمجة، بمعنى أنها امتدادات للغة الأصلية وذلك لكي تتواصل مع معالجات CUDA، فمثلاً عندما تريد البرمجة بلغة الـ C فإنك ستحتاج لنسخة خاصة تسمى C for CUDA وهي مجرد لغة C العادية ولكن مع امتدادات CUDA، فعندما تبدأ بالعمل مع البرنامج فإنك تقوم بطلب بعض الوظائف الخاصة بالـ CUDA ثم تقوم بتشغيل البرنامج...
الـ OpenCL ليس مكمّل للـ CUDA هنا وإنما وسيلة أخرى للبرمجة... ما فعلته nV هو أنها جعلت الـ OpenCL يعمل من خلال الـ CUDA وذلك حفاظاً على الـ CUDA نفسه، فعندما تريد في الـ OpenCL أن تطلب وظيفة معينة فإنك ستطلب ذلك من الـ CUDA وليس من من المعالج الرسومي مباشرة عن طريق برامج القيادة
الأمر فيه حسنة هنا، فالـ CUDA لو أردنا تشبيهها بما يقابلها في AMD ستكون هي الـ Stream، فالـ Stream ستكون الواجهة بين برنامج القيادة وبين الـ OpenCL...
أفهم هذه النقطة ولذلك قلت مكمل وما زلت عند رأيي
إذا كان يمكن دمج دوال API الخاصة ب CUDA مع دوال API الخاصة ب OpenCL ضمن برنامج واحد فكل واحد مكمل للآخر حيث ستعمل كل تقنية في جزء من البرنامج أو وظيفة محدده ليظهر البرنامج بالصورة الكاملة وبالتالي أستغلال أفضل مافي التقنيتين وفي هذه الحالة يعتبر مكمل.
أما إذا كانت العملية إستدعاء لل OpenCL عن طريق ال CUDA فقط دون القدرة على دمج تقنيات CUDA معها ضمن برنامج واحد عند ذلك نسميها غير مكملة ونعتبر ال OpenCL غير مكمل لل CUDA .
اقتباس:
ما فعلته nV هو أنها جعلت الـ OpenCL يعمل من خلال الـ CUDA وذلك حفاظاً على الـ CUDA نفسه، فعندما تريد في الـ OpenCL أن تطلب وظيفة معينة فإنك ستطلب ذلك من الـ CUDA وليس من من المعالج الرسومي مباشرة عن طريق برامج القيادة
أختلف معك في هذه النقطة فال DX11 مثلا تم إضافته لل CUDA architecture هل كان حفاظا على ال CUDA ? لا أعتقد حيث يمكن أن يعمل ال DX11 على ال GPU مباشره دون الحاجة لوسيط CUDA سواء رضيت nVIDIA أم لا ترضى إذن لماذا تم دعمه من قبل CUDA architecture ؟
الغرض منها هو التكامل حيث يمكن دمج تطبيقات تعتمد على ال DX11 و CUDA في تطبيق واحد , كذلك يمكن من خلال CUDA architecture دمج ال DX11 و OpenCL و CUDA مثلا ضمن تطبيق واحد .