[HFR] Actu : Tile rendering pour Maxwell et Pascal ?

Actu : Tile rendering pour Maxwell et Pascal ? [HFR] - HFR - Hardware

Marsh Posté le 01-08-2016 à 16:03:31   0  

David Kanter de real world technologies nous a indiqué ce matin avoir publié une analyse intéressante concernant les GPU Maxwell et Pascal de Nvidia. Un test ...
Lire la suite ...


Message édité par tridam le 01-08-2016 à 16:09:25
Reply

Marsh Posté le 01-08-2016 à 16:03:31   

Reply

Marsh Posté le 01-08-2016 à 16:24:25   4  

...Dingue! Quand on a connus une vielle neogeo ou un CPS1 qui bossaient avec des tiles de 8x8 et palette approprié pour faciliter les opérations de décalages sur les LSI/Blitters custom de l'époque.
Comme quoi!
 

Reply

Marsh Posté le 01-08-2016 à 16:30:01   1  

Maxwell 1 est concerné aussi?

Reply

Marsh Posté le 01-08-2016 à 16:49:25   0  

C'est le principe même d'une optimisation : cerner quelles primitives sont le plus utilisées / utiles, les optimiser du mieux possible, puis essayer de que les cas généraux puissent se simplifier au maximum vers ces primitives. Un gros triangle, gourmand en mémoire et en calcul, qui ne sera pas forcement utile ? Il "suffit" de le diviser en plus petits triangles pour calculer réellement la partie affichée.

Reply

Marsh Posté le 01-08-2016 à 17:01:37   1  

AMD a t'il recours a des optimisations équivalentes ou s'en rapprochant sur ses Radeons ?

Reply

Marsh Posté le 01-08-2016 à 19:02:58   1  

Forcément , Si c'est maitre Kanter qui le dit , ça mérite analyse [:pek6tron]    :jap:


Message édité par le 01-08-2016 à 19:03:54
Reply

Marsh Posté le 01-08-2016 à 19:17:13   1  

Encore un article de grande qualité. Merci pour l'analyse Damien ;)

Reply

Marsh Posté le 01-08-2016 à 19:51:33   0  

C'est fou quand même qu'on ne découvre ça que maintenant à propos de Maxwell.

Reply

Marsh Posté le 01-08-2016 à 20:47:21   1  

on peut aussi faire des optimisations sur radeon mais faut le coder  
 
ci dessous un post d'un dev sebbbi (https://forum.beyond3d.com/threads/tile-based-rasterization-in-nvidia-gpus.58296/#post-1934106)
 
"Some years ago I did ROP cache experiments with AMD GCN (7970) in order to optimize particle rendering. GCN has dedicated ROP caches (16 KB color, 4 KB depth). In my experiment I split the rendering to 64x64 tiles (= 16 KB). This resulted in huge memory bandwidth savings (and over 100% performance increase), especially when the overdraw was large (lots of full screen alpha blended particles close to the camera). You can certainly get big bandwidth advantages also on AMD hardware, as long as you sort your workload (by screen locality) before submitting it."

Reply

Marsh Posté le 02-08-2016 à 01:33:40   1  

Je me demande si ça n'expliquerait pas certains bugs d'affichage spécifiques aux séries 9x0 et 10x0 dans quelques jeux précis, p.ex The Secret World:
 https://pbs.twimg.com/media/CAQMhHcWoAA7ksN.jpg
 
S'il faut gérer ça en driver/software, il y a peut-être un certain nombre de vieux titres affectés...

Reply

Marsh Posté le 02-08-2016 à 01:33:40   

Reply

Marsh Posté le 02-08-2016 à 05:00:08   5  

Salut Damien,
 
Je suis l'autheur du programme utilisé dans l'article que David à écrit. J'ai voulu tester ton hypothèse que les tiles viennent de la rastérisation des gros triangles. J'ai appliqué le même test en affichant la scène Sponza, et j'ai trouvé que les tiles se trouvent même sur les objets composés de petit triangles, comme les feuilles qui enveloppent les piliers.
 
Voici des images de ce test: http://imgur.com/a/6pPha
 
L'image du centre est la plus intéressante. Elle démontre la rastérisation de quelques feuilles, et on peut voir que ça se passe toujours en bloc de tiles.

Message cité 1 fois
Message édité par nlguillemot le 02-08-2016 à 05:03:23
Reply

Marsh Posté le 02-08-2016 à 08:45:39   1  

Serait-ce les avancées sur les Tegra, notamment le K1 puis X, qui les ont poussés à utiliser cela sur tout leur GPU?

Reply

Marsh Posté le 02-08-2016 à 10:04:14   2  

Test effectuer sur GCN : https://www.youtube.com/watch?v=w5EWxVwSKI0
 

Reply

Marsh Posté le 02-08-2016 à 12:20:02   0  

Je me demande si nVidia profite de ses facilités de "rejouer" la géométrie plusieurs fois et la router vers différents viewports (viewport multicast). Et est-ce que ça marche si les triangles sont rendus dans des draw calls différents ?

Reply

Marsh Posté le 02-08-2016 à 14:36:14   1  

nlguillemot a écrit :

Salut Damien,
 
Je suis l'autheur du programme utilisé dans l'article que David à écrit. J'ai voulu tester ton hypothèse que les tiles viennent de la rastérisation des gros triangles. J'ai appliqué le même test en affichant la scène Sponza, et j'ai trouvé que les tiles se trouvent même sur les objets composés de petit triangles, comme les feuilles qui enveloppent les piliers.
 
Voici des images de ce test: http://imgur.com/a/6pPha
 
L'image du centre est la plus intéressante. Elle démontre la rastérisation de quelques feuilles, et on peut voir que ça se passe toujours en bloc de tiles.


 
Mmmm intéressant et étrange ! Sujet à creuser, j'ai toujours tendance à penser que c'est une optimisation opportuniste sur des cas spécifiques et que du tiled-based rendering généralisé n'est pas possible.

Reply

Marsh Posté le 02-08-2016 à 14:53:26   1  

Ce thread est intéressant : http://www.neogaf.com/forum/showthread.php?t=1256067
 
On y apprends que ce secret était connu de la concurrence depuis un certain temps déjà, et que les Maxwell/Pascal sont capable de mettre en cache un certain nombre de triangles (dépend du poids des sommets) et même de les réordonner. Au delà de quelques milliers de triangles le tampon est plein et le GPU repasse en mode immédiat classique. Ça expliquerait pourquoi nVidia a subitement mis de gros caches (et un paquet de ROP ?) dans ses GPU...
 
Votre test de tessellation est peut-être influencé par cette capacité, même si le manque d'efficacité des GPU AMD peut s'expliquer de différentes manières ;) .

Reply

Marsh Posté le 02-08-2016 à 16:17:42   1  

Je crois que le plus simple est de demander à Nvidia ^^

Reply

Marsh Posté le 02-08-2016 à 16:32:30   9  

Xixou2 a écrit :

Je crois que le plus simple est de demander à Nvidia ^^


 
si ils répondent aussi clairement qu'a propos de la compatibilité dx12 de leur gpu ça risque d'être compliqué :D

Reply

Marsh Posté le 02-08-2016 à 17:35:26   1  

oui c'est ce que je me disais en écrivant ma phrase ^^

Reply

Marsh Posté le 03-08-2016 à 13:31:23   0  

Tu m'étonnes :lol:

Reply

Marsh Posté le 08-08-2016 à 13:49:43   0  

D'après certains commentaires du site realworldtech, prenant en exemple les GPU Maxwell, pour chaque tile, il bufferisent les triangles transformés dans un tampon jusqu'à atteindre 64 ko de données. Ensuite, ces 64 ko de géométrie sont rasterisés grosse tile par grosse tile (une grosse tile représentant toujours 512 ko de données (couleur + Z)), et une fois le framebuffer complètement traité, le GPU calcule et met en cache les 64 ko de géométrie suivants, etc.
 
Fondamentalement ça ne change pas grand chose d'un point de vue extérieur au GPU, la rastérisation se fait dans un ordre un peu différent de ce qu'on voit d'habitude mais l'ordre des triangles est bien conservé, et la portion du framebuffer correspondant à une grosse tile est traitée dans le GPU au lieu d'être fait directement en mémoire. D'où les économies importantes de bande passante mémoire en cas d'overdraw.
 
Cette approche ne semble nécessiter que de petites modifications sur les rasterizers et sur les ROP, principalement pour être capable de travailler avec le cache L2, or nVidia avait justement dépoussiéré leurs rasterizers avec Maxwell (conservative rasterization, MSAA très flexible, ...), et ça explique la grosse augmentation de la taille du cache L2, ainsi que les ROP en surnombre s'ils devaient tous écrire directement en mémoire (on sait maintenant que ça n'est pas le cas).


Message édité par ockiller le 08-08-2016 à 16:16:37
Reply

Marsh Posté le 16-08-2016 à 14:46:35   1  

Cool ! Je vais ressortir ma Kyro 2

Reply

Marsh Posté le 08-03-2017 à 20:37:15   0  

Apparemment amd va faire pareil avec vega.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed