// Encodage par GPU : tests et comparatif
Publié par Frédéric Cuvelier le Mardi 19 Mai 2009
Sommaire
Encodez une vidéo avec votre carte graphique
La bataille acharnée que se livrent NVIDIA et AMD dans le domaine des GPU donne naissance à des applications surprenantes. Il est en effet maintenant possible d'encoder une vidéo via sa carte graphique.Jusqu'alors, chaque élément de notre ordinateur avait un rôle propre : la carte graphique avait pour tâche le traitement 3D, dont le jeux vidéo, tandis que le processeur s'occupait... du reste. Aujourd'hui, la donne a changé et les fondeurs que sont AMD et NVIDIA ont entrepris d'utiliser leur GPU pour d'autres opérations que des calculs 3D. Pourquoi une telle évolution ? Quels avantages peut-on tirer d'une telle technologie et quid des performances sont autant de questions auxquelles nous répondrons dans ce dossier.
Sommaire :
Pourquoi utiliser le GPU pour l'encodage ?
Si les constructeurs de GPU se sont tournés vers cette voie qui n'en est toutefois qu'à ses prémices, ce n'est pas seulement pour diversifier leur activité et promouvoir un peu plus leur produit. C'est également parce que le GPU est un vrai « client » en ce qui concerne certains types de calculs, plus précisément les opérations parallélisables. Pour comprendre cela, il faut se plonger dans les différences fondamentales qui existent entre un CPU et un GPU, c'est à dire entre un processeur et une carte graphique.Le processeur tel que nous le connaissons actuellement est un excellent élément pour traiter rapidement un flux d'instructions complexes important, du fait de la rapidité de l'échange entre la mémoire cache, qui occupe la majeure partie de la surface d'un CPU, et les unités de calcul, en nombre restreint. Dans un GPU, les unités de calcul sont en revanche très nombreuses, toutes destinées à du calcul « simple » et la mémoire prend très peu de place. Il est donc tout à fait véloce pour ce qui est du calcul parallèle, c'est-à-dire une opération pouvait être « découpée » en une multitude de calculs indépendants, comme le rendu 3D ou la conversion d'une vidéo.
De par leur nature hautement programmable, les GPU sont ainsi apte à effectuer des calculs généralistes au même titre qu'ils effectuent depuis des décennies des rendus 3D. C'est ce qu'on appelle le GP-GPU (general purpose GPU). NVIDIA et son API CUDA ou AMD avec le ATI Stream proposent deux langages de programmation qui ont permis la création d'applications comme Avivo Video Converter ou Badaboom, que nous détaillerons plus avant.
Quelques chiffres à titre de comparaison
Pour exprimer une puissance de calcul, la grandeur utilisée traditionnellement est le FLOPS (pour FLoating point Operations Per Second), qui représente le nombre d'opérations en virgule flottante (c'est à dire en chiffre réel) effectuées en une seconde. A titre de comparaison, le processeur grand public le plus puissant à l'heure actuelle, à savoir le Core i7 965 Extreme Edition d'Intel, développe « seulement » 69 gigaflops, tandis qu'une GeForce GTX 280 de chez NVIDIA s'approche du Teraflop à l'aide de ses 240 unités de calcul (qui ne sont pas comparables à celles présentes dans un CPU, rappelons-le).
Protocole de test
Dans ce dossier, nous avons tout d'abord voulu vérifier l'efficacité des GPU en matière d'encodage vidéo. Nous avons également souhaité mettre face à face plusieurs applications à même d'utiliser le GPU pour effectuer l'encodage. Afin de coller au plus près d'une utilisation commune de ces logiciels, nous avons choisi de travailler sur deux fichiers :- une vidéo MPEG-4 de 350 Mo encodée en XviD à 970 Kbps, flux audio en MP3 135 Kbps ;
- un DVD que nous avons au préalable sauvegardé grâce à DVD Shrink. Le total des fichiers MPEG-2 représente 4,8 Go.
Pour effectuer ces opérations, nous avons eu recours à la machine suivante :
- Boîtier Antec Nine Hundred
- Carte-mère Asus P5Q-EM (BIOS 0202),
- Processeur Intel Core 2 Quad Q9300 2,5 GHz,
- 4 Go de mémoire DDR2-800 Corsair,
- Disque dur Western Digital Velociraptor 300 Go fonctionnant à 10 000 tours par minute
Deux remarques concernant le matériel choisi. Tout d'abord, le processeur Intel Core 2 Quad Q9300 n'est certes pas le plus véloce des CPU actuellement sur le marché, mais il est nettement plus « grand public » qu'un Q9550 ou un Core i7 940. En second lieu, le disque dur a volontairement été choisi le plus rapide possible afin de ne pas niveler les performances des logiciels et des composants.
Quelles cartes graphiques compatibles ?
Evoquons enfin le choix des cartes graphiques. Tous les GPU ne sont pas compatibles avec CUDA pour NVIDIA et l'ATI Stream pour AMD. Chez AMD, la compatibilité ATI Stream démarre avec les cartes Radeon HD de la série 2000 et se poursuit avec les Radeon HD 3000 et 4000. Vous trouverez une liste exhaustive sur cette page. Chez NVIDIA, ce sont les familles GeForce 8, GeForce 9, GeForce séries 100/200 qui peuvent tirer profit de CUDA. Les pilotes et les systèmes d'exploitation sont une autre restriction : CUDA est compatible avec Windows XP et Vista, tout comme l'ATI Stream, qui nécessite toutefois l'installation du Service Pack 3 pour Windows XP. Pour les pilotes, la version 8.12 des Catalyst est un minimum, alors que pour une carte NVIDIA, ce sont les versions ultérieures à la mouture 177.35 qui seront aptes à faire fonctionner CUDA. Enfin, sachez que ni l'API de NVIDIA ni celle d'AMD ne gère d'un côté le SLI, de l'autre le CrossFire. En conséquence, nous effectuerons nos tests sans tenir compte de ces possibilités.Nous avons finalement opté pour une Radeon HD 4870 dotée de 1 Go de mémoire du côté d'AMD, et pour une GeForce GTX 260 de NVIDIA. Ces deux cartes sont relativement proches en termes de performances et sont dans la même gamme de prix et il nous a paru pertinent de les comparer dans ce dossier. Enfin, les pilotes utilisés sont les Catalyst 9.4 (le patch permettant d'utiliser ATI Stream se trouve en fin de page) et les GeForce 185.85 WHQL.




Publicité






( les afficher maintenant )