- CLHandleType
- CLGetInfoInteger
- CLGetInfoString
- CLContextCreate
- CLContextFree
- CLGetDeviceInfo
- CLProgramCreate
- CLProgramFree
- CLKernelCreate
- CLKernelFree
- CLSetKernelArg
- CLSetKernelArgMem
- CLSetKernelArgMemLocal
- CLBufferCreate
- CLBufferFree
- CLBufferWrite
- CLBufferRead
- CLExecute
- CLExecutionStatus
CLBufferRead
Lee el búfer OpenCL en un array y devuelve el número de elementos leídos.
uint CLBufferRead(
|
Asimismo, existe una versión para trabajar con matrices y vectores.
Lee el búfer OpenCL en una matriz y retorna true en caso de éxito.
uint CLBufferRead(
|
Lee el búfer OpenCL en el vector y retorna true en caso de éxito.
uint CLBufferRead(
|
Parámetros
buffer
[in] Manejador del búfer OpenCL.
data[]
[in] Array para recibir valores desde el búfer OpenCL. Se pasa por referencia.
buffer_offset
[in] Desplazamiento (offset) en el búfer OpenCL en bytes, a partir del cual se empieza la lectura. Por defecto, la lectura se empieza desde el principio del búfer.
data_offset
[in] Índice del primer elemento del array para la escritura de los valores del búfer OpenCL. Por defecto, los valores leídos se escriben en el array desde el índice cero.
data_count
[in] Número de valores que hay que leer. Por defecto, se lee el búfer OpenCL entero.
mat
[out] La matriz para leer los datos del búfer puede ser de cualquiera de los tres tipos matrix, matrixf o matrixc.
vec
[out] El vector para leer los datos del búfer puede ser de cualquiera de los tres tipos vector, vectorf o vectorc.
rows=-1
[in] Si el parámetro ha sido indicado, también se deberá especificar el parámetro cols. Si no se especifican las nuevas dimensiones de la matriz, se utilizarán las dimensiones actuales. Si el valor es -1, el número de filas no cambiará.
cols=-1
[in] Si el parámetro no ha sido indicado, el parámetro rows también deberá omitirse. Para las matrices, se aplica la regla siguiente: o bien se indican ambos parámetros, o bien ninguno, de lo contrario se producirá un error. Si se indican ambos parámetros (rows y cols), el tamaño de la matriz será modificado. Si el valor es igual a -1, el número de columnas no cambiará.
size=-1
[in] Si el parámetro no ha sido indicado o el valor es -1, la longitud del vector no cambiará.
Valor devuelto
Número de valores leídos. En caso del error, devuelve 0. Para obtener la información sobre el error, utilice la función GetLastError().
true en caso de ejecución exitosa al trabajar con una matriz o vector; en caso de error, se retornará false.
Nota
Para los arrays unidimensionales, el número del elemento en el que se empieza la escritura de datos desde el búfer OpenCL, se calcula teniendo en cuenta la bandera AS_SERIES.
Un array con dos o más dimensiones se representa como unidimensional. En este caso data_offset es el número de elementos que hay que saltar en la representación, y no el número de elementos en la primera dimensión.
Ejemplo de cálculo del número Pi según la fórmula:
#define _num_steps 1000000000
|