toCpu method

void toCpu()

Retrieves the current state of the GPUTensor from VRAM and writes it to the data and grad buffers.

Implementation

void toCpu() {
  int count = _getElementCount();

  using((Arena arena) {
    Pointer<Float> pData = arena<Float>(count);
    GPUEngine.retrieve(id, pData);
    Float32List dataView = pData.asTypedList(count);

    data.clear();
    grad.clear();

    data.addAll(dataView);

    if (localGrad == true) {
      Pointer<Float> pGrad = arena<Float>(count);
      GPUEngine.retrieve('${id}_grad', pGrad);
      Float32List gradView = pGrad.asTypedList(count);
      grad.addAll(gradView);
    }
  });
}