Commits


Dwayne Robinson authored and GitHub committed 732ffd12d21
DirectML Execution Provider integration 2020-11-13 (#5809) * Merged PR 5253310: Fix 0-sized dimension broadcasting Tensors that contain 0-sized dimensions were being broadcasted to higher dimensions, which would remove the possibility to remove them from the graph. 0-sized dimensions represent empty tensors, so whatever operator needs to broadcast it shouldn't try to call into DML. * Merged PR 5334334: Fix asserts and failure in GraphKernelHelper.cpp This extends a workaround needed to match node inputs with Tensors to the EP code handling constant input upload. This was causing issues in a couple of models, including EfficientDet, although that model still fails due to this bug: https://microsoft.visualstudio.com/OS/_workitems/edit/29970551 Related work items: #29706035 * Merged PR 5344477: Disable GPU timeouts in DML EP command queue creation GPU timeouts have already been disabled in command queues created by Winml, but not the ones created by the DML EP within the ORT API * Merged PR 5380534: BatchNormalization failure in autopilot - fix output size New validation [here](https://microsoft.visualstudio.com/DefaultCollection/WindowsAI/_git/WindowsAI/pullrequest/5354070?_a=files&path=%2Fdml%2FSharedValidation%2FDmlBatchNormalizationOperatorValidator.h) causes some BatchNorm cases to fail (e.g. OnnxConformanceTestsTaef::BatchNormalization (BatchNormalization_2x2x2)). I'm unsure how long this bug existed, but based on Nick's investigation, it apparently still worked anyway. Related work items: #27678610 * Merged PR 5386132: Update 8D BatchNorm Update 8D BatchNorm Related work items: #27678610 * Merged PR 5390213: Tile allow 0 in repeats 0 is valid in Tile in "repeats" parameter. The CPU kernel handles it fine. So should the DML EP. Related work items: #29970551 Co-authored-by: Justin Stoecker Co-authored-by: Jeff Bloomfield Co-authored-by: Patrice Vignola Co-authored-by: Nick Feeney