Arrays

cubie.batchsolving.arrays

The batchsolving.arrays package coordinates host and device array management for batch solver runs. InputArrays and OutputArrays are the key classes: they collect stride metadata, request GPU allocations via cubie.memory, and expose helpers for copying data between the CPU and CUDA kernels. OutputArrays mirrors requested state, observable, and summary buffers on the host and GPU for every solver launch.

Base utilities

  • ArrayContainer – attrs container shared by input and output managers.

  • BaseArrayManager – helper that manages host/device array bindings and synchronisation.

Input arrays

  • InputArrayContainer – checked attrs container describing solver inputs.

  • InputArrays – handles allocation, host buffers, and CUDA copies for input data.

Output arrays

  • OutputArrayContainer – attrs container for state, observables, and summary outputs.

  • ActiveOutputs – boolean flags describing which outputs and summaries are requested.

  • OutputArrays – prepares host/device arrays, handles CUDA transfers, and exposes host views.

Dependencies

  • cubie.outputhandling.output_sizes supplies BatchOutputSizes metadata for array shapes and active buffers.

  • cubie.batchsolving.ArrayTypes defines the array typing shared with solver kernels.

  • cubie._utils offers slice_variable_dimension to convert chunk indices into multidimensional slices.