protected void init() { // we want params validation here if (currentSize.get() > 0) { if (!isOver.get()) { if (workspaceConfiguration.getPolicyAllocation() == AllocationPolicy.OVERALLOCATE && workspaceConfiguration.getOverallocationLimit() > 0) { currentSize.addAndGet((long) (currentSize.get() * workspaceConfiguration.getOverallocationLimit())); isOver.set(true); } } if (workspaceConfiguration.getMaxSize() > 0 && currentSize.get() > workspaceConfiguration.getMaxSize()) currentSize.set(workspaceConfiguration.getMaxSize()); } }
if (workspaceConfiguration.getPolicyAllocation() == AllocationPolicy.OVERALLOCATE && workspaceConfiguration.getOverallocationLimit() > 0 && currentSize.get() > 0) { currentSize.set(currentSize.get()
&& workspaceConfiguration.getPolicyAllocation() == AllocationPolicy.OVERALLOCATE) { if (workspaceConfiguration.getOverallocationLimit() < 1.0) throw new ND4JIllegalStateException(
protected void init() { // we want params validation here if (currentSize.get() > 0) { if (!isOver.get()) { if (workspaceConfiguration.getPolicyAllocation() == AllocationPolicy.OVERALLOCATE && workspaceConfiguration.getOverallocationLimit() > 0) { currentSize.addAndGet((long) (currentSize.get() * workspaceConfiguration.getOverallocationLimit())); isOver.set(true); } } if (workspaceConfiguration.getMaxSize() > 0 && currentSize.get() > workspaceConfiguration.getMaxSize()) currentSize.set(workspaceConfiguration.getMaxSize()); } }
public Nd4jWorkspace(@NonNull WorkspaceConfiguration configuration, @NonNull String workspaceId) { this.workspaceConfiguration = configuration; this.id = workspaceId; this.threadId = Thread.currentThread().getId(); this.guid = java.util.UUID.randomUUID().toString(); this.memoryManager = Nd4j.getMemoryManager(); this.deviceId = Nd4j.getAffinityManager().getDeviceForCurrentThread(); // and actual workspace allocation currentSize.set(workspaceConfiguration.getInitialSize()); if (workspaceConfiguration.getPolicyReset() == ResetPolicy.ENDOFBUFFER_REACHED && workspaceConfiguration.getPolicyAllocation() == AllocationPolicy.OVERALLOCATE) { if (workspaceConfiguration.getOverallocationLimit() < 1.0) throw new ND4JIllegalStateException("For cyclic workspace overallocation should be positive integral value."); stepsNumber = (int) (workspaceConfiguration.getOverallocationLimit() + 1); log.debug("Steps: {}", stepsNumber); } //if (workspaceConfiguration.getPolicyLearning() == LearningPolicy.OVER_TIME && workspaceConfiguration.getCyclesBeforeInitialization() < 1) //log.warn("Workspace [{}]: initialization OVER_TIME was selected, but number of cycles isn't positive value!", id); init(); }
if (workspaceConfiguration.getPolicyAllocation() == AllocationPolicy.OVERALLOCATE && workspaceConfiguration.getOverallocationLimit() > 0 && currentSize.get() > 0) { currentSize.set(currentSize.get() + (long) (currentSize.get() * workspaceConfiguration.getOverallocationLimit())); isOver.set(true);