2010-08-22 4 views

Répondre

7

Oui, utiliser clCreateBuffer avec des drapeaux contenant l'un:

  • CL_MEM_USE_HOST_PTR
  • CL_MEM_ALLOC_HOST_PTR

Ce qui fait ce que vous voulez. Pour plus d'informations, visitez la page man de clCreateBuffer.

+0

désolé, je n'ai pas clarifié correctement - ont lu sur les options thouse, mais CL_MEM_USE_HOST_PTR peut être mis en cache dans la mémoire de l'appareil - il n'est pas autorisé pour ma tâche. CL_MEM_ALLOC_HOST_PTR - "allouer de la mémoire à partir de la mémoire accessible par l'hôte ..." - cette mémoire sera-t-elle accessible depuis l'appareil? cudaHostGetDevicePointer utilise DMA brut via le bus, comme je sais - voudrais trouver quelque chose de similaire – ShPavel

+2

Il n'y a rien de 100% similaire, OpenCL est beaucoup plus générique que CUDA. Tous les tampons CL sont accessibles depuis le périphérique, y compris ceux alloués à l'aide de CL_MEM_ALLOC_HOST_PTR. –

Questions connexes