* RL4J: Add generic update rule (#502) Signed-off-by: Alexandre Boulanger <aboulang2002@yahoo.com> * Shyrma reduce (#481) * - start working on improving of cpu legacy code for reduce ops Signed-off-by: Yurii <iuriish@yahoo.com> * - further work on improving legacy loops Signed-off-by: Yurii <iuriish@yahoo.com> * - still working on improving reduce ops Signed-off-by: Yurii <iuriish@yahoo.com> * - further work on improving reduce ops Signed-off-by: Yurii <iuriish@yahoo.com> * - testing speed run of new reduce op Signed-off-by: Yurii <iuriish@yahoo.com> * - working on improvement of default loop for reduce op Signed-off-by: Yurii <iuriish@yahoo.com> * - update signatures of stuff which calls reduce ops Signed-off-by: Yurii <iuriish@yahoo.com> * - make corrections in cuda reduce kernels Signed-off-by: Yurii <iuriish@yahoo.com> * - change loop for default case in broadcast legacy ops Signed-off-by: Yurii <iuriish@yahoo.com> * - comment some shape stuff Signed-off-by: Yurii <iuriish@yahoo.com> * - comment unnecessary prints in RNGtests Signed-off-by: Yurii <iuriish@yahoo.com> * - finish to resolve conflicts after master has been merged Signed-off-by: Yurii <iuriish@yahoo.com> * - get rid of some compilation mistakes of cuda stuff Signed-off-by: Yurii <iuriish@yahoo.com> * - minor changes Signed-off-by: Yurii <iuriish@yahoo.com> * - further search for bug causing crash on java test Signed-off-by: Yurii <iuriish@yahoo.com> * - add scalar case in reduce_ ... exec stuff Signed-off-by: Yurii <iuriish@yahoo.com> * - minor corrections in NAtiveOps.cu Signed-off-by: Yurii <iuriish@yahoo.com> * - add switch to scalar case execReduceXD functions Signed-off-by: Yurii <iuriish@yahoo.com> * - add support for vectors old shape in ConstantShapeHelper::createShapeInfoWithNoUnitiesForReduce Signed-off-by: Yurii <iuriish@yahoo.com> * - correct cuda mirrorPad Signed-off-by: Yurii <iuriish@yahoo.com> * - add support for vectors old shape in cuda createShapeInfoWithNoUnitiesForReduce Signed-off-by: Yurii <iuriish@yahoo.com> Co-authored-by: raver119 <raver119@gmail.com> * Add support for CUDA 11.0 (#492) * Add support for CUDA 11.0 * libnd4j tweaks for CUDA 11 Signed-off-by: raver119@gmail.com <raver119@gmail.com> * bindings update, again? Signed-off-by: raver119@gmail.com <raver119@gmail.com> * * Update versions of JavaCPP Presets for FFmpeg, OpenBLAS, and NumPy * update API to match CUDA 8 Signed-off-by: raver119@gmail.com <raver119@gmail.com> * * Update version of JavaCPP Presets for CPython * C++ updated for cuDNN 8.0 Signed-off-by: raver119@gmail.com <raver119@gmail.com> * one more test Signed-off-by: raver119@gmail.com <raver119@gmail.com> * one more test Signed-off-by: raver119@gmail.com <raver119@gmail.com> * one more test Signed-off-by: raver119@gmail.com <raver119@gmail.com> * 128-bit alignment for workspaces Signed-off-by: raver119@gmail.com <raver119@gmail.com> * change seed in 1 test Signed-off-by: raver119@gmail.com <raver119@gmail.com> * Fix dependecy duplication in python4j-parent pom * Fix group id for in python4j-numpy * few tests tweaked Signed-off-by: raver119@gmail.com <raver119@gmail.com> * Remove macosx-x86_64-gpu from nd4j-tests-tensorflow * few minor tweaks for IndexReduce Signed-off-by: raver119@gmail.com <raver119@gmail.com> * one test removed Signed-off-by: raver119@gmail.com <raver119@gmail.com> Co-authored-by: raver119@gmail.com <raver119@gmail.com> Co-authored-by: Serhii Shepel <9946053+sshepel@users.noreply.github.com> * RL4J: Add SyncTrainer and AgentLearnerBuilder for a few algorithms (#504) Signed-off-by: Alexandre Boulanger <aboulang2002@yahoo.com> Co-authored-by: Alexandre Boulanger <44292157+aboulang2002@users.noreply.github.com> Co-authored-by: Yurii Shyrma <iuriish@yahoo.com> Co-authored-by: raver119 <raver119@gmail.com> Co-authored-by: Serhii Shepel <9946053+sshepel@users.noreply.github.com>
434 lines
18 KiB
XML
434 lines
18 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
~ Copyright (c) 2015-2018 Skymind, Inc.
|
|
~
|
|
~ 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.
|
|
~
|
|
~ 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
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>org.deeplearning4j</groupId>
|
|
<artifactId>deeplearning4j</artifactId>
|
|
<version>1.0.0-SNAPSHOT</version>
|
|
</parent>
|
|
|
|
<groupId>org.nd4j</groupId>
|
|
<artifactId>libnd4j</artifactId>
|
|
<packaging>pom</packaging>
|
|
|
|
<name>libnd4j</name>
|
|
<description>The C++ engine that powers the scientific computing library ND4J - n-dimensional
|
|
arrays for Java
|
|
</description>
|
|
<url>http://nd4j.org/</url>
|
|
|
|
<developers>
|
|
<developer>
|
|
<id>agibsonccc</id>
|
|
<name>Adam Gibson</name>
|
|
<email>adam@skymind.io</email>
|
|
</developer>
|
|
<developer>
|
|
<id>raver119</id>
|
|
<name>raver119</name>
|
|
</developer>
|
|
<developer>
|
|
<id>saudet</id>
|
|
<name>Samuel Audet</name>
|
|
</developer>
|
|
</developers>
|
|
|
|
<properties>
|
|
<!-- CUDA version is linked with the artifact name so cannot move to parent pom.xml -->
|
|
<cuda.version>11.0</cuda.version>
|
|
<cudnn.version>8.0</cudnn.version>
|
|
<libnd4j.build>release</libnd4j.build>
|
|
<libnd4j.chip>cpu</libnd4j.chip>
|
|
<libnd4j.platform>${javacpp.platform}</libnd4j.platform>
|
|
<libnd4j.extension></libnd4j.extension>
|
|
<libnd4j.cuda></libnd4j.cuda>
|
|
<libnd4j.compute></libnd4j.compute>
|
|
<libnd4j.classifier>${libnd4j.platform}</libnd4j.classifier>
|
|
<libnd4j.buildthreads></libnd4j.buildthreads>
|
|
<libnd4j.helper></libnd4j.helper>
|
|
<libnd4j.buildprogram>bash</libnd4j.buildprogram>
|
|
</properties>
|
|
|
|
<build>
|
|
<extensions>
|
|
<extension>
|
|
<groupId>org.kuali.maven.wagons</groupId>
|
|
<artifactId>maven-s3-wagon</artifactId>
|
|
<version>1.2.1</version>
|
|
</extension>
|
|
</extensions>
|
|
|
|
<plugins>
|
|
<!-- Infer the number of CPU cores and put it in the cpu.core.count property -->
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<version>${maven-build-helper-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>get-cpu-count</id>
|
|
<goals>
|
|
<goal>cpu-count</goal>
|
|
</goals>
|
|
<configuration>
|
|
<cpuCount>cpu.core.count</cpuCount>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.bytedeco</groupId>
|
|
<artifactId>javacpp</artifactId>
|
|
<version>${javacpp.version}</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.bytedeco</groupId>
|
|
<artifactId>openblas-platform</artifactId>
|
|
<version>${openblas.version}-${javacpp-presets.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<configuration>
|
|
<properties>${libnd4j.platform}</properties>
|
|
<buildResources>
|
|
<buildResource>/${javacpp.platform.library.path}/</buildResource>
|
|
<buildResource>/org/bytedeco/openblas/${libnd4j.platform}/</buildResource>
|
|
</buildResources>
|
|
<includeResources>
|
|
<includeResource>/${javacpp.platform.library.path}/include/
|
|
</includeResource>
|
|
<includeResource>/org/bytedeco/openblas/${libnd4j.platform}/include/
|
|
</includeResource>
|
|
</includeResources>
|
|
<linkResources>
|
|
<linkResource>/${javacpp.platform.library.path}/</linkResource>
|
|
<linkResource>/${javacpp.platform.library.path}/lib/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/${libnd4j.platform}/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/${libnd4j.platform}/lib/</linkResource>
|
|
</linkResources>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>javacpp-cppbuild-validate</id>
|
|
<phase>validate</phase>
|
|
<goals>
|
|
<goal>build</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>javacpp-cppbuild-compile</id>
|
|
<phase>compile</phase>
|
|
<goals>
|
|
<goal>build</goal>
|
|
</goals>
|
|
<configuration>
|
|
<skip>${libnd4j.cpu.compile.skip}</skip>
|
|
<buildCommand>
|
|
<program>${libnd4j.buildprogram}</program>
|
|
<argument>buildnativeoperations.sh</argument>
|
|
<argument>--build-type</argument>
|
|
<argument>${libnd4j.build}</argument>
|
|
<argument>--chip</argument>
|
|
<argument>${libnd4j.chip}</argument>
|
|
<argument>--platform</argument>
|
|
<argument>${libnd4j.platform}</argument>
|
|
<argument>--chip-extension</argument>
|
|
<argument>${libnd4j.extension}</argument>
|
|
<argument>--chip-version</argument>
|
|
<argument>${cuda.version}</argument>
|
|
<argument>--compute</argument>
|
|
<argument>${libnd4j.compute}</argument>
|
|
<argument>${libnd4j.tests}</argument>
|
|
<argument>-j</argument>
|
|
<argument>${libnd4j.buildthreads}</argument>
|
|
<argument>-h</argument>
|
|
<argument>${libnd4j.helper}</argument>
|
|
</buildCommand>
|
|
<workingDirectory>${project.basedir}</workingDirectory>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>libnd4j-test-run</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>build</goal>
|
|
</goals>
|
|
<configuration>
|
|
<skip>${libnd4j.test.skip}</skip>
|
|
<workingDirectory>${basedir}/tests_cpu</workingDirectory>
|
|
<buildCommand>
|
|
<program>bash</program>
|
|
<argument>run_tests.sh</argument>
|
|
<argument>--chip</argument>
|
|
<argument>${libnd4j.chip}</argument>
|
|
</buildCommand>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<version>2.6</version>
|
|
<executions>
|
|
<execution>
|
|
<id>javacpp-cppbuild-clean</id>
|
|
<phase>clean</phase>
|
|
<goals>
|
|
<goal>clean</goal>
|
|
</goals>
|
|
<configuration>
|
|
<filesets>
|
|
<fileset>
|
|
<directory>blasbuild</directory>
|
|
</fileset>
|
|
</filesets>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<version>3.0.0</version>
|
|
<configuration>
|
|
<descriptors>
|
|
<descriptor>assembly.xml</descriptor>
|
|
</descriptors>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>single</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
<!-- Build on windows can use sh rather than bash due to WSL clashing with msys2 -->
|
|
<profile>
|
|
<id>build-windows</id>
|
|
<activation>
|
|
<os>
|
|
<family>Windows</family>
|
|
</os>
|
|
</activation>
|
|
<properties>
|
|
<libnd4j.buildprogram>sh</libnd4j.buildprogram>
|
|
</properties>
|
|
</profile>
|
|
<!-- Default build program should be bash on non windows platforms -->
|
|
<profile>
|
|
<id>build-unix</id>
|
|
<activation>
|
|
<activeByDefault>true</activeByDefault>
|
|
</activation>
|
|
<properties>
|
|
<libnd4j.buildprogram>bash</libnd4j.buildprogram>
|
|
</properties>
|
|
</profile>
|
|
<!-- Use -Dlibnd4j.singlethread to use single threaded build (multi-threaded by default) -->
|
|
<profile>
|
|
<id>libnd4j-single-thread</id>
|
|
<activation>
|
|
<property>
|
|
<name>libnd4j.singlethread</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<libnd4j.buildthreads>1</libnd4j.buildthreads>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>libnd4-multi-thread</id>
|
|
<activation>
|
|
<property>
|
|
<name>!libnd4j.singlethread</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<!-- Note: CPU core count is from build helper plugin -->
|
|
<libnd4j.buildthreads>${cpu.core.count}</libnd4j.buildthreads>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>chip</id>
|
|
<activation>
|
|
<property>
|
|
<name>libnd4j.chip</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<libnd4j.classifier>${libnd4j.platform}-${libnd4j.chip}-${cuda.version}
|
|
</libnd4j.classifier>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>extension</id>
|
|
<activation>
|
|
<property>
|
|
<name>libnd4j.extension</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<libnd4j.classifier>${libnd4j.platform}-${libnd4j.extension}</libnd4j.classifier>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>cuda</id>
|
|
<activation>
|
|
<property>
|
|
<name>libnd4j.cuda</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<!-- Leave libnd4j.chip and libnd4j.classifier as is to build CPU version as well. -->
|
|
<!-- <libnd4j.chip>cuda</libnd4j.chip> -->
|
|
<!-- <libnd4j.classifier>${libnd4j.platform}-cuda-${cuda.version}</libnd4j.classifier> -->
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.bytedeco</groupId>
|
|
<artifactId>javacpp</artifactId>
|
|
<version>${javacpp.version}</version>
|
|
<configuration>
|
|
<properties>${libnd4j.platform}</properties>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>javacpp-cppbuild-compile-cuda</id>
|
|
<phase>compile</phase>
|
|
<goals>
|
|
<goal>build</goal>
|
|
</goals>
|
|
<configuration>
|
|
<skip>${libnd4j.cuda.compile.skip}</skip>
|
|
<buildCommand>
|
|
<program>${libnd4j.buildprogram}</program>
|
|
<argument>buildnativeoperations.sh
|
|
</argument>
|
|
<argument>--build-type</argument>
|
|
<argument>${libnd4j.build}</argument>
|
|
<argument>--chip</argument>
|
|
<argument>cuda</argument>
|
|
<argument>--platform</argument>
|
|
<argument>${libnd4j.platform}</argument>
|
|
<argument>--chip-extension</argument>
|
|
<argument>${libnd4j.extension}</argument>
|
|
<argument>--chip-version</argument>
|
|
<argument>${cuda.version}</argument>
|
|
<argument>--compute</argument>
|
|
<argument>${libnd4j.compute}</argument>
|
|
<argument>${libnd4j.tests}</argument>
|
|
<argument>-j</argument>
|
|
<argument>${libnd4j.buildthreads}</argument>
|
|
</buildCommand>
|
|
<workingDirectory>${project.basedir}</workingDirectory>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<version>3.0.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>libnd4j-package-cuda</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>single</goal>
|
|
</goals>
|
|
<configuration>
|
|
<descriptors>
|
|
<descriptor>assembly-cuda.xml</descriptor>
|
|
</descriptors>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>clean-tests</id>
|
|
<activation>
|
|
<file>
|
|
<exists>${basedir}/tests_cpu/Makefile</exists>
|
|
</file>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<version>1.6.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>libnd4j-test-clean</id>
|
|
<phase>clean</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<executable>make</executable>
|
|
<workingDirectory>${basedir}/tests_cpu</workingDirectory>
|
|
<arguments>
|
|
<argument>clean</argument>
|
|
</arguments>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<!-- Profiles to set the default libnd4j.helper property, example: mkdnn -->
|
|
<profile>
|
|
<id>libnd4j-helper-avx2</id>
|
|
<activation>
|
|
<property>
|
|
<name>libnd4j.extension</name>
|
|
<value>avx2</value>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<libnd4j.helper>mkldnn</libnd4j.helper>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>libnd4j-helper-avx512</id>
|
|
<activation>
|
|
<property>
|
|
<name>libnd4j.extension</name>
|
|
<value>avx512</value>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<libnd4j.helper>mkldnn</libnd4j.helper>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|