Connexion
Abonnez-vous

Radeon VII, RX Vega 64, GeForce RTX 2080 (Ti) : quelles performances sous Hashcat ?

Le test préféré de Brice de Nice

Radeon VII, RX Vega 64, GeForce RTX 2080 (Ti) : quelles performances sous Hashcat ?

Le 19 février 2019 à 08h30

Si les cartes graphiques sont historiquement utilisées dans les jeux vidéo, il est de plus en plus commun de les exploiter pour des calculs généralistes. Nous avons ainsi opposé les derniers modèles d'AMD et NVIDIA via Hashcat.

Il y a dix ans, NVIDIA révolutionnait la façon dont on exploitait nos GPU avec CUDA. Cette solution permettait d'utiliser une carte graphique non pas pour le calcul d'une scène 3D, mais pour n'importe quel type de calcul. Un pari payant, puisque c'est ce qui fait aujourd'hui la force de la société dans les serveurs, voitures, la robotique, etc.

Il faut dire qu'un processeur graphique est avant tout la combinaison de très nombreuses unités mathématiques avec des caches, un accès direct au CPU via leur port PCI Express, etc. De quoi aiguiser les appétits. Ainsi, divers outils et API ont été mis à la disposition des développeurs avec le temps.

Outre CUDA, il a bien entendu le standard OpenCL du Khronos Group qui vise à proposer une solution unique (CPU, GPU, FPGA, etc.), quelle que soit la marque. De son côté, AMD s'est un temps cherché avant de se concentrer ces dernières années sur sa suite open source ROCm (Radeon Open Compute). 

Et alors que de nouveaux modèles haut de gamme ont été mis sur le marché ces derniers mois, nous avons décidé d'utiliser un test un peu différent de nos habitudes. Ainsi, il n'est pas question de jeu vidéo ou de rendu 3D professionnel, mais de puissance de calcul pour casser et tester la force d'un mot de passe via Hashcat.

Hashcat : une autre approche des performances d'un GPU

Cet outil open source a en effet l'intérêt d'être plutôt bien optimisé pour les différentes plateformes. Il exploite OpenCL du côté des CPU et GPU Intel, CUDA chez NVIDIA et ROCm pour les GPU d'AMD. 

Il est plutôt simple à prendre en main et dispose d'un outil de mesure de performance intégré. Comme sa documentation le montre, il consiste à retrouver un mot de passe depuis une empreinte (hash). Il gère plus de 200 algorithmes et applications. Plusieurs types d'attaques sont disponibles : force brute, dictionnaire, combinée, etc. 

Il est donc idéal pour tester la puissance de calcul d'un GPU puisque cela consiste le plus souvent à test des milliards de combinaison en un temps record. Une tâche très facilement parallélisable. 

Protocole de test

Pour notre test du jour, nous avons décidé de nous reposer sur un cas pratique afin de mesurer le niveau de performances de différents GPU, comme nous le faisons avec John the ripper pour nos tests de CPU. Il nous fallait néanmoins un mot de passe retrouvable dans un temps raisonnable et de manière reproductible.

Nous avons donc calculé l'empreinte MD5 (-m 0) du mot « benchmark » puis demandé à Haschcat de le retrouver via une attaque par force brute (-a 3) avec les optimisations proposées par l'outil (-O) :

hashcat64 -m 0 -a 3 -O 07978586e47c8709a63e895fbf3c3c7d

Selon nos essais, cette ligne de commande consiste à tester un tiers des possibilités avant de trouver la bonne solution, soit un peu plus de 77 000 milliards de combinaisons (megahashs, ou MH). Selon les cas, il nous faut d'un peu moins de 30 minutes à une heure pour retrouver ce mot de passe de neuf caractères.

Hashcat Benchmark

Notre machine de test est composée d'un Core i5-9600K accompagné de 16 Go de DDR4 (2 667 MHz) et d'une alimentation modulaire de 600 watts signée Cooler Master (80Plus Gold). Le tout est installé sous Windows 10 dans son édition October 2018, composants et logiciels à jour en date du 15 février 2019.

Pour ce test, nous avons utilisé les versions publiques des pilotes 418.81 WHQL (NVIDIA) et Adrenalin 19.2.21 sur l'intégralité de nos cartes graphiques, sans réutilisation de résultats effectués lors de tests antérieurs. La Radeon VII est opposée aux Radeon RX Vega 64 (Sapphire Nitro+) et GeForce RTX 2080 (Ti) de NVIDIA (Founders Edition).

Pour chaque relevé, nous effectuons deux tests consécutifs. Si les chiffres ne sont pas similaires (à 2% près), nous effectuons un troisième test et enregistrons la moyenne.

Les résultats

Une fois le test terminé, Hashcat produit un résumé (voir ci-dessu) indiquant le résultat trouvé, les détails de la méthode utilisée, mais également le temps nécessaire et la vitesse moyenne (MH/s). Nous relevons ce dernier chiffre et indiquons le temps nécessaire le nombre de calculs similaires pouvant être effectués dans une même journée :

Hashcat 5.10 Benchmark Radeon VII RX Vega 64 GeForce RTX 2080 TiHashcat 5.10 Benchmark Radeon VII RX Vega 64 GeForce RTX 2080 Ti

Comme on peut le voir ici, l'avance de la Radeon VII sur sa petite sœur est de 10 % seulement. Il faut dire que l'avantage procuré par les 16 Go de HBM2 à 1 To/s n'est sans doute pas exploité dans une telle application, qui doit donc se contenter de la fréquence supérieure de la puce et autres petites optimisations. 

Elle se retrouve ainsi aux alentours de 25 000 MH/s. Mais avec Turing, NVIDIA se démarque par une nette avance (+ 34 %) comme le montrent les scores de la GeForce RTX 2080 qui dépasse les 35 000 MH/s. Pour rappel, des scores légèrement supérieurs ont été relevés sur des GeForce GTX 1080 Ti.

La nouvelle architecture semble ici montrer tout son intérêt, sans que l'on sache si les unités Tensor sont exploitées. L'analyse d'une GeForce GTX 1660 Ti sera donc plutôt intéressante sur ce terrain.

La GeForce RTX 2080 Ti et ses 4352 CUDA Cores affichent un net gain par rapport à la RTX 2080 (+ 37 %). Un avantage qui continue de se payer au prix fort puisqu'une telle carte se trouve toujours aux alentours de 1 100/1 200 euros, contre 700/800 euros pour une RTX 2080 (+ 50/60 %).

Si vous voulez que nous analysions ces cartes graphiques dans d'autres environnements et avec d'autres applications, n'hésitez pas à nous le faire savoir en commentaire.

Commentaires (10)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar

Je ne m’y connais pas, mais pourquoi utiliser CUDA et ROCm plutot qu’OpenCL? Ca retirerai la variable “puissance du langage et optimisation” de l’équation non? Ou bien les deux langages constructeurs sont requis par chacune des marques?



Quant à savoir si les Tensor cores sont mis à profit, de ce que j’ai pu lire (par les utilisateurs a priori) sur les forums hashcat, ils ne sont pas utilisés et ce n’est même pas sur qu’ils puissent en tirer parti.

votre avatar

Intéressant.
Serait-il possible de faire le test avec des cartes graphique “non gamer” mais plutôt de designer, comme les Nvidia Quadro ?

votre avatar

Bowbie a dit:


Je ne m’y connais pas, mais pourquoi utiliser CUDA et ROCm plutot qu’OpenCL?


Ce sont les implémentations d’openCL pour chaque constructeur. Par exemple sous linux je ne peux pas installer ROCm à cause d’une incompatibilité liée à ma verison de pci-e (2) et du coup je ne peux pas utiliser l’openCL de ma RX470.



Sinon quand j’ai lu le test de la Radeon VII je me suis dit ça serait bien d’avoir un test des perfs avec ce genre d’outil et vous l’avez fait. :pciwin:



edit : est-ce que les perfs obtenues avec md5 sont extrapolables pour du SHA512 ? (un hash est un hash ou bien l’algo joue ?)

votre avatar

Sinon petite remarque : je pense que ça aurait été bien d’avoir les perfs de la 1080Ti qui est l’ancienne reine du cassage de mdp, pour la comparer avec les 2XXX. Histoire de voir l’apport des cores RT dans ce domaine.

votre avatar

Tr4ks a dit:


Sinon petite remarque : je pense que ça aurait été bien d’avoir les perfs de la 1080Ti qui est l’ancienne reine du cassage de mdp, pour la comparer avec les 2XXX. Histoire de voir l’apport des cores RT dans ce domaine.


Y’a un lien dans l’article, elle est au même niveau à priori (même si j’y comprends rien :D ).

votre avatar

dylem29 a dit:


Oups au temps pour moi j’étais passé à côté. :transpi:

votre avatar

Si vous voulez que nous analysions ces cartes graphiques dans d’autres environnements et avec d’autres applications, n’hésitez pas à nous le faire savoir en commentaire.


Bien vu de tester ces cartes dans un environnement autre que vidéoludiques :top:
Je serai bien curieux de voir le même panel de cartes testées avec des logiciel de montage vidéo (par exemple DaVinci résolve, qui possède une version gratuite très complète).
Le problème étant de trouver un paramètre à mesurer :/

votre avatar

bulubuluplopplop a dit:


Intéressant. Serait-il possible de faire le test avec des cartes graphique “non gamer” mais plutôt de designer, comme les Nvidia Quadro ?


Sur le fond ça change peu de choses sur un tel applicatif, les architectures sont identiques, donc les performances aussi et il n’y a pas d’optimisations spécifique pour des outils comme Hashcat (peut être à voir sur les perfs FP64 mais je ne sais pas à quel point c’est utilisé).



A voir, mais les constructeurs ne sont pas vraiment très chauds à prêter de tels produits en général (ce qui est un de nos problèmes pour des dossiers en cours).




Tr4ks a dit:


est-ce que les perfs obtenues avec md5 sont extrapolables pour du SHA512 ? (un hash est un hash ou bien l’algo joue ?)


Cela peut jouer sur les perfs, mais le souci était surtout de trouver un cas pratique avec un algo capable de casser un mot de passe réel. Après je peux faire tourner la suite de test complète, mais les résultats vont être illisibles, de toutes façons je vais voir pour intégrer Hashcat dans le protocole général.




Tr4ks a dit:


Sinon petite remarque : je pense que ça aurait été bien d’avoir les perfs de la 1080Ti qui est l’ancienne reine du cassage de mdp, pour la comparer avec les 2XXX. Histoire de voir l’apport des cores RT dans ce domaine.


Je n’ai pas de carte ici, d’où le lien dans l’article (elle a été mesurée à 25 000 MH/s dans de précédents tests). Comme dit, l’intéressant sera de regarder les performances autour de la 1660 Ti, notamment face à une 10602060 ;)




Charly32 a dit:


Bien vu de tester ces cartes dans un environnement autre que vidéoludiques :top: Je serai bien curieux de voir le même panel de cartes testées avec des logiciel de montage vidéo (par exemple DaVinci résolve, qui possède une version gratuite très complète). Le problème étant de trouver un paramètre à mesurer :/


Les applications vidéo commencent à être exploitées pour la partie computing, mais ça reste encore timide et surtout centré sur les effets. J’ai quelques essais en cours pour une intégration au protocole (comme sur tout ce qui est Deep/Machine Learning), mais rien d’encore assez abouti :chinois:

votre avatar

David_L a dit:


Je n’ai pas de carte ici, d’où le lien dans l’article (elle a été mesurée à 25 000 MH/s dans de précédents tests).


Hum je ne suis pas sur d’interpréter correctement les résultat du test, mais j’ai l’impression que sur le lien que vous donnez, les résultat du test MD5 c’est plutôt 38 500 MH/s ?



Si vous voulez (et que j’y pense) je pourrais effectuer le test chez moi.



PS : pourquoi le formatage des commentaires est différents de NextInpact et similaire à Reddit ? :D

votre avatar

Paraplegix a dit:



My bad j’ai sauté une ligne dans ma lecture, corrigé, merci pour le coup d’oeil :D

Radeon VII, RX Vega 64, GeForce RTX 2080 (Ti) : quelles performances sous Hashcat ?

  • Hashcat : une autre approche des performances d'un GPU

  • Protocole de test

  • Les résultats

Fermer