CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

gpu nvidia "maxwell" : cache L1 / Tex

kernel[]
kernel[]
Niveau 10
05 septembre 2014 à 21:15:24

yo,

sur une des dernières architectures des GPU d'nvidia, maxwell [1], on remarque qu'un changement a été d'unifier le cache L1 et le cache des textures et de largement augmenter la taille du cache L2 (qui servirait aux textures, atomiques, etc). Dans les architectures précédentes le cache L1 ne servait qu'à certains load locaux, qui sont maintenant du ressort de L2 : pourquoi un tel choix et à quoi peut bien servir L1 (si on peut toujours l'appeller comme ça) ?
Aussi, comme c'est spécifié dans la doc cuda [2], le code qui utilisait efficacement le cache L1 va se voir affecté non ?

[1] : http://international.download.nvidia.com/geforce-com/international/pdfs/GeForce-GTX-750-Ti-Whitepaper.pdf
[2] : http://docs.nvidia.com/cuda/maxwell-tuning-guide/#axzz3CTBBa3g5

rangerprice
rangerprice
Niveau 10
05 septembre 2014 à 21:53:22

Vas sur le forum matériel informatique. :hap:

godrik
godrik
Niveau 30
05 septembre 2014 à 22:18:05

Ah mon avis, ils n'ont aucune idee de comment fonctionne un GPU sur le forum materiel informatique. Et probablment tout ceux qui sont capable de repondre a une question comme ca font de la programmation CUDA et sont probablement aussi ici.

Ca fait longtemps que l'architecture des GPU de NVIDIA dispose d'un cache L2 pour les load en memoire global. Ce qui change est que les load globaux ne sont maintenant qu'en cache L2 et plus en cache L1.

Le cache L1 sert toujours a 3 choses:
-spiller les variables locales. (Si tu consomme trop de registres par block, les registres sont spiller dans ce cache la)
-shared memory. (Tous les shared qu'on retrouve en cuda pour partager la memoire entre thread d'un meme block avec un load de 1 cycle)
-texture memory caching. (parcequ'il faut bien cacher ce truc la quelques part)

Le cache L1 pour cacher les access a la memeoire globale etait tres peu efficace. Soit les donnee etait utilise de mamniere completement previsible et probablement il etait preferable de copier ca en shared memory. Soit on va probablement pas les lire tres souvent et du coup, c'est aussi bien en L2.

Si tu as plus de question n'hesite pas.

kernel[]
kernel[]
Niveau 10
05 septembre 2014 à 22:45:04

Merci godrik,

sur l'archi Kepler les load globaux étaient déjà faits sur L2, maintenant les locaux aussi seront cachés dans L2 seulement (cf [2] "1.4.2. Memory Throughput" ) :
"Local loads also are cached in L2 only, which could increase the cost of register spilling if L1 local load hit rates were high with Kepler"

d'où la deuxième question, ce qui était bien caché dans L1 avec Kepler va être moins efficace non ?

godrik
godrik
Niveau 30
05 septembre 2014 à 23:03:17

Bah comme d'hab NVIDIA n'ecrit jamais un document clair parcequ'ils ne veulent surtout pas que tu saches comment ca marche concretement. On dirait en effet que L1 ne contient plus les register spills. Donc ca ne sert probablement plus qu'a faire de la shared memory et tu cache de texture. C'est possile qu'ils se soient rendu compte que le register spilling est un faux probleme.

Il faut voir plein de chsoe pour tirer des conclusions. Si ils ont augmenter la taille des bancs de registres, tu pourrais bien te retrouver avec plus de block schedule sur un seul SM et donc overlapper le cout des access en L2 plus facilement.

Ils avaiebt fait un truc du genre en passant a Kepler. Ils avaient diminuer la frequence, augmenter le nombre de cuda core et augmenter la bande passante memoire. En bref, il faut voir tous les changements, mais comme ils disent si tu spillais enormement, tu vas avoir des problemes.

kernel[]
kernel[]
Niveau 10
05 septembre 2014 à 23:37:27

Okay, oui sûrement qu'au final avec le reste des changements ça doit être rattrapé, si t'as de la doc là-dessus je suis preneur d'ailleurs.

godrik
godrik
Niveau 30
05 septembre 2014 à 23:48:57

Je n'ai pas access a des cartes a base de maxwell donc je ne sais pas trop. Mais j'avais regarde en detail le passage a kepler et c'etait bizarre de voir comment ils ont augmente la puissance du GPU en restant dans la meme "power envelop".

D'ailleurs ca me fait penser que j'ai deux K40 dans une machine et que j'ai toujours pas eu le temps de jouer avec...

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment