Accueil » Actualité » Interview de Tim Sweeney

Interview de Tim Sweeney

Notre confrère Beyond3D vient de publier une interview de Tim Sweeney, l’emblématique programmeur en chef des différentes versions du ‘Unreal Warfare’, le moteur de jeu d’Unreal. L’interview se révèle particulièrement intéressante, partant de l’histoire du développement du moteur jusqu’à sa version actuelle, aux sentiments de Tim Sweeney par rapport aux cartes 3D modernes et aux technologies comme le PCI-Express, sans oublier d’évoquer le futur de la 3D. Un exemple de question (traduit de l’américain) :

Q. D’après vous, quel est actuellement le plus gros obstacle à surmonter au niveau des limites matérielles des GPU ? Nous avons vu que les shaders permettent d’aller plus loin que le simple éclairage ou texturing, et nous assistons à l’avènement de bus plus rapides… quels problèmes spécifiques voudriez-vous voir résolus ?

R. Nous avons aujourd’hui atteint un seuil intéressant, parce que les GPU sortent d’une période obscure où ils pouvaient être considérés comme des jouets d’accélération de jeux, et deviennent désormais des unités de calculs généraux hautement parallélisables à part entière. Le dernier pas sera franchi quand les constructeurs de GPU ne se poseront plus la question ‘A combien d’instructions de shading devons nous limiter notre GPU ?’ mais auront pour but de créer des unités réellement flexibles (ndF : le terme original est « true Turing-complete computing devices », en référence à la machine de Turing).

Mais nous y sommes presque arrivés. Il s’agit simplement de ne plus considérer, par exemple, une limite de 1024 instructions de shading comme une limite hardware qu’il est impossible de modifier, mais de la considérer comme un cache de 1024 instructions stockées en mémoire centrale. Ainsi, un shader de 1023 instructions sera exécuté à pleine vitesse, alors qu’un shader d’une longueur de 5000 instructions tournera plus lentement, mais tournera, au lieu de retourner une erreur ou de corrompre les données. Il faut arrêter de regarder la mémoire vidéo comme une ressource de taille limitée, mais l’intégrer à la pyramide réalisant le lien entre les unités de stockage très rapides mais contenant peu de données (les buffers), jusqu’aux unités les plus lentes, mais pouvant contenir le plus de données (soit le principe de la mémoire virtuelle qui est utilisé en informatique depuis plus de 30 ans). Les constructeurs de GPU doivent surmonter des problèmes techniques complexes, mais également des réticences d’esprit.

Sur le long terme, ce qui définira un GPU (par opposition aux CPU) sera sa capacité à gérer un grand nombre de flux de données (que ces données soient des pixels, des vertices ou quelque chose de complètement arbitraire) indépendantes en parallèle, tout en préservant l’intégrité des données tout au long du traitement – et ainsi évitant le type de risque qui oblige certains algorithmes CPU au single-thread (ndF : algorithmes ne pouvant être séparés en plusieurs tâches exécutables par plusieurs CPU en même temps). Les implications sur les performances de chaque composant seront également très différentes – sur un GPU, les calculs sur les nombres à virgule flottante seront probablement plus rapides, l’exécution des branchements erronément prédits plus lente, et l’absence d’une donnée dans le cache (cache miss) sera plus coûteuse.

Note : la lecture de la version original pour les anglophones est fortement recommandée.

  • Consulter l’interview