onnxruntime/include/onnxruntime/core
Tracy Sharpe f19d9a4907
Reduce code size of kernel registration (#833)
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.
2019-04-15 16:39:59 -07:00
..
common Status class optimizations (#824) 2019-04-11 21:57:01 -07:00
framework Reduce code size of kernel registration (#833) 2019-04-15 16:39:59 -07:00
graph Generalize node removal (#743) 2019-04-03 22:34:20 -07:00
optimizer fix graph transformers and refactor tests (#696) 2019-03-26 20:38:12 -07:00
platform Use nsync for implementing condition variable 2019-01-21 22:59:42 -08:00
providers Trt execution provider (#382) 2019-03-14 12:00:39 -07:00
session Ryanunderhill/ocr custom op (#744) 2019-04-05 18:53:20 -07:00