Skip to content

Commit

Permalink
build DirectML-ExecutionProvider separately
Browse files Browse the repository at this point in the history
  • Loading branch information
barrypitman committed Sep 18, 2024
1 parent dc774f9 commit 9242eeb
Show file tree
Hide file tree
Showing 4 changed files with 130 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/onnxruntime.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
timeout-minutes: 720
strategy:
matrix:
ext: ["", -gpu]
ext: ["", -gpu, -dml]
steps:
- uses: bytedeco/javacpp-presets/.github/actions/deploy-windows@actions
redeploy:
Expand Down
6 changes: 5 additions & 1 deletion onnxruntime/cppbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ if [[ "$EXTENSION" == *gpu ]]; then
GPU_FLAGS="--use_cuda"
fi

export DML_FLAGS=
if [[ "$EXTENSION" == *dml ]]; then
DML_FLAGS="--use_dml"
fi

ONNXRUNTIME=1.18.1

mkdir -p "$PLATFORM$EXTENSION"
Expand Down Expand Up @@ -56,7 +61,6 @@ case $PLATFORM in
export CC="cl.exe"
export CXX="cl.exe"
export ARCH_FLAGS=
export DML_FLAGS="--use_dml"
export PYTHON_BIN_PATH=$(which python.exe)
;;
esac
Expand Down
118 changes: 118 additions & 0 deletions onnxruntime/platform/dml/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.bytedeco</groupId>
<artifactId>javacpp-presets</artifactId>
<version>1.5.11-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>

<groupId>org.bytedeco</groupId>
<artifactId>onnxruntime-platform-dml</artifactId>
<version>1.18.1-${project.parent.version}</version>
<name>JavaCPP Presets Platform DirectML for ONNX Runtime</name>

<properties>
<javacpp.moduleId>onnxruntime</javacpp.moduleId>
<javacpp.platform.extension>-dml</javacpp.platform.extension>
</properties>

<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${javacpp.moduleId}</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${javacpp.moduleId}</artifactId>
<version>${project.version}</version>
<classifier>${javacpp.platform.linux-x86_64}</classifier>
</dependency>
<!-- <dependency>-->
<!-- <groupId>${project.groupId}</groupId>-->
<!-- <artifactId>${javacpp.moduleId}</artifactId>-->
<!-- <version>${project.version}</version>-->
<!-- <classifier>${javacpp.platform.macosx-x86_64}</classifier>-->
<!-- </dependency>-->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${javacpp.moduleId}</artifactId>
<version>${project.version}</version>
<classifier>${javacpp.platform.windows-x86_64}</classifier>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<configuration>
<archive>
<manifestEntries>
<Class-Path>${javacpp.moduleId}.jar ${javacpp.moduleId}-linux-x86_64-gpu.jar ${javacpp.moduleId}-macosx-x86_64-gpu.jar ${javacpp.moduleId}-windows-x86_64-gpu.jar</Class-Path>
</manifestEntries>
</archive>
</configuration>
</execution>
<execution>
<id>empty-javadoc-jar</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>javadoc</classifier>
</configuration>
</execution>
<execution>
<id>empty-sources-jar</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>sources</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.moditect</groupId>
<artifactId>moditect-maven-plugin</artifactId>
<executions>
<execution>
<id>add-module-infos</id>
<phase>none</phase>
</execution>
<execution>
<id>add-platform-module-info</id>
<phase>package</phase>
<goals>
<goal>add-module-info</goal>
</goals>
<configuration>
<modules>
<module>
<file>${project.build.directory}/${project.artifactId}.jar</file>
<moduleInfoSource>
module org.bytedeco.${javacpp.moduleId}.platform.gpu {
requires static org.bytedeco.${javacpp.moduleId}.linux.x86_64.gpu;
// requires static org.bytedeco.${javacpp.moduleId}.macosx.x86_64.gpu;
requires static org.bytedeco.${javacpp.moduleId}.windows.x86_64.gpu;
}
</moduleInfoSource>
</module>
</modules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
// "onnxruntime/core/providers/armnn/armnn_provider_factory.h",
// "onnxruntime/core/providers/coreml/coreml_provider_factory.h",
// "onnxruntime/core/providers/rocm/rocm_provider_factory.h",
// "onnxruntime/core/providers/dml/dml_provider_factory.h",
"onnxruntime/core/providers/dml/dml_provider_factory.h",
},
link = {"onnxruntime_providers_shared", "onnxruntime@.1.18.1"}
),
Expand All @@ -75,6 +75,11 @@
extension = "-gpu",
link = {"onnxruntime_providers_shared", "onnxruntime@.1.18.1", "onnxruntime_providers_dnnl", "onnxruntime_providers_cuda"}
),
@Platform(
value = {"windows-x86_64"},
extension = "-dml",
link = {"onnxruntime_providers_shared", "onnxruntime@.1.18.1", "onnxruntime_providers_dml"}
),
},
target = "org.bytedeco.onnxruntime",
global = "org.bytedeco.onnxruntime.global.onnxruntime"
Expand Down

0 comments on commit 9242eeb

Please sign in to comment.