Brevet FR2982972A1 — publié le 20130524

"PROCEDE DE REPARTITION DE CHARGE DE RENDU D'UNE SERIE DE PROCESSEURS GRAPHIQUES POUR LE RENDU D'UNE SERIE DE POINTS DE VUE D'UNE SCENE VIRTUELLE". L'invention concerne un procédé de répartition de la charge de rendu d'une série de processeurs graphiques pour le rendu d'une série de points de vue d'une scène virtuelle tridimensionnelle évolutive. L'invention concerne en outre un système informatique permettant de mettre en oeuvre ledit procédé. Aujourd'hui, il existe de nombreuses solutions et procédés pour répartir dynamiquement une charge de rendu sur un ensemble d'écrans plans. Il s'agit en fait, pour une caméra considérée, d'ajuster les points de vue affichés sur les différents écrans plans de l'ensemble d'écrans plans afin d'équilibrer la charge de rendu sur l'ensemble des processeurs graphiques à disposition. Il est entendu par l'expression "caméra", dans le contexte de l'invention, une matrice de projection permettant de passer de l'espace tridimensionnel du monde virtuel tridimensionnel, dans lequel une scène virtuelle est évolutive, vers un espace bidimensionnel correspondant à l'ensemble des écrans plans d'affichage. Chaque portion d'image qui ne s'affiche pas sur l'écran plan d'affichage, connecté à travers une carte graphique à un processeur graphique, doit être envoyée au bon processeur graphique en relation avec la carte graphique destinée à afficher cette portion d'image. Une telle technique d'équilibrage dynamique de la charge de rendu est illustrée dans le document US 2010/0066747. Il est à noter que les techniques d'affichage d'équilibrage dynamique de la charge de rendu sur un ensemble d'écrans plans nécessite un algorithme de rendu mono-passe, c'est-à-dire un algorithme capable de calculer avec un processeur graphique associé à une carte graphique une image issue d'un seul couple caméra/point de vue. Toutefois, dans le cadre d'un tel rendu mono-passe, il n'est pas possible de gérer un ensemble d'écrans affichant des points de vue issus de caméras différentes. Il y a donc nécessité d'un procédé permettant de répartir dynamiquement la charge de rendu d'une application de rendu mono-passe sur un ensemble d'écrans dits non plans, c'est-à-dire capables d'afficher des points de vue issus de caméras différentes. Un but de l'invention, est de fournir un tel procédé. A cet effet, il est prévu, selon l'invention un procédé de répartition de charge de rendu d'une série de processeurs graphiques pour le rendu d'une série de points de vue d'une scène virtuelle tridimensionnelle évolutive comportant, pour une itération n, des étapes de : a) Calcul d'un rendu et détermination d'un premier temps dudit calcul de rendu pour chacun des points de vue de la série de points de vue avec une affectation déterminée lors d'une itération n-1 de la série de processeurs graphiques ; b) Estimation d'un deuxième temps de calcul de rendu d'une itération n+1 pour chacun des points de vue de la série de points de vue en enlevant ou en ajoutant un ou plusieurs processeurs graphiques à l'affectation déterminée lors d'une itération n-1 de la série de processeurs graphiques ; c) Affectation de la série de processeurs graphiques à chacun des points de vue de la série de point de vue en fonction d'une comparaison des différents deuxièmes temps de calcul estimés, pour l'itération n+1. Ainsi, la comparaison des temps de calcul estimés pour une itération de rendu N+1 permet de réallouer et de réaffecter les différents processeurs graphiques de la série de processeurs graphiques aux différents points de vue dont un rendu sera à calculer lors de l'itération suivante. Nous avons ainsi une méthode pour répartir dynamiquement la charge d'un rendu dans le cadre d'une application mono-passe sur un ensemble d'écrans dits non plans affichant des images de points de vue issus de caméras différentes. Avantageusement, mais facultativement, le procédé de répartition de charge de rendu comporte au moins l'une des caractéristiques suivantes : - le procédé de répartition de charge de rendu comporte une étape préliminaire d'initialisation concernant une affectation homogène de la série de processeurs graphique à chacun des points de vue de la série de points de vue ; - l'estimation d'un deuxième temps de calcul de l'étape b) se base sur un historique des premiers temps de calcul de rendu déterminés lors des itérations précédentes ; - l'étape c) comporte une sous-étape de : c-1) transfert d'affectation d'un processeur graphique depuis un premier point de vue de la série de points de vue vers un deuxième point de vue si un deuxième temps estimé de calcul de rendu sans ledit processeur graphique dudit premier point de vue est inférieur à un deuxième temps estimé de calcul de rendu sans ledit processeur graphique dudit deuxième point de vue ; - la sous-étape c-1) est réitérée jusqu'à ce que un deuxième temps estimé de calcul de rendu sans ledit processeur graphique dudit premier point de vue soit supérieure à un deuxième temps estimé de calcul de rendu sans ledit processeur graphique dudit deuxième point de vue ; - l'étape c) comporte une sous-étape de : c-2) optimisation de l'affectation de la série de processeurs graphiques à chacun des points de vue de la série de point de vue, pour l'itération n+1, pour minimiser une contention ; et, - lors des étapes d'affectation, au moins un processeur graphique de la série de processeurs graphiques est affecté à chacun des points de vue de la série de points de vue. Il est aussi prévu, selon l'invention, un dispositif de calcul comportant un processeur lié à une mémoire programmable et agencé de sorte à mettre en oeuvre le procédé de répartition de charge de rendu présentant au moins l'une des caractéristiques précédentes. Il est aussi prévu, selon l'invention, un système informatique comportant un ensemble de noeuds de rendu interconnectés par un réseau à très haut débit, chaque noeud de rendu comportant au moins un processeur graphique, le système informatique étant agencé de sorte à mettre en oeuvre le procédé de répartition de charge de rendu présentant au moins l'une des caractéristiques précédentes. Avantageusement, mais facultativement, le système informatique comporte au moins l'une des caractéristiques suivantes : - le système informatique comporte en outre un dispositif de calcul présentant les caractéristiques précédentes ; - l'un des noeuds de rendu forme le dispositif de calcul ; - le système informatique comporte en outre un ensemble de noeuds d'affichage interconnecté par le réseau à très haut débit ; et, - le système informatique comporte en outre un commutateur agencé de sorte à associer un noeud de rendu avec un noeud d'affichage à travers le réseau à très haut débit. Il est aussi prévu, selon l'invention, un support mémoire comportant en mémoire un programme destiné à être exécuté par le processeur du dispositif de calcul présentant les caractéristiques précédentes et apte à réaliser le procédé de répartition présentant les caractéristiques précédentes. D'autres caractéristiques et avantages de l'invention apparaitront lors de la description ci-après d'un mode de réalisation de l'invention. Aux dessins annexés : - la figure 1 est une vue schématique d'une architecture apte à mettre en oeuvre un procédé selon l'invention ; et, - la figure 2 est un algorithme illustrant le procédé de répartition selon l'invention. En référence à la figure 1, nous allons décrire l'architecture d'un système informatique selon l'invention apte à mettre en oeuvre un procédé de répartition de la charge de rendu selon l'invention. L'architecture représentée est ici une architecture réseau qui comporte une première série 40 de dispositifs de calcul 41, une deuxième série 30 de dispositifs calcul 31, d'une série 20 de projecteurs 21, 22, 23 d'images aptes à projeter des images sur une série 10 d'écrans 11, 12, 13. La première série 40 de dispositifs de calcul et la deuxième série 30 de dispositifs calcul sont interconnectés entre eux à l'aide d'un réseau 50, 51, 52. Ce réseau est un réseau à grande vitesse ou à très haut débit présentant une faible latence. La première série 40 de dispositifs de calcul 41 est composée d'un ensemble de calculateurs de rendu en charge de calculer une série de points de vue associés à un ensemble de caméras différentes d'une scène virtuelle tridimensionnelle évolutive d'un monde virtuel. Chaque dispositif de calcul 41 formant un noeud de rendu. Ces noeuds de rendu 41 peuvent être par exemple des PC (acronyme anglo-saxon pour « Personal Computer », soit « ordinateur personnel » en Français). D'une manière générale, ces dispositifs de calcul de rendu comportent, sur une carte mère, un processeur relié à des mémoires d'une part, et, d'autre part, à un ou plusieurs processeurs graphiques associés à une ou plusieurs cartes graphiques. La deuxième série 30 de dispositifs de calcul 31 est en charge de restituer, sur des écrans, la série de points de vue calculés par la première série 40 de dispositifs de calcul. La deuxième série 30 de dispositifs de calcul comporte un ensemble de dispositifs de calcul 31 destinés à l'affichage. Chaque dispositif de calcul 31 forme un noeud d'affichage. Pour cela, chacun des noeuds d'affichage récupère les images les concernant représentant les points de vue calculés par les dispositifs de calcul 41 de la première série 40 de dispositifs de calcul afin d'envoyer les informations d'images à la série 20 de projecteurs qui sont connectés à la deuxième série 30 de dispositifs de calcul. De ce fait, les dispositifs de calcul 31 ne participent pas au calcul de rendu, ce qui permet de séparer le calcul de rendu de l'affichage des images issues dudit calcul de rendu. De même que précédemment, les dispositifs de calcul 31 d'affichage sont par exemple des PC dont l'architecture est connue en soi. De manière générale, ici encore, les dispositifs de calcul 31 comportent, sur une carte mère, un processeur relié à des mémoires ainsi qu'à au moins un processeur graphique associé à une carte graphique. Chacune des cartes graphiques étant connectée à un projecteur 21, 22, 23 de la série de projecteurs 20. L'ensemble des dispositifs de calcul 41 et 31 sont interconnectés entre eux par un réseau 50, 51, 52 à très haute vitesse ou à très haut débit dont la bande passante est supérieure à une bande passante des connexions vidéo 60 entre les dispositifs de calcul 31 connectés aux projecteurs 21, 22, 23 de la série de projecteurs 20. En particulier, cette bande passante est supérieure à 10 gigabits par seconde. D'autre part, le réseau 50, 51, 52 présente une très faible latence. Un tel réseau est connu en soi et peut être par exemple un réseau de type "InfiniBand". Une caractéristique principale et nécessaire d'un tel réseau à très haut débit est d'être complètement interconnecté au sens où tout dispositif de calcul 41 de la première série 40 de dispositifs de calcul peut communiquer avec tout dispositif de calcul 31 de la deuxième série 30 de dispositifs de calcul. Pour cela, le réseau à très haut débit comporte un commutateur réseau 50 permettant de connecter un ensemble de ressources sous forme de matrice, les ressources étant, ici, l'ensemble des dispositifs de calcul 41 de la première série 40 de dispositifs de calcul et l'ensemble des dispositifs de calcul 31 de la deuxième série 30 de dispositifs de calcul. La principale caractéristique d'un tel commutateur réseau 50 est que pour toute permutation possible de couple de ressources, la communication est complètement non-bloquante. Le commutateur réseau 50 est relié aux dispositifs de calcul 41 de la première série 40 de dispositifs de calcul par un premier sous-réseau rapide 52 , d'une part, et, d'autre part, aux dispositifs de calcul 31 de la deuxième série 30 de dispositifs de calcul à l'aide d'un deuxième sous-réseau rapide 51. En variante de réalisation, le commutateur réseau 50 est remplacé par un ensemble de commutateurs de même type de sorte à réaliser un commutateur à étages multiples. Chacun des projecteurs 21, 22, 23 de la série 20 de projecteurs est relié à un dispositif de calcul 31 de la deuxième série 30 de dispositifs de calcul à l'aide de connexions vidéo 60 connues en soi. Chacun des projecteurs 21, 22, 23 de la série de projecteurs 20 est agencé de sorte à projeter une image, correspondant à un point de vue de la série de points de vue de la scène virtuelle tridimensionnelle évolutive calculé par la première série 40 de dispositifs de calcul et fourni par la deuxième série 30 de dispositifs de calcul, sur une série 10 d'écrans comportant un ensemble d'écrans 11, 12, 13 dits non-plans, c'est-à-dire qu'ils affichent une image d'un point de vue associé à une caméra différente de la scène virtuelle tridimensionnelle évolutive à afficher. En variante de réalisation, la série 20 de projecteurs et la série 10 d'écrans de projection sont remplacées par une unique série de moniteurs informatiques ou de télévision connus en soi. Ces moniteurs informatiques ou de télévision peuvent être des écrans plats connus aussi par ailleurs en soi. Maintenant, en référence à la figure 2, nous allons décrire le procédé de répartition de charge de rendu d'une série de processeurs graphiques selon l'invention. Il est à noter que le procédé de répartition selon l'invention est un procédé dit hiérarchique et itératif. En guise d'initialisation, le procédé de répartition de charge de rendu selon l'invention comporte une étape 100 lors de laquelle le procédé de répartition de charge de rendu selon l'invention effectue une affectation homogène de l'ensemble des processeurs graphiques à disposition pour le calcul de rendu, à chacun des points de vue de la série de points de vue de la scène virtuelle tridimensionnelle évolutive afin de calculer pour chacun de ces points de vue un premier rendu destinée à être affichée. Ensuite, dans une étape 110, le procédé de répartition de charge de rendu selon l'invention fait effectuer le calcul pour chacun des points de vue de la série de points de vue de la scène virtuelle tridimensionnelle évolutive, du rendu à partir de l'affectation des processeurs graphiques de l'étape 100. En parallèle, le procédé de répartition de charge de rendu selon l'invention détermine le temps de calcul de ce rendu pour chacun des points de vue de la série de points de vue de la scène virtuelle tridimensionnelle évolutive. Cette détermination du temps de calcul est mémorisée afin d'élaborer un historique des temps de calcul d'un rendu en fonction du nombre de processeurs graphiques utilisés pour le calcul dudit rendu considéré. Dans une étape suivante 120, le procédé de répartition de charge de rendu selon l'invention détermine une estimation du temps de calcul de rendu de l'image suivante pour chacun des points de vue de la série de points de vue d'une scène virtuelle tridimensionnelle évolutive en enlevant ou en ajoutant un ou plusieurs processeurs graphiques de l'affectation des processeurs graphiques en cours à chacun des points de vue de la série de points de vue de la scène virtuelle tridimensionnelle évolutive. Pour cela, le procédé de répartition de charge de rendu selon l'invention prend en compte l'historique des temps de calcul des rendus effectués lors des itérations précédentes. A partir de cette estimation, le procédé de répartition selon l'invention va pouvoir modifier l'affectation en cours de la série de processeurs graphiques à chacun des points de vue de la série de points de vue de la scène virtuelle tridimensionnelle évolutive. Pour cela, le procédé de répartition de charge de rendu selon l'invention, dans une étape 130, compare les différentes estimations afin de déterminer s'il y a un équilibrage possible et donc une modification de l'affectation en cours de la série de processeurs graphiques afin d'optimiser le calcul des différents rendus de l'itération suivante. Pour cela, le procédé de répartition de charge de rendu selon l'invention effectue, lors d'une étape 140, un transfert d'un processeur graphique depuis le point de vue pour lequel le temps de calcul du rendu a été estimé le plus rapide, après suppression dudit processeur graphique, vers le point de vue pour lequel l'estimation du temps de calcul du rendu a été estimé le plus lent. Le procédé de répartition de charge de rendu selon l'invention boucle de manière itérative sur les étapes 130 et 140 jusqu'à ce que le temps de rendu estimé avec un processeur graphique en moins sur le point de vue dont le temps de calcul du rendu est le plus rapide est supérieur au temps de rendu estimé du point de vue dont le temps estimé de calcul est le plus lent. Par hypothèse, le temps de calcul d'un rendu avec aucun processeur graphique est considéré comme infini. Ainsi, le procédé de répartition de charge de rendu selon l'invention assure qu'il y a un minimum de un processeur graphique associé à chacun des points de vue de la série de points de vue de la scène virtuelle tridimensionnelle évolutive. Une fois l'ensemble des transferts de processeurs graphiques effectués, et donc la boucle d'itération d'équilibrage et donc de modification de l'affectation des processeurs graphiques aux différents points de vue de la série de points de vue de la scène virtuelle tridimensionnelle évolutive, le procédé de répartition de charge de rendu selon l'invention, dans une étape 150, effectue une répartition dynamique de la charge de rendu sur l'ensemble des processus graphiques affectés à un point de vue de la série de points de vue. Cette répartition dynamique de la charge est connue en soi et a été rappelée lors du préambule de cette description, puisqu'il s'agit alors d'un équilibrage dynamique de la charge de rendu sur un ensemble d'écrans plans dans le cadre d'un rendu mono-passe. Enfin, dans une étape 160, le procédé de répartition selon l'invention effectue une optimisation de l'affectation de la série de processeurs graphiques à chacun des points de vue de la série de points de vue de la scène virtuelle tridimensionnelle évolutive en minimisant la contention pouvant 2 0 survenir lors du calcul des rendus lors de l'itération suivante. Ensuite, le procédé de répartition revient à l'étape 110. Dès lors, le procédé de répartition selon l'invention effectue une itération supplémentaire de calcul des points de vue de la série de points de vue de la scène virtuelle 25 tridimensionnelle évolutive, et ainsi de suite durant toute l'utilisation du système informatique tel que nous l'avons décrit en référence à la figure 1 précédemment. Il est à noter que, à chaque itération des étapes 110 à 160, et en 30 particulier à la fin de l'étape 110, le procédé de répartition selon l'invention envoie pour affichage le résultat, c'est-à-dire les images du calcul du rendu de chacun des points de vue de la série de points de vue de la scène virtuelle tridimensionnelle évolutive. Le procédé de répartition selon l'invention que nous venons de décrire est mis en oeuvre au sein d'un dispositif de calcul comportant un processeur relié à des mémoires de stockage. Ce dispositif de calcul est connecté au réseau à très haut débit 50, 51, 52, afin de pouvoir communiquer et contrôler la première série 40 de dispositifs de calcul affectée au calcul de rendu. En variante préférée, le dispositif de calcul sur lequel est mise en oeuvre le procédé de répartition de charge de rendu selon l'invention est l'un des dispositifs de calcul 41 de la première série 40 de dispositifs de calcul 41 comprenant l'ensemble des processeurs graphiques dédiés au calcul des rendus. Le procédé de répartition selon l'invention précédemment décrit permet de constituer un ensemble de triplets processeur graphique/caméra/point de vue. Chaque couple formé d'une caméra et d'un point de vue définit un noeud d'affichage. Il reste alors à affecter les triplets processeur graphique/caméra/point de vue au noeud de rendu. Dans le cadre d'un réseau d'interconnexion à étages multiples tel qu'illustré à la figure 1, il se pose la question de la contention qu'il convient de minimiser afin de maximiser la bande passante utilisée. Pour cela, le procédé de répartition selon l'invention détermine une affectation optimale des noeuds de rendu, c'est-à-dire des processeurs graphiques au calcul des images qui seront affichées par les noeuds d'affichage correspondant à un couple caméra/point de vue qui minimise la contention en fonction de la topologie du réseau à très haut débit 50, 51, 52 et de la stratégie de routage associée et réalisée par les commutateurs 50. C'est ce qu'effectue le procédé selon l'invention lors de l'étape 160 précédemment décrite. Bien entendu, il est possible d'apporter à l'invention de nombreuses modifications sans pour autant sortir du cadre de celle-ci. REVENDICATIONS1. Procédé de répartition de charge de rendu d'une série 40 de processeurs graphiques pour le rendu d'une série de points de vue d'une scène virtuelle tridimensionnelle évolutive comportant, pour une itération n, des étapes de : a) Calcul (110) d'un rendu et détermination d'un premier temps dudit calcul de rendu pour chacun des points de vue de la série de points de vue avec une affectation déterminée lors d'une itération n-1 de la série de processeurs graphiques ; b) Estimation (120) d'un deuxième temps de calcul de rendu d'une itération n+1 pour chacun des points de vue de la série de points de vue en enlevant ou en ajoutant un ou plusieurs processeurs graphiques à l'affectation déterminée lors d'une itération n-1 de la série de processeurs graphiques ; c) Affectation (130, 140, 150, 160) de la série de processeurs graphiques à chacun des points de vue de la série de point de vue en fonction d'une comparaison des différents deuxièmes temps de calcul estimés, pour l'itération n+1. 2. Procédé de répartition de charge de rendu selon la revendication 1, caractérisé en ce qu'il comporte une étape préliminaire d'initialisation (100) concernant une affectation homogène de la série de processeurs graphique à chacun des points de vue de la série de points de vue. 3. Procédé de répartition de charge de rendu selon la revendication 1 ou 2, caractérisé en ce que l'estimation d'un deuxième temps de calcul de l'étape b) se base sur un historique des premiers temps de calcul de rendu déterminés lors des itérations précédentes. 4. Procédé de répartition de charge de rendu selon l'une des revendications 1 à 3, caractérisé en ce que l'étape c) comporte une sous-étape de : c-1) transfert (140) d'affectation d'un processeur graphique depuis un premier point de vue de la série de points de vue vers un deuxième point de vue si un deuxième temps estimé de calcul de rendu sans ledit processeur graphique dudit premier point de vue est inférieur à un deuxième temps estimé de calcul de rendu sans ledit processeur graphique dudit deuxième point de vue. 5. Procédé de répartition de charge de rendu selon la revendication 4, caractérisé en ce que la sous-étape c-1) est réitérée jusqu'à ce que un deuxième temps estimé de calcul de rendu sans ledit processeur graphique dudit premier point de vue soit supérieure à un deuxième temps estimé de calcul de rendu sans ledit processeur graphique dudit deuxième point de vue. 6. Procédé de répartition de charge de rendu selon I"une des revendications 1 à 5, caractérisé en ce que l'étape c) comporte une sous-étape de : c-2) optimisation (160) de l'affectation de la série de processeurs graphiques à chacun des points de vue de la série de point de vue, pour l'itération n+1, pour minimiser une contention. 7. Procédé de répartition de charge de rendu selon l'une des revendications 1 à 6, caractérisé en ce que, lors des étapes d'affectation, au moins un processeur graphique de la série de processeurs graphiques est affecté à chacun des points de vue de la série de points de vue. 8. Dispositif de calcul comportant un processeur lié à une mémoire programmable caractérisé en qu'il est agencé de sorte à mettre enoeuvre le procédé de répartition de charge de rendu selon l'une des revendications 1 à 7. 9. Système informatique comportant un ensemble (40) de noeuds de rendu (41) interconnecté par un réseau à très haut débit (50, 51, 52), chaque noeud de rendu comportant au moins un processeur graphique, caractérisé en ce que le système informatique est agencé de sorte à mettre en oeuvre le procédé de répartition de charge de rendu selon l'une des revendications 1 à 7. 10. Système informatique selon la revendication 9, caractérisé en ce qu'il comporte en outre un dispositif de calcul selon la revendication 8. 11.Système informatique selon la revendication 10, caractérisé en ce que l'un des noeuds de rendu forme le dispositif de calcul. 12.Système informatique selon l'une des revendications 9 à 11, caractérisé en ce qu'il comporte en outre un ensemble (30) de noeuds d'affichage (31) interconnecté par le réseau à très haut débit. 13. Système informatique selon la revendication 12, caractérisé en ce qu'il comporte en outre un commutateur (50) agencé de sorte à associer un noeud de rendu avec un noeud d'affichage à travers le réseau à très haut débit. 14.Support mémoire caractérisé en ce qu'il comporte en mémoire un programme destiné à être exécuté par le processeur du dispositif de calcul selon la revendication 8 et apte à réaliser le procédé de répartition selon l'une des revendications 1 à 7. 25