OpenCL dans Adobe Premiere Pro: combien plus rapide est un GPU qu'un CPU?
Bonjour Giktayms! Ayant récemment découvert le monde merveilleux de l'accélération du traitement des données à l'aide de cartes vidéo à l'aide d'OpenCL, j'ai décidé d'écrire un petit matériel d'introduction pour les débutants qui ne connaissent pas cette technologie dans la pratique. Internet pose souvent la question «quel type de gain de productivité vais-je obtenir?», Mais les réponses sont soit abstraites, soit trop théorisées.Ce message est destiné à montrer comment l'utilisation d'OpenCL peut accélérer le rendu de la vidéo dans les programmes de montage vidéo. Vous ne trouverez pas d'immersion profonde dans la théorie et les mathématiques - il y a beaucoup d'articles théoriques détaillés sur OpenCL sur Giktims et Habré sans moi. Il n'y aura qu'une description de la tâche et des résultats des tests, veuillez donc traiter le texte exactement comme un simple guide d'introduction pour les débutants.
Pourquoi est-il nécessaire?
Les cartes graphiques modernes sont de vrais monstres informatiques, dont la pleine puissance est généralement dépensée pour les jeux. Des gens stupides ont réalisé que si les programmeurs avaient un accès direct aux unités informatiques des puces vidéo, toute cette puissance colossale pourrait être utilisée pour d'autres tâches, et pas seulement pour le traitement graphique 3D.NVIDIA a été le premier à réussir la mise en œuvre de cette idée avec son architecture informatique parallèle CUDA (Compute Unified Device Architecture). En utilisant la syntaxe étendue du langage C et un compilateur spécial, les développeurs ont pu utiliser une puce graphique pour les tâches de calcul. AMD, à son tour, a présenté le Stream SDK - sa vision propriétaire pour CUDA.Le résultat a été phénoménal - les processus associés au traitement des données multimédias, ce qui implique un haut niveau de parallélisation, terminés plusieurs fois plus rapidement que dans le cas des calculs par le processeur central. L'avantage du GPU était particulièrement prononcé lors du rendu dans les programmes de modélisation 3D et le traitement vidéo.
Un an après la sortie de CUDA, le consortium Khronos Group a publié le framework OpenCL. En fait, il a dû unifier le code pour accéder à la puissance de calcul des processeurs sur différentes architectures, y compris les cœurs vidéo. À partir de ce moment, le support du nouveau framework a commencé à être activement introduit dans les logiciels professionnels.À ce jour, OpenCL prend en charge les programmes Adobe, les convertisseurs de médias, un certain nombre de rendus 3D populaires, la CAO et les logiciels de modélisation mathématique.
Mieux CUDA ou OpenCL?
Une question très fréquente et très intéressante est sous-titrée. Ces deux technologies sont comme contrairement aux frères. Comme le PhysX qui a longtemps souffert, CUDA est une technologie fermée prise en charge uniquement par les puces NVIDIA et en aucun cas par tous les logiciels spécialisés. OpenCL est un extraverti, le code est ouvert à tout amateur, tout logiciel prenant en charge le calcul GPU par définition fonctionne avec OpenCL.Les programmeurs NVIDIA ne se débattent pas - si vous prenez deux cartes vidéo sphériques sous vide avec les mêmes performances, alors CUDA sur la puce NVIDIA affiche une moyenne de 20% de performances supérieures à OpenCL sur la puce AMD. Mais il y a une nuance, comme on dit - si CUDA de NVIDIA fonctionne rapidement et bien, alors OpenCL sur les cartes de cette société est légèrement inférieur à la vitesse de traitement d'AMD OpenCL. Il y a quelques années, la situation était très déplorable, mais avec le temps, en utilisant les chauffeurs, l'écart a été comblé. Néanmoins, les performances spécifiques de NVIDIA GeForce dans OpenCL sont encore légèrement inférieures à celles d'AMD Radeon. Par conséquent, ceux qui ont acheté une carte NVIDIA pour travailler avec une application qui prend en charge exclusivement OpenCL seront dans la pire position - l'adaptateur sortira plus cher et son efficacité peut être inférieure à celle de Radeon. Un tel jeu ne vaut pas la chandelle.
Le fer
Je n'ai découvert le monde merveilleux d'OpenCL que cet été, après avoir acheté deux cartes vidéo AMD Radeon 300 series à la fois: SAPPHIRE NITRO R9 380 et SAPPHIRE Tri-X R9 390X . L'un d'eux devait être remis au magasin, en fonction des résultats des tests à domicile. Les cartes ont été achetées pour le montage vidéo à domicile, le choix en direction de Radeon était assez conscient: d'une part, CUDA est plus rapide qu'OpenCL. En revanche, comme il s'est avéré, OpenCL est pris en charge par un logiciel beaucoup plus professionnel que CUDA, et les performances des cartes NVIDIA dans OpenCL laissent beaucoup à désirer.
De l'assortiment proposé de cartes SAPPHIRE, je l'aimais plus que les autres. Contrairement aux fans de la conception de référence, SAPPHIRE utilise des ventilateurs classiques dans le système de refroidissement, qui sont beaucoup plus silencieux que les éoliennes centrifuges de référence - je leur ai développé une forte hostilité après une connaissance rapide de l'aspirateur à carte vidéo Radeon 4870x2.À la maison, en déballant deux énormes boîtes, je me sentais comme un mastodonte moussu - les cartes vidéo sont plutôt grandes. SAPPHIRE R9 390X est vraiment énorme, avec trois ventilateurs et un dissipateur thermique qui dépasse la taille de la carte de circuit imprimé. Au début, j'étais même inquiet si ces monstres s'intégreraient dans mon corps. Heureusement, nous sommes entrés, mais un disque dur a dû être retiré de la cage de disque dur. Une alimentation en kilowatts n'était pas non plus superflue - le R9 390X nécessite deux connecteurs d'alimentation à quatre broches, et tous les blocs d'alimentation ne tireront pas un tel courant.
Donc, ma configuration maison, sur laquelle les tests comparatifs OpenCL ont été effectués:- Processeur: Intel Core i5-2500K, overclocké à 3,7 GHz
- RAM: 12 Go DDR-1333
- Carte mère: ASUS P8Z77-V PRO
- Disques: système SSD A-DATA de 120 Go, disque dur 2 To WD Black WD20EARS
- Alimentation: Corsair 1000 W
Doux
Si Adobe Premiere Pro CS4 était une lourde charge au bureau, à la maison, vous pouvez organiser un espace de travail à votre guise. Je ne penserais presque jamais à acheter Premiere Pro si Adobe n'avait pas déployé le merveilleux, à mon avis, le système d'abonnement Creative Cloud. Maintenant, pour 600 roubles par mois, j'ai un Premiere Pro CC légal et constamment mis à jour. Et lui, contrairement au bureau du vieil homme, prend en charge nativement le rendu à l'aide d'OpenCL et de CUDA!Si votre carte vidéo fonctionne avec OpenCL ou CUDA, au stade de la création d'un projet dans Premiere Pro, vous pouvez choisir un rendu. Pour l'accélération matérielle rencontre le GPU Mercury Playback Engine (OpenCL) ou (CUDA). Dans un projet terminé, le rendu peut être modifié via Paramètres du projet dans le menu Fichier.
Comme je l'ai déjà dit, en utilisant OpenCL, vous pouvez transférer des calculs sur l'application d'effets vidéo sur la carte vidéo. Cependant, tous les effets d'Adobe Premiere Pro ne prennent pas en charge OpenCL - vous pouvez le savoir par la présence ou l'absence d'une telle icône dans la liste.
Les tests
En tant que projet de test, j'ai choisi une vidéo de deux minutes composée de nombreux segments de vidéo Full HD avec un débit binaire de 72 Mbps et une fréquence d'images de 24 images par seconde. Surtout cette honte, l'effet accéléré de Lumetri Color a été appliqué, par lequel j'ai effectué une correction des couleurs. La sortie devait obtenir un film au format h.264, dans une résolution de 1920 × 1080 (c'est-à -dire sans changement), un débit binaire de 6-7 Mbit / s, un codage en deux passes a été utilisé.Pour confirmer le fonctionnement de la carte vidéo, j'ai pris des paramètres GPU-Z - en regardant la fréquence du cœur graphique, il est facile de comprendre quand la vidéo est rendue par le CPU et quand le GPU.
Lors du premier test, j'ai désactivé l'effet Lumetri Color, donc tout le rendu devait changer le débit vidéo.Exécuter 1:projet 2 minutes, h.264, 6-7 mbps, aucun effetCPU | 3:09 |
SAPPHIRE Tri-X R9 390X | 2:33 |
SAPPHIRE NITRO R9 380 | 2:38 |
Sans appliquer d'effets, la différence de vitesse de rendu entre le processeur et la puissante carte graphique moderne est très faible. Lors du traitement d'une vidéo d'une durée totale d'environ une heure, le gain de l'utilisation d'OpenCL sera plus visible, mais toujours très faible. Néanmoins, presque toujours pendant le processus d'édition, des effets de correction des couleurs sont appliqués à la vidéo, ce test doit donc être considéré comme «synthétique».Exécution 2:projetez 2 minutes, h.264, 6-7 Mbps, effet Lumetri ColorCPU | 11:33 |
SAPPHIRE Tri-X R9 390X | 2:42 |
SAPPHIRE NITRO R9 380 | 2:48 |
Les résultats parlent d'eux-mêmes - si les deux cartes vidéo ont rendu la vidéo sans effort un peu plus lentement qu'en temps réel, le processeur a passé près de six minutes à effectuer le rendu chaque minute. Et c'est avec un seul effet activé! Si avant le test, je m'attendais à traiter un film d'une heure avec une correction des couleurs pour toute la durée, alors après les résultats, j'ai décidé d'abandonner cette idée. Dans mon travail, j'applique la correction des couleurs à de petits segments de la vidéo, et une heure ou deux de rendu ne me dérange pas beaucoup. Je n'ai pas eu le temps de perdre quatre ou cinq heures à des fins de test.En extrapolant les résultats, nous pouvons supposer que le processeur aurait réussi avec une correction des couleurs d'une durée de 60 minutes en 4,5 heures, alors que les cartes vidéo auraient besoin de moins d'une heure!résultats
Sur la base des résultats des tests, je me suis laissé le SAPPHIRE NITRO R9 380 - la carte coûte beaucoup moins cher que le R9 390X le plus cool, mais dans Premiere Pro, les performances des deux adaptateurs sont presque identiques. Étant donné que l'adaptateur a été acheté pour faire le travail, ce qui signifie que l'argent dépensé 17 mille roubles n'est pas du tout dommage. De plus, dans GTA V, la carte s'est révélée excellente, mais ce sujet est pour une note complètement différente.Quant à l'expérience de l'utilisation d'OpenCL, on ne peut que l'admettre - un sauveur est venu dans le monde du montage vidéo: le rendu s'est transformé en plaisir. Par rapport à Intel Core i5 overclocké, les GPU traitent sans effort la vidéo avec des effets superposés dans Premiere Pro. Avec de tels résultats de test, il n'est pas question d'utiliser le rendu par GPU. La seule question est de savoir quelle carte vidéo s'y adapter. Quelque chose du segment de jeu supérieur sera parfait, par exemple, AMD Radeon R9 3xx. Le SAPPHIRE NITRO R9 380 a pleinement satisfait mes besoins, mais les adaptateurs milieu de gamme et même d'entrée de gamme prennent également en charge OpenCL, ce qui signifie qu'ils accéléreront considérablement votre travail dans les logiciels professionnels. Source: https://habr.com/ru/post/fr383405/
All Articles