OpenCL في Adobe Premiere Pro: ما مدى سرعة وحدة معالجة الرسومات من وحدة المعالجة المركزية؟

مرحبا Giktayms! بعد أن اكتشفت مؤخرًا العالم الرائع لتسريع معالجة البيانات باستخدام بطاقات الفيديو باستخدام OpenCL ، قررت كتابة القليل من المواد التمهيدية للمبتدئين الذين ليسوا على دراية بهذه التكنولوجيا في الممارسة. غالبًا ما تثير شبكة الإنترنت الأسئلة "ما نوع مكاسب الإنتاجية التي سأحصل عليها؟" ، لكن الإجابات إما مجردة أو مفرطة النظرية.
الغرض من هذا المنشور هو توضيح كيف يمكن أن يؤدي استخدام OpenCL إلى تسريع عرض الفيديو في برامج تحرير الفيديو. لن تجد انغماسًا عميقًا في النظرية والرياضيات - هناك الكثير من المقالات النظرية التفصيلية حول OpenCL على Giktims و Habré بدوني. لن يكون هناك سوى وصف للمهمة ونتائج الاختبار ، لذا يرجى التعامل مع النص كدليل تمهيدي بسيط للمبتدئين.



لماذا هو مطلوب؟


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

كانت NVIDIA أول من نجح في تنفيذ هذه الفكرة من خلال بنية الحوسبة المتوازية لهندسة الأجهزة الموحدة (CUDA). باستخدام التركيب الموسع للغة C ومترجم خاص ، تمكن المطورون من استخدام شريحة رسومية للمهام الحسابية. وقدمت AMD بدورها Stream SDK - رؤيتها الخاصة لـ CUDA.

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



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

حتى الآن ، يدعم OpenCL برامج Adobe ، ومحولات الوسائط ، وعددًا من برامج 3D-Rend الشهيرة ، CAD وبرامج النمذجة الرياضية.



أفضل CUDA أو OpenCL؟


يتم ترجمة سؤال متكرر ومثير للاهتمام للغاية. هاتان التقنيتان تشبهان الأخوة. مثل PhysX الذي عانى طويلا ، CUDA هي تقنية مغلقة تدعمها رقائق NVIDIA بأي حال من الأحوال وجميع البرامج المتخصصة. OpenCL هو منفتح ، الرمز مفتوح لأي متحمس ، أي برنامج يدعم حوسبة GPU بحكم التعريف يعمل مع OpenCL.

مبرمجي NVIDIA لا يتزحزحون - إذا كنت تأخذ بطاقتين فيديو كرويتين في فراغ مع نفس الأداء ، فإن CUDA على شريحة NVIDIA تظهر أداء أعلى بنسبة 20٪ في المتوسط ​​من OpenCL على شريحة AMD. ولكن هناك فارق بسيط ، كما يقولون - إذا كانت CUDA من NVIDIA تعمل بسرعة وبشكل جيد ، فإن OpenCL الموجود على بطاقات هذه الشركة أدنى قليلاً من سرعة معالجة AMCL في OpenCL. قبل بضع سنوات ، كان الوضع مؤسفا للغاية ، ولكن مع مرور الوقت ، باستخدام السائقين ، تم سد الفجوة. ومع ذلك ، فإن الأداء المحدد لـ NVIDIA GeForce في OpenCL لا يزال أقل قليلاً من أداء AMD Radeon. لذلك ، فإن أولئك الذين اشتروا بطاقة NVIDIA للعمل مع تطبيق يدعم OpenCL حصريًا سيكونون في أسوأ وضع - سيأتي المحول أكثر تكلفة ، وقد تكون فعاليته أقل من Radeon. مثل هذه اللعبة لا تستحق الشمعة.



حديد


اكتشفت عالم OpenCL الرائع هذا الصيف فقط ، بعد أن اشتريت بطاقتي فيديو من سلسلة AMD Radeon 300 دفعة واحدة: SAPPHIRE NITRO R9 380 و SAPPHIRE Tri-X R9 390X . تم التخطيط لإعادة أحدهم إلى المتجر ، اعتمادًا على نتائج الاختبارات المنزلية. تم شراء بطاقات لتحرير الفيديو في المنزل ، وكان الاختيار في اتجاه Radeon واعيًا تمامًا: من ناحية ، كانت CUDA أسرع من OpenCL. من ناحية أخرى ، كما اتضح ، فإن OpenCL مدعوم ببرنامج احترافي أكثر بكثير من CUDA ، وأداء بطاقات NVIDIA في OpenCL يترك الكثير مما هو مرغوب فيه.



من المجموعة المقترحة لبطاقات SAPPHIRE ، أحببتها أكثر من البقية. على عكس مراوح التصميم المرجعي ، تستخدم SAPPHIRE مراوح كلاسيكية في نظام التبريد ، وهي أكثر هدوءًا بكثير من توربينات الرياح ذات الطرد المركزي المرجعية - لقد طورت عدائية قوية لهم بعد التعرف السريع على مكنسة بطاقة الفيديو Radeon 4870x2.
في المنزل ، عند تفريغ صندوقين ضخمين ، شعرت وكأنني مصيدة طحلبية - بطاقات الفيديو كبيرة إلى حد ما. SAPPHIRE R9 390X ضخم حقًا ، مع ثلاث مراوح ومبرد حراري يتجاوز حجم لوحة الدوائر المطبوعة. في البداية ، كنت قلقة حتى إذا كانت هذه الوحوش تتناسب مع سلاحي. لحسن الحظ ، دخلنا ، ولكن كان يجب إزالة محرك أقراص ثابت واحد من صندوق محرك الأقراص الثابتة. لم يكن مصدر الطاقة بالكيلووات غير ضروري أيضًا - يتطلب R9 390X موصلين طاقة بأربعة دبابيس ، ولن يسحب كل PSU مثل هذا التيار.



لذلك ، تكوين بيتي ، حيث أجريت اختبارات مقارنة OpenCL:
  • المعالج: Intel Core i5-2500K ، تم رفع تردد التشغيل إلى 3.7 جيجاهرتز
  • ذاكرة الوصول العشوائي: 12 جيجابايت DDR-1333
  • اللوحة الأم: ASUS P8Z77-V PRO
  • محركات الأقراص: 120 جيجابايت من نظام A-DATA SSD ، 2 تيرابايت HDD WD Black WD20EARS
  • مزود الطاقة: Corsair 1000 W


ناعم


إذا كان Adobe Premiere Pro CS4 عبئًا ثقيلًا في المكتب ، فيمكنك في المنزل تنظيم مساحة عمل ترضيك. بالكاد أفكر في شراء Premiere Pro إذا لم تقم Adobe بطرح نظام الاشتراك Creative Cloud الرائع ، في رأيي. الآن مقابل 600 روبل في الشهر لدي برنامج Premiere Pro CC القانوني والمحدث باستمرار. وهو ، على عكس مكتب الرجل العجوز ، يدعم بشكل أصلي العرض باستخدام OpenCL و CUDA!
إذا كانت بطاقة الفيديو الخاصة بك تعمل مع OpenCL أو CUDA ، فيمكنك في مرحلة إنشاء مشروع في Premiere Pro اختيار عرض. بالنسبة إلى تسريع الأجهزة ، يلتقي GPU لمحرك تشغيل Mercury (OpenCL) أو (CUDA). في مشروع منتهي ، يمكن تغيير العارض من خلال إعدادات المشروع من قائمة ملف.



كما قلت بالفعل ، باستخدام OpenCL ، يمكنك نقل الحسابات على تطبيق تأثيرات الفيديو على بطاقة الفيديو. ومع ذلك ، لا تدعم جميع التأثيرات في Premiere Pro OpenCL - يمكنك معرفة ذلك من خلال وجود أو عدم وجود مثل هذا الرمز في القائمة.



الاختبارات


كمشروع اختباري ، اخترت فيديو مدته دقيقتان ، يتألف من مقاطع عديدة من فيديو عالي الدقة بالكامل بمعدل بت 72 ميجابت في الثانية ومعدل إطارات 24 إطارًا في الثانية. فوق كل هذا الخزي ، تم تطبيق التأثير المتسارع لـ Lumetri Color ، والذي قمت من خلاله بتصحيح اللون. كان الناتج هو الحصول على فيلم بتنسيق h.264 ، بدقة 1920 × 1080 (أي بدون تغييرات) ، ومعدل بت من 6-7 ميغابت / ثانية ، تم استخدام ترميز بتمريرين.
لتأكيد تشغيل بطاقة الفيديو ، أخذت معلمات GPU-Z - بالنظر إلى تردد قلب الرسومات ، من السهل أن نفهم متى يتم تقديم الفيديو بواسطة وحدة المعالجة المركزية ، ووقت وحدة معالجة الرسومات.





في التشغيل التجريبي الأول ، أوقفت تأثير Lumetri Color ، لذلك كان العرض بالكامل هو تغيير معدل البت للفيديو.

تشغيل 1:
مشروع 2 دقيقة ، h.264 ، 6-7 ميغابت في الثانية ، بدون تأثيرات
وحدة المعالجة المركزية3:09
SAPPHIRE Tri-X R9 390X2:33
صافير نيترو R9 3802:38

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

تشغيل 2:
مشروع 2 دقيقة ، h.264 ، 6-7 ميغابت في الثانية ، تأثير Lumetri Color
وحدة المعالجة المركزية11:33
SAPPHIRE Tri-X R9 390X2:42
صافير نيترو R9 3802:48

النتائج تتحدث عن نفسها - إذا جعلت كلتا بطاقات الفيديو الفيديو أبطأ قليلاً من الوقت الفعلي ، فإن المعالج يقضي ست دقائق تقريبًا في العرض كل دقيقة. وهذا مع تمكين تأثير واحد فقط! إذا كنت أتوقع قبل الاختبار معالجة فيلم لمدة ساعة مع تصحيح الألوان طوال المدة ، فقد قررت التخلي عن هذه الفكرة بعد النتائج. في عملي ، أقوم بتطبيق تصحيح الألوان على أجزاء صغيرة من الفيديو ، ولا تزعجني ساعة أو ساعتان من العرض كثيرًا. لم يكن لدي وقت لأضيع أربع أو خمس ساعات لأغراض الاختبار.
من خلال استقراء النتائج ، يمكننا أن نفترض أن المعالج كان سيدير ​​تصحيح الألوان لمدة 60 دقيقة في 4.5 ساعة ، في حين أن بطاقات الفيديو ستحتاج إلى أقل من ساعة واحدة!

الموجودات


استنادًا إلى نتائج الاختبار ، تركت نفسي SAPPHIRE NITRO R9 380 - تكلف البطاقة أرخص بكثير من أروع R9 390X ، ولكن في Premiere Pro ، يكون أداء المحولين متطابقين تقريبًا. بالنظر إلى أن المحول تم شراؤه للقيام بالعمل ، مما يعني أن كسب المال ينفق 17 ألف روبل ليس مؤسفًا على الإطلاق. علاوة على ذلك ، في GTA V أثبتت الخريطة أنها رائعة ، ولكن هذا الموضوع لملاحظة مختلفة تمامًا.

بالنسبة لتجربة استخدام OpenCL ، لا يسع المرء إلا أن يعترف - فقد أتى المنقذ إلى عالم تحرير الفيديو: تحول العرض إلى متعة. مقارنةً بمعالج Intel Core i5 الذي تم رفع تردد تشغيله ، تعالج وحدات معالجة الرسومات الفيديو بسهولة مع تأثيرات متراكبة في Premiere Pro. مع نتائج الاختبار هذه ، ليس هناك شك في ما إذا كان سيتم استخدام العرض بواسطة GPU. السؤال الوحيد هو بطاقة الفيديو التي تتكيف مع هذا. سيكون شيئًا من الجزء العلوي من الألعاب مناسبًا تمامًا ، على سبيل المثال ، AMD Radeon R9 3xx. لقد أرضت SAPPHIRE NITRO R9 380 احتياجاتي تمامًا ، ولكن المحولات المتوسطة وحتى المبتدئة تدعم أيضًا OpenCL ، مما يعني أنها ستسرع بشكل كبير في عملك في البرامج الاحترافية.

Source: https://habr.com/ru/post/ar383405/


All Articles