3
votes

Partage de mémoire CPU et GPU

Si le GPU (discret) possède sa propre RAM vidéo, je dois copier mes données de la RAM vers la VRAM pour pouvoir les utiliser. Mais si le GPU est intégré au CPU (par exemple AMD Ryzen) et partage la mémoire, dois-je encore faire des copies, ou peuvent-ils tous les deux accéder au même bloc de mémoire?


0 commentaires

3 Réponses :


3
votes

Il est possible d'éviter la copie en cas de graphiques intégrés, mais cette fonctionnalité est spécifique à la plate-forme et elle peut fonctionner différemment pour différents fournisseurs.

L'article Comment augmenter les performances en minimisant les copies de tampon sur les processeurs graphiques Intel® décrit comment y parvenir pour le matériel Intel:

Pour créer des tampons sans copie, effectuez l'une des opérations suivantes:

Utilisez CL_MEM_ALLOC_HOST_PTR et laissez le runtime gérer la création d'un tampon d'allocation sans copie pour vous

Si vous avez déjà les données et que vous souhaitez charger les données dans un objet tampon OpenCL, utilisez CL_MEM_USE_HOST_PTR avec un tampon alloué à une limite de 4096 octets (alignée sur une limite de page et de ligne de cache) et une taille totale multiple de 64 octets (taille de la ligne de cache).

Lors de la lecture ou de l'écriture de données sur ces tampons depuis l'hôte, utilisez clEnqueueMapBuffer (), opérez sur le tampon, puis appelez clEnqueueUnmapMemObject ().


0 commentaires

2
votes

Partage de la mémoire GPU et CPU? Le GPU a plusieurs cœurs sans unité de contrôle mais le CPU contrôle le GPU via l'unité de contrôle. GPU dédié a sa propre DRAM = VRAM = GRAM plus rapide que la RAM intégrée. quand nous disons GPU intégré, cela signifie que le GPU placé sur la même puce avec le CPU, et le CPU et le GPU utilisaient la même mémoire RAM (mémoire partagée).


0 commentaires