Il me semble qu'il n'y a pas que le cache des textures.
Effectivement, pas de cache de textures en tant que tel.
Je ne vois pas vraiment quel fonctionnalités d'un cache sur un CPU ne pourrait pas être dupliquée sur un cache mis dans un GPU, tu pense à quoi?
(Si je ne dis pas de bêtises, la il faudrait un expert) Certains GPU utilisent en plus de leur nombres hallucinant de registres de petits caches (~64kio), équivalent à ceux des L1 sur CPU, mais partagés entre "cluster" d'unités de shaders, et une sorte de cache L2 partagé entre ces clusters (pas directement avec les unités qui les composent). Ils peuvent êtres utilisés pour mettre des textures (au sens plage mémoire) en cache.
Et tous ça reste super dépendant du modèle de GPU que l'on prends comme exemple.
Après par exemple un "gros" cache L3 partagé entre tous les coeurs / thread (de 1 à 8 on va dire) d'un CPU n'aura pas sa place dans un GPU, car cela voudrai dire le partager entre 40 et 500 unités de shaders. Dur dur niveau cohérence on en reviens la. Mettre des caches par unités de shader n'est pas possible non plus, ça prendrait une place monstrueuse sur des puces déjà monstrueuses...
Mais je suis d'accord l'exemple est un peu spécial (bus partagé) et les shaders deviennent de plus en plus des cpu, il ne restera plus que la quasi-absence de cohérence mémoire.
Une différence qui semble perdurer c'est quand même que les shaders sont mauvais sur tous ce qui n'est pas du calcul vectoriel. Ou alors qu'on aura du mal a avoir des gains si on les utilisent pour faire du logique ou de l'entier. Partant de la, peut on les considérer comme se rapprochant des CPU ?
[^] # Re: Pas sûr qu'il y ai un remplacement
Posté par FluffyHamster . En réponse au journal Rendu 3D logiciel. Évalué à 1.
Effectivement, pas de cache de textures en tant que tel.
(Si je ne dis pas de bêtises, la il faudrait un expert) Certains GPU utilisent en plus de leur nombres hallucinant de registres de petits caches (~64kio), équivalent à ceux des L1 sur CPU, mais partagés entre "cluster" d'unités de shaders, et une sorte de cache L2 partagé entre ces clusters (pas directement avec les unités qui les composent). Ils peuvent êtres utilisés pour mettre des textures (au sens plage mémoire) en cache.
Et tous ça reste super dépendant du modèle de GPU que l'on prends comme exemple.
Après par exemple un "gros" cache L3 partagé entre tous les coeurs / thread (de 1 à 8 on va dire) d'un CPU n'aura pas sa place dans un GPU, car cela voudrai dire le partager entre 40 et 500 unités de shaders. Dur dur niveau cohérence on en reviens la. Mettre des caches par unités de shader n'est pas possible non plus, ça prendrait une place monstrueuse sur des puces déjà monstrueuses...
Une différence qui semble perdurer c'est quand même que les shaders sont mauvais sur tous ce qui n'est pas du calcul vectoriel. Ou alors qu'on aura du mal a avoir des gains si on les utilisent pour faire du logique ou de l'entier. Partant de la, peut on les considérer comme se rapprochant des CPU ?