clBLAS  2.11
 All Functions Typedefs Enumerations Enumerator Groups Pages
Functions
NRM2 - Euclidean norm of a vector

Functions

clblasStatus clblasSnrm2 (size_t N, cl_mem NRM2, size_t offNRM2, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue *commandQueues, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *events)
 computes the euclidean norm of vector containing float elements More...
 
clblasStatus clblasDnrm2 (size_t N, cl_mem NRM2, size_t offNRM2, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue *commandQueues, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *events)
 computes the euclidean norm of vector containing double elements More...
 
clblasStatus clblasScnrm2 (size_t N, cl_mem NRM2, size_t offNRM2, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue *commandQueues, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *events)
 computes the euclidean norm of vector containing float-complex elements More...
 
clblasStatus clblasDznrm2 (size_t N, cl_mem NRM2, size_t offNRM2, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue *commandQueues, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *events)
 computes the euclidean norm of vector containing double-complex elements More...
 

Detailed Description

Function Documentation

clblasStatus clblasDnrm2 ( size_t  N,
cl_mem  NRM2,
size_t  offNRM2,
const cl_mem  X,
size_t  offx,
int  incx,
cl_mem  scratchBuff,
cl_uint  numCommandQueues,
cl_command_queue *  commandQueues,
cl_uint  numEventsInWaitList,
const cl_event *  eventWaitList,
cl_event *  events 
)

computes the euclidean norm of vector containing double elements

NRM2 = sqrt( X' * X )

Parameters
[in]NNumber of elements in vector X.
[out]NRM2Buffer object that will contain the NRM2 value
[in]offNRM2Offset to NRM2 value in NRM2 buffer object. Counted in elements.
[in]XBuffer object storing vector X.
[in]offxOffset of first element of vector X in buffer object. Counted in elements.
[in]incxIncrement for the elements of X. Must not be zero.
[in]scratchBuffTemporary cl_mem scratch buffer object that can hold minimum of (2*N) elements
[in]numCommandQueuesNumber of OpenCL command queues in which the task is to be performed.
[in]commandQueuesOpenCL command queues.
[in]numEventsInWaitListNumber of events in the event wait list.
[in]eventWaitListEvent wait list.
[in]eventsEvent objects per each command queue that identify a particular kernel execution instance.
Returns
  • clblasSuccess on success;
  • clblasInvalidDevice if a target device does not support the floating point arithmetic with double precision;
  • the same error codes as the clblasSnrm2() function otherwise.
clblasStatus clblasDznrm2 ( size_t  N,
cl_mem  NRM2,
size_t  offNRM2,
const cl_mem  X,
size_t  offx,
int  incx,
cl_mem  scratchBuff,
cl_uint  numCommandQueues,
cl_command_queue *  commandQueues,
cl_uint  numEventsInWaitList,
const cl_event *  eventWaitList,
cl_event *  events 
)

computes the euclidean norm of vector containing double-complex elements

NRM2 = sqrt( X**H * X )

Parameters
[in]NNumber of elements in vector X.
[out]NRM2Buffer object that will contain the NRM2 value. Note that the answer of Dznrm2 is a real value.
[in]offNRM2Offset to NRM2 value in NRM2 buffer object. Counted in elements.
[in]XBuffer object storing vector X.
[in]offxOffset of first element of vector X in buffer object. Counted in elements.
[in]incxIncrement for the elements of X. Must not be zero.
[in]scratchBuffTemporary cl_mem scratch buffer object that can hold minimum of (2*N) elements
[in]numCommandQueuesNumber of OpenCL command queues in which the task is to be performed.
[in]commandQueuesOpenCL command queues.
[in]numEventsInWaitListNumber of events in the event wait list.
[in]eventWaitListEvent wait list.
[in]eventsEvent objects per each command queue that identify a particular kernel execution instance.
Returns
  • clblasSuccess on success;
  • clblasInvalidDevice if a target device does not support the floating point arithmetic with double precision;
  • the same error codes as the clblasSnrm2() function otherwise. executable.
clblasStatus clblasScnrm2 ( size_t  N,
cl_mem  NRM2,
size_t  offNRM2,
const cl_mem  X,
size_t  offx,
int  incx,
cl_mem  scratchBuff,
cl_uint  numCommandQueues,
cl_command_queue *  commandQueues,
cl_uint  numEventsInWaitList,
const cl_event *  eventWaitList,
cl_event *  events 
)

computes the euclidean norm of vector containing float-complex elements

NRM2 = sqrt( X**H * X )

Parameters
[in]NNumber of elements in vector X.
[out]NRM2Buffer object that will contain the NRM2 value. Note that the answer of Scnrm2 is a real value.
[in]offNRM2Offset to NRM2 value in NRM2 buffer object. Counted in elements.
[in]XBuffer object storing vector X.
[in]offxOffset of first element of vector X in buffer object. Counted in elements.
[in]incxIncrement for the elements of X. Must not be zero.
[in]scratchBuffTemporary cl_mem scratch buffer object that can hold minimum of (2*N) elements
[in]numCommandQueuesNumber of OpenCL command queues in which the task is to be performed.
[in]commandQueuesOpenCL command queues.
[in]numEventsInWaitListNumber of events in the event wait list.
[in]eventWaitListEvent wait list.
[in]eventsEvent objects per each command queue that identify a particular kernel execution instance.
Returns
  • clblasSuccess on success;
  • the same error codes as the clblasSnrm2() function otherwise.
clblasStatus clblasSnrm2 ( size_t  N,
cl_mem  NRM2,
size_t  offNRM2,
const cl_mem  X,
size_t  offx,
int  incx,
cl_mem  scratchBuff,
cl_uint  numCommandQueues,
cl_command_queue *  commandQueues,
cl_uint  numEventsInWaitList,
const cl_event *  eventWaitList,
cl_event *  events 
)

computes the euclidean norm of vector containing float elements

NRM2 = sqrt( X' * X )

Parameters
[in]NNumber of elements in vector X.
[out]NRM2Buffer object that will contain the NRM2 value
[in]offNRM2Offset to NRM2 value in NRM2 buffer object. Counted in elements.
[in]XBuffer object storing vector X.
[in]offxOffset of first element of vector X in buffer object. Counted in elements.
[in]incxIncrement for the elements of X. Must not be zero.
[in]scratchBuffTemporary cl_mem scratch buffer object that can hold minimum of (2*N) elements
[in]numCommandQueuesNumber of OpenCL command queues in which the task is to be performed.
[in]commandQueuesOpenCL command queues.
[in]numEventsInWaitListNumber of events in the event wait list.
[in]eventWaitListEvent wait list.
[in]eventsEvent objects per each command queue that identify a particular kernel execution instance.
Returns
  • clblasSuccess on success;
  • clblasNotInitialized if clblasSetup() was not called;
  • clblasInvalidValue if invalid parameters are passed:
    • N is zero, or
    • either incx is zero, or
    • the vector sizes along with the increments lead to accessing outside of any of the buffers;
  • clblasInvalidMemObject if any of X or NRM2 or scratchBuff object is Invalid, or an image object rather than the buffer one;
  • clblasOutOfHostMemory if the library can't allocate memory for internal structures;
  • clblasInvalidCommandQueue if the passed command queue is invalid;
  • clblasInvalidContext if a context a passed command queue belongs to was released;
  • clblasInvalidOperation if kernel compilation relating to a previous call has not completed for any of the target devices;
  • clblasCompilerNotAvailable if a compiler is not available;
  • clblasBuildProgramFailure if there is a failure to build a program executable.
Examples:
example_snrm2.c.