- CLHandleType
- CLGetInfoInteger
- CLGetInfoString
- CLContextCreate
- CLContextFree
- CLGetDeviceInfo
- CLProgramCreate
- CLProgramFree
- CLKernelCreate
- CLKernelFree
- CLSetKernelArg
- CLSetKernelArgMem
- CLSetKernelArgMemLocal
- CLBufferCreate
- CLBufferFree
- CLBufferWrite
- CLBufferRead
- CLExecute
- CLExecutionStatus
CLBufferRead
Читает буфер OpenCL в массив и возвращает количество прочитанных элементов.
uint CLBufferRead(
|
Существуют также версии для работы матрицами и векторами.
Читает буфер OpenCL в матрицу и возвращает true в случае успеха.
uint CLBufferRead(
|
Читает буфер OpenCL в вектор и возвращает true в случае успеха.
uint CLBufferRead(
|
Параметры
buffer
[in] Хендл буфера OpenCL.
data[]
[out] Массив для получения значений из буфера OpenCL. Передается по ссылке.
buffer_offset
[in] Смещение в OpenCL буфере в байтах, с которого начинается чтение. По умолчанию чтение начинается с начала буфера.
data_offset
[in] Индекс первого элемента массива для записи значений буфера OpenCL. По умолчанию запись прочитанных значений в массив начинается с нулевого индекса.
data_count
[in] Количество значений, которые нужно прочитать. По умолчанию читается весь буфер OpenCL.
mat
[out] Матрица для чтения данных из буфера может быть любого из трех типов — matrix, matrixf или matrixc.
vec
[out] Вектор для чтения данных из буфера может быть любого из трех типов — vector, vectorf или vectorc.
rows=-1
[in] Если параметр указан, то должен быть указан и параметр cols. Если новые размеры матрицы не указаны, то будут использоваться текущие размеры. Если значение равно -1, то число строк не изменится.
cols=-1
[in] Если параметр не указан, то параметр rows также должен быть пропущен. Для матрицы действует правило: либо указаны оба параметра, либо ни одного, в противном случае возникнет ошибка. Если указаны об параметра (rows и cols), то размер матрицы будет изменен. Если значение равно -1, то число столбцов не изменится.
size=-1
[in] Если параметр не указан или значение равно -1, то длина вектора не изменится.
Возвращаемое значение
Количество прочитанных элементов при работе с массивом, в случае ошибки возвращается 0. Для получения информации об ошибке используйте функцию GetLastError().
true при успешном выполнении при работе с матрицей или вектором, в случае ошибки возвращается false.
Примечание
Для одномерных массивов номер элемента, в который начинается запись данных из буфера OpenCL, вычисляется с учётом флага AS_SERIES.
Массив с размерностью два и более представляется как одномерный. В этом случае data_offset – это количество элементов, которое следует пропустить в представлении, а не количество элементов в первой размерности.
Пример вычисления числа Pi по формуле:
#define _num_steps 1000000000
|