Le Ray Tracing sans RT Cores, c’est possible – l’exemple de la Titan V

2

Alors que le Ray Tracing a été présenté comme l’innovation majeure de l’architecture Turing, et rendu disponible avec le jeu Battlefield V, on a jusqu’à présent pensé que cette technologie n’est disponible que sous les GeForce RTX 2000. Mais voila, une récente nouvelle nous informe qu’un utilisateur de la TITAN V a réussi à activer le Ray Tracing sous Battlefield V. Comment cela est-il possible ?

Petit récapitulatif :

Déjà, commençons par expliquer ce qu’est le Ray Tracing. On devrait plutôt parler de la technique dite en temps réel, car le concept de Ray Tracing n’est pas novateur en soit. Il s’agit d’un procédé visant à afficher les réverbérations de la lumière sur les objets. Rien de transcendant en soit, car c’est une technique qui date des années 1990.

L’innovation de Nvidia est le fait que le rendu est calculé en temps réel, alors que la technique traditionnelle se fait par rastérisation (Donc pré-calculé). De ce fait, on peut rendre les projections plus réalistes et complexes, mais cela demande une plus grande puissance de calcul.

Publicité

Avec l’architecture Turing, Nvidia intègre les RT Cores qui permettent le rendu temps réel du Ray Tracing. Selon les dires de Nvidia, la TU102 (la puce la plus grosse de Turing) peut pointer jusqu’à 10 GigaRay/s avec ses 72 RT Cores. Mais cette valeur n’est pas en soit bien significative, et ne traduit pas trop la manière dont est précisément calculé le rendu.

Les différences entre VOLTA et TURING :

La TITAN V est une carte puissante en soit, mais n’appartient pas à l’architecture Turing, mais Volta, inaugurée 1 an auparavant. Spécialement dédiée aux professionnels, Volta dispose d’une puissance formidable en FP64 (Pas loin des 7.5 TFLOPs), et est également l’architecture qui incorpore pour la première fois dans un GPU les Tensors Cores, des unités dédiées aux calculs FP16 à forte vitesse (64 opérations/cycles) pour le Deep Learning et Inférence.

Quand on compare les cores SM de Volta et Turing, nous voyons que les deux architectures sont à 90% identiques: Des cores SM à 64 unités CUDA, les Tensors Cores, les unités INT32 indépendants. Les seules différences sont: l’absence d’unités FP64 chez Turing, et le fameux RT Core. En soit, Turing, c’est du Volta tout craché, mais optimisée pour le public.

Le comment de cette prouesse ? En fait, c’est une évidence :

Mais comment la puce Volta arrive à faire du rendu temps réel sans perte de performances ? On finit par comprendre que les RT Cores ne sont pas obligatoires pour effectuer le rendu temps réel, mais destinés à rendre plus efficace l’équilibre des charges de calculs.

Quand on lit le dossier technique Turing, section RT, on découvre que les calculs de rendu temps réel sont départagés dans tous les composants du GPU.

  • 40% du temps sur les RT Cores
  • 20% du temps sur les Tensors Cores
  • 80% du temps sur les cores CUDA FP32
  • 28% du temps sur les cores CUDA INT32

On constate bien un partage des ressources, visant à optimiser le rendu mais aussi la consommation générale de la puce. Les cores CUDA FP32 sont en grande majorité employés.

TITAN V
TITAN V

La TITAN V n’a que les RT Cores d’absents. Cela n’empêche pas de partager au mieux les calculs, surtout que la GV100 dispose de plus d’unités CUDA et de Tensors Cores.

Verdict :

La GV100 de la TITAN V est donc tout à fait capable d’effectuer le rendu Ray Tracing temps réel sans problèmes.

D’ailleurs, rajoutons que les GeForce GTX 1000 « Pascal » peuvent aussi en faire, mais beaucoup plus lent, car absence d’unités Tensors, pas d’unités INT32 (Étant mixé avec les FP32) et FP16 extrêmement faible.

A coté, les Radeon GCN, surtout les Vega, ont plus de chance d’effectuer le rendu plus rapidement que Pascal avec le FP16 à double vitesse.

On pourrait donc se poser légitimement la question sur le pourquoi Nvidia s’est ennuyé à concevoir une nouvelle unité de calcul qui est finalement pas nécessaire pour le bon fonctionnement du Ray-Tracing, qui semble prendre une place importante dans les clusters, place qui aurait pu être employé pour mettre plus d’unités CUDA, et ainsi améliorer l’écart des performances entre Pascal et Turing. Des choix étranges qui ne semblent pas être compris par certains acteurs du marché.

S’abonner
Notifier de
guest

2 Commentaires
Newest
Oldest Most Voted
Inline Feedbacks
Voir tous les commentaires
BASILE
BASILE
12 janvier 2019 19h44

les enflures !!!! (je pèse mes mots)

Jack
Jack
14 janvier 2019 18h08
Répondre à  BASILE

il faut bien enfumer les clients avant de les griller 😀