onnxruntime/cmake/external/dml.cmake
Rui Ren 1a48099eea
ORT 1.14.0 release -- cherry pick round1 (#14456)
### Description
<!-- Describe your changes. -->
First round cherry pick, total `19` PRs, as below. Please check here for
[Here](https://github.com/microsoft/onnxruntime/issues?q=label%3Arelease%3A1.14+sort%3Aupdated-asc)
for the total list.
<head>

<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content="Microsoft Excel 15">
<link id=Main-File rel=Main-File

href="file:///C:/Users/ruiren/AppData/Local/Temp/msohtmlclip1/01/clip.htm">
<link rel=File-List

href="file:///C:/Users/ruiren/AppData/Local/Temp/msohtmlclip1/01/clip_filelist.xml">
<style>
<!--table
	{mso-displayed-decimal-separator:"\.";
	mso-displayed-thousand-separator:"\,";}
@page
	{margin:.75in .7in .75in .7in;
	mso-header-margin:.3in;
	mso-footer-margin:.3in;}
tr
	{mso-height-source:auto;}
col
	{mso-width-source:auto;}
br
	{mso-data-placement:same-cell;}
td
	{padding-top:1px;
	padding-right:1px;
	padding-left:1px;
	mso-ignore:padding;
	color:black;
	font-size:11.0pt;
	font-weight:400;
	font-style:normal;
	text-decoration:none;
	font-family:Calibri, sans-serif;
	mso-font-charset:0;
	mso-number-format:General;
	text-align:general;
	vertical-align:bottom;
	border:none;
	mso-background-source:auto;
	mso-pattern:auto;
	mso-protection:locked visible;
	white-space:nowrap;
	mso-rotate:0;}
.xl65
	{text-align:center;}
.xl66
	{color:windowtext;
	text-align:center;
	border:.5pt solid windowtext;
	background:#E2EFDA;
	mso-pattern:black none;}
.xl67
	{color:windowtext;
	text-align:center;
	border:.5pt solid windowtext;}
.xl68
	{color:windowtext;
	text-align:center;
	border:.5pt solid windowtext;
	background:white;
	mso-pattern:black none;}
-->
</style>
</head>

<body link="#0563C1" vlink="#954F72">



Date | PR | # | Commit # | Short #
-- | -- | -- | -- | --
0 | fix headers for training apis | 14350 |
ea7bbd667d | ea7bbd6
1 | Fix post merge jobs pipeline build issues | 14346 |
ae0e090c7b | ae0e090
2 | support ScatterND(18) and ScatterElement(18) | 14224 |
5d6a049141 | 5d6a049
3 | Exclude a multi-stream case from reduced ops build | 14351 |
36ba3d8d21 | 36ba3d8
4 | Support muP in Attention | 14348 |
668586e8f8 | 668586e
5 | Add memory efficient attention from CUTLASS | 14343 |
414b012f42 | 414b012
6 | Add PyTorch 2.0 to ORT transformer benchmarking | 14300 |
72821a6113 | 72821a6
7 | Misc transformer fixes - 3 | 14320 |
2d8ee5251c | 2d8ee52
8 | Update quantization_defs.cc | 14380 |
de7a868d5f | de7a868
9 | Revert "Allow PostAnalysis@2 task to continue on error for
Windows_Pa… | 14375 | cf3661ff6d | cf3661f
10 | Fix fuzz test | 14385 | f03c507cf0 |
f03c507
11 | support Pad(18) | 14219 | 05915d8393
| 05915d8
12 | Ort openvino 4.3 cli | 14341 |
77b455b969 | 77b455b
13 | cpu to support bitwise ops | 14197 |
7b6d880b28 | 7b6d880
14 | Update ORT format v5 change docs to cover limited backwards
compatibility in 1.14. | 14413 |
3bc092b1ea | 3bc092b
15 | Upgrade CUTLASS to v2.11 and add sequence length threshold for
cutlass FMHA | 14401 | 94b1791974 |
94b1791
16 | Add Col2Im CPU op | 12311 |
32c05fcdd1 | 32c05fc
17 | [DML EP] Upgrade DML to 1.10.1 | 14433 |
edb377f2cb | edb377f
18 | cpu support of LpPool(18) | 14205 |
2b1a59f01a | 2b1a59f



</body>

</html>


### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
First round cherry-pick for ORT 1.14.0 release.

---------

Signed-off-by: Liqun Fu <liqfu@microsoft.com>
Co-authored-by: Ashwini Khade <askhade@microsoft.com>
Co-authored-by: Edward Chen <18449977+edgchen1@users.noreply.github.com>
Co-authored-by: liqun Fu <liqfu@microsoft.com>
Co-authored-by: RandySheriffH <48490400+RandySheriffH@users.noreply.github.com>
Co-authored-by: Randy Shuai <rashuai@microsoft.com>
Co-authored-by: Ye Wang <52801275+wangyems@users.noreply.github.com>
Co-authored-by: Ubuntu <wy@v100-2.0cdb2e52twzevn1i4fi45bylyg.jx.internal.cloudapp.net>
Co-authored-by: Tianlei Wu <tlwu@microsoft.com>
Co-authored-by: kunal-vaishnavi <115581922+kunal-vaishnavi@users.noreply.github.com>
Co-authored-by: Hariharan Seshadri <shariharan91@gmail.com>
Co-authored-by: Yi Zhang <zhanyi@microsoft.com>
Co-authored-by: Hector Li <hecli@microsoft.com>
Co-authored-by: sfatimar <sahar.fatima@intel.com>
Co-authored-by: Preetha <preetha.veeramalai@intel.com>
Co-authored-by: Thiago Crepaldi <thiago.crepaldi@microsoft.com>
Co-authored-by: Sumit Agarwal <sumitagarwal330@gmail.com>
2023-01-31 14:35:34 -08:00

99 lines
4.3 KiB
CMake

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
# There are effectively three ways to consume DirectML in this repo:
#
# 1) Public = the build points at a pre-built copy of DirectML distributed as a NuGet package.
# 2) Custom = the build points at a local copy of DirectML (bin/, include/, lib/). The dml_INCLUDE_DIR and
# dml_LIB_DIR variables are also expected to be set to the custom build location.
# 3) Internal = the build points at the DirectML source repo and builds it as part of the main project.
#
# Build Type | onnxruntime_USE_CUSTOM_DIRECTML | dml_EXTERNAL_PROJECT
# -----------|---------------------------------|---------------------
# Public | OFF | OFF
# Custom | ON | OFF
# Internal | ON | ON
#
# The "Public" build type is the default, and any mainline branches (e.g. master, rel-*) subject to CI
# should use the public build configuration. Topic branches can use the internal build type for testing,
# but they must be buildable with a public NuGet package before merging with a mainline branch.
set(onnxruntime_USE_CUSTOM_DIRECTML OFF CACHE BOOL "Depend on a custom/internal build of DirectML.")
set(dml_EXTERNAL_PROJECT OFF CACHE BOOL "Build DirectML as a source dependency.")
if (NOT onnxruntime_USE_CUSTOM_DIRECTML)
if (NOT(MSVC) OR NOT(WIN32))
message(FATAL_ERROR "NuGet packages are only supported for MSVC on Windows.")
endif()
# Retrieve the latest version of nuget
include(ExternalProject)
ExternalProject_Add(nuget
PREFIX nuget
URL "https://dist.nuget.org/win-x86-commandline/v5.3.0/nuget.exe"
DOWNLOAD_NO_EXTRACT 1
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
UPDATE_COMMAND ""
INSTALL_COMMAND "")
set(NUGET_CONFIG ${PROJECT_SOURCE_DIR}/../NuGet.config)
set(PACKAGES_CONFIG ${PROJECT_SOURCE_DIR}/../packages.config)
get_filename_component(PACKAGES_DIR ${CMAKE_CURRENT_BINARY_DIR}/../packages ABSOLUTE)
set(DML_PACKAGE_DIR ${PACKAGES_DIR}/Microsoft.AI.DirectML.1.10.1)
set(DML_SHARED_LIB DirectML.dll)
# Restore nuget packages, which will pull down the DirectML redist package.
add_custom_command(
OUTPUT
${DML_PACKAGE_DIR}/bin/x64-win/DirectML.lib
${DML_PACKAGE_DIR}/bin/x86-win/DirectML.lib
${DML_PACKAGE_DIR}/bin/arm-win/DirectML.lib
${DML_PACKAGE_DIR}/bin/arm64-win/DirectML.lib
DEPENDS
${PACKAGES_CONFIG}
${NUGET_CONFIG}
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/nuget/src/nuget restore ${PACKAGES_CONFIG} -PackagesDirectory ${PACKAGES_DIR} -ConfigFile ${NUGET_CONFIG}
VERBATIM
)
include_directories(BEFORE "${DML_PACKAGE_DIR}/include")
add_custom_target(
RESTORE_PACKAGES ALL
DEPENDS
${DML_PACKAGE_DIR}/bin/x64-win/DirectML.lib
${DML_PACKAGE_DIR}/bin/x86-win/DirectML.lib
${DML_PACKAGE_DIR}/bin/arm-win/DirectML.lib
${DML_PACKAGE_DIR}/bin/arm64-win/DirectML.lib
)
add_dependencies(RESTORE_PACKAGES nuget)
else()
if (dml_EXTERNAL_PROJECT)
set(dml_preset_config $<IF:$<CONFIG:Debug>,debug,release>)
set(dml_preset_name ${onnxruntime_target_platform}-win-redist-${dml_preset_config})
include(ExternalProject)
ExternalProject_Add(
directml_repo
GIT_REPOSITORY https://dev.azure.com/microsoft/WindowsAI/_git/DirectML
GIT_TAG 2290bd6495fdf8c35822816213516d13f3742cc9
GIT_SHALLOW OFF # not allowed when GIT_TAG is a commit SHA, which is preferred (it's stable, unlike branches)
GIT_PROGRESS ON
BUILD_IN_SOURCE ON
CONFIGURE_COMMAND ${CMAKE_COMMAND} --preset ${dml_preset_name} -DDML_BUILD_TESTS=OFF
BUILD_COMMAND ${CMAKE_COMMAND} --build --preset ${dml_preset_name}
INSTALL_COMMAND ${CMAKE_COMMAND} --install build/${dml_preset_name}
STEP_TARGETS install
)
# Target that consumers can use to link with the internal build of DirectML.
set(directml_install_path ${CMAKE_BINARY_DIR}/directml_repo-prefix/src/directml_repo/build/${dml_preset_name}/install)
add_library(DirectML INTERFACE)
target_link_libraries(DirectML INTERFACE ${directml_install_path}/lib/DirectML.lib)
add_dependencies(DirectML directml_repo-install)
include_directories(BEFORE ${directml_install_path}/include)
else()
include_directories(${dml_INCLUDE_DIR})
endif()
endif()