Commit graph

1776 commits

Author SHA1 Message Date
Tomasz Dołbniak
df513c7fe6 Perform shallow clone for nGraph (#938) 2019-04-30 18:38:33 -07:00
tmccrmck
1978b3c953 Add an HTTP server for hosting of ONNX models (#806)
* Simple integration into CMake build system

* Adds vcpkg as a submodule and updates build.py to install hosting dependencies

* Don't create vcpkg executable if already created

* Fixes how CMake finds toolchain file and quick changes to build.py

* Removes setting the CMAKE_TOOLCHAIN_FILE in build.py

* Adds Boost Beast echo server and Boost program_options

* Fixes spacing problem with program_options

* Adds Microsoft headers to all the beast server headers

* Removes CXX 14 from CMake file

* Adds TODO to create configuration class

* Run clang-format on main

* Better exception handling of program_options

* Remove vckpg submodule via ssh

* Add vcpkg as https

* Adds onnxruntime namespace to call classes

* Fixed places where namespaces were anonymous

* Adds a TODO to use the logger

* Moves all setting namespace shortnames outside of onnxruntime namespace

* Add onnxruntime session options to force app to link with it

* Set CMAKE_TOOLCHAIN_FILE in build.py

* Remove whitespace

* Adds initial ONNX Hosting tests (#5)

* Add initial test which is failing linking with no main

* Adds test_main to get hosting tests working

* Deletes useless add_executable line

* Merge changes from upstream

* Enable CI build in Vienna environment

* make hosting_run*.sh executable

* Add boost path in unittest

* Add boost to TEST_INC_DIR

* Add component detection task in ci yaml

* Get tests and hosting to compile with re2 (#7)

* Add finding boost packages before using it in unit tests

* Add predict.proto and build

* Ignore unused parameters in generated code

* Removes std::regex in favor of re2 (#8)

* Removes std::regex in favor of re2

* Adds back find_package in unit tests and fixes regexes

* Adds more negative test cases

* Adding more protos

* Fix google protobuf file path in the cmake file

* Ignore unused parameters for pb generated code

* Updates onnx submodule (#10)

* Remove duplicated lib in link

* Follow Google style guide (#11)

* Google style names
* Adds more 
* Adds an additional namespace
* Fixes header guards to match filepaths

* Consume protobuf

* Unit Test setup

* Json deserialization simple test cases

* Split hosting app to lib and exe for testability

* Add more cases

* Clean up

* Add more comments

* Update namespace and format the cmake files

* Update cmake/external/onnx to checkout 1ec81bc6d49ccae23cd7801515feaadd13082903

* Separate h and cc in http folder

* Clean up hosting application cmake file

* Enable logging and proper initialize the session

* Update const position for GetSession()

* Take latest onnx and onnx-tensorrt

* Creates configuration header file for program_options (#15)

* Sets up PredictRequest callback (#16)

* Init version, porting from prototype, e2e works

* More executor implementation

* Adds function on application startup (#17)

* Attempts to pass HostingEnvironment as a shared_ptr

* Removes logging and environment from all http classes

* Passes http details to OnStart function

* Using full protobuf for hosting app build

* MLValue2TensorProto

* Revert back changes in inference_session.cc

* Refactor logger access and predict handler

* Create an error handling callback (#19)

* Creates error callback

* Logs error and returns back as JSON

* Catches exceptions in user functions

* Refactor executor and add some test cases

* Fix build warning

* Add onnx as a dependency and in includes to hosting app (#20)

* Converter for specific types and more UTs

* More unit tests

* Update onnx submodule

* Fix string data test

* Clean up code

* Cleanup code

* Refactor logging to use unique id per request and take logging level from user (#21)

* Removes capturing env by reference in main

* Uses uuid for logging ids

* Take logging_level as a program argument

* Pass logging_level to default_logging_manager

* Change name of logger to HostingApp

* Log if request id is null

* Update GetHttpStatusCode signature

* Fix random result issue and camel-case names

* Rollback accidentally changed pybin_state.cc

* Rollback pybind_state.cc

* Generate protobuf status from onnxruntime status

* Fix function name in error message

* Clean up comments

* Support protobuf byte array as input

* Refactor predict handler and add unit tests

* Add one more test

* update cmake/external/onnx

* Accept more protobuf MIME types

* Update onnx-tensorrt

* Add build instruction and usage doc

* Address PR comments

* Install g++-7 in the Ubuntu 16.04 build image for vcpkg

* Fix onnx-tensorrt version

* Check return value during initialization

* Fix infinite loop when http port is in use (#29)

* Simplify Executor.cc by breaking up Run method (#27)

* Move request id to Executor constructor

* Refactor the logger to respect user verbosity level

* Use Arena allocator instead of device

* Creates initial executor tests

* Merge upstream master (#31)

* Remove all possible shared_ptrs (#30)

* Changes GetLogger to unique_ptr

* Reserve BFloat raw data vector size

* Change HostingEnvironment to being passed by lvalue and rvalue references

* Change routes to getting passed by const references

* Enable full protobuf if building hosting (#32)

* Building hosting application no longer needs use_full_protobuf flag

* Improve hosting application docs

* Move server core into separate folder (#34)

* Turn hosting project off by default (#38)

* Remove vcpkg as a submodule and download/install Boost from source (#39)

* Remove vcpkg

* Use CMake script to download and build Boost as part of the project

* Remove std::move for const references

* Remove error_code.proto

* Change wording of executable help description

* Better GenerateProtobufStatus description

* Remove error_code protobuf from CMake files

* Use all outputs if no filter is given

* Pass MLValue by const reference in MLValueToTensorProto

* Rename variables to argc and argv

* Revert "Use all outputs if no filter is given"

This reverts commit 7554190ab8e50ba6947648c2f3e2a3d4d9606ce0.

* Remove all header guards in favor of #pragma once

* Reserve size for output vector and optimize for-loop

* Use static libs by default for Boost

* Improves documentation for GenerateResponseInJson function

* Start Result enum at 0 instead of 1

* Remove g++ from Ubuntu's install.sh

* Update cmake files

* Give explanation for Result enum type

* Remove all program options shortcuts except for -h

* Add comments for predict.proto

* Fix JSON for error codes

* Add notice on hosting application docs that it's in beta

* Change HostingEnvironment back to a shared_ptr

* Handle empty output_filter field

* Fix build break

* Refactor unit tests location and groups

* First end-to-end test

* Add missing log

* Missing req id and client req id in error response

* Add one test case to validate failed resp header

* Add build flag for hosting app end to end tests

* Update pipeline setup to run e2e test for CI build

* Model Zoo data preparation and tests

* Add protobuf tests

* Remove mention of needing g++-7 in BUILD.md

* Make GetAppLogger const

* Make using_raw_data_ match the styling of other fields

* Avoid copy of strings when initializing model

* Escape JSON strings correctly for error messages (#44)

* Escape JSON strings correctly

* Add test examples with lots of carriage returns

* Add result validation

* Remove temporary path

* Optimize model zoo test execution

* Improve reliability of test cases

* Generate _pb2.py during the build time

* README for integration tests

* Pass environment by pointer instead of shared_ptr to executor (#49)

* More Integration tests

* Remove generated files

* Make session private and use a getter instead (#53)

* logging_level to log_level for CLI

* Single model prediction shortcut

* Health endpoint

* Integration tests

* Rename to onnxruntime server

* Build ONNX Server application on Windows (#57)

* Gets Boost compiling on Windows

* Fix integer conversion and comparison problems

* Use size_t in converter_tests instead of int

* Fix hosting integration tests on Windows

* Removes checks for port because it's an unsigned short

* Fixes comparison between signed and unsigned data types

* Pip install protobuf and numpy

* Missing test data from the rename change

* Fix server app path (#58)

* Pass shared_ptr by const reference to avoid ref count increase (#59)

* Download test model during test setup

* Make download into test_util

* Rename ci pipeline for onnx runtime server

*  Support up to 10MiB http request (#61)

* Changes minimum request size to 10MB to support all models in ONNX Model Zoo
2019-04-30 18:21:23 -07:00
Raymond Yang
01cd7eaca8 Bump up onnx version (#936)
* bump up onnx version
2019-04-30 08:44:32 -07:00
Maik Riechert
ded7eeb033 make builds more robust (#906) (#932) 2019-04-29 12:58:20 -07:00
Changming Sun
1f066d4dc4 Update onnx (#893) 2019-04-24 21:31:49 +10:00
Hector Li
e8d722003a
Move NMS to Onnx domain (#865)
* move files

* move files

* Remove NonMaxSuppression from Contrib op, move it to Onnx domain, opset 10

* move NMS out of namespace contrib

* update data type in UT

* update to latest onnx

* white list the node test for Mod which is not implemented yet
2019-04-22 13:24:27 -07:00
Tracy Sharpe
cb69c65756
Update MLAS to be able to build standalone again (#874)
Change MLAS to be able to build standalone without onnxruntime header dependencies. This is enabled when building with MLAS_NO_ONNXRUNTIME_THREADPOOL defined.
mlas.h had been changed to include the ThreadPool header, but this header now just has a forward reference for the class. The header was also doing a "using onnxruntime::concurrency"; that has been removed and the external mlas.h users fixed up as needed.
As before, if ThreadPool==nullptr, then MLAS uses OpenMP or falls back to a single threaded implementation. The build option to use the Win32 system thread pool has been removed as onnxruntime can't hit that path and I don't use that option for standalone tests anymore.
2019-04-21 14:04:15 -07:00
nivas-x86
a4d7052aeb Add nGraph Execution Provider (#832)
* Add nGraph Execution Provider

* feedback changes 1

* feedback2

* Feedback and upgrade nGraph

* Feedback 4

* Fix CI

* Disable new ops
2019-04-20 17:02:35 -07:00
Changming Sun
d78c340eac update onnx (#861)
* update onnx

* ignore some tests
2019-04-19 10:52:47 -07:00
Pranav Sharma
780aad8fd0 Eliminate unused code and data from Linux binaries. (#849) 2019-04-18 23:00:27 -07:00
Changming Sun
687bac455d Convert eigen to a submodule and update it to the latest version 2019-04-18 21:24:56 -07:00
Bowen Bao
ed0c86cd90 update onnx to fix matmul shape inference (#847)
* update onnx to fix matmul shape inference

* update onnx submodule hash in cgmanifest.json and ci scripts
2019-04-18 14:52:48 -07:00
stevenlix
f2694ab526
Enable provider unit tests for TensorRT (#802)
* Update provider_test_utils.cc

* Update tensorrt_execution_provider.h

* Update tensorrt_execution_provider.cc

* Update gemm_test.cc

* Update softmax_test.cc

* Update logsoftmax_test.cc

* Update matmul_test.cc

* Update batch_norm_op_test.cc

* Update conv_op_test.cc

* Update batch_norm_op_test.cc

* Update softmax_test.cc

* Update conv_transpose_op_test.cc

* Update instance_norm_op_test.cc

* Update flatten_op_test.cc

* Update loop_test.cc

* Disable failed tests for TensorRT

* Disable unsupported tests for TensorRT

* Disable unsupported tests for TensorRT

* Disable unsupported tests for TensorRT

* Disable unsupported tests for TensorRT

* Update matmul_test.cc

* Update logsoftmax_test.cc

* Update topk_op_test.cc

* disable unsupported tests for TensorRT

* resolve conflicts

* Update identity_op_test.cc

* Update activation_op_test.cc

* make max batch size configurable and simplify the code for disabling unsupported tests

* make max batch size configurable at runtime

* update tensorrt ci pipline

* move max batch size to private

* Update tensorrt_execution_provider.cc

* Update tensorrt_execution_provider.h

* Update tensorrt_execution_provider.cc

* add comments on the test changes

* Update tensorrt_execution_provider.h

* Update tensorrt_execution_provider.cc

* Update build.py
2019-04-18 13:20:37 -07:00
shschaefer
ff253631b5
Enable use of session based threadpool. (#854)
* Enable use of session based threadpool.

* Fix build dir issue
2019-04-18 10:20:46 -07:00
daquexian
ac82c1f483 enable android build (#715)
* enable android build

* Add 'log' to onnxruntime_EXTERNAL_LIBRARIES

* Remove cmake about header_files_test.cc

* Add Android CI pipeline

* Remove some ms-specific(?) ci

* Fix bash error

* Add execute flag for install_deps_android.sh

* Add install_ubuntu_for_android.sh

* Remove python in deps for android

* Add comment for BUILD_ARCH

* Set BUILD_SERVICE to cpu

* Set BUILD_OS in run_build.sh

* Fix -o bug in run_build.sh

* Android -> android

* Correct the android ndk location

* Checkout submodules in my own azure pipelines

* Revert "Remove some ms-specific(?) ci"

This reverts commit 302463213480487d8944c3127a3b311c591d55c0.

* Revert "Checkout submodules in my own azure pipelines"

This reverts commit 1acfb6755f933e532b8312ca35bb4900a833903f.
2019-04-18 09:59:04 +08:00
Ashwini Khade
07e6dfa7ab
update onnx and enable tests for qlinearconv (#840) 2019-04-16 09:43:17 -07:00
Pranav Sharma
54e04cb8bb
cherry pick PR from 0.3.1 release - enable MSVC static runtime (#837) 2019-04-15 22:37:47 -07:00
Pranav Sharma
4b4a359943
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. (#823)
* 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
2019-04-15 15:57:19 -07:00
jignparm
d17ae5c093
MKLML pipeline - update C# and CMake to handle dll dependencies (#810)
* Refactor NuGet to allow arbitrary namespaces

* Move csharp build to end of cmake

* Minor edit to ensure dll generation in sequence
2019-04-10 18:16:02 -07:00
Ashwini Khade
10b113f144
update onnx to bring in quantized ops (#808)
* update onnx + move quantized ops kernels and test to onnx + remove exp ops

* update onnx

* Revert "update onnx"

This reverts commit 533abfc297e75473a74505fb89921ffc05c46a1c.

* add generated csharp test file
2019-04-10 17:20:35 -07:00
Changming Sun
4bc3d6027d Build perf test runner only if onnxruntime_BUILD_SHARED_LIB is ON 2019-04-10 13:16:56 -07:00
jignparm
4e3391ef60
Refactor NuGet to allow arbitrary PackageId names (e.g. Microsoft.ML.OnnxRuntime.MKLML) (#797)
* Refactor NuGet to allow arbitrary namespaces

* Move csharp build to end of cmake
2019-04-09 22:48:00 -07:00
Changming Sun
0d4055def4 Integrate tensorflow into onnxruntime_perf_test tool 2019-04-09 15:55:08 -07:00
Ryan Hill
fda1d0dce9
Ryanunderhill/ocr custom op (#744)
* 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.
2019-04-05 18:53:20 -07:00
Changming Sun
867e961ee8 Remove mkldnn_sgemm from math_util.cc
If it is needed, it can be used explicitly in mkldnn provider.
2019-04-05 14:13:10 -07:00
Changming Sun
43521c0de7 update 2019-04-04 21:22:27 -07:00
Changming Sun
290112d614
Update onnx (#761)
* update onnx
2019-04-04 10:58:45 -07:00
Ashwini Khade
8bc532bfb9 update onnx and add removed experimental ops to contrib ops (#723) 2019-04-02 22:30:00 -07:00
Changming Sun
fc26b24138
onnx_test_runner: use c api for loading non-tensor test data (#751) 2019-04-02 21:47:24 -07:00
stevenlix
06888437dd Update onnx-tensorrt submodule to master (#753) 2019-04-02 16:34:00 -07:00
stevenlix
40839f1f84
Enable multiple session runs for TensorRT (#724)
* Update BUILD.md

* Update README.md

* Update tensorrt_execution_provider.cc

remap node index to handle the case that nodes in graph may be deleted and node index is not continuous.

* Update onnxruntime_providers.cmake

Solve conflicts to onnx-tensorrt

* Update tensorrt_execution_provider.h

* Update tensorrt_execution_provider.cc

* Update tensorrt_execution_provider.h

* Update tensorrt_execution_provider.cc

* Update tensorrt_execution_provider.h

* Update tensorrt_execution_provider.cc

* Update tensorrt_execution_provider.cc

* Update tensorrt_execution_provider.cc

* Update build.py
2019-03-30 11:02:13 -07:00
Changming Sun
165657ee1a
Refactor the /Qspectre cmake code (#736)
* refactor the /Qspectre cmake code

* Remove /Zi
2019-03-29 00:21:54 -07:00
jignparm
36f5d008de
Add /Qspectre compiler flags (#671)
* Add /Qspectre compiler flags

* Added /Zi. Seems required for binskim to pass

* reset cmake min to 3.11 for nuget pipeline

* Reset CMake min to 3.13
2019-03-28 11:08:05 -07:00
KeDengMS
deaea702ff
Bump up cmake_minimum_required to 3.13 (#722)
This is consistent with CI version. cmake 3.11 has issues with CUDA build in Linux.
2019-03-27 14:45:24 -07:00
Changming Sun
fb2a44f642 Remove header_files_test.cc 2019-03-27 13:16:56 -07:00
Raymond Yang
c35b605b8d
Support updated opschema with functionbody (#640)
* Update onnx

* Support updated function schema in ORT

* Update onnx related commit hash

* Check out an older commit in ONNX

* Add support for subgraph attribute

* Add comments
2019-03-27 11:38:10 -07:00
shahasad
83ae641425
add documentation for custom ops (#708)
* added tools for doc gen, added doc

* doc updated

* some fixes

* hooked up with build.py

* hooked up with build.py and fail on nonupdated doc

* update
2019-03-26 21:58:01 -07:00
Pranav Sharma
bcf1ce94be
Provide an option to disable contrib ops. (#707) 2019-03-26 12:31:36 -07:00
Changming Sun
6497f0c133 build python only when onnxruntime_BUILD_UNIT_TESTS is ON (#694) 2019-03-22 19:25:49 -07:00
Changming Sun
179afe1594
Remove onnxruntime_USE_PREBUILT_PB (#692)
* Remove onnxruntime_USE_PREBUILT_PB
2019-03-22 17:41:21 -07:00
Changming Sun
a26696fb0e Enable LTO on Linux 2019-03-22 15:30:37 -07:00
stevenlix
af389593be
Add Windows CI pipeline for TensorRT (#687)
* Update win-gpu-tensorrt-ci-pipeline.yml

* Update win-gpu-tensorrt-ci-pipeline.yml

* Update symbols.txt

* Update CMakeLists.txt

* Update build.py

* Update win-gpu-tensorrt-ci-pipeline.yml

* Update win-gpu-tensorrt-ci-pipeline.yml

* Update win-gpu-tensorrt-ci-pipeline.yml

* Update tensorrt_execution_provider.cc

* Update CMakeLists.txt

* Update win-gpu-tensorrt-ci-pipeline.yml
2019-03-22 14:46:57 -07:00
jywu-msft
8d782582f4
fix build_wheel option (#684) 2019-03-22 11:18:23 -07:00
Pranav Sharma
5d452b3029
Use protobuf-lite to reduce onnxruntime.dll size. (#639)
* Test protobuf-lite

* Test protobuf-lite

* Test protobuf-lite

* Optimize protobuf usage for LITE_RUNTIME to reduce the binary size of
onnxruntime.dll. More details can be found here https://developers.google.com/protocol-buffers/docs/proto.
The reduction is significant. For commit id: 4873b452151bafe49da332aaeab639ef0318fc1ca28d728, the size
reduced by ~700K; from 4873728 to 4172800.

* Add LITE_RUNTIME flag in in.proto files

* Fix merge conflict.

* Address PR comments

* Forgot to add 2 files + fix linux and gpu build errors.

* Fix build errors + test failures

* Fix cuda tests

* Fix tensor rt build

* Use full protobuf for trt

* Address PR comments

* Print tensor shape proto as text string for easier debugging
2019-03-21 14:06:38 -07:00
utsab
a624e1091e fixing clang build failure 2019-03-21 13:55:47 -07:00
Changming Sun
9e323901b2
Upgrade mkldnn to 0.18 (#650)
Upgrade mkldnn to 0.18, to fix a build issue with GCC 8.
2019-03-19 16:23:55 -07:00
stevenlix
e8b0ae8923
Trt execution provider (#382)
* updated cmake files for trt

* added trt execution provider

* added trt basic test

* removed trt_path action attribute

* Add files via upload

* Update build.py

* Update trt_allocator.h

* fixed issues found by reviewers

* changed cast operator

* added comment for custom kernel implementation

* changed auto to auto&

* changed to function compile APIs for TRT execution provider

* changed to function compile APIs for TRT execution provider

* added new DType DInt64

* adapted to the changes of onnxruntime_c_api

* removed trt kernel (use function compile instead)

* updated onnx-tensorrt submodule

* set default memory type to TRT fused kernel

* resolve merge conflict

* fixed the issue that USE_CUDA conflicts with USE_TRT

* construct graph by adding nodes in topological order

* made changes for Windows

* change buffers type

* bypass HasImplementationOf check for TRT XP because TRT kernel is not registered

* added domain to version info in rebuilt model proto

* added trt to test option list

* added DomainToVersionMap() to GraphViewer

* removed Copy()

* fixed broken code

* format the code to clang format

* used local reference to the frequently used values

* fixed a couple of issues according to reviewers feedback

* fixed a couple of issues according to reviewers feedback

* added python binding for TRT and enable use_cuda when use_trt is on

* fixed a redefinition issue

* changed shared_ptr to unique_ptr on trt engines, and made a few changes required by reviewers

* enabled trtexecution provider for unit tests

* renamed trt to tensorrt

* added tesorrt to python binding

* update submodule onnx and onnx-tensorrt

* made a couple of minor changes based on reviewer's feedback

* added CUDA_CHECK

* removed test code

* fixed broken code after merge

* updated onnx-tensorrt submodule

* added post processing to align trt inputs/outputs with graph inputs/outputs

* updated onnx submodule

* added CUDA fallback for TensorRT and fixed TensorRT cmake issue

* added ci pipeline for tensorrt and removed some redundent code from trt xp

* fixed syntax issue

* updated onnx-tensorrt submodule

* fix trt build problem by: (#602)

1. Add additional /wd for debug build
2. Add io.h for additional targets
3. Bring back mb version of getopt

* Update install_ubuntu.sh

* Update linux-gpu-tensorrt-ci-pipeline.yml

* Update linux-gpu-tensorrt-ci-pipeline.yml

* Update run_build.sh

* Update run_build.sh

* Update run_build.sh

* Update run_build.sh

* fixed the issue that GetKernelRegistry returns nullptr

* merged master to this branch

* moved some data types to private

* fixed tensorrt CI pipeline issue

* customized test data for TensorRT pipeline

* added onnx-tensorrt in json file and fixed an issue in ci script

* added comments
2019-03-14 12:00:39 -07:00
Hariharan Seshadri
cfb08c4848
TopK op: Promote onnx to a newer commit and handle changed TopK spec for opset 10 (#611)
* Initial commit

* Nit fix
2019-03-13 10:21:58 -07:00
Ke Zhang
5bb842538d
sync onnx and maintain old version history for removed exp ops (#588)
* sync onnx and maintain old version history for removed exp ops in onnx runtime.

* update

* updating to specific onnx commit - remove exp ops.

* update

* disable the 3 failures to push the change as it's blocking folks.

* update test
2019-03-12 18:48:27 -07:00
Xavier Dupré
c6d39b60cd remove OnnxTransformer (#554) 2019-03-12 18:15:39 -07:00
Randy
f048fc5fb0 cross compile x86 linux (#562)
* cross compile x86 linux

* fix comments

* install multilib for ubuntu cross compile

* remove tailing slash

* fix -fPIC relocations for x86 target too

* add asm make flag

* fix x86 compile err

* test x86 with zlib and png

* Disable zlib from x86

* install x86 python header

* remove cross-compiling changes

* test 32bit ubuntu

* add x86 ubuntu docker file

* add x86 as arch parametr for docker build

* config pipeline

* avoid dotnet install

* install cmake

* skip dep install

* use latest ubuntu

* install latest cmake

* install x86 deps

* configure cmake

* install ninja

* correct ninja dir

* apt get re2c

* install onnx

* set processor x86

* disable warning

* skip test

* disable test

* disable test

* find lib

* fix typo

* restore test

* disable backend model test

* disable test

* fix test err

* stop installing onnx

* disable onnx test on x86

* restore yml

* mergef with master yml

* cancel needless config setting

* enable x86 flag

* restore all onnx tests

* fix yml typo

* install onnx

* add back x86 flag

* disable cases

* disable case

* disable cases

* add macro to disable cases

* fix typo

* print platform

* remove condition
2019-03-12 09:47:45 -07:00
Changming Sun
3ef273b84b Support memory mapping on Linux 2019-03-11 19:39:02 -07:00
Changming Sun
93bbb42e75 Change the way of linking dl lib 2019-03-11 10:46:05 -07:00
Hariharan Seshadri
867eda5262
Support Windows cross-compiling for ARM(64) in ORT build scripts (#549)
* Initial commit

* More changes

* More changes

* More changes

* More changes

* PR feedback

* Commiting Azure build config file

* Fix build pipeline

* Cleanup build dir template addition

* Remove conda modules download step

* PR feedback

* Revert x86 arguments to as they are currently

* More changes
2019-03-08 17:42:20 -08:00
Xavier Dupré
b4ffcf8258
Fixes #31, add option numpy_version, skip_keras_test to the parser of build.py, add flag PRIVATE for the python bindings (#544)
* add option numpy_version to build against the installed numpy version and not 1.15.0 (hardcoded version number), default is still 1.15.0
* add option skip_keras_test to skip keras test even if keras is installed (still enabled by default)
disable unnecessary warnings about ubuntu
* enable option PRIVATE for the compilation of the Python bindings (settings recommended on pybind11 documentation)
* test on debian 9
2019-03-07 13:08:02 +01:00
Changming Sun
8e0fff7b8d
Support large model(>2GB) (#520)
1. Support the new external data extension in ONNX 1.4 onnx/onnx#678
2. Enable onnxruntime_perf_test in Mac Build
3. move path_lib.h from onnx_test_runner source dir to onnxruntime_framework
4. Enable memory planner for string tensors
5. Make memory planner always enabled, to simplify model loading logic
6. Delete some duplicated code between onnxruntime_perf_test and onnx_test_runner
7. Delete win_getopt_mb lib.
8. Remove the dependency on Pathcch lib, which is only available on Windows 8 and newer.
2019-03-05 21:27:12 -08:00
shahasad
a4a459477a
Windows packaging build pipeline for C-api packages (CPU and GPU) (#535)
* added packaging pipeline

* Update win-ci-pipeline.yml for Azure Pipelines

* Update win-ci-pipeline.yml for Azure Pipelines

* Update win-ci-pipeline.yml for Azure Pipelines

* Update win-ci-pipeline.yml for Azure Pipelines

* Update win-ci-pipeline.yml for Azure Pipelines

* Update win-ci-pipeline.yml for Azure Pipelines

* Update win-ci-pipeline.yml for Azure Pipelines

* Update win-ci-pipeline.yml for Azure Pipelines

* put the c-api header file at root instead of under core/session

* Update win-ci-pipeline.yml for Azure Pipelines

* Update win-ci-pipeline.yml for Azure Pipelines

* Update win-ci-pipeline.yml for Azure Pipelines

* parameterize the windows build script

* Update win-package-pipeline.yml for Azure Pipelines

* fixed indenting

* fixed indenting

* fix parameter reference syntax

* try using arch = amd64 for the vcvarsall

* remove duplicate tasks

* use vcvarsall

* some more refactor

* fix typo

* fix typo

* factored out the packaging step into a template

* add x86 build to package pipeline

* use amd64 for vcvars arg

* added gpu pipeline. added msbuild platform param

* fix the msbuild platform

* use amd64 host for x86 build

* use buildarch=x86 for vcvarsall

* remove vcvars from setup steps

* add some logging for PNG lib, and disable fns_candy demo for win32

* set allocator alignment to 32 bit for win32 compiler

* disable parallel execution test for x86

* use 64 bit toolchain for x86 build

* add missing -T flag for toolset

* fix string delimietr in workingdirectory name for package build test step

* fix gpu pipeline

* make io_types test conditional

* use cuda 10 instead of cuda 9.1, similar to the ci build

* try some workaround on the io test

* undo inadvertent local change in build.py, also reenable the io test

* make all test run single threaded

* blacklist few failing tests for x86

* added some log in build.py

* edit build.py to disable parallel test

* add the failed tests into the blacklist for win32

* add tf_pasnet_large to blacklist

* change control flow for build.py onnx tests

* add README, license and TPN to the package

* updated build.py test sequence for parallel executor

* updated onnx test flow as per review comment

* add type checking log in the compare_mlvalue

* fix type cast

* blacklist some failed test as of now

* one more blacklisted test
2019-03-05 18:12:02 -08:00
Changming Sun
bfa21c0b9f Re-enable the tests disabled during C API renaming 2019-03-05 16:06:38 -08:00
Hariharan Seshadri
1d3fcc525a
deps: update onnx to a newer commit and update test exclusions (#542)
* Update onnx dep to a newer commit and update test exclusions

* Keeping shrink excuded in c++ tests

* More changes
2019-03-05 12:03:16 -08:00
Weixing Zhang
8a59287c46
Create OptimizerExecutionFrame for graph optimization (#526)
* Create OptimizerExecutionFrame for optimizer

With this change, optimizer can easily invoke CPU kernels for graph optimization.
2019-03-04 10:56:41 -08:00
Scott McKay
5171e8b129
Make IExecutionProvider::Type return const std::string& instead of a new string. (#506)
Store the type string in IExecutionProvider so that Type() doesn't need to be a virtual.
2019-02-22 18:27:01 +10:00
Changming Sun
b69c834c06 Optimize graph partition 2019-02-20 16:32:04 -08:00
Dmitri Smirnov
0e687a2c90
Implement tokenex regular expression matching and add tests. (#480)
* Implement tokenex regular expression matching and add tests.
  Import re2 module.
2019-02-20 15:56:32 -08:00
Pranav Sharma
9bc6503463
Support non-tensor types in the C API. (#489)
* support non-tensor types

* support non-tensor types.

* support non-tensor types.

* fix compilation issues

* fix compilation issues

* fix compilation issues

* add test cases

* test cases

* add test cases

* try to fix string test case

* working now

* use allocator (broken)

* string test broken after using allocator

* full working example

* Fix PR comments
2019-02-19 14:11:46 -08:00
Raymond Yang
ec8ac04f30
Update cast op to support string <-> numeric (#379)
* Update cast kernel to support to/from string

* Update namespace

* Add support for literal numeric case

* Update to support -INF test

* Update kernel registration for cast

* Update ONNX to 1.4.1

* Update registy api

* Resolve some comments

* Update cast kernel implementation

* Resolve comments

* Fixed test data in onnx

* Update cast kernel implementation

* Resolve PR comments

* Update cast_op.cc

* Update onnx commits info

* Update comments
2019-02-12 10:10:56 -08:00
Yufeng Li
7b37dc6105
Enable USE_MKLML_FOR_BLAS (#387)
* Enable USE_MKLML_FOR_BLAS

* add mklml include directory for onnxruntime_provider and onnxruntime_provider_cuda

* add mklml_include_dir to include_directories
2019-02-08 07:14:37 -08:00
Pranav Sharma
db0fde9add
Make USE_MLAS macro conditional on cmake flag for consistency with other options and make it ON by default. It was already enabled by default today. (#454) 2019-02-07 18:33:00 -08:00
shahasad
8a8d1b0cea
Fix MacOS shared library build (#447)
* try removing the --version-script

* remove --no-undefined flag

* remove the -rpath linker flag

* remove the -rpath linker flag, including the -Wl

* remove the --whole-archive flags

* added -all_load -noall_load flags in place of --whole-archive and --no-whole-archive

* spell correct all-load

* set the MacOS specific cmake configs with if(APPLE) condition

* added --build_shared_lib to mac CI
2019-02-06 15:27:37 -08:00
Weixing Zhang
696ab8a194
Create a separate component for graph optimization. (#421)
* Create a project for graph optimizer.

Move optimizer related code to the folder optimizer.

* Fix build failures.

* rebase and fix build failures.

* fix build failure.

* fix build failure with cuda path.

* fix python build failure.

* Move two transformers(memcpy and insert_cast) from framework to optimizer.

* rebase.

* SessionState should not depend on optimizer.
2019-02-04 15:45:12 -08:00
Changming Sun
9f0298261d Fix a build warning in onnxruntime python extension (#416) 2019-02-01 00:19:41 -08:00
Randy
2f73d7abf8
compile with GL/LTCG (#391)
* compile with GL/LTCG

* apply the change to release build

* remove GL/LTCG from release build

* exclude cuda from using GL/LTCG
2019-01-29 14:18:23 -08:00
Xavier Dupré
439dbbada9
Adds OnnxTransformer to plug onnxruntime in sckit-learn's pipeline (#389)
Useful for transfer learning
2019-01-29 18:51:24 +01:00
jignparm
68881fadcd Delay load cudart64 for cpu execution 2019-01-29 08:50:37 -08:00
Changming Sun
6349114583 Revert "Rashuai/link with ltcg (#378)" (#383)
This reverts commit f53cc032db.
2019-01-25 19:00:23 -08:00
jignparm
ccca1e9402
Update property file for Nuget Linux package (#369)
* 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
2019-01-25 10:45:39 -08:00
Randy
f53cc032db Rashuai/link with ltcg (#378)
* compile with GL&LTCG

* remove tab

* restrict flag to only relwithdebinfo

* enable all OPT flags for relwithdebinfo
2019-01-24 19:29:05 -08:00
Scott McKay
bca8daf762
Update ONNX. Implement Scan 9 changes (#366)
* 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.
2019-01-24 08:10:39 +10:00
stevenlix
8ea7197b82 trt (#361)
* updated cmake files for tensorrt
2019-01-23 13:28:13 -08:00
Changming Sun
c87929e949 Use nsync for implementing condition variable 2019-01-21 22:59:42 -08:00
Tracy Sharpe
6f30bec040 Implement MLAS convolution+activation fusion (#354)
* conv+activation fusion
2019-01-18 14:16:28 -08:00
Changming Sun
948cc03490 upgrade onnx 2019-01-17 13:10:30 -08:00
Changming Sun
34afa0a598 Delete onnxruntime_exec 2019-01-16 11:18:44 -08:00
Changming Sun
d23f01dcd9 Suppress warnings for gemmlowp 2019-01-15 22:29:30 -08:00
Ashwin Kumar
492d9fd6cc
Use Eigen ThreadPool in OnnxRuntime (#323)
* switch to nonblocking threadpool in inference session and sessions state

* switch to eigen threadpool - first draft

* refine

* refine

* add a switch to easily revert back to windows thread pool

* switch thread pool in test runner and turn on leak checker

* remove unncessary files

* fix build error

* more build fixes

* catch exceptions in parallel executor

* fix mac build error

* fix mac build error

* more build fixes

* more mac build fixes

* fix cv issue

* change macro to include cuda compiler for  disabled compiler warning

* try switching the macro to win32 only

* test #error

* move #disable warning to the top

* Update onnxruntime_framework.cmake

* move eigen include to public scope

* turn off eigenthreadpool by default and add todo comment
2019-01-15 15:19:30 -08:00
Ke Zhang
139abda393
convinteger implementation based on gemmlowp (#294)
* update

* cmake change

* rename

* update

* update

* add cmake

* fix build warnings.

* fix comments

* update cmake to avoid run gemmlowp tests

* update cmake

* update

* fix build break

* update

* fix comments

* fix test failure

* add one more test case with padding.

* fix conv implementation of mkldnn and cuda to use updated computekernelshape function.

* fix linux ci build break
2019-01-15 14:39:50 -08:00
Edward Chen
677918cd9a Added generation of C# project properties file containing actual build directory. 2019-01-14 16:02:13 -08:00
jignparm
3b83f062fc remove delayload from mkldnn (#276) 2019-01-14 14:13:28 -08:00
Changming Sun
260639c327 Add missing EXCLUDE_FROM_ALL keyword to nsync submodule 2019-01-11 16:34:55 -08:00
Changming Sun
751eb60819 Fix a build issue in onnxruntime_unittests.cmake (#307) 2019-01-09 22:53:53 -08:00
Changming Sun
84be07114b Disable nsync test 2019-01-09 18:56:12 -08:00
Changming Sun
8cfe8d33a3 Add nsync (#292)
* Add nsync

* nsync2

* nsync3

* fix build

* update comments

* fix build option
2019-01-09 10:40:55 -08:00
Pranav Sharma
31bbb4598e
Enable tvm in CI builds. (#285)
* Enable tvm in CI builds

* Fix tvm dll path issue
2019-01-07 19:37:06 -08:00
Ke Zhang
386b60e35a
update gemmlowp which carries a windows build break fix. (#291) 2019-01-07 18:24:46 -08:00
Yang Chen
4929ddde43 update tvm submodule (#287) 2019-01-07 14:32:58 -08:00
Changming Sun
5e113661a9 Build system upgrades (#281)
* update

* runas normal user
2019-01-07 13:15:24 -08:00
xkszltl
5b6f1823af Use CUDA libraries found by CMake. (#190)
* Link cudart and use CMake predefined variables for cublas.

* Patch for old cmake.

* Remove static cudnn.
Fix file name for cuBLAS DLL delay loading.
2019-01-02 16:51:42 -08:00
Yuan Yu
bd2ace7619 Tweak linker flags to minimize the binary size. (#270) 2019-01-02 14:50:34 -08:00
xkszltl
bddeb3d001 Fix "invalid escape" issue when eigen_SOURCE_PATH contains "\". (#258) 2019-01-02 14:00:21 -08:00
Raymond Yang
8f3a492682 Remove static linked cuda libs (#239) 2019-01-02 10:39:37 -08:00
Dmitri Smirnov
7af1887b33
Introduce basic BFloat16 runtime support (#235)
* Add basic support for BFloat16 type.

* Advance onnx submodule for bfloat16 support.

* Update install_deps for linux.

* Address review comments.
2018-12-21 12:40:59 -08:00
jywu-msft
eb867be331
update mkldnn to 0.17.2 (#231) 2018-12-20 07:32:49 -08:00
Tang, Cheng
0dca080238 remove useless internal schema file (#226)
* placeholder for internal contrib ops

* remove useless internal file

* fix build break
2018-12-19 18:17:20 -08:00
Changming Sun
e97caa7787 change mkldnn so path (#210) 2018-12-19 14:45:57 -08:00
Changming Sun
dc8b37f4c4
update onnx (#209)
* update onnx
2018-12-18 14:50:28 -08:00
Ke Zhang
37b74c771a
add gemmlowp as submodule. (#206) 2018-12-18 13:57:53 -08:00
Changming Sun
c0ec7d56c4
Clean up garbage files (#208) 2018-12-18 13:51:01 -08:00
KeDengMS
b0f27ba0a7
Allow using MKLML header/libs when use_mklml is specified (#178)
Allow using MKLML header/libs when use_mklml is specified
2018-12-17 14:41:42 -08:00
jignparm
5fd9024139
[WIP] Initial checking for CSharp GPU support (#176)
* Initial checking for CSharp GPU support

* Enabled C# for GPU build

* Update Onnxruntime to Ort

* Add runtime check for cuda dlls for windows

* Update pretrained model test, for models where name!=model.onnx

* lowered tolerance for float checks to pass new models

* ignore extra ._resnet34v2.onnx file in pretrained test
2018-12-17 21:18:48 +00:00
xkszltl
383315a7e0 Upgrade Eigen to 3.3.7 (#185) 2018-12-16 00:26:08 -08:00
Tongliang Liao
16b3a9fd63 onnxruntime_CUDA_HOME should only be used when available. 2018-12-16 00:25:12 -08:00
Tracy Sharpe
47551da994
Optimize Tanh/Sigmoid activations (#162)
* optimized tanh/sigmoid

* fix /W4 warnings from alternate build environment

* use MLAS for tanh/sigmoid

* fix my broken C++ templates

* add x86_64 files
2018-12-13 22:53:40 -08:00
edgchen1
c5a0119d42 Added Environment::IsInitialized() and added check to InferenceSession constructor. (#169) 2018-12-13 13:34:49 -08:00
Ashwini Khade
b054646ddd
Askhade/implement erf (#137)
* erf implementation for op9

* enable erf node tests + review comment fixes

* update CMAKE flag

* plus erf to execution provider
2018-12-10 17:26:01 -08:00
Ashwini Khade
c5a691d67d
update onnx to latest commit (#132)
* update onnx to latest commit

* fixes

* Add not implemented operator tests to whitelist

* fix test name
2018-12-10 11:17:52 -08:00
Tracy Sharpe
3c7c1068e7
refactor threading (#110) 2018-12-06 09:20:32 -08:00
jywu-msft
47a6992e1b
update mkldnn to 0.17.1 and address assumptions related to tensor padding that come with new mkldnn version. (#79) 2018-12-03 17:07:44 -08:00
Scott McKay
4dd1e50aa7 Merge remote-tracking branch 'origin/master' into scmckay/UpdateCudaInfoInBuildMd 2018-11-29 14:53:11 +10:00
George Wu
3feeb9de3e Merge branch 'master' of https://github.com/Microsoft/onnxruntime into jywu/incr_fixup 2018-11-28 20:16:06 -08:00
Yulong Wang
846044e282 [Mac] support mkldnn for macOS (#56) 2018-11-28 20:01:21 -08:00
Raymond Yang
6371025860 Add flag for mac compliance (#45)
* Refine windows CI configs

* Add flag for mac compliance
2018-11-28 19:22:29 -08:00
Yulong Wang
d60507d2e9 [Mac] fix python binding (#54) 2018-11-28 18:29:16 -08:00
George Wu
6179ddb2a1 fix for possible incremental build breaks. 2018-11-28 18:14:20 -08:00
Scott McKay
2f61926390 Update build.md section on CUDA builds to clarify and add CUDA 10.0 info.
Add --msvc_toolset param to build.py
Tweak CMakeLists.txt to set the CUDA toolset path from onnxruntime_CUDA_HOME.
2018-11-29 10:37:21 +10:00
Pranav Sharma
7aef8a1cca Sync with internal master. 2018-11-22 20:56:43 -08:00
Pranav Sharma
9fbcb7fa51 Update onnx to commit to pickup shape inference fix for broadcast, concat and scan 2018-11-20 19:41:30 -08:00
Pranav Sharma
89618e8f1e Initial bootstrap commit. 2018-11-19 16:48:22 -08:00