* Add docker image clean script
* Change the command not to generate warning if no such image presents
* Update linux-gpu-ci-pipeline.yml
* Update linux-ci-pipeline.yml
* Update azure-pipelines-py-packaging.yml
* Fix issues in GRU GPU implementation. The cudnnGetRNNWorkspaceSize could failed because some descriptor are defined as local variable and are destroyed.
* Fix the issue for ReduceSum. cudnnReduceTensor for ReduceSum has issue if input and output has same size, we just need to copy the data for this case.
* constant node should not be put into graph inputs any more.
* simplify graph input/output set logic.
* refactor comments.
* remove adding initializers as graph inputs when creating graph from scratch.
* define new test load function
* remove bak file
* add stat operator
* add arguments
* fix comments
* try enable fp16_tiny_yolov2 on linux
* fix compile err
* try enable fp16_tiny_yolov2
* Adding the kernel for Resize op.
* Fixing a bug in nearest neighbour.
* remove gpu resize kernel.
will add it in another pr.
* fix a bug.
* Accomodating PR comments.
* support non-tensor types
* support non-tensor types.
* support non-tensor types.
* fix compilation issues
* fix compilation issues
* Build without mkldnn for release packages. We'll default to MLAS.
* Update license - came up during IP scan
* Cache CUDNN convolution benchmark results in cuda::Conv kernels
Previously, the best convolution algorithm was determined by running
cudnnFindConvolutionForwardAlgorithmEx and cudnnFindConvolutionBackwardDataAlgorithmEx
on every shape change.
This is very detrimental for variable input shapes, such as variable batch
sizes.
This change adds a map to cache previously determined benchmark results.
The caching results in significant speedups for variable input shapes.
* Use LRU to limit cached benchmark results
* Only cache benchmark results for a fixed weight shape
In case the weight shape changes, all cached results are discarded.
* Use padded shape as key for cached benchmarks
* Add constant for max number of cached benchmark results
* Use unordered_map to store cached benchmark results
* Only store the parameters that are actuallt needed
Some changes that reduce the size of the release onnxruntime.dll by 170KB:
Change the ONNX_OPERATOR_KERNEL macros to not create a unique virtual class per kernel create lambda, but instead use a generic class with the raw function address supplied at BuildCreateKernelInfo time.
Changed the exceution providers to use a table driven approach to calling the BuildCreateKernelInfo functions instead of a massive function with construct/call/delete sequences.
The CreateFunc in data_types.h didn't need to be a std::function, eliminating more lambda virtual classes.
N.B. To accommodate MSVC 14.11 toolchain (used for CUDA builds), the operator+() syntax cannot be used to retrieve the raw function address. The older toolchain can't resolve between cdecl/vectorcall and gives up. An explicit cast is needed to help the compiler along.
* Exclude unreferenced global data and op doc strings in the opschema object. The first causes a decrease in the binary size by at least 85k. The latter reduces resident memory size.
* Update onnx to incorporate my PR that fixes SetDoc compiler warnings
* Ensure Linux binaries are built with debug info. Extract debug info out of the main binaries. Strip the main binaries.
* add binutils
* add uname
* add binutils
* remove linux portion
* Fix#612, TfidfVectorizer handles empty matrices as an input
* Add more unit tests, better consistency of error messages
* Update tfidfvectorizer.cc
* better comment
* fix comments
* add unit test failure for an empty input {0, 1}
* Adding a custom op interface to the C API to remove shared library dependency.
* Remove old custom op test
* Rework how custom ops handle inputs/outputs to enable custom op output shape calculation in the compute method
* Add a nicer C++ API for custom ops and switch the tests to use it.