onnxruntime/cmake
Chen Fu ef1aaa367a
Adding interface for batched integer gemm (#7249)
Parallelize MinMax, Quantize and batched quantize GEMM

Performance problem identified in T5 decoder model (quantized). DynamicMatMul operator is identified as the culprit. This operator spend time on getting MinMax of a Tensor, quantize a tensor, and perform a batched qgemm. All of these can be parallelized.

Currently GEMM is parallelized. However, in batched GEMM, we sequentially call GEMM multiple times. This causes multiple starting and ending of parallel sections, which can be slow sometimes. So we made the following changes:

Parallel task partition no longer depends on degree of parallelism, only on shape of the matrices.

In a single GEMM, perform 2D partition of the multiplication, along panel lines, to reduce repeated packing.

For batched GEMM, all parallel tasks are executed in a single parallel section, reducing the cost of starting threads and waiting for them to finish.
2021-04-15 10:25:31 -07:00
..
external matmul in dnnl (#7311) 2021-04-12 08:03:03 -07:00
patches Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
tensorboard Introduce training changes. 2020-03-11 14:39:03 -07:00
CMakeLists.txt Update usage of generator expression $<COMPILE_LANGUAGE:L1,L2> which is not available in CMake 3.14. (#7318) 2021-04-13 11:18:34 -07:00
CMakeSettings.json Fork the WinML APIs into the Microsoft namespace (#3503) 2020-04-17 06:18:54 -07:00
codeconv.runsettings
flake8.cmake Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
libonnxruntime.pc.cmake.in cmake: support install target with generated pkg-config file (#7076) 2021-03-22 19:36:31 -07:00
nuget_helpers.cmake Fix nuget build error (#6009) 2020-12-03 09:28:39 -08:00
onnxruntime.cmake build ONNXRuntime into WebAssembly (#6478) 2021-04-06 16:18:10 -07:00
onnxruntime_codegen.cmake [ORT Mobile] file format schema and file I/O code (#4973) 2020-09-01 11:51:31 +10:00
onnxruntime_common.cmake build ONNXRuntime into WebAssembly (#6478) 2021-04-06 16:18:10 -07:00
onnxruntime_config.h.in Thread pool changes (#3153) 2020-03-30 12:18:40 -07:00
onnxruntime_csharp.cmake Remove nGraph Execution Provider (#5858) 2020-11-19 16:47:55 -08:00
onnxruntime_flatbuffers.cmake Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
onnxruntime_framework.cmake build ONNXRuntime into WebAssembly (#6478) 2021-04-06 16:18:10 -07:00
onnxruntime_fuzz_test.cmake Merge CPU packaging pipelines (#6480) 2021-02-04 08:38:56 -08:00
onnxruntime_graph.cmake Add function-body to SoftmaxGrad (#6988) 2021-03-25 11:34:06 -07:00
onnxruntime_ios.toolchain.cmake Add iOS test pipeline and a sample app. (#5298) 2020-09-29 13:53:11 -07:00
onnxruntime_java.cmake Add Android AAR packaging script for ORT-Mobile (#7138) 2021-03-30 18:42:18 -07:00
onnxruntime_java_unittests.cmake [java] Adds a CUDA test (#3956) 2020-05-18 12:05:51 -07:00
onnxruntime_language_interop_ops.cmake [ORT Mobile] file format schema and file I/O code (#4973) 2020-09-01 11:51:31 +10:00
onnxruntime_mlas.cmake build ONNXRuntime into WebAssembly (#6478) 2021-04-06 16:18:10 -07:00
onnxruntime_nodejs.cmake build: split nodejs binding build and test to avoid timeout issue (#4188) 2020-06-10 19:16:32 -07:00
onnxruntime_nuphar_extern.cmake
onnxruntime_optimizer.cmake QDQ implementation (#7033) 2021-03-25 09:17:23 -07:00
onnxruntime_providers.cmake matmul in dnnl (#7311) 2021-04-12 08:03:03 -07:00
onnxruntime_pyop.cmake [ORT Mobile] file format schema and file I/O code (#4973) 2020-09-01 11:51:31 +10:00
onnxruntime_python.cmake Allocate external Rocm allocator via PyBind (#7148) 2021-04-06 15:23:51 -07:00
onnxruntime_session.cmake Check kernel def hashes (#7120) 2021-04-01 17:42:58 -07:00
onnxruntime_training.cmake Check kernel def hashes (#7120) 2021-04-01 17:42:58 -07:00
onnxruntime_unittests.cmake Adding interface for batched integer gemm (#7249) 2021-04-15 10:25:31 -07:00
onnxruntime_util.cmake Merge CPU packaging pipelines (#6480) 2021-02-04 08:38:56 -08:00
onnxruntime_webassembly.cmake build ONNXRuntime into WebAssembly (#6478) 2021-04-06 16:18:10 -07:00
precompiled_header.cmake
protobuf_function.cmake Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
set_winapi_family_desktop.h Fix WCOS/Win32 linking bugs (#3126) 2020-03-19 08:52:40 -07:00
store_toolchain.cmake Use onecore umbrella lib in onecore builds (#5182) 2020-09-16 10:46:27 -07:00
target_delayload.cmake Use onecore umbrella lib in onecore builds (#5182) 2020-09-16 10:46:27 -07:00
wcos_rules_override.cmake Use onecore umbrella lib in onecore builds (#5182) 2020-09-16 10:46:27 -07:00
wil.cmake
winml.cmake Add LearningModelBuilder to WinML Experimental Namespace along with various Audio operators (#6623) 2021-02-12 14:17:10 -08:00
winml_cppwinrt.cmake Add LearningModelBuilder to WinML Experimental Namespace along with various Audio operators (#6623) 2021-02-12 14:17:10 -08:00
winml_sdk_helpers.cmake
winml_unittests.cmake Add LearningModelBuilder to WinML Experimental Namespace along with various Audio operators (#6623) 2021-02-12 14:17:10 -08:00