785 lines
39 KiB
XML
785 lines
39 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
~ /* ******************************************************************************
|
|
~ *
|
|
~ *
|
|
~ * 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
|
|
~ ******************************************************************************/
|
|
-->
|
|
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>org.eclipse.deeplearning4j</groupId>
|
|
<artifactId>deeplearning4j</artifactId>
|
|
<version>1.0.0-SNAPSHOT</version>
|
|
</parent>
|
|
|
|
<groupId>org.eclipse.deeplearning4j</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>
|
|
|
|
|
|
<properties>
|
|
|
|
<!-- Type validation modes -->
|
|
<libnd4j.types.validation.mode>normal</libnd4j.types.validation.mode>
|
|
<libnd4j.types.strict.validation>false</libnd4j.types.strict.validation>
|
|
<libnd4j.types.show.impact>true</libnd4j.types.show.impact>
|
|
|
|
<!-- Debug type configuration -->
|
|
<libnd4j.debug.types.profile>MINIMAL_INDEXING</libnd4j.debug.types.profile>
|
|
<libnd4j.debug.types.custom></libnd4j.debug.types.custom>
|
|
<libnd4j.debug.auto.reduce>false</libnd4j.debug.auto.reduce>
|
|
|
|
<!-- Predefined type profiles for easy selection -->
|
|
<libnd4j.datatypes.all></libnd4j.datatypes.all>
|
|
<libnd4j.datatypes.minimal>float32;double;int32;int64</libnd4j.datatypes.minimal>
|
|
<libnd4j.datatypes.essential>float32;double;int32;int64;int8;int16</libnd4j.datatypes.essential>
|
|
<libnd4j.datatypes.floats>float32;double;float16</libnd4j.datatypes.floats>
|
|
<libnd4j.datatypes.integers>int8;int16;int32;int64;uint8;uint16;uint32;uint64</libnd4j.datatypes.integers>
|
|
<libnd4j.datatypes.single.precision>float32;int32;int64</libnd4j.datatypes.single.precision>
|
|
<libnd4j.datatypes.double.precision>double;int32;int64</libnd4j.datatypes.double.precision>
|
|
<libnd4j.datatypes.debug.safe>float32;double;int32;int64</libnd4j.datatypes.debug.safe>
|
|
|
|
<!-- Production type configurations -->
|
|
<libnd4j.datatypes.production.minimal>bool;int8;int16;int32;int64;float32;double</libnd4j.datatypes.production.minimal>
|
|
<libnd4j.datatypes.production.complete>bool;int8;uint8;int16;uint16;int32;uint32;int64;uint64;float16;bfloat16;float32;double</libnd4j.datatypes.production.complete>
|
|
|
|
<!-- ML/AI focused type sets -->
|
|
<libnd4j.datatypes.ml.training>float32;float16;bfloat16;int32;int64</libnd4j.datatypes.ml.training>
|
|
<libnd4j.datatypes.ml.inference>float32;float16;int8;int32;int64</libnd4j.datatypes.ml.inference>
|
|
|
|
|
|
<libnd4j.generate.flatc>false</libnd4j.generate.flatc>
|
|
<libnd4j.outputPath>${project.basedir}/blasbuild/${libnd4j.chip}</libnd4j.outputPath>
|
|
<cuda.version>12.3</cuda.version>
|
|
<cudnn.version>8.9</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>
|
|
<libnd4j.operations></libnd4j.operations>
|
|
<libnd4j.datatypes></libnd4j.datatypes>
|
|
<libnd4j.sanitize>OFF</libnd4j.sanitize>
|
|
<libnd4j.ptxas>OFF</libnd4j.ptxas>
|
|
<libnd4j.sanitizers>address</libnd4j.sanitizers>
|
|
<libnd4j.arch></libnd4j.arch>
|
|
<openblas.artifactId></openblas.artifactId>
|
|
<openblas.classifier></openblas.classifier>
|
|
<libnd4j.calltrace>OFF</libnd4j.calltrace>
|
|
<libnd4j.lto>OFF</libnd4j.lto>
|
|
<libnd4j.vectorization>OFF</libnd4j.vectorization>
|
|
<libnd4j.cpu.compile.skip>false</libnd4j.cpu.compile.skip>
|
|
<libnd4j.cuda.compile.skip>false</libnd4j.cuda.compile.skip>
|
|
<libnd4j.test.filter>none</libnd4j.test.filter>
|
|
<libnd4j.log>none</libnd4j.log>
|
|
<libnd4j.test.runner></libnd4j.test.runner>
|
|
<libnd4j.keepnvcc>OFF</libnd4j.keepnvcc>
|
|
<libnd4j.optimization>3</libnd4j.optimization>
|
|
<libnd4j.printindices>OFF</libnd4j.printindices>
|
|
<libnd4j.printmath>OFF</libnd4j.printmath>
|
|
<junit.version>5.9.2</junit.version>
|
|
<cpu.core.count></cpu.core.count>
|
|
<libnd4j.preprocess>OFF</libnd4j.preprocess>
|
|
<libnd4j.build.ppstep>OFF</libnd4j.build.ppstep>
|
|
<libnd4j.extract.instantiations>OFF</libnd4j.extract.instantiations>
|
|
<libnd4j.generate.fix.files>OFF</libnd4j.generate.fix.files>
|
|
<libnd4j.instantiation.report>OFF</libnd4j.instantiation.report>
|
|
<libnd4j.instantiation.verbose>OFF</libnd4j.instantiation.verbose>
|
|
<libnd4j.analyze.templates>OFF</libnd4j.analyze.templates>
|
|
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter</artifactId>
|
|
<version>${junit.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.junit.platform</groupId>
|
|
<artifactId>junit-platform-launcher</artifactId>
|
|
<version>1.9.2</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
<version>${junit.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-params</artifactId>
|
|
<version>${junit.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
|
|
<build>
|
|
<extensions>
|
|
<extension>
|
|
<groupId>org.kuali.maven.wagons</groupId>
|
|
<artifactId>maven-s3-wagon</artifactId>
|
|
<version>1.2.1</version>
|
|
</extension>
|
|
</extensions>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>${maven-surefire.version}</version>
|
|
<configuration>
|
|
<reportsDirectory>tests_cpu/surefire-reports/</reportsDirectory>
|
|
<systemPropertyVariables>
|
|
<libnd4j.build.dir>${project.basedir}</libnd4j.build.dir>
|
|
<libnd4j.chip>${libnd4j.chip}</libnd4j.chip>
|
|
<libnd4j.test.filter>${libnd4j.test.filter}</libnd4j.test.filter>
|
|
<libnd4j.test.runner>${libnd4j.test.runner}</libnd4j.test.runner>
|
|
</systemPropertyVariables>
|
|
<forkedProcessExitTimeoutInSeconds>0</forkedProcessExitTimeoutInSeconds>
|
|
<forkedProcessTimeoutInSeconds>0</forkedProcessTimeoutInSeconds>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>test-results</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>test</goal>
|
|
</goals>
|
|
<configuration>
|
|
<reportsDirectory>tests_cpu/surefire-reports/</reportsDirectory>
|
|
<systemPropertyVariables>
|
|
<libnd4j.build.dir>${project.build.directory}</libnd4j.build.dir>
|
|
<libnd4j.chip>${libnd4j.chip}</libnd4j.chip>
|
|
<libnd4j.test.filter>${libnd4j.test.filter}</libnd4j.test.filter>
|
|
<libnd4j.test.runner>${libnd4j.test.runner}</libnd4j.test.runner>
|
|
|
|
</systemPropertyVariables>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<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.apache.maven.plugins</groupId>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<version>3.3.1</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>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<version>3.6.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>
|
|
|
|
<profile>
|
|
<id>compat-profile</id>
|
|
<activation>
|
|
<property>
|
|
<name>javacpp.platform.extension</name>
|
|
<value>/.+/</value>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<openblas.artifactId>openblas</openblas.artifactId>
|
|
<openblas.classifier>${javacpp.platform}</openblas.classifier>
|
|
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>default-javacpp</id>
|
|
<activation>
|
|
<property>
|
|
<name>!javacpp.platform.extension</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<openblas.artifactId>openblas-platform</openblas.artifactId>
|
|
</properties>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>build-windows</id>
|
|
<activation>
|
|
<os>
|
|
<family>Windows</family>
|
|
</os>
|
|
</activation>
|
|
<properties>
|
|
<libnd4j.buildprogram>sh</libnd4j.buildprogram>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>build-unix</id>
|
|
<activation>
|
|
<activeByDefault>true</activeByDefault>
|
|
</activation>
|
|
<properties>
|
|
<libnd4j.buildprogram>bash</libnd4j.buildprogram>
|
|
</properties>
|
|
</profile>
|
|
<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>
|
|
<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>
|
|
|
|
<!-- Add these profiles to pom.xml for each platform -->
|
|
|
|
<!-- Android ARM64 profile -->
|
|
<profile>
|
|
<id>android-arm64-openblas</id>
|
|
<activation>
|
|
<property>
|
|
<name>javacpp.platform</name>
|
|
<value>android-arm64</value>
|
|
</property>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.bytedeco</groupId>
|
|
<artifactId>javacpp</artifactId>
|
|
<configuration>
|
|
<buildResources>
|
|
<buildResource>/${javacpp.platform.library.path}/</buildResource>
|
|
<buildResource>/org/bytedeco/openblas/android-arm64/</buildResource>
|
|
<buildResource>/org/bytedeco/openblas/android-aarch64/</buildResource>
|
|
<buildResource>/org/bytedeco/openblas/linux-arm64/</buildResource>
|
|
<buildResource>/org/bytedeco/openblas/linux-aarch64/</buildResource>
|
|
</buildResources>
|
|
<includeResources>
|
|
<includeResource>/${javacpp.platform.library.path}/include/</includeResource>
|
|
<includeResource>/org/bytedeco/openblas/android-arm64/include/</includeResource>
|
|
<includeResource>/org/bytedeco/openblas/android-aarch64/include/</includeResource>
|
|
<includeResource>/org/bytedeco/openblas/linux-arm64/include/</includeResource>
|
|
<includeResource>/org/bytedeco/openblas/linux-aarch64/include/</includeResource>
|
|
</includeResources>
|
|
<linkResources>
|
|
<linkResource>/${javacpp.platform.library.path}/</linkResource>
|
|
<linkResource>/${javacpp.platform.library.path}/lib/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/android-arm64/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/android-arm64/lib/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/android-aarch64/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/android-aarch64/lib/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/linux-arm64/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/linux-arm64/lib/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/linux-aarch64/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/linux-aarch64/lib/</linkResource>
|
|
</linkResources>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<!-- Linux ARM64 profile -->
|
|
<profile>
|
|
<id>linux-arm64-openblas</id>
|
|
<activation>
|
|
<property>
|
|
<name>javacpp.platform</name>
|
|
<value>linux-arm64</value>
|
|
</property>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.bytedeco</groupId>
|
|
<artifactId>javacpp</artifactId>
|
|
<configuration>
|
|
<buildResources>
|
|
<buildResource>/${javacpp.platform.library.path}/</buildResource>
|
|
<buildResource>/org/bytedeco/openblas/linux-arm64/</buildResource>
|
|
<buildResource>/org/bytedeco/openblas/linux-aarch64/</buildResource>
|
|
</buildResources>
|
|
<includeResources>
|
|
<includeResource>/${javacpp.platform.library.path}/include/</includeResource>
|
|
<includeResource>/org/bytedeco/openblas/linux-arm64/include/</includeResource>
|
|
<includeResource>/org/bytedeco/openblas/linux-aarch64/include/</includeResource>
|
|
</includeResources>
|
|
<linkResources>
|
|
<linkResource>/${javacpp.platform.library.path}/</linkResource>
|
|
<linkResource>/${javacpp.platform.library.path}/lib/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/linux-arm64/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/linux-arm64/lib/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/linux-aarch64/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/linux-aarch64/lib/</linkResource>
|
|
</linkResources>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<!-- Updated Android x86_64 profile -->
|
|
<profile>
|
|
<id>android-x86_64-openblas</id>
|
|
<activation>
|
|
<property>
|
|
<name>javacpp.platform</name>
|
|
<value>android-x86_64</value>
|
|
</property>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.bytedeco</groupId>
|
|
<artifactId>javacpp</artifactId>
|
|
<configuration>
|
|
<buildResources>
|
|
<buildResource>/${javacpp.platform.library.path}/</buildResource>
|
|
<buildResource>/org/bytedeco/openblas/android-x86_64/</buildResource>
|
|
<buildResource>/org/bytedeco/openblas/linux-x86_64/</buildResource>
|
|
</buildResources>
|
|
<includeResources>
|
|
<includeResource>/${javacpp.platform.library.path}/include/</includeResource>
|
|
<includeResource>/org/bytedeco/openblas/android-x86_64/include/</includeResource>
|
|
<includeResource>/org/bytedeco/openblas/linux-x86_64/include/</includeResource>
|
|
</includeResources>
|
|
<linkResources>
|
|
<linkResource>/${javacpp.platform.library.path}/</linkResource>
|
|
<linkResource>/${javacpp.platform.library.path}/lib/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/android-x86_64/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/android-x86_64/lib/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/linux-x86_64/</linkResource>
|
|
<linkResource>/org/bytedeco/openblas/linux-x86_64/lib/</linkResource>
|
|
</linkResources>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</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>
|
|
<libnd4j.cpu.compile.skip>true</libnd4j.cpu.compile.skip>
|
|
<libnd4j.cuda.compile.skip>false</libnd4j.cuda.compile.skip>
|
|
</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>--output-path</argument>
|
|
<argument>${libnd4j.outputPath}</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>
|
|
<argument>-h</argument>
|
|
<argument>${libnd4j.helper}</argument>
|
|
<argument>--operations</argument>
|
|
<argument>${libnd4j.operations}</argument>
|
|
<argument>--datatypes</argument>
|
|
<argument>${libnd4j.datatypes}</argument>
|
|
<argument>--sanitize</argument>
|
|
<argument>${libnd4j.sanitize}</argument>
|
|
<argument>--sanitizers</argument>
|
|
<argument>${libnd4j.sanitizers}</argument>
|
|
<argument>--use_lto</argument>
|
|
<argument>${libnd4j.lto}</argument>
|
|
<argument>--functrace</argument>
|
|
<argument>${libnd4j.calltrace}</argument>
|
|
<argument>--log-output</argument>
|
|
<argument>${libnd4j.log}</argument>
|
|
<argument>--optimization-level</argument>
|
|
<argument>${libnd4j.optimization}</argument>
|
|
<argument>--print-indices</argument>
|
|
<argument>${libnd4j.printindices}</argument>
|
|
<argument>--print-math</argument>
|
|
<argument>${libnd4j.printmath}</argument>
|
|
<argument>--preprocess</argument>
|
|
<argument>${libnd4j.preprocess}</argument>
|
|
<argument>--generate-flatc</argument>
|
|
<argument>${libnd4j.generate.flatc}</argument>
|
|
<argument>--debug-type-profile</argument>
|
|
<argument>${libnd4j.debug.types.profile}</argument>
|
|
<argument>--debug-custom-types</argument>
|
|
<argument>${libnd4j.debug.types.custom}</argument>
|
|
<argument>--debug-auto-reduce</argument>
|
|
<argument>${libnd4j.debug.auto.reduce}</argument>
|
|
<argument>--ppstep</argument>
|
|
<argument>${libnd4j.build.ppstep}</argument>
|
|
<argument>--extract-instantiations</argument>
|
|
<argument>${libnd4j.extract.instantiations}</argument>
|
|
<argument>--generate-fix-files</argument>
|
|
<argument>${libnd4j.generate.fix.files}</argument>
|
|
<argument>--instantiation-report</argument>
|
|
<argument>${libnd4j.instantiation.report}</argument>
|
|
<argument>--instantiation-verbose</argument>
|
|
<argument>${libnd4j.instantiation.verbose}</argument>
|
|
|
|
</buildCommand>
|
|
<workingDirectory>${project.basedir}</workingDirectory>
|
|
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<version>3.6.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>build-cpu</id>
|
|
<activation>
|
|
<property>
|
|
<name>!libnd4j.cuda</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<libnd4j.cuda.compile.skip>true</libnd4j.cuda.compile.skip>
|
|
<libnd4j.cpu.compile.skip>false</libnd4j.cpu.compile.skip>
|
|
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.bytedeco</groupId>
|
|
<artifactId>javacpp</artifactId>
|
|
<version>${javacpp.version}</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.bytedeco</groupId>
|
|
<artifactId>${openblas.artifactId}</artifactId>
|
|
<version>${openblas.version}-${javacpp-presets.version}</version>
|
|
<classifier>${openblas.classifier}</classifier>
|
|
</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>--output-path</argument>
|
|
<argument>${libnd4j.outputPath}</argument>
|
|
<argument>--build-type</argument>
|
|
<argument>${libnd4j.build}</argument>
|
|
<argument>--chip</argument>
|
|
<argument>${libnd4j.chip}</argument>
|
|
<argument>--platform</argument>
|
|
<argument>${libnd4j.platform}</argument>
|
|
<argument>--check-vectorization</argument>
|
|
<argument>${libnd4j.vectorization}</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>
|
|
<argument>--operations</argument>
|
|
<argument>${libnd4j.operations}</argument>
|
|
<argument>--datatypes</argument>
|
|
<argument>${libnd4j.datatypes}</argument>
|
|
<argument>--sanitize</argument>
|
|
<argument>${libnd4j.sanitize}</argument>
|
|
<argument>--sanitizers</argument>
|
|
<argument>${libnd4j.sanitizers}</argument>
|
|
<argument>--arch</argument>
|
|
<argument>${libnd4j.arch}</argument>
|
|
<argument>--use_lto</argument>
|
|
<argument>${libnd4j.lto}</argument>
|
|
<argument>--functrace</argument>
|
|
<argument>${libnd4j.calltrace}</argument>
|
|
<argument>--log-output</argument>
|
|
<argument>${libnd4j.log}</argument>
|
|
<argument>--keep-nvcc-output</argument>
|
|
<argument>${libnd4j.keepnvcc}</argument>
|
|
<argument>--optimization-level</argument>
|
|
<argument>${libnd4j.optimization}</argument>
|
|
<argument>--print-indices</argument>
|
|
<argument>${libnd4j.printindices}</argument>
|
|
<argument>--print-math</argument>
|
|
<argument>${libnd4j.printmath}</argument>
|
|
<argument>--preprocess</argument>
|
|
<argument>${libnd4j.preprocess}</argument>
|
|
<argument>--generate-flatc</argument>
|
|
<argument>${libnd4j.generate.flatc}</argument>
|
|
<argument>--debug-type-profile</argument>
|
|
<argument>${libnd4j.debug.types.profile}</argument>
|
|
<argument>--debug-custom-types</argument>
|
|
<argument>${libnd4j.debug.types.custom}</argument>
|
|
<argument>--debug-auto-reduce</argument>
|
|
<argument>${libnd4j.debug.auto.reduce}</argument>
|
|
<argument>--ppstep</argument>
|
|
<argument>${libnd4j.build.ppstep}</argument>
|
|
<argument>--extract-instantiations</argument>
|
|
<argument>${libnd4j.extract.instantiations}</argument>
|
|
|
|
</buildCommand>
|
|
<workingDirectory>${project.basedir}</workingDirectory>
|
|
</configuration>
|
|
</execution>
|
|
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>debug-functrace-auto-reduce</id>
|
|
<activation>
|
|
<property>
|
|
<name>libnd4j.calltrace</name>
|
|
<value>ON</value>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<!-- Auto-reduce types for debug builds -->
|
|
<libnd4j.datatypes>${libnd4j.datatypes.minimal}</libnd4j.datatypes>
|
|
</properties>
|
|
</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>3.1.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>
|
|
</project> |