Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 10/31/2024
Public
Document Table of Contents

?copy_batch

Computes a group of vector copies.

call scopy_batch(n_array, x_array, incx_array, y_array, incy_array, group_count, group_size_array)

call dcopy_batch(n_array, x_array, incx_array, y_array, incy_array, group_count, group_size_array)

call ccopy_batch(n_array, x_array, incx_array, y_array, incy_array, group_count, group_size_array)

call zcopy_batch(n_array, x_array, incx_array, y_array, incy_array, group_count, group_size_array)

Description

The ?copy_batch routines perform a series of vector copies. They are similar to their ?copy routine counterparts, but the ?copy_batch routines perform vector operations with groups of vectors. Each groups contains vectors with the same parameters (size, incrmenet), but the parameters can 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, 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.

Input Parameters

n_array

INTEGER. 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

INTEGER*8 for Intel® 64 architecture

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

INTEGER. Array of size group_count. For the group i, incx_i = incx_array[i] is the distance between consecutive entries in a vector x.

y_array

INTEGER*8 for Intel® 64 architecture

Array of size total_batch_count of pointers used to store y vectors. 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

INTEGER. Array of size group_count. For the group i, incy_i = incy_array[i] is the distance between consecutive entries in a vector y.

group_count

INTEGER. Number of groups. Must be at least 0.

group_size_array

INTEGER. Array of size group_count. The element group_size_array[i] is the number of vector in the group i. Each element in group_size_array must be at least 0.

Output Parameters

y_array

Array of pointers holding the total_batch_count copied vectors y.