onnxruntime/cmake/external/dml.cmake
Jeff Bloomfield af7d453435
Merge DML Execution Provider updates (#3885)
* Merged PR 4616739: Update QLinear Ops fix 1D support layout

Update QLinear Ops fix 1D support layout

Related work items: #26011523

* Merged PR 4617257: Gather operator DML EP fails with scalar indices and 1D inputs

Fix gather with scalar value.

The ONNX conformance test case is in another PR:

    // 0D, axis 1, rank 0 indices tensor
    {
      "op_type": "Gather",
      "axis": 0,
      "data": [1,2,3],
      "indices": 0,
      "output": 1,
      "T": "float32"
    }

* Merged PR 4632178: Re-enable ORT onnx_test_runner test case (DirectML ConvTranspose validation needs to be loosened to comply with ONNX definition of output_padding)

Re-enable 1D convolution tests.

Related work items: #23499747

* Merged PR 4656672: Make DML EP use Direct queue

While a Compute queue has benefits, Direct is consistent with Winml.

Related work items: #26324112

* Update DML nuget version

* Merged PR 4662079: Update DmlDev branch again from github master

Include Sheil's changes to fix namespace and header file include paths. Without this, the ONNX conformance tests all fail with E_NOTIMPL.

* Increment DML nuget version

Co-authored-by: Nick Feeney <nickfe@microsoft.com>
Co-authored-by: Dwayne Robinson <dwayner@microsoft.com>
2020-05-11 17:57:01 -07:00

37 lines
1.5 KiB
CMake

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
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}/DirectML.0.0.4)
# Restore nuget packages, which will pull down the DirectML redist package
add_custom_command(
OUTPUT ${DML_PACKAGE_DIR}/bin/x64/DirectML.lib ${DML_PACKAGE_DIR}/bin/x86/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/DirectML.lib ${DML_PACKAGE_DIR}/bin/x86/DirectML.lib)
add_dependencies(RESTORE_PACKAGES nuget)
else()
include_directories(${dml_INCLUDE_DIR})
endif()