Intel® oneAPI Math Kernel Library Developer Reference - C
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.