У меня есть видеокарта ATI RV770, и я использую OpenCL 1.0 AMD-APP-SDK-v2.5 для запуска программ OpenCL.
Для передачи данных из памяти хоста в память устройства я использую
d_A = clCreateBuffer ( context, CL_MEM_READ_ONLY , partition_size * sizeof(datatype),NULL, &err); checkStatus("Failed to create device input buffer A ",err);
err = clEnqueueWriteBuffer ( cmd_queue, d_A, CL_TRUE, 0, partition_size * sizeof(datatype), &h_A, 0, 0 , 0); checkStatus("Failed to copy data from host to device ",err);
Мой вопрос заключается в том, как данные копируются в память устройства (поразрядно или побайтно или> = 32-битно)?
Предположим, у меня есть h_A следующего типа структуры: *
typedef struct abc{int a; unsigned char ch[64]; } ABC;
, и я хочу передать 1000 элементов типа структуры ABC,
Могу ли я передать данные типа структуры?Если да, то как данные будут скопированы в память устройства?
В целом, что действительно характерно для перемещения данных в компьютере?