All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nd4j.common.config.ND4JSystemProperties Maven / Gradle / Ivy

There is a newer version: 1.0.0-M2.1
Show newest version
/*
 *  ******************************************************************************
 *  *
 *  *
 *  * This program and the accompanying materials are made available under the
 *  * terms of the Apache License, Version 2.0 which is available at
 *  * https://www.apache.org/licenses/LICENSE-2.0.
 *  *
 *  *  See the NOTICE file distributed with this work for additional
 *  *  information regarding copyright ownership.
 *  * Unless required by applicable law or agreed to in writing, software
 *  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 *  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 *  * License for the specific language governing permissions and limitations
 *  * under the License.
 *  *
 *  * SPDX-License-Identifier: Apache-2.0
 *  *****************************************************************************
 */

package org.nd4j.common.config;

import org.nd4j.common.resources.Resources;
import org.nd4j.common.resources.strumpf.ResourceFile;
import org.nd4j.common.resources.strumpf.StrumpfResolver;

import java.io.File;
import java.net.URL;

public class ND4JSystemProperties {

    /**
     * Applicability: Always
* Description: Sets the default datatype for ND4J - should be one of "float", "double", "half". * ND4J is set to float (32-bit floating point values) by default. */ public static final String DTYPE = "dtype"; /** * Applicability: Always
* Description: By default, ND4J will log some information when the library has completed initialization, such as the * backend (CPU or CUDA), CPU/Devices, memory etc. This system property can be used to disable the logging of this * initialization information */ public static final String LOG_INITIALIZATION = "org.nd4j.log.initialization"; /** * Applicability: nd4j-native when running non-AVX binary on an AVX compatible CPU
* Description: Set to true to avoid logging AVX warnings (i.e., running generic x86 binaries on an AVX2 system) */ public static final String ND4J_IGNORE_AVX = "org.nd4j.avx.ignore"; /** * Applicability: Always
* Description: This system property defines the maximum amount of off-heap memory that can be used. * ND4J uses off-heap memory for storage of all INDArray data. This off-heap memory is a different * pool of memory to the on-heap JVM memory (configured using standard Java Xms/Xmx options). * Default: 2x Java XMX setting * * @see #JAVACPP_MEMORY_MAX_PHYSICAL_BYTES */ public static final String JAVACPP_MEMORY_MAX_BYTES = "org.bytedeco.javacpp.maxbytes"; /** * Applicability: Always
* Description: This system property defines the maximum total amount of memory that the process can use - it is * the sum of both off-heap and on-heap memory. This can be used to provide an upper bound on the maximum amount * of memory (of all types) that ND4J will use * * @see #JAVACPP_MEMORY_MAX_BYTES */ public static final String JAVACPP_MEMORY_MAX_PHYSICAL_BYTES = "org.bytedeco.javacpp.maxphysicalbytes"; /** * Applicability: ND4J Temporary file creation/extraction for ClassPathResource, memory mapped workspaces, and
* Description: Specify the local directory where temporary files will be written. If not specified, the default * Java temporary directory (java.io.tmpdir system property) will generally be used. */ public static final String ND4J_TEMP_DIR_PROPERTY = "org.nd4j.tempdir"; /** * Applicability: always - but only if an ND4J backend cannot be found/loaded via standard ServiceLoader mechanisms
* Description: Set this property to a set fully qualified JAR files to attempt to load before failing on * not loading a backend. JAR files should be semi-colon delimited; i.e., "/some/file.jar;/other/path.jar". * This should rarely be required in practice - for example, only in dynamic class loading/dynamic classpath scenarios
* For equivalent system property, see {@link ND4JEnvironmentVars#BACKEND_DYNAMIC_LOAD_CLASSPATH} for the equivalent * system property (the system property will take precidence if both are set) */ public static final String DYNAMIC_LOAD_CLASSPATH_PROPERTY = "org.nd4j.backend.dynamicbackend"; /** * Applicability: Always
* Description Setting the system property to false will stop ND4J from performing the version check, and logging any * warnings/errors. By default, the version check is enabled.
* Note: the version check is there for a reason! Using incompatible versions of ND4J/DL4J etc is likely to cause * issues, and should be avoided. */ public static final String VERSION_CHECK_PROPERTY = "org.nd4j.versioncheck"; /** * Applicability: always
* Description: Used to specify the maximum number of elements (numbers) to print when using DataBuffer.toString(). * Use -1 to print all elements (i.e., no limit). This is usually to avoid expensive toString() calls on buffers * which may have millions of elements - for example, in a debugger
* Default: 1000 */ public static final String DATABUFFER_TO_STRING_MAX_ELEMENTS = "org.nd4j.databuffer.tostring.maxelements"; /** * Applicability: nd4j-native backend, when multiple BLAS libraries are available
* Description: This system property can be used to control which BLAS library is loaded and used by ND4J. * For example, {@code org.bytedeco.javacpp.openblas.load=mkl_rt} can be used to load a default installation of MKL. * However, MKL is liked with by default (when available) so setting this option explicitly is not usually required. * For more details, see https://github.com/bytedeco/javacpp-presets/tree/master/openblas#documentation */ public static final String ND4J_CPU_LOAD_OPENBLAS = "org.bytedeco.openblas.load"; /** * Applicability: nd4j-native backend, when multiple BLAS libraries are available
* Description: This system property can be used to control which BLAS library is loaded and used by ND4J. * Similar to {@link #ND4J_CPU_LOAD_OPENBLAS} but when this is set, LAPACK will not be loaded */ public static final String ND4J_CPU_LOAD_OPENBLAS_NOLAPACK = "org.bytedeco.openblas_nolapack.load"; /** * Applicability: nd4j-parameter-server, dl4j-spark (gradient sharing training master)
* Description: Aeros in a high-performance communication library used in distributed computing contexts in some * places in ND4J and DL4J. This term buffer length determines the maximum message length that can be sent via Aeron * in a single message. It can be increased to avoid exceptions such as {@code Encoded message exceeds maxMessageLength of 2097152}, * at the expense of increased memory consumption (memory consumption is a multiple of this). It is specified in bytes * with no unit suffix. Default value: 33554432 (32MB). * IMPORTANT: This value must be an exact power of 2.
* Note also the maximum effective size is 128MB (134217728) (due to Aeron internal limits - beyond which increasing * the buffer size will have no effect) */ public static final String AERON_TERM_BUFFER_PROP = "aeron.term.buffer.length"; /** * Applicability: nd4j-common {@link Resources} class (and hence {@link StrumpfResolver})
* Description: When resolving resources from a Strumpf resource file (Example: {@code Resources.asFile("myFile.txt")} * where should the remote files be downloaded to?
* This is generally used for resolving test resources, but can be used for Strumpf resource files generally. */ public static final String RESOURCES_CACHE_DIR = "org.nd4j.test.resources.cache.dir"; /** * Applicability: nd4j-common {@link Resources} class (and hence {@link StrumpfResolver})
* Description: When resolving resources from a Strumpf resource file (Example: {@code Resources.asFile("myFile.txt")} * what should be the connection timeout, as used by {@link org.apache.commons.io.FileUtils#copyURLToFile(URL, File, int, int)}
* Default: {@link ResourceFile#DEFAULT_CONNECTION_TIMEOUT} */ public static final String RESOURCES_CONNECTION_TIMEOUT = "org.nd4j.resources.download.connectiontimeout"; /** * Applicability: nd4j-common {@link Resources} class (and hence {@link StrumpfResolver})
* Description: When resolving resources from a Strumpf resource file (Example: {@code Resources.asFile("myFile.txt")} * what should be the connection timeout, as used by {@link org.apache.commons.io.FileUtils#copyURLToFile(URL, File, int, int)}
* Default: {@link ResourceFile#DEFAULT_READ_TIMEOUT} */ public static final String RESOURCES_READ_TIMEOUT = "org.nd4j.resources.download.readtimeout"; /** * Applicability: nd4j-common {@link Resources} class (and hence {@link StrumpfResolver})
* Description: When resolving resources, what local directories should be checked (in addition to the classpath) for files? * This is optional. Multiple directories may be specified, using comma-separated paths */ public static final String RESOURCES_LOCAL_DIRS = "org.nd4j.strumpf.resource.dirs"; private ND4JSystemProperties() { } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy