REC

Conseils sur le tournage vidéo, la production, le montage vidéo et l'entretien de l'équipement.

 WTVID >> Vidéo >  >> vidéo >> Conseils vidéo

CUDA contre OpenCL contre OpenGL

Qu'est-ce que CUDA ? Qu'en est-il d'OpenCL et d'OpenGL ? Et pourquoi devrions-nous nous en soucier ? Les réponses à ces questions sont difficiles à cerner - l'équivalent informatique des sans réponses métaphysiques - mais nous tenterons une explication claire dans un langage simple à comprendre, avec peut-être un peu d'introspection également.

Il arrive un moment dans la vie d'un monteur vidéo où il se pose inévitablement les questions de base :"Est-ce que c'est toute la vitesse que j'ai ?" N'y a-t-il rien de plus ? Comme la recherche du sens de la vie ou une grande théorie unifiée, cette simple pensée vous lance dans un abîme sans fin et infiniment profond de contemplation et de recherche, jusqu'à ce que vous atterrissiez inévitablement sur une question à laquelle vous ne pouvez tout simplement pas obtenir une vraie réponse, et là la recherche s'arrête.

Maintenant, nous ne pouvons pas vous aider avec une grande théorie unifiée, mais nous pouvons dire que le mur d'informations que vous rencontrerez finalement lors de votre recherche de vitesse de traitement vidéo se résumera finalement à ceci :"Qu'est-ce que CUDA, qu'est-ce qu'OpenCL, et pourquoi est-ce que je m'en soucie ?"

"Maintenant, attendez", dites-vous. « Le titre dit Open GL. Il doit y avoir une faute de frappe ». Non, il y a juste beaucoup de gens qui n'ont aucune sympathie pour les normes de dénomination. La vérité est que pour comprendre CUDA et Open GL, vous devez également connaître Open CL. Maintenant, vous pouvez sauter sur Internet et wiki tous ces termes, lire tous les forums et visiter les sites qui maintiennent ces normes, mais vous repartirez toujours confus. Dans cet article, nous viendrons à la rescousse de votre énigme vidéo métaphysique avec un langage aussi simple que possible. Vous ne verrez aucune circulaire parler de termes comme "interface de programmation d'application" ici ! Alors, comme toutes les quêtes de réponses, commençons logiquement… par le milieu.

Qu'est-ce que CUDA ?

Créé par le fabricant de cartes graphiques Nvidia, en termes aussi simples que possible, CUDA permet à vos programmes d'utiliser le cerveau de votre carte graphique comme sous-processeur. Votre processeur transmet certaines tâches à la carte compatible CUDA. La carte graphique est spécialisée dans le calcul de choses comme l'éclairage, le mouvement et l'interaction aussi rapidement que possible. Les cartes graphiques sont spécialement conçues pour traiter ces informations aussi rapidement que possible, même en les envoyant sur plusieurs voies à la fois, comme si vous aviez quatre voies de paiement au supermarché pour un seul panier. Les résultats de ce travail sont ensuite transmis au CPU, qui est depuis passé à des choses plus grandes et meilleures.

Les avantages

Pour les programmeurs, c'est relativement simple à intégrer. Comme il est basé sur un logiciel, une grande partie du système doit être programmée dans le code du programme, et donc sa fonction peut varier ou être personnalisée. Pour l'utilisateur, étant donné que la fonctionnalité principale de CUDA réside dans le calcul, la génération de données et la manipulation d'images, vos temps de traitement, de rendu et d'exportation des effets peuvent être considérablement réduits, en particulier en cas de mise à l'échelle ou de réduction. L'analyse d'images peut également être améliorée, ainsi que les simulations telles que la dynamique des fluides et les processus prédictifs tels que les modèles météorologiques. CUDA est également excellent pour les sources lumineuses et le lancer de rayons. Tout cela signifie que des fonctions similaires aux effets de rendu, à l'encodage et à la conversion vidéo, et plus encore, seront traitées beaucoup plus rapidement.

L'inconvénient

Avez-vous remarqué cette petite clause de non-responsabilité dans le premier paragraphe ? Cela ne fonctionne que pour les cartes graphiques "CUDA activées". Étant donné que CUDA est la propriété de Nvidia, vous avez besoin d'une carte graphique fabriquée par cette société pour en tirer parti. Si vous avez, par exemple, un Mac Pro de style poubelle, ce n'est tout simplement pas une option pour vous car ils ne sont livrés qu'avec des cartes graphiques AMD. Il existe des options tierces ici, mais Apple ne fournit AMD que dans leurs packages. Vous constaterez également que moins de programmes prennent en charge CUDA que son alternative, alors parlons de cette autre option.

Eh bien, qu'est-ce qu'OpenCL ?

OpenCL est un système relativement nouveau et pour notre discussion, il peut être considéré comme une alternative à CUDA. Il s'agit cependant d'une norme ouverte, ce qui signifie que n'importe qui peut utiliser ses fonctionnalités dans son matériel ou ses logiciels sans payer pour une technologie ou des licences propriétaires. Alors que CUDA utilise la carte graphique comme co-processeur, OpenCL transmettra entièrement les informations, en utilisant davantage la carte graphique comme un processeur pair à usage général distinct. C'est une distinction philosophique mineure, mais il y a une différence quantifiable à la fin. Pour le programmeur, c'est un peu plus difficile à coder. En tant qu'utilisateur, vous n'êtes lié à aucun fournisseur en particulier, et le support est si répandu que la plupart des programmes ne mentionnent même pas son adoption.

Enfin, OpenGL

OpenGL est vraiment le début de l'histoire. Il ne s'agit pas d'utiliser la carte graphique comme processeur à usage général. Au lieu de cela, il s'agit simplement de dessiner des pixels ou des sommets sur l'écran. C'est le système qui permet à votre carte graphique de créer des affichages 2D et 3D pour votre ordinateur beaucoup plus rapidement que votre CPU ne le pourrait. Comme CUDA et OpenCL sont des alternatives l'une à l'autre, OpenGL est une alternative aux systèmes comme DirectX sous Windows. Simplement, OpenGL dessine tout sur votre écran très rapidement, OpenCL et CUDA traitent les calculs nécessaires lorsque vos vidéos interagissent avec vos effets et autres médias. OpenGL peut placer votre vidéo dans l'interface d'édition et la faire jouer, mais lorsque vous y appliquez une correction des couleurs, CUDA ou OpenCL effectuera les calculs pour modifier correctement chaque pixel de la vidéo.

OpenGL peut être implémenté au niveau matériel, ce qui signifie que les codeurs n'ont pas à inclure le code dans leur programme, ils n'ont qu'à l'appeler. De plus, les fournisseurs de matériel ont la possibilité d'étendre les fonctionnalités de base avec des extensions, ce qui signifie que certains matériels peuvent être meilleurs que d'autres pour certaines tâches. Cela permet une personnalisation très spécifique.

Là où l'utilisateur verra les avantages d'OpenGL, c'est dans les performances opérationnelles du logiciel. Les aperçus sont rendus particulièrement rapidement. Dans de nombreux programmes, il est également utilisé pour l'interface accélérée et les superpositions, telles que les montages, les séquences, les fenêtres, les grilles, les guides, les règles et les cadres de délimitation.

En fin de compte, OpenGL pour l'utilisateur n'est pas un problème, car OpenCL et CUDA peuvent utiliser et utilisent le système OpenGL. Ce que vous devez comprendre ici, c'est que si vous avez une carte graphique avec le dernier support OpenGL, vous travaillerez toujours plus vite que sur un ordinateur avec un processeur et des graphiques intégrés seuls.

En bref

Alors, qu'est-ce que tout cela signifie pour vous et votre poste de travail ? Quel est le meilleur — CUDA ou OpenCL ? Nous supposerons que vous avez fait la première étape et vérifié votre logiciel, et que tout ce que vous utiliserez prendra en charge les deux options. Si vous avez une carte Nvidia, utilisez CUDA. Il est considéré comme plus rapide qu'OpenCL la plupart du temps. Notez également que les cartes Nvidia prennent en charge OpenCL. Le consensus général est qu'ils ne sont pas aussi bons que les cartes AMD, mais ils se rapprochent tout le temps. Vaut-il la peine d'acheter une carte Nvidia uniquement pour le support CUDA ? Cela dépendrait de trop de facteurs de cas spécifiques pour que nous les couvrions ici. Vous devrez examiner vos besoins et faire vos recherches. Pas seulement le type de travail effectué par votre entreprise, mais aussi la machine individuelle et sa charge de travail et sa fonction. Et si vous le pouvez, testez avant d'investir.

Adobe, par exemple, déclare sur son site Web qu'à de très rares exceptions près, tout ce que CUDA fait pour Premiere Pro peut également être fait par OpenCL. Il indique également qu'il n'utilise ni l'un ni l'autre pour l'encodage ou le décodage. Ils peuvent cependant être utilisés pour le rendu des aperçus et des exportations finales. La majorité de ceux qui ont "comparé" les deux semblent pencher pour que CUDA soit plus rapide avec les produits Adobe. CUDA a l'avantage d'être autonome, ce qui, grâce à une meilleure optimisation, peut entraîner des performances plus rapides.

Expérience personnelle

Je voudrais aussi faire un geste rare et partager mon expérience personnelle ici. Notez cependant que je n'ai fait aucun test concret. Je parle strictement pour moi, alors prenez-le pour ce qu'il vaut. Mon expérience est que CUDA, lorsqu'il est disponible, est génial et peut vraiment augmenter sensiblement votre vitesse. Cependant, je pense que j'ai eu quelques plantages ou problèmes supplémentaires lors du rendu, du transcodage et de l'exportation. De plus, à quelques rares occasions, j'ai manqué d'options et j'ai eu recours à la désactivation de CUDA, ce qui a finalement abouti à un résultat positif. Je n'ai jamais eu à faire le contraire. Je dois nuancer cela en disant également que mon temps avec CUDA a été très limité. Je ne frappe pas non plus CUDA, car le problème est probablement la façon dont le fournisseur de logiciels l'a utilisé. J'ai cependant rencontré ces problèmes avec plus d'un programme, alors j'avais peut-être une ancienne version de CUDA. Je pensais juste que c'était assez important pour mentionner que vous devriez faire attention à de telles choses. Encore une fois, je dirai en fin de compte que vous ne pouvez pas vous tromper avec l'un ou l'autre choix et que celui qui doit être utilisé doit être déterminé entièrement au cas par cas.

Donc, pour en revenir au dossier, ce que nous pouvons finalement dire avec confiance, c'est que si vous êtes réellement dans la position où c'est vraiment votre carte graphique, et non l'ensemble de votre système qui ralentit votre flux de travail, il y a de fortes chances que la mise à niveau vers toute carte plus récente sera une amélioration considérable par rapport à ce que vous vivez actuellement. Quelle que soit la voie que vous choisissez, comprendre ce que font ces systèmes vous aidera à identifier où vous devez investir pour rendre vos stations de travail les plus mauvaises possible. Investir dans une carte prenant en charge l'utilisation du processeur graphique pour compléter ou décharger le travail du processeur accélérera considérablement votre flux de travail.

Peter Zunitch est un monteur vidéo primé basé à New York.


  1. Moins c'est plus - Modification des titres et des graphiques

  2. Examen de la carte graphique NVIDIA Quadro 4000 et de 3D Vision

  3. Webinaire Mercredi – 27 juin :L'art des titres et des graphiques

  4. Comment concevoir un package graphique cohérent

  5. Maîtriser les modèles d'animations graphiques dans Premiere Pro

Conseils vidéo
  1. 5 conseils pour améliorer les graphiques de support

  2. Les bases des titres et des graphiques

  3. Éléments de conception gratuits pour les graphistes animés

  4. Dernières nouvelles :Blackmagic annonce le Blackmagic eGPU

  5. 13 animations graphiques texturées GRATUITES pour Premiere Pro

  6. Meilleurs plugins Motion Graphics pour AE

  7. Comment créer des animations graphiques dans After Effects

  8. 4 meilleurs logiciels de graphique 3D pour vous aider à dessiner des graphiques 2D et 3D