3DMark permet désormais de tester les performances de votre machine avec Vulkan

3DMark permet désormais de tester les performances de votre machine avec Vulkan

Bientôt sous Linux ?

Avatar de l'auteur
David Legrand

Publié dans

Logiciel

23/03/2017 2 minutes
36

3DMark permet désormais de tester les performances de votre machine avec Vulkan

Alors que plusieurs studios commencent à utiliser Vulkan dans leurs jeux, Futuremark a décidé d'intégrer l'API dans son test d'Overhead. L'occasion de voir comment elle se débrouille dans différentes conditions.

Futuremark vient d'annoncer une mise à jour de 3DMark. Celle-ci n'est pas anodine puisqu'elle apporte une évolution de taille : le support de l'API graphique multiplateformes Vulkan. 

Cela passe en fait par une nouvelle version de la scène de test API Overhead qui permet désormais de comparer l'efficacité de DirectX 11, 12 et de Vulkan. Le score est indiqué en nombre de Draw calls, que peut encaisser votre machine en une seconde. Pour cela, un objet est répété des milliers de fois dans une même image de manière incrémentale jusqu'à ce que les performances tombent sous les 30 fps :

Cela devrait aussi permettre d'avoir une meilleure idée des performances de Vulkan en fonction du CPU, du GPU ou même du pilote utilisé. Un bon choix, alors que cette API est de plus en plus utilisée. Pour référence, nous avons relevé les scores suivant avec une machine de test sous Windows 10 (build 1607) et un processeur Ryzen 7 1700, accompagné de 16 Go de DDR4 et d'une Radeon RX 480 Nitro de Sapphire :

  • DirectX 11 ST : 1 143 528
  • DirectX 11 MT : 1 160 624
  • DirectX 12 : 21 562 063
  • Vulkan : 18 999 233

Pour faire fonctionner le test API Overhead, 3DMark Advanced est nécessaire, ainsi qu'une machine à jour disposant de 6 Go de mémoire au minimum et d'un GPU compatible avec Vulkan 1.0.

36

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Commentaires (36)


Pas cool Vulkan moins performant que DX12 :(


pas de score en DX11 pour qu’on se rendre compte du gap entre DX11, 12 et vulkan ?








Malesendou a écrit :



http://www.3dmark.com/3dm/18793229?



Pour ma part.





Comme quoi Nvidia gère mieux l’API qu’AMD… ils doivent encore avoir mantle au travers de la gorge <img data-src=" />









alf a écrit :



Pas cool Vulkan moins performant que DX12 :(







C’est normal : Le Pentium accélère l’internet, le Ryzen 7 ralentit les jeux <img data-src=" />



Nan, en fait, David en avait tellement marre d’OC ses Ryzen avec sa RAM @2133 <img data-src=" /> qu’il a décidé de les benchmarker en downclock… <img data-src=" />



J’ai rajouté le score ;)


Du coup chez toi vulkan est meilleur que directx12 si je sais lire ces chiffres (attention, c’est moi qui avais annoncé les 15 millions d’amende de la hadopi la dernière fois, corrigez-moi si c’est faux) ?








alf a écrit :



Pas cool Vulkan moins performant que DX12 :(







Attention à ne pas tirer de conclusions générales à partir d’un seul test, sur une seule machine, avec un seul logiciel…



Je pige pas la différence de draw calls entre DX11 et DX12 : 1 million contre 21 millions <img data-src=" />

DX12 est 21x plus rapide que DX11 ? <img data-src=" />


Oui, c’est même le principe de DX12 et des API bas niveau de ce genre (dont Metal ou Vulkan)


Mais, non, DX 12 n’est pas 21 fois plus rapide que DX 11 dans une utilisation classique. Les “Draw call” sont des instruction de correction/modification de l’affichage des graphismes qui permettent d’éviter de calculer des endroits qui ne sont pas affichés (si j’ai bien compris). En tout état de cause ces API permettent surtout aux développeur d’abuser des draw calls ce qu’ils ne pouvaient pas se permettre auparavant, ce qui augmente les performances mais pas d’un facteur de 21x !


Hmm oui, je sais bien. Mais où ais-je dit le contraire ?


Donc si je pige tout bien, une API récente comme DX12 ou Vulkan permet “d’afficher”, si les devs font appel à des fonctions spécifiques, plus d’objets dans une scène graphique pour un coût identique ou moindre qu’avec une API plus ancienne ?


C’est dommage que ce test des différentes API ne soit accessible que dans la version payante de 3dMark.


Un draw calls correspond à une demande au GPU de dessiner. Cette opération prend du temps au CPU selon les API.



Sur Dx11, un draw call est relativement couteux, ce qui fait que les développeurs essaient d’en faire le moins possible en mettant en commun le maximum d’opérations possibles (dessiner tous les objets ayant la même texture en un seul draw call par exemple).

Là où Vulkan et Dx12 sont intéressants, c’est que le cout d’un draw call est fortement réduit.



Donc le bench ne compare pas les performances de Dx11 avec Dx12/Vulkan, il compare juste le cout du draw call. On peut en déduire qu’un draw call coute 21x moins sur Dx12 que sur Dx11 (c’est pas aussi simple, mais ça donne une idée).



Classiquement, si tu dois dessiner 20 fois le même object, sur Dx11, tu vas préparer le GPU pour qu’il dessine les 20000 objets en une seule fois. Sur Dx12/Vulkan, tu peux te permettre de dessiner chaque objet individuellement parce que ça te coutera pas plus cher.



Donc ce n’est pas nécessairement que tu peux afficher plus d’objets, mais il te faut être beaucoup plus malin sur Dx11 quand tu construit tes commandes à envoyer au GPU. Sans compter les cas où tu devras quand même séparer les draw calls.








David_L a écrit :



J’ai rajouté le score ;)





<img data-src=" />



Oui.



Mais en même temps, il faut être malin également pour coder correctement sur D12 et Vulkan…


<img data-src=" />

Bien entendu. Je n’ai jamais écris de code en Dx12/Vulkan, mais j’imagine bien qu’il y a des nouveautés intéressantes qui ne demande qu’à être exploitée.

Mon point était surtout que Dx12/Vulkan enlève des contraintes pour optimiser les perfs (en contrepartie, j’ai l’impression que ces API laissent plus facilement le développeur faire n’importe quoi).


Merci pour l’explication !<img data-src=" />


Intel Core i7 3770

16Go DDR3 2200MHz

nVidia Geforce Titan Black x2 (SLI)

nVidia drivers: 378.78

DirectX 11 ST : 1 684 516DirectX 11 MT : 2 625 404DirectX 12 : 16 882 258Vulkan : 12 636 039

Le SLI doit être inutile dans ce genre de test (n’apporte rien), même si utilisé.


Merci pour l’explication, j’irai me coucher moins con ce soir.&nbsp;<img data-src=" />








m1k4 a écrit :



Comme quoi Nvidia gère mieux l’API qu’AMD… ils doivent encore avoir mantle au travers de la gorge <img data-src=" />





Wut? Heureusement qu’une 1080 s’en sort mieux qu’une RX480 (bien que le CPU joue pas mal sur les draw calls il me semble).

N’oublions pas non plus que DX12 est une API descendante de Mantle, en quelque sorte.



&nbsp;





Strimy a écrit :



&nbsp;(en contrepartie, j’ai l’impression que ces API laissent plus facilement le développeur faire n’importe quoi).





“Un grand pouvoir implique de grandes responsabilités” <img data-src=" />









Strimy a écrit :



Mon point était surtout que Dx12/Vulkan enlève des contraintes pour optimiser les perfs (en contrepartie, j’ai l’impression que ces API laissent plus facilement le développeur faire n’importe quoi).





Bah si il fait 20 000 draw call au lieu d’un, il perdra quand même 20 000 / 21, soit une division de ses perf par 1000, donc je pense pas qu’il soit plus facile de faire n’importe quoi (les API haut niveau sont toujours là) mais ça ne rendra pas l’optimisation plus facile non plus (faut encore grouper les draw call au maximum, par exemple).









Charly32 a écrit :



N’oublions pas non plus que DX12 est une API descendante de Mantle, en quelque sorte.



&nbsp;

A ce que j’en sais, Mantle a été fait à partir des travaux conjoint d’AMD et l’équipe DX… Donc ça serait plutôt l’inverse.



Pour info, j’ai refait un test:

http://www.3dmark.com/3dm/18806461?

Et j’ai regardé:




  • DirectX 12 : GPU1 à 100% et GPU2 à 50-75%

  • Vulkan (le SLI ne fonctionne pas dessus): &nbsp;GPU1 à 100% et GPU2 à 0%


Bizarre, j’ai mieux avec une config en tous points inférieure à part la ram.



http://www.3dmark.com/3dm/18808184?


Oui, je me suis emporté au départ (d’où l’inconsistance dans mon message que j’ai repris <img data-src=" /> ). Le point est quand même là, tu peux te permettre de faire plus de draw calls qu’avant. Tu noteras quand même que dans le bench on tape des millions de draw calls, ce qui n’est pas représentatif de la réalité <img data-src=" />

Généralement, on est plutôt dans les 10000 max, et on a d’ailleurs vu que les jeux consoles explosaient largement ce nombre (comme Assassin’s creed Unity qui en fait 50000 mettant à mal DirectX11 sur PC)


Non, regarde ta ram. ^^








Charly32 a écrit :



Wut? Heureusement qu’une 1080 s’en sort mieux qu’une RX480 (bien que le CPU joue pas mal sur les draw calls il me semble).





T’as lu en diagonale mon copain, rien n’a voir avec ce que je disais.



Ce que je disais c’est que suite aux premiers résultats, les cartes AMD obtiennent des scores moins élevés avec Vulkan qu’avec DX12.

Chez Nvidia c’est l’inverse.



(peux pas edit)

Oh my bad également, j’avais oublié un mot dans mon premier post :

“Comme quoi Nvidia gère mieux l’API Vulkan qu’AMD”








Bejarid a écrit :



&nbsp;

A ce que j’en sais, Mantle a été fait à partir des travaux conjoint d’AMD et l’équipe DX… Donc ça serait plutôt l’inverse .





Dans la philosophie, Mantle est en rupture par rapport à DX11. Et Mantle est sortie avant DX12.

Même s’il y a eu du travail commun avec les équipes DX pour la mise au point de Mantle, c’est bien&nbsp; AMD qui a décidé d’assumer l’idée, les coûts et les risques de ce projet, d’où mon commentaire.

Enfin, j’ai jamais eu vent de coopération étroite avec les équipes DX de Microsoft (contrairement au studio Dice qui était partenaire), si tu as une source, je suis preneur <img data-src=" />

&nbsp;



m1k4 a écrit :



T’as lu en diagonale mon copain, rien n’a voir avec ce que je disais.



Ce que je disais c’est que suite aux premiers résultats, les cartes AMD obtiennent des scores moins élevés avec Vulkan qu’avec DX12.

Chez Nvidia c’est l’inverse.





En lisant ta phrase, j’ai eu deux Interprétations possibles :




  • soit tu comparais les résultats entre DX12 et Vulkan pour chaque carte, et tu déduisant que nVidia gérait mieux Vulkan que AMD car le score Vulkan était plus élevé que celui DX11 chez les verts

  • soit tu comparais les résultats de Vulkan entre les deux cartes.



    Comme rien d’après les résultats ne permet de dire que c’est pas AMD qui gère mieux DX12 que nVidia, j’ai opté pour la deuxième hypothèse (après tout, en stoppant le dév de Mantle en 2015,AMD conseillait aux dév de se concentrer sur DX12).

    Du coup je me suis planté <img data-src=" />



Pour ma part : Vulkan&gt;DX12&gt;DX11



https://imgur.com/gallery/UohRs



C’était pareil quand le test Mantle était là



Le Multi-GPU n’est pour le moment pas compatible avec OpenGL/Vulkan, une mise a jour majeure de Vulkan annoncée par le Khronos Group incluera le support du Multi-GPU



Sinon ma config donne ça :

Ryzen R7 [email protected]

MSI Gaming X RX 480 8Gb

16Gb DDR4 Kingston 2400mhz


Petite question qui peut paraitre stupide, les tests sont réalisés dans quel ordre ? Est-ce qu’il est possible que les Turbo des CPU et GPU puissent affecter les résultats des tests avec un handicap pour le dernier à être lancé ?


Non mais t’inquiète je me suis re-corrigé derrière, c’est de ma faute j’avais oublié de préciser au départ <img data-src=" />


Oui mais ça me semble bizarre que quelques mhz sur la ram fassent une telle différence sous Dx12 et Vulkan, même si ça doit être des appels bas niveau etc. Après je croyais qu’il y avait 11GB de Vram sur la 1080 mais en fait non, y en a 8 comme sur la 1070.


Ben le but de Vulkan et DX12 s’est de libéré de la puissance CPU.



Ma PC12800 (12,8go/s) est quand même bien inférieur à ta PC17100 (17,1go/s) puisque je lui rend presque 5 go de donnée à la seconde.



Sinon oui, GTX 1080 c’est bien 8Go de Vram.