Commit graph

629 commits

Author SHA1 Message Date
ashbhandare
bfbcc89db1
Add MLFloat16 support for SoftmaxCrossEntropyLoss for CUDA EP (#7679)
* Forward op changes

* Add tests, improve kernel

* add opset 13 registration, remove unnecessary changes

* Add fp16 grad for SCELoss, review comments
2021-05-14 09:00:27 -07:00
baijumeswani
37f69fcee5
Regain performance by caching initializer names in ORTModule (#7685) 2021-05-13 20:54:49 -07:00
raviskolli
4b37901f10
Aten support for rocm (#7680)
* Aten support for rocm

* Removed aten_ops.cc as it is resued from cuda version
2021-05-13 15:56:03 -07:00
Aswin John Mathews
4afdc19958
ROCm optimized layernorm for MI100 (#7682)
* layernorm optimizations

* Changed HIP flag from HIP_VERSION to __HIP_PLATFORM_HCC__
2021-05-13 15:54:06 -07:00
satyajandhyala
d90a99aad5
Fix the build on dev machines by replacing std::tuple with two arguments with std::pair (#7683) 2021-05-13 15:11:51 -07:00
harshithapv
31ca21b782
Replace Where Grad "Mul" with "Where" (#7672)
* replace where grad mul with where

* clean up

* auto formatting

* remove not for second input
2021-05-13 08:54:43 -07:00
Vincent Wang
dac24f7d63
Add ATenOp and call aten::embedding and its Backward Op from ORT (#7590)
* build with libtorch and impl torchembedding

* fix op shape infer

* local commit

* atenfunctionop

* call aten operator from online extension

* rollback build.py

* resolve comments

* bugfix

* fix build

* fix ortmodule test

* remove external outputs, resolve comments

* resolve comments

* export embedding to microsoft::atenop

* bugfix
2021-05-13 09:24:27 +08:00
Weixing Zhang
9241f62e4c
enable MatMulScale and cast propagation for ROCm EP. (#7657) 2021-05-12 13:43:24 -07:00
M. Zeeshan Siddiqui
5d9885f706
Fix BadNames. (#7658) 2021-05-11 16:06:10 -07:00
baijumeswani
c5aeaa9419
Support for unused model initializers (#7631)
* Support for unused model initializers

* Change graph_info.initializer* to sets
2021-05-11 12:26:56 -07:00
satyajandhyala
9f69b2f291
Added InsertAndReduce strategy to PropagateCastOps transformation in addition to FloodFill strategy (#7454)
* Moved GraphTransformerConfiguration to a separate file and added strategy option to PropagateCastOps transformation.

* Added testing both FloodFill and InsertAndReduce stratigies for cast propagation.

* Added AddConsumer and RemoveConsumer functions to in graph.h for efficient graph editing.

* Added PropagateCastOps code documentation

* Added GraphTransformationConfiguration class hierarchy information

* Added RemoveInputOutputUpDownCasts
2021-05-10 20:46:28 -07:00
baijumeswani
08fbfe9607
Resolve issue where a registered buffer was parsed incorrectly as a user input (#7617) 2021-05-10 19:04:27 -07:00
Pranav Prakash
a684e9aa52
Add pre-training transform to convert BatchNorm to BatchNormInternal (#7539)
* Add transformer for BatchNorm -> BN Internal

* Add test for BN replacement transformer
2021-05-10 15:13:59 -07:00
baijumeswani
88c95ef06b
Support for primitive types in ortmodule (#7588) 2021-05-10 10:59:47 -07:00
Hariharan Seshadri
4b691a5c0d
Add ability for memory arenas to "shrink" periodically (#7284) 2021-05-08 07:53:21 -07:00
Scott McKay
9fc4116d51
Use ASSERT_STATUS_OK so the error message is output if there's a failure. (#7515) 2021-05-07 20:23:34 +10:00
Vincent Wang
0c91b643fe
Bugfix for Scatter and GatherElementsGrad (#7593)
* bugfix for scatter and gather elements grad

* resolve comments
2021-05-07 14:02:26 +08:00
Derek Murray
94c97ac8c2
Fix compiler warnings treated as errors in GistEncodeDecode. (#7568)
* Fix compiler warning in GistEncodeDecode.

* Fix other use of member variable.

* Make `compression_type_` const.

* Change floor to floorf in CUDA code.

* Statically cast size_t to int in GIST CUDA kernels

* Add explicit cast to `long` in gist.cc

Co-authored-by: Derek Murray <demurra@microsoft.com>
2021-05-05 09:05:11 -07:00
Xavier Dupré
ade6ed51eb
Speed up Reduce operators for consecutive reduced axes (#7206)
* Improves Reduction for three specific configurations
* Support ReduceMean
* add ReduceMax, ReduceMin
* refactoring
2021-05-05 09:14:00 +02:00
Sergii Dymchenko
a647da3e1a
Fix 2 input Gemm grad (#7561)
* Add test for 2 input Gemm grad.

* Fix 2 input Gemm grad.
2021-05-04 12:00:14 -07:00
harshithapv
d812354ebd
Tile grad fix (#7556)
* tile grad fix

* code clean up
2021-05-04 11:16:26 -07:00
Fanny Nina Paravecino
c3c4db2c1b
Upgrade GIST memory compression nodes, kernels, optimizer rule, and cli (#6262)
* Add gist nodes, kernels, optimizer rule, and cli

* Add Gist CUDA kernels

* Added/updated gist compression cli to bert, gpt2, mnist

* Fix decode priority generator for large models

* Fix hardcoded decode priority generator, update gist training test

* Fix incomplete if/else sequence for CI build

* Added MSFP15 for gist compression type

* fix Msfp15 bug

* Resolved azure pipeline errors - unsupported ORT_RETURN macro format, cudastream argument

* Resolved hardcoded cudastream argument, Pack8 zero error

* Resolved PR comments - except gist tests

* Added TypeInference to Gist Nodes, To attribute to Gist Decoder, Updated Gist Test Cases

* Reverted error in merge commit

* Updated logger usage in Gist rule, Updated GistPackMSFP15 compressed tensor's explaination

* Converted onnxruntime::make_unique to std::make_unique based on PR 7502

Co-authored-by: Fanny Nina Paravecino <faninapa@microsoft.com>
Co-authored-by: Aayush Ankit <aayushankit@microsoft.com>
Co-authored-by: Aayush Ankit <Aayush-Ankit@users.noreply.github.com>
Co-authored-by: Fanny Nina Paravecino <fanny.nina@microsoft.com>
2021-05-04 10:33:35 -07:00
Sherlock
c1ed647170
ORTModule enable run_symbolic_shape_infer by default (#7423)
* ORTModule enable run_symbolic_shape_infer by default

* Fix UTs by replacing Relu with Softmax

Co-authored-by: Sherlock Huang <bahuang@OrtTrainingDev3.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
2021-05-04 10:08:14 -07:00
Sherlock
6714f2f85d
Improve tol value logging in ORTModule test (#7544)
Co-authored-by: Sherlock Huang <bahuang@OrtTrainingDev3.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
2021-05-03 09:43:40 -07:00
Pranav Prakash
8ba6ed953f
Fix batch norm training op on CPU (#6946)
* Fix batch norm training op on CPU

* Add BatchNorm 14 Op Support

* Update hashes for BN

* Exclude TRT and OpenVINO for BatchNorm training test
2021-05-01 11:25:19 -07:00
Sherlock
668a65f1a7
Complete GetGlobalAveragePoolGradient (#7514)
* Improve GetGlobalAveragePoolGradient

Co-authored-by: Sherlock Huang <bahuang@OrtTrainingDev3.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
2021-04-30 18:04:01 -07:00
Thiago Crepaldi
9ba9da0c95
Fix unused registered buffers issue on ORTModule (#7525) 2021-04-30 13:50:23 -07:00
Tang, Cheng
54db6648af
kerne invoker api for eager mode (#7473)
* initial draft for kernel invoke api

* initial implementation of kernel invoker

* [eager] fix build on Mac

* [eager] increment input name in kernel invoker

* temp fix for type in eager mode

* use global default log manager

* rollback the previous commit since it break linux build

* Revert "rollback the previous commit since it break linux build"

This reverts commit 58c2c3423a.

* Eager Mode: fix linking on macOS

* optimizer_execution_frame: ignore unused lambda capture (model_path)

* fix link issue

* ORTInvoker: set correct input argument tensor element proto types

Do not set a type proto on output arguments to allow ORT to deduce them

* ORTInvoker: create only one logging manager

* Minor fix to set execution provider type correctly. (#7000)

Co-authored-by: Chandru Ramakrishnan <chandru-r@github.com>

* training fix

* support config output ml values in frame, so we can use it to implement inplace update

* Fix range loop error while building. (#7087)

Co-authored-by: Chandru Ramakrishnan <chandru-r@github.com>

* Conditionally link with nsync_cpp if not windows. (#7151)

Co-authored-by: Chandru Ramakrishnan <chandru-r@github.com>

* Fixed initialization order in ORT kernel invoker (#7342)

* Updated constructor of ort_kernel_invoker to take a logger.

* Changed linking order.

* Updated test.

* add inplace ut

* add build option

* Update include/onnxruntime/core/eager/ort_kernel_invoker.h

Co-authored-by: Derek Murray <Derek.Murray@microsoft.com>

* resolve comments in pr

* fix build break;merge from master

* fix build break

Co-authored-by: Cheng Tang <chenta@microsoft.com>
Co-authored-by: Aaron Bockover <abock@microsoft.com>
Co-authored-by: Chandru Ramakrishnan <41447659+chandru-r@users.noreply.github.com>
Co-authored-by: Chandru Ramakrishnan <chandru-r@github.com>
Co-authored-by: Derek Murray <Derek.Murray@microsoft.com>
2021-04-30 13:33:58 -07:00
Changming Sun
1012535dab
Change onnxruntime::make_unique to std::make_unique (#7502)
1. Change onnxruntime::make_unique to std::make_unique
2. Add "-std=c++14" to ROCM EP's build flags.
2021-04-29 17:04:53 -07:00
sabreshao
e6a3308db7
Optimize cuComputeGradInput performance. (#7479)
Move the checking of gamma to host and specialize both case through template.
2021-04-28 17:08:31 -07:00
Thiago Crepaldi
3ee63beafa
Fix user input order before ORTModule feed it to backend (#7456) 2021-04-28 14:33:40 -07:00
G. Ramalingam
044c78f089
Add function body to LayerNorm (#7378)
* LayerNorm function body v1

* LayerNorm function body

* layernorm function test

* Minor fixes

* Fix signed unsigned comparison

* Move contrib ops test

* Handle optional output parameters

* Add test case for optional outputs

* Handle float16 random generation

* Address PR feedback
2021-04-28 09:31:53 -07:00
M. Zeeshan Siddiqui
82108b18e3
Partial graph execution perf improvements. (#7438)
* Partial graph execution perf improvements.

* PR feedback.

* Decrement reference count of tensors in ORTModule.

* PR feedback.

* PR feedback.

* PR feedback.
2021-04-26 17:13:55 -07:00
Thiago Crepaldi
0702a14ee7
Add pytorch version check before loading Python ONNX Runtime training module (#7377) 2021-04-26 14:53:50 -07:00
Vincent Wang
368e4a324f
SqueezeGrad Bugfix (#7412)
* squeezegrad bugfix

* fix ut

Co-authored-by: Vincent Wang <weicwang@microsoft.com>
2021-04-26 09:12:03 +08:00
Weixing Zhang
ca9b3f18e9
Explicitly pass cuda stream to thrust function rather than use cuda default stream implicitly (#7414)
* Pass cuda stream to thrust function to not use default stream.

In the commit 299ace0, ORT has been changed to not use cuda default stream.

* update amd_hipify.py

* remove un-necessary stream sync

Co-authored-by: Weixing Zhang <wezhan@microsoft.com>
2021-04-25 01:18:56 -07:00
Thiago Crepaldi
410a81b21b
Add support for ORTModule to execute the graph when ONNX drops unused… (#7424) 2021-04-23 18:10:57 -07:00
M. Zeeshan Siddiqui
34ebf7d3dd
Partial graph execution made simple. (#7324)
* Python changes.

* C++ changes.

* fixes/hacks.

* more hacks.

* perf.

* changes.

* changes.

* re-architect partial graph execution and  remove iobinding.

* changes.

* refactor.

* prevent copies from python to c++.

* perf.

* merge conflicts.

* misc.

* fix merge conflicts and tests.

* Ifdef partial executor.

* PR feedback.

* Delete ORT Task et al.

* Clean up.

* clean up.

* Restore SetOutputMLValue().

* PR feedback.

* Re-enable disabled ORTModule tests.

* PR feedback.

* PR feedback.
2021-04-23 15:09:18 -07:00
Tang, Cheng
1fa6d8fe1c
support loading external execution provider from python frontend (#7332)
* initial dynamic load example

* support load EP in the provider options

* support dynamic load EP in orttrainer

* split the provider interface; fix comments in pr

* remove experiment code

* add test

* remove useless file

* add test model file;fix linux brewak

* fix linux build and missing file

* fix python build

* fix python build

* fix python binding

* fix python test

* fix runtime path for posix env

* exclude the shared library from minimal build

* fix comments in pr;

* seperate the provider shared lib loading

* excluded from minimal / macos / ios build

* skip copy the provider shared lib for minimal build and mac os

* fix macos build

* exclude the test for macos build

* exclude from andorid build

* exclude from web assembly build

* enable the invalid ep test

Co-authored-by: Cheng Tang <chenta@microsoft.com>
2021-04-23 09:54:09 -07:00
Ashwini Khade
75e054cd33
pick onnx release candidate (#7177)
* pick onnx release candidate

* fix typo

* filter batchnorm tests

* add implementation for reshape 14

* add identity op kernel for opset 14

* fix typo

* update onnx commit

* update commit to latest master

* add hashes for new kernel registrations and update 1

* TEST commit

* update onnx back to right commit

* Update onnx to latest in rel-1.9.0

* temp fix

* remove nonzeroshapesetter transformer

* pick rel branch latest commit

* fix build failures

* fix build failures

* fix build failures

* update the commit to latest in release branch

* add test filters for not impemented op14 ops in c# tests

* plus review comments
2021-04-22 23:57:09 -07:00
Thiago Crepaldi
771a6d235b
Fix IsContiguousTensor check on backend (#7391) 2021-04-21 17:01:17 -07:00
Sherlock
16ca7677e6
Relax ConvGrad Test tol (#7393)
Co-authored-by: Sherlock Huang <bahuang@OrtTrainingDev3.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
2021-04-21 08:06:00 -07:00
Thiago Crepaldi
8421124344
Add support to **kwargs in ORTModule forward() method (#7360) 2021-04-20 16:21:52 -07:00
ashbhandare
76cc118dbe
Gemm transpose fusion (#7306)
* Gemm transpose fusion

* Correct rewrite rule effect

* Add to inference transforms to trigger on gradient graph
2021-04-20 09:35:05 -07:00
mindest
1a3ddf0714
Add gradient registration and tests for Min/Max (#7217)
* Add gradient registration and tests for Min/Max

* Add helper function for min/max grad test

* limit Min/Max Grad to accept at most two inputs; modify test case accordingly

* resolve merge error
2021-04-20 18:14:31 +08:00
Sherlock
ce7ff27bac
Fix perf issue in Conv CUDA kernel (#7348)
* Fix perf issue in  Conv CUDA kernel

* Read avaiable memory from device

* assuming 10% fragmentation

Co-authored-by: Sherlock Huang <bahuang@OrtTrainingDev3.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
2021-04-19 23:37:05 -07:00
ashbhandare
ac346a1b90
Modify SimplifiedLayerNormFusion to allow fusion in the presence of Casts optionally (#7352)
* LN transform partial changes

* LN transform fix

* Make transform optional, remove unnecessary code

* Fix windows build

* review comment, windows CI fix

* review comments
2021-04-19 19:59:23 -07:00
ytaous
7abe1fd392
Identity elimination with graph output (#7312)
* Identity removal

* fix build

* fix build

* fix build

* fix builld

* UTs

* fix UT

* fix UTs

* per comments

* fix UTs

* fix UTs

* per comments

Co-authored-by: Ethan Tao <ettao@OrtTrainingDev4.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
2021-04-19 16:36:35 -07:00
satyajandhyala
bb1e417da0
Add logging support to Cast Propagation transformation from python (#7353)
* Fixes needed to PropagateCast transformation.

* Added number of passes to the logs.

* Added logging support to OrtModuleGraphBuilder.

* Added new testcases.

* Added NodeArgToConsumerMap
2021-04-19 12:14:30 -07:00
M. Zeeshan Siddiqui
6dda1e0681
Flag for tensor memory re-use in allocation planner. (#7359) 2021-04-16 17:53:25 -07:00