Interface to concatenate data and transfer them to GPU asynchronously.
It enables to transfer next batch of input data to GPU while GPU is running kernels for training using current batch of input data.
An instance of this class is mainly intended to be used as a converter function of an updater like below.
from chainer.dataset import convert ... updater = chainer.training.updaters.StandardUpdater( ..., converter=convert.ConcatWithAsyncTransfer(), ...)
stream (cupy.cuda.Stream) – CUDA stream. If
None, a stream is automatically created on the first call. Data transfer operation is launched asynchronously using the stream.
compute_stream (cupy.cuda.Stream) – CUDA stream used for compute kernels. If not
None, CUDA events are created/used to avoid global synchronization and overlap execution of compute kernels and data transfers as much as possible. If
None, global synchronization is used instead.
__call__(batch, device=None, padding=None)¶
Concatenate data and transfer them to GPU asynchronously.