public DeviceLocalNDArray(INDArray array) { super(); broadcast(array); }
/** * This method duplicates array, and stores it to all devices * * @param array */ public void broadcast(INDArray array) { if (array == null) return; Nd4j.getExecutioner().commit(); int numDevices = Nd4j.getAffinityManager().getNumberOfDevices(); for (int i = 0; i < numDevices; i++) { // if current thread equal to this device - we just save it, without duplication if (Nd4j.getAffinityManager().getDeviceForCurrentThread() == i) { set(i, array); } else { set(i, Nd4j.getAffinityManager().replicateToDevice(i, array)); } } } }
/** * This method duplicates array, and stores it to all devices * * @param array */ public void broadcast(INDArray array) { if (array == null) return; Nd4j.getExecutioner().commit(); int numDevices = Nd4j.getAffinityManager().getNumberOfDevices(); for (int i = 0; i < numDevices; i++) { // if current thread equal to this device - we just save it, without duplication if (Nd4j.getAffinityManager().getDeviceForCurrentThread() == i) { set(i, array); } else { set(i, Nd4j.getAffinityManager().replicateToDevice(i, array)); } } } }
public DeviceLocalNDArray(INDArray array) { super(); broadcast(array); }