Dans le contexte: Apple garde le fonctionnement interne de la famille de processeurs M1 secret du public, mais des développeurs dédiés l’ont rétro-ingénierie pour créer des pilotes open source et une distribution Linux, Asahi Linux, pour les Mac M1. Au cours du processus, ils ont découvert des fonctionnalités intéressantes.

Dans ses efforts pour développer un pilote graphique open source pour le M1, Alyssa Rosenzweig a récemment trouvé une bizarrerie dans le pipeline de rendu du GPU du M1. Elle rendait des géométries 3D de plus en plus compliquées et est finalement arrivée à un lapin qui a fait sortir le bogue du GPU.

Fondamentalement – et veuillez noter que ceci et tout ce que je suis sur le point de dire est une simplification excessive – le problème commence par le faible accès du GPU à la mémoire. C’est un GPU puissant, mais comme le SoC de l’iPhone de la série A avec lequel il partage un ancêtre, il faut des raccourcis pour préserver l’efficacité.

2022 05 15 Image

Au lieu de rendre directement dans le framebuffer comme le ferait un GPU discret, le M1 prend deux passes d’une image : la première trouve les sommets, et la seconde fait tout le reste. De toute évidence, la deuxième passe est beaucoup plus intensive, donc entre les passes, le matériel dédié segmente le cadre en tuiles (mini-frames, essentiellement) et la deuxième passe est prise une tuile à la fois.

Publicité

La mosaïque résout le problème de ne pas avoir suffisamment de ressources mémoire, mais pour pouvoir reconstituer les tuiles dans un cadre plus tard, le GPU doit conserver une mémoire tampon de toutes les données par sommet. Rosenzweig a constaté que chaque fois que ce tampon débordait, le rendu ne fonctionnait pas. Voir le premier lapin, ci-dessus.

Dans l’une des présentations d’Apple, il est expliqué que lorsque le tampon est plein, le GPU produit un rendu partiel – c’est-à-dire la moitié du lapin. Dans le logiciel d’Apple, le tampon en question s’appelle le tampon de paramètresun nom apparemment tiré de la documentation PowerVR d’Imagination.

Imagination est une société basée au Royaume-Uni qui, comme Arm, conçoit des processeurs qu’elle octroie sous licence à d’autres sociétés. Apple a signé un accord avec la société au début de 2020 qui permet à Apple de concéder sous licence une large gamme de sa propriété intellectuelle. Il est clair que le M1, qui a été mis sur le marché fin 2020, utilise son architecture GPU PowerVR comme une sorte de base pour son GPU.

Quoi qu’il en soit, revenons au lapin. Comme vous l’avez peut-être deviné, les rendus partiels peuvent être additionnés pour créer un rendu du lapin entier (mais avec une douzaine d’étapes supplémentaires entre les deux, bien sûr).

2022 05 15 Image 4

Mais ce rendu toujours n’est pas tout à fait juste. Vous pouvez voir des artefacts sur le pied du lapin. Il s’avère que c’est parce que différentes parties du cadre sont divisées entre un tampon de couleur et un tampon de profondeur, et ce dernier se comporte mal lorsqu’il est chargé avec des rendus partiels.

Une configuration rétro-conçue du pilote d’Apple résout le problème, puis vous pouvez enfin rendre le lapin (ci-dessous).

2022 05 15 Image 3

Il n’y a pas que le pilote graphique open source de Rosenzweig pour le M1 qui saute à travers tous ces cerceaux pour rendre une image : c’est ainsi que fonctionne le GPU. Son architecture n’a probablement pas été conçue avec le rendu 3D à l’esprit, mais malgré cela, Apple en a fait quelque chose qui peut rivaliser avec les derniers GPU discrets, voire les surpasser, comme le prétend Apple. C’est cool.

Pour une explication plus approfondie (et techniquement précise) du rendu du lapin et pour d’autres explorations du M1, assurez-vous de consulter Le blog de Rosenzweig et le Asahi-Linux site Internet.

Crédit d’en-tête : Maçonnerie

Rate this post
Publicité
Article précédentGeForce RTX 3060 contre Radeon RX 6600 XT
Article suivantVérification du mot de passe WiFi : comment connaître le mot de passe WiFi sur Android Mobile, iPhone, Windows et macOS
Avatar De Violette Laurent
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici