docs: @Override
      public void synchronizeHostData(DataBuffer buffer) {
          // we don't want non-committed ops left behind
          //Nd4j.getExecutioner().push();
  
          // we don't synchronize constant buffers, since we assume they are always valid on host side
          if (buffer.isConstant() || buffer.dataType() == DataType.UTF8) {
              return;
          }
  
          // we actually need synchronization only in device-dependant environment. no-op otherwise
          if (memoryHandler.isDeviceDependant()) {
              val point = getAllocationPoint(buffer.getTrackingPoint());
              if (point == null)
                  throw new RuntimeException("AllocationPoint is NULL");
              memoryHandler.synchronizeThreadDevice(Thread.currentThread().getId(), memoryHandler.getDeviceId(), point);
          }
      }