Commit graph

863 commits

Author SHA1 Message Date
PeixuanZuo
7d93498e0e
[FIX] register softmaxgrad_13/logsoftmaxgrad_13 for rocm (#10177)
* [FIX] register  softmaxgrad_13/logsoftmaxgrad_13 for rocm
* [FIX] update softmaxgrad_13/logsoftmaxgrad_13 implementation for rocm
2022-01-10 11:33:46 +08:00
Abhishek Jindal
4ac3277743
adding definition of concat operator for mapping it to onnx (#10062)
* adding definition of concat operator for mapping it to onnx

* adding the opgen generator file to include tensorlist type for eager mode
2022-01-06 14:56:35 -08:00
ashari4
4ab891999a
fix hardcoded type (#10205) 2022-01-06 09:28:22 -08:00
ashari4
7b5464ed7b
aten add_ op supports bf16 (#10084)
* hand implemented add_
2022-01-05 09:33:28 -08:00
Tang, Cheng
97659495d9
fix aten view op (#10050)
* fix aten view op

* add test case

* fix signature

* fix the build

Co-authored-by: Cheng Tang <chenta@microsoft.com@orttrainingdev9.d32nl1ml4oruzj4qz3bqlggovf.px.internal.cloudapp.net>
2022-01-04 08:29:30 -08:00
Edward Chen
3bc91c2151
Move reduced ops files into build directory (#10030)
In a reduced ops build, some source files get updated. This change moves the updated files into the build directory. This way, it is easier to simultaneously manage different build directories (with possibly different reduced ops configurations) based on a single source directory.
2021-12-28 19:04:20 -08:00
Vincent Wang
f780f06240
ConcatGrad for OpSet13 (#10109) 2021-12-24 10:02:52 +08:00
satyajandhyala
bd4fb4c5da
Coding style fix. (#10080) 2021-12-18 12:05:48 -08:00
ashari4
cdbd678192
Check kMSDomain already exists before registering it (#10078)
* Check domain before registration
2021-12-17 17:55:15 -08:00
Bowen Bao
102f9b05e1
Support new symbolic function api from PyTorch with PythonOp (#9880)
* Support new symbolic function api from PyTorch with PythonOp

* Specify exact exception

* add comments

* move comments and arg
2021-12-16 11:08:06 -05:00
George Nash
93636cbd20
Reduce ops for DNNL ep (#10056)
* Add Reduce Ops to DNNL ep

Combine the Reduction ops into one class

Add ReduceL1, ReduceL2, ReduceSum, ReduceMax, ReduceMin, and ReduceProd,
ReduceSumSquare, ReduceLogSum, and ReduceLogSumExp

Reduce code now also handles the keepdims attribute

Also updated code to use HandleNegativeAxis function from
the providers/common.h code instead of manually calculating.

In code documentation exists to help explain complex reduction op code

Add elementwise ops to Reduction op capability code removed keepdims check
from the Reduction op capability code.

Updated the error_tolerance for LogGrad(DNNL EP only) after finding a few
instances that the tests were a little out of tolerance.

Signed-off-by: George Nash <george.nash@intel.com>

* Documentation cleanup in dnnl_qattention

Cleaned up the Comments documenting the QAttention operator
For some reason a bunch of new lines were introduced to the
comment making it harder to read.

Signed-off-by: George Nash <george.nash@intel.com>
2021-12-16 07:31:16 -08:00
Tang, Cheng
6357c12977
use inplace reshape (#9991)
Co-authored-by: Cheng Tang <chenta@microsoft.com@orttrainingdev9.d32nl1ml4oruzj4qz3bqlggovf.px.internal.cloudapp.net>
2021-12-15 21:17:29 -08:00
ashari4
af71da0ac6
Yield op supports bf16 (#10035) 2021-12-14 13:12:37 -08:00
ashari4
9e04b7e59b
Remove memcpy in in-place ATen ops (#9913)
* Make ops in-place

* Add comment
2021-12-14 08:28:12 -08:00
Changming Sun
7b63d1102b
Fix some warnings in orttraining code (#10009) 2021-12-13 15:28:21 -08:00
Gani Nazirov
c82160bbd0
Add AtenOp at:bitwise_or (#9662)
* Add AtenOp at:bitwise_or

* Specify overload name for bitwise_or

* undo unnecessary import

* set output element type to BOOL

* Add broadcasting support

* Fix test

Co-authored-by: Gani Nazirov <ganaziro@OrtTrainingDev4.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
Co-authored-by: Gani Nazirov <ganaziro@microsoft.com>
2021-12-13 14:36:15 -08:00
Edward Chen
5d821b5bd9
Address null dereference warning in div_grad_impl.cu. (#10010) 2021-12-13 13:26:56 -08:00
Abhishek Jindal
777a80fbc1
Abjindal/eager onnx operators fix (#9968)
* adding view operator changes

* adding the slice operator definition

* moving to opgen script for slice op and removing redundant steps in view op and reshape_copy

* adding for at definition

* adding for at::infer_size definition

* changing template style for reshape_copy to ensure int64_t type
2021-12-13 13:23:46 -08:00
Ryan Hill
e0960d7d79
Change assert on a null value to an ort_enforce (#9982) 2021-12-09 14:44:58 -08:00
Xavier Dupré
42c176b60c
Update default opset to 14 in ORTModule (#9743)
* update to torch 1.10
* update torchvision version
* update torchtext version
* remove deprecated option enable_onnx_checker
* add unit test to test gradient of GatherElements
* add ORTMODULE_ONNX_OPSET_VERSION in a docker file
2021-12-09 12:45:35 +01:00
Tang, Cheng
0adeb86bfd
Fix ortmodule for the pytorch model with ort device (#9927)
* add ortmodule and eager mode test

* add ortmodule dependency

* convert between aten ort tensor and ortvalue

* register the EP to ortmodule using ort device information

* remove duplicated test

* remove useless dependency

* handle half precision type for ortmodule outputs

* adjust the tensor conversion python code

Co-authored-by: Cheng Tang <chenta@microsoft.com@orttrainingdev9.d32nl1ml4oruzj4qz3bqlggovf.px.internal.cloudapp.net>
2021-12-08 13:04:29 -08:00
Guoyu Wang
b34b991aea
Improve reduced ops and types build (#9908)
* Improve reduceops and types build

* minor update

* fix test error

* fix minimal build break

* minor update and add comments

* Address CR comments
2021-12-07 13:02:05 -08:00
Weixing Zhang
840212e115
Enable OneHot kernel for ROCm EP and add Dockerfile for ROCm 4.3.1 (#9656)
* enable OneHot for ROCm EP

* add dockerfile for ROCm 4.3.1

Co-authored-by: Weixing Zhang <wezhan@microsoft.com>
2021-12-07 12:47:00 -08:00
Weixing Zhang
67a30ef716
Address some code scan issues (#9873)
Potential comparison of a constant with another constant.
at D:\a\_work\1\s\orttraining\orttraining\training_ops\cuda\reduction\\reduction_all.cu@97,42

Co-authored-by: Weixing Zhang <wezhan@microsoft.com>
2021-12-06 13:50:52 -08:00
Tang, Cheng
8db49e3d0f
add ortmodule and eager mode test (#9888)
* add ortmodule and eager mode test

* add ortmodule dependency

* fix eager pipeline

* skip tthe ortmodule test for windows due to win ci issue

* remove useless win ci change

* add torch

Co-authored-by: Abhishek Jindal <abjindal@microsoft.com>
2021-12-02 19:49:18 -08:00
Sherlock
175acf08f4
ScatterND supports negative indices (#9739)
* ScatterND supports negative indices
2021-11-30 21:17:32 -08:00
Sherlock
6de79d82c8
Fix Training Packaging pipeline (#9885)
* Fix Training Packaging pipeline
2021-11-30 15:26:10 -08:00
Tang, Cheng
37bf46eb19
support print in ort eager mode (#9825)
* fix reshape implementation in eager mode

* test code

* update opgen script to support fallback to cpu

* enhance the eager backend to support torch cpu fallback

* add more testes

* disable the printensor test for now, as we need to erge a PR to pytorch first
2021-11-29 08:03:57 -08:00
Vincent Wang
24f3d72b77
relax atol and rtol for einsum ut (#9842) 2021-11-23 14:39:14 +08:00
Ryan Hill
1b953c6423
Fix some code defects (#9810) 2021-11-19 15:48:15 -08:00
Sergii Dymchenko
ba339e667b
Add training performance investigation script (ONNX graph analyzer) (#9791)
* Add first version of performance investigation script.

* Simplify and update performance investigation script.
2021-11-19 13:27:00 -08:00
Tang, Cheng
fcc167dd47
fix reshape implementation in eager mode (#9741) 2021-11-18 19:26:49 -08:00
satyajandhyala
3af14fc554
Updated SoftmaxGrad and LogSoftmaxGrad to support version 13. (#9733)
* Updated SoftmaxGrad_13/LogSoftmaxGrad_13 to support version 13.
2021-11-18 17:39:16 -08:00
Vincent Wang
3654a5d60e
Register Custom Symbolic of torch.einsum for ORTModule (#9590)
* register custom symbolic for einsum

* bugfix for case needs permute at the end

* refactor

* refactor equation parser

* support new case, use ReduceProd

* optimize perf and graph

* remove some Gather node

* add more ut, fix gemm trans fusion
2021-11-18 10:13:58 +08:00
satyajandhyala
421e4c03ce
Update default cast propagation strategy from None to FloodFill (#9713)
* Changed the default cast propagation strategy from None to FloodFill.
2021-11-16 13:15:57 -08:00
Edward Chen
9acbfeba09
Address some code scan issues. (#9752) 2021-11-16 10:24:46 -08:00
Tang, Cheng
99257eb8e3
support build option to include external graph transformers (#9478)
* temp code

* support external graph transformer  from build script

* remove debug code

* add test case

* support register rewrite rule

* fix source_group issue if external source is not share any common prefix

* fix python code style checker

* resolve merge conflict

Co-authored-by: Cheng Tang <chenta@microsoft.com>
2021-11-15 08:16:20 -08:00
pengwa
6e09fc5152
Implement block wise softmax for reduction dimention > 1024 cases. (#9696)
* implement block wise softmax for reduction dimention > 1024 cases.

* fix builds

* fix

* fix amd build

* fix amd build

* fix win-gpu build

* add tests

* remove cudnn path/add python tests
2021-11-14 11:47:58 +08:00
Aidan Beggs
f6edf13513
Implement a Gemm/Sum fusion pattern (#9699)
When the pattern Sum(Gemm(A, B), C) exists, we can convert it to
Gemm(A, B, C), assuming that C the output of the original Gemm is
not used elsewhere, and this change does not break broadcasting.
2021-11-11 18:33:13 -08:00
George Wu
1541784f6c
[python api] align api with other language bindings' treatment of explicit provider registrations. enforce use of providers param in python InferenceSession when execution providers other than default CPU are enabled. (#9712)
* remove default python ep registration. raise exception if providers are not explicitly set if there are available providers

* temporarily disable exception

* fix python tests

* explicitly set CUDAProvider for python iobinding tests

* explicitly set providers param for InferenceSession())

* onnxrt

* raise ValueError if not explicitly set providers when creating InferenceSession

* add required providers param

* explicitly set providers

* typo
2021-11-10 12:17:53 -08:00
Vincent Wang
adf98feb2c
ATenOp Support for BCEWithLogitsLoss (#9670) 2021-11-10 08:36:57 +08:00
Wei-Sheng Chin
bdc279a7ed
Use the same allocator following Pytorch (#9697)
* Use the same allocator following Pytorch

* Polish

* Fix AMD build
2021-11-09 11:25:16 -08:00
satyajandhyala
229c9a4e1c
Added Trilu CUDA kernel. (#9633)
* Added Trilu CUDA kernel.

* Added TriluGrad.

* Added a training testcase for Trilu.

* Added Trilu gradient checker test.
2021-11-09 11:20:17 -08:00
mindest
c579ebfbc3
change a for iteration (#9678)
Co-authored-by: Min Lin <linmin@microsoft.com>
2021-11-09 08:33:50 +08:00
Ryan Hill
24e35fba32
Change TensorShape to typically not allocate heap memory (#9542) 2021-11-08 10:29:54 -08:00
Xavier Dupré
7e207ba3be
Use ORTMODULE_ONNX_OPSET_VERSION to modify the opset version in OrtModule (#9529)
* Use environment variable to change the ONNX opset in ORTModule
* overwrite ONNX_OPSET_VERSION
* store envvar in module constant
2021-11-08 17:03:16 +01:00
ashari4
1151c661eb
Add gi overload (#9690) 2021-11-07 16:04:00 -08:00
Edward Chen
ddb4c05852
Save graph runtime optimizations for minimal build (#9508)
Add support for saving graph runtime optimizations in an ORT format model. The idea is to allow some optimizations to be "replayed" at runtime in a minimal build. The replaying part will be in a future change.
2021-11-04 10:49:46 -07:00
baijumeswani
230099e482
Make ORTModule serializable (#9634) 2021-11-03 13:54:05 -07:00
groenenboomj
5c56fa0def
Miopen conv grad (#9574)
* Add source for conv_grad

* Add sources for ROCm EP.
* Transliterate sources for conv_grad for ROCm EP.

* Add conv_grad to ROCm EP

Add conv_grad to ROCm execution
provider.

* Update ROCm EP ConvGrad

Update ConvGrad for the ROCm EP to match other EP
changes and fix a build issue.
2021-10-31 11:19:46 -07:00