Was ist der Unterschied zwischen dem Erstellen eines Pufferobjekts mit clCreateBuffer + CL_MEM_COPY_HOST_PTR und clCreateBuffer + clEnqueueWriteBuffer?

Ich habe beide Versionen in Tutorials gesehen, konnte aber nicht herausfinden, welche Vor- und Nachteile sie haben. Welches ist das richtige?

cl_mem input = clCreateBuffer(context,CL_MEM_READ_ONLY,sizeof(float) * DATA_SIZE, NULL, NULL);
clEnqueueWriteBuffer(command_queue, input, CL_TRUE, 0, sizeof(float) * DATA_SIZE, inputdata, 0, NULL, NULL);

vs.

cl_mem input = clCreateBuffer(context,CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, ,sizeof(float) * DATA_SIZE, inputdata, NULL);

Vielen Dank

[Aktualisieren

Ich fügte hinzuCL_MEM_COPY_HOST_PTR, zum zweiten Beispiel, um es richtig zu machen.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage