bartz.mcmcstep.AutoBatchedReduction

class bartz.mcmcstep.AutoBatchedReduction(min_batch_size=128.0, beta_sm=48.0, gamma=0.4, batches_inner=True, contiguous=False)[source]

BatchedReduction that picks num_batches automatically per platform.

A flat target on cpu, and on gpu a count scaling with the SM count and the multivariate outcome size. Only cpu and cuda are supported; any other platform raises at lowering.

min_batch_size: float = 128.0

caps the batch count at n / min_batch_size.

Type:

Minimum datapoints per batch on gpu

beta_sm: float = 48.0

the batch count saturates at beta_sm * n_sms * m ** -gamma, with n_sms the gpu’s SM count and m the multivariate work per datapoint.

Type:

Batches per streaming multiprocessor on gpu

gamma: float = 0.4

Exponent by which multivariate outcomes (m values per datapoint) shrink the saturation batch count on gpu.

batches_inner: bool = True

Same as BatchedReduction.

contiguous: bool = False

Same as BatchedReduction.