* 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>
* 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
* Add QAttention to DNNL EP
Add QAttention to DNNL EP (limited support and disable for gpu)
update ONEDNN version to 2.4.4
bug fix in getcapability
add memory debug print
Signed-off-by: Wang <zhaoyang.wang@intel.com>
* Address Code Review + MatMulInteger Fix
clean up code and add comments
fix matmulinteger and add fusion rule to enable initialized vector weight zero
points of 0s
update DNNL_TAG to v2.5
Signed-off-by: Wang <zhaoyang.wang@intel.com>
* Linux Compile Fix + rollback ONEDNN to 2.4.4
Signed-off-by: Zhaoyang Wang <zhaoyang.wang@intel.com>
* Fix QAttention Debug build
Signed-off-by: Wang <zhaoyang.wang@intel.com>
* Fix QAttention build if USE_DNNL not specified
Signed-off-by: George Nash <george.nash@intel.com>
Co-authored-by: Wang <zhaoyang.wang@intel.com>
Co-authored-by: MTC <63478620+jeyblu@users.noreply.github.com>
* Add quantization tool with s8s8 support
* Add unittest for existing s8s8 support operators
* Comment ready unittest for upcomming s8s8 operator (ConvInteger, and Resize)
* Minor change on quantization tools
* Use different s8 min value upon weight or activation.
* use same qmin for reduce ranged s8.
* fix error C4996
* remove wd4996 and fix error C4966
* fix typo
* remove wd4996 for onnx-tensorrt
* remove more /wd for onnx-tensorrt
* gix bug for strncpy_s of (Buffer is too small && 0)
* fix code to remove warning 4244
* fix code to remove warning 4267
* remove /wd4267 /wd4244
* fix bug
* change int to size_t
* using size_t instead of int
* use float instead of double
* Use size_t instead of int
* use size_t instead of int
* use size_t instead of int. Also fix typo
* 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
The memleak checker used by default in Debug configuration does not
play nice with embedding static lib of ONNXRuntime into binaries,
because other code will not be using the same debug heap, leading
to trouble.
This makes it easier for outside builders to disable it for their
build.
* 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>
* Changes
*Fixed merge conflicts
Signed-off-by: MaajidKhan <n.maajidkhan@gmail.com>
* C# Nuget fix for windows
-> OpenVINO Libs included in Nuget package
-> Updated nuget.exe path for openvino ep build in Windows
-> Include mvcmd file along with openvino dlls
* Fixing PEP Style comments
* Comment Removed
Co-authored-by: MaajidKhan <n.maajidkhan@gmail.com>
Co-authored-by: saharfraza <sfatima.3001@gmail.com>
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>
* 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>
* Op fusion support added
In addition the following op fusions are detected
- ConvRelu
- MatMulAdd
This change includes
- Change abstraction of Subgraph + node + tensor to support delete insert
modify
- add nodearg class to establish connection from tensor to node
- add graphtransformer class to support fusion
- add topological sort to ensure propoer node ordering after fusion
- add convrelu + matmuladd primitive to support execution of fused nodes
- Fix FusionResolution with missing tensors
when fusing, if the target node contains fewer tensors then original
patterns (Gelu and FastGelu ignores many initializers), potentially delete them
also from inputs and initializers
Also check tensor has no producer and consumer before deleting
Signed-off-by: Wang <zhaoyang.wang@intel.com>
* Gelu and FastGelu Fusion for DNNL EP
The basics of the Gelu/FastGelu code is modeled after:
- core/optimizer/fast_gelu_fusion.cc and
- core/optimizer/gelu_fusion.cc
OneDNN does not have support for 'Erf' unless it is part of 'Gelu'.
This results in detecting 'Gelu' fusion twice. Once when detecting
if the 'Erf' Operator is supported and again in the subgraph transformer
code. The capability code is finding the Gelu using onnxruntime:GraphViewer
and onnxruntime::Node. While the transformer code is using DnnlSubgraph
and DnnlNode. This results in two parts of code looking for the same
pattern but unfortanatly having little code reuse.
This also adds support for Biased versions of Gelu and FastGelu if they already
exist in a model.
Signed-off-by: George Nash <george.nash@intel.com>
* Code Clean Up
Signed-off-by: Wang <zhaoyang.wang@intel.com>
Co-authored-by: Wang <zhaoyang.wang@intel.com>