* Add Recurse method to GraphTransformer.
Move GraphTransformer::Apply to ApplyImpl and make private.
Add non-virtual GraphTransformer::Apply method to handle calling Graph::Resolve in a more consistent manner.
Create MemcpyTransformer GraphTransformer to handle memcpy operations on subgraphs in a more standard way.
* Checkpoint
* Make the subgraph insert less verbose
* Add graph nesting level to transformer ApplyImpl
Tweak cast transformer to recurse nicely and avoid unnecessary Resolve calls by splitting out the duplicate removal into a separate transformer.
Decouple memcpy transformer from ExecutionProviders and minimise what's in the header.
* Recurse into subgraphs inside GraphPartitioner
* Update a couple of new transformers
* Check Recurse return value.
* Cleanup some memory management in inference session by moving some things into SessionState
* Add deleted flag to rewrite rules so we stop processing nodes that are removed.
Remove some (most likely) unnecessary Resolve calls. As we always call Resolve for a graph modified by a transformer there's generally no need for the transformer to do it.
* Minor cleanups.
* Add some extra usage information to the comments in GraphTransformer.
* Address PR comments
* Type and Shape inference for QuantizeeLinear and DeQuantizeLinear Ops
* removing redundant type checking for some inputs and outputs
* remove unnecessary type check deom type inference
* Addl TPN updates (#403)
* Updated TPN
* Update batch_norm_op_test.cc
* Update ThirdPartyNotices.txt
* Update ThirdPartyNotices.txt
* Update readme with package links
* Update README.md
* Update README.md
* Update README.md
* Merged Ryan and TPN changes into single PR
* minor fix
* added mkldnn to GPU pipeline. Required by C# library as it is the default execution provider
* Bump up version number for 0.2.1 release (#420)
* Separate out the NodeArg index information from ExecutionFrame so it is only calculated once.
* Skip copy to/from device if only CPU execution provider is registered.
Cleanups.
* Address PR comments.
Clean up a few areas.
* Fix Linux build error
* Updated TPN
* Update batch_norm_op_test.cc
* Update ThirdPartyNotices.txt
* Update ThirdPartyNotices.txt
* Update readme with package links
* Update README.md
* Update README.md
* Update README.md
* Merged Ryan and TPN changes into single PR
* minor fix
* added mkldnn to GPU pipeline. Required by C# library as it is the default execution provider
Rewrite rule that eliminates slice operators when they are redundant (i.e., when they preserve the whole input).
Re-implementation of the identity elimination rule using the latest Graph API.
* Docker Container for CPU Version (Ubuntu 16.04, Python3 Bindings, compatible with Windows-Docker)
* Nvidia-Docker Container for GPU Version (Ubuntu 16.04, CUDA, CUDNN, Python3 Bindings)
* README with Docker quickstart instructions (i.e. docker pull .../onnxruntime:cpu, docker run -it ...)
* Include plans to publish public images (with ONNX Runtime 0.2) on README
The outer GEMM loop repeatedly calls the inner GEMM kernel with a row count (the M parameter to GEMM) and the inner kernel decides how many rows it will actually handle. The FMA3 kernel only handled row counts of 1,3,6 to keep code size down. To be competitive however, the FMA3 kernel needs to handle any row count from 1-6.
One example model was issuing a GEMM with M=11 and this had been broken up into 6,3,1,1, but can now be handled as 6,5.
The kernels have been templatized MASM style to avoid the cut/paste code from the original implementation. The Linux variants will be updated after doing some additional work on the MASM variants first.
* add file for cshar test using CUDA docker image
* add gpu csharp end to end test scripts
* uncomment data download
* minor change to kick off ci build
* small change to kick off build
* Add windows GPU test runner script
* Add the ability to use a custom allocator for fetches.
Allows control flow nodes to forward the allocation to the control flow op and avoid an unnecessary copy when the subgraph output has a symbolic dimension.
Update Scan and If to use custom allocators when applicable.
* Remove unnecessary forward declaration
* Fix Mac build warnings
* Add ability to initialize InferenceSession with a model that is already loaded.
* Cleanup some unnecessary namespace qualifications and some long lines.
* Remove InferenceSession::Initialize(std::shared_ptr<Model>&)
* Remove unit test for init from existing Model instance.
* passed the OnnxRuntimeBuildDirectory to the docker
* removed the requirement for the docker host to set the env var
* set the env var to the path where the build dir is mounted in the container
* Copy mkldnn to output folder for linux. Nuget doesn't resolve dll dependency correctly within a package
* Modify to copy all dlls to output folder
* update rpath for shared library
* Simplified linker flags for RPATH
* Removing copying of dlls to output folder, since setting RPATH works fine now
* Improve VerifyKernelDef() performance when op has many inputs/outputs/type constraints.
* Added two modes for resolving type binding.
* Updated TypeBindingResolver to avoid heap allocation.
* Tweaked TypeBindingResolver for performance.
* Handle negative axes for reduce ops
* negative axes are not handled in shape inference if input shape
is not known at that time.
* nit: use HandleNegativeAxis in provider/common.h
* fixed typo in runtest.sh
* some fixes
* some fixes
* some fixes in the runtest.sh
* added test data url
* fixes on the dotnet test scripts
* fix on prior mistake regarding installation of apt-transport-https
* added verbosity in the test run for easy debugging
* updated comment in the runtest.sh
* Advance ONNX commit, move Ngram files under ONNX and rename to TfIdfVectorizer
* Rename Ngram to TfIdfVectorizer and redeclare in ONNX domain
* Restore tfidfvectorizer tests
* Remove ML definition.
* Update ONNX version to pickup Scan spec change that adds scan_output_axes.
Add logic to transpose an output
- write to temporary buffer when executing subgraph
- transpose temporary buffer into Scan output when execution completes
Add unit tests
* Update to ONNX dbf3581835e3a05716e10587511d7ab3b2cdc386 to pickup inferencing bugfix.
Update test to match.
* Disable some tests for opset 9 operators that haven't been implemented yet.