Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Affichage des résultats 1 à 3 sur 3
  1. #1
    Je voudrais me renseigner à propos de la communication entre CPU et GPU.
    Par exemple, lors d'un jeu, le travail effectué par le CPU est d'abord écrit dans la RAM principale et ensuite le GPU lit à partir de la ram principale ou passe directement par le contrôleur mémoire du GPU qui est donc écrit dans la mémoire de ce dernier ?
    Dernière modification par lordmagnum ; 21/06/2009 à 12h20.


  2. #2
    Ca passe par la ram principale.
    Mes propos n'engagent personne, même pas moi.

  3. #3
    En général oui, par contre c'est un peu plus compliqué que "Le GPU lit dans la RAM principale."

    Déjà il faut empêcher l'OS de swapper les pages qu'on veut envoyer, sinon le GPU va avoir du mal à les retrouver. Si le programmeur a juste alloué sa mémoire avec des malloc(), le driver est obligé de faire une copie intermédiaire.

    Ensuite les données qu'on vient d'écrire ne sont en général pas en RAM, elle sont un peu partout dans la hiérarchie de caches... Donc il faut du trafic de snoop pour s'assurer que tout est cohérent.
    Pour éviter ça (et éviter de polluer les caches au passage), on marque les pages qu'on veut envoyer en non-cachable, write-combining. Les stores sont fusionnés en lignes de cache complètes avant d'être envoyés à la mémoire par des buffers dédiés, mais ne passent plus par les caches.
    Du coup le DMA peut lire directement depuis la RAM sans se poser de question.

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •