• [^] # Re: Et les cartes graphiques ?

    Posté par . En réponse à la dépêche Kalray un processeur massivement parallèle très impressionnant : Qu’il est loin le temps de mon ZX81. Évalué à 7.

    Le context switch sur GPU a aucun cout. Chaque group de calcul du GPU est associe avec une memoire local qui est diviser entre les registres et les variables local memory (dans opencl). ie le programme A va avoir ses register N register entre [0..N] dans cette memoire et le programme B va avoir ses M registres entre [N..N+M]. Dans les descriptions de GPU c'est la register file le nom de la memoire en general (toujours un acteur pour trouver un nouveau plus hyper pour le marketing). Donc il n'y a aucune copie avec la memoire externe. Tout se passe en memoire interne ultra-rapide (charge depuis un registre de cette memoire prend un tick de clock sur tous les GPU que je connais).

    En faite la plus part interleave l'execution des different programmes (A et B dans mon exemple) ie au tick de clock t l'instruction de A est decode, au tick t+1, l'instruction de B est decode, au tick t+2 l'instruction de A qui a etait decode commence sont execution, au tick t+3 c'est celle de B qui commence ....

    Et oui, contrairement au CPU, pour maximiser l'utiliser d'un GPU tu veux plus de thread que de coeur en general tu en veux 16, 32, 64, ... fois plus que de coeurs. C'est ce qui permet de cacher la latence des access memoire (ca et les caches enormes qui existe dans le GPU).