• [^] # Re: Généralisation du modèle de programmation d'un GPU...

    Posté par . En réponse au journal Ca fuse chez Xorg. Évalué à 10.

    Il ne peut y avoir de généralisation de l'interface des GPU comme il peut y en avoir une pour les cartes réseaux où autre périphériques. En effet, les cartes réseaux et la grand majorité des périphériques répondent à des standards bien définis (Ethernet, Wifi, usb, ...) alors qu'une carte graphique doit accélérer le rendu d'objets au travers au travers de polygones, il s'agit la d'une définition bien vague et qui laisse beaucoup de libertés aux concepteurs de hw. Cette liberté est en partie cadrée par microsoft au travers de Direct3D. Toujours est il que les différences matérielles de bas niveau me semblent bien trop importantes pour pouvoir faire l'objet d'une unification.

    Enfin une telle unification se ferait au détriment d'un acteur, celui qui a le meilleur driver. Si un même driver peut faire fonctionner les différentes cartes alors les investissements fait dans l'écriture de celui-ci profiteraient à la concurence. Je doute qu'aucun des trois acteurs est envie d'aller dans ce sens.

    Le problème dont il est ici question est tout autre (GEM vs TTM). Durant de longue années il n'y pas eu de gestionnaire de mémoire digne de ce nom sous linux. Aujourd'hui certaines cartes graphiques ont plus de mémoire qu'il n'y de RAM dans l'ordinateur. Par ailleurs les gouleaux d'étranglement continuent de se multiplier. Le débit entre le GPU et sa mémoire est sans commune mesure avec celui du CPU avec la RAM. De même le débit entre la RAM et le GPU peut être particuliérement impacté par l'architecture et je pense ici notament aux architectures NUMA qui semblent être la voie choisit pour le futur.

    Il devient donc évident qu'on ne peut se permettre de gérer la mémoire vidéo à la légére et qu'il faut minimiser le déplacement des objets entre VRAM et RAM. GEM est conçu dans le cadre de carte qui n'ont pas de VRAM, il n'a donc pas exactement les mêmes objectifs. TTM est bien trop complexes (une bonne métaphore : "take a gun to kill a fly").

    Enfin le fond du problème ici c'est qu'intel a mit les moyens pour le dévelopement de drivers video efficaces sous linux pour son matériel. Si aucun des autres constructeurs NVidia ou AMD ne fait de même, on risque de se retrouver avec une infrastructure qui s'adaptera mal avec les cartes ayant leur propre mémoire vidéo. Tout revient donc à une question de moyens, d'argent. Il faut prendre conscience qu'aujourd'hui le dévelopement du noyau est gouverné par ceux qui investissent de l'argent dedans, ce qui me semble normal dans le cadre des régles qui régissent les interactions dans nos sociétés au sens large.