Visible to Intel only — GUID: GUID-4CADD419-133A-4437-929B-1E3373538665
Visible to Intel only — GUID: GUID-4CADD419-133A-4437-929B-1E3373538665
cblas_?copy_batch
Computes a group of vector copies.
void cblas_scopy_batch (const MKL_INT *n_array, const float **x_array, const MKL_INT *incx_array, float **y_array, const MKL_INT *incy_array, const MKL_INT group_count, const MKL_INT *group_size_array);
void cblas_dcopy_batch (const MKL_INT *n_array, const double **x_array, const MKL_INT *incx_array, double **y_array, const MKL_INT *incy_array, const MKL_INT group_count, const MKL_INT *group_size_array);
void cblas_ccopy_batch (const MKL_INT *n_array, const void **x_array, const MKL_INT *incx_array, void **y_array, const MKL_INT *incy_array, const MKL_INT group_count, const MKL_INT *group_size_array);
void cblas_zcopy_batch (const MKL_INT *n_array, const void **x_array, const MKL_INT *incx_array, void **y_array, const MKL_INT *incy_array, const MKL_INT group_count, const MKL_INT *group_size_array);
The cblas_?copy_batch routines perform a series of vector copies. They are similar to their cblas_?copy routine counterparts, but the cblas_?copy_batch routines perform vector operations with a group of vectors. Each groups contains vectors with the same parameters (size and increment), while those parameters may vary between groups.
The operation is defined as follows:
idx = 0 for i = 0 … group_count – 1 n, incx, incy and group_size at position i in n_array, alpha_array, incx_array, incy_array and group_size_array for j = 0 … group_size – 1 x and y are vectors of size n at position idx in x_array and y_array y := x idx := idx + 1 end for end for
The number of entries in x_array and y_array is total_batch_count, which is the sum of all the group_size entries.
- n_array
- Array of size group_count. For the group i, n_i = n_array[i] is the number of elements in the vectors x and y.
- x_array
- Array of size total_batch_count of pointers used to store x vectors. The array allocated for the x vectors of the group i must be of size at least (1 + (n_i - 1)*abs(incx_i)).
- incx_array
- Array of size group_count. For the group i, incx_i = incx_array[i] is the increment (or stride) between two consecutive elements of the vector x.
- y_array
- Array of size total_batch_count of pointers used to store the output vectors y. The array allocated for the y vectors of the group i must be of size at least (1 + (n_i - 1)*abs(incy_i)).
- incy_array
- Array of size group_count. For the group i, incy_i = incy_array[i] is the increment (or stride) between two consecutive elements of the vector y.
- group_count
- Number of groups. Must be at least 0.
- group_size_array
- Array of size group_count. The element group_size_array[i] is the number of vectors in the group i. Each element in group_size_array must be at least 0.
- y_array
- Array of pointers holding the total_batch_count copied vectors y.