Commit graph

363 commits

Author SHA1 Message Date
Chi Lo
9b3171e95c
Make keepdims to its default value when adding ReduceMin/ReduceMax for quantization calibration (#6788)
* Make keepdims to its default value when adding ReduceMin/ReduceMax

* Fix bug for adding ReduceMin/ReduceMax with keepdims=1
2021-02-25 09:47:59 -08:00
Olivia Jain
db05d53b94
Setup perf in docker and add features (#6582)
* setup scripts to run in docker 
* percent threshold for accuracy 
* branch testing
2021-02-25 09:31:03 -08:00
stevenlix
d5f292ab73
fix issues caused by quantize/calibrate changes (#6802) 2021-02-25 05:41:21 -08:00
Tianlei Wu
f4acdb2ecd
Update transformers benchmark for transformers 4.3.* and ORT 1.7 (#6796)
* update benchmark for transformers 4.* and ORT 1.7

* Fix gpt2 onnx conversion for transformers 4.3.*. Add a check of transformer version >= 3.1.

* remove code related to openmp

* update pretrain model list: keep representitive models only
2021-02-24 12:52:35 -08:00
Tianlei Wu
8703e2c778
update benchmark_longformer for default test suite (#6772) 2021-02-22 22:00:59 -08:00
Ivan Stojiljkovic
c91f314217
Add robust dependency check for Python package (#6436)
* Add robust dependency check for Python package

* Add version_info.py to .gitignore

* Fix Linux build

* Fix Windows CPU build

* Fix Windows 32-bit build

* Minor tweak

* Generate version_info.py earlier in onnxruntime_python.cmake

* Print a user-friendly message if cuDNN is not found in

* Relax version requirements for CUDA 11 - only the major version has to match

* Fix PATH environment variable to include CUDA 11 in 'Python packaging pipeline' (Windows/GPU)

* Fix the build with cuDNN 7
2021-02-21 15:11:28 -08:00
Tianlei Wu
3bda7f4d36
Fix longformer parity and perf regression (#6760)
* add fast kernel back, update benchmark and conversion scripts
2021-02-19 21:47:36 -08:00
Chi Lo
67c478ede4
Entropy method for calibration-based quantization (#6619)
* Add entropy method

* Update pre/post-preprocessing of yolov3

* Code refactor

* Code refactor
2021-02-18 05:50:59 -08:00
Yufeng Li
b1a12b49b7
Avoid removing constant weight that is graph output (#6735) 2021-02-17 19:55:19 -08:00
M. Zeeshan Siddiqui
e44ac6524f
Plug n Allocate with external CUDA allocator via PyBind. (#6679) 2021-02-17 18:59:38 -08:00
Scott McKay
02c7873b0e
Update ORT model conversion script to support custom ops (#6701)
* Add support for custom ops library to the ORT model conversion script
Simplify model conversion now that we read ops from the ORT format model.
Enable custom ops in the python bindings if custom ops are turned on in a minimal build.
* Add test of model conversion involving custom ops.
2021-02-17 12:52:39 +10:00
Tianlei Wu
9b446d5f7e
Longformer Attention CUDA kernel memory Improvements (#6646)
* Integrate memory improvements from NVidia
* compute max_global_num before buffer allocation
* update conversion script to support transformers 4.0
* update benchmark script for creating dummy inputs for different batch_size

* Use a wrapper of cuda event to avoid memory leak
2021-02-16 14:54:48 -08:00
Ye Wang
b4b829dfcf
Update transformers tool based on latest transformers (#6641)
* bert_base_cased: embedlayer fusion

* xlm_mlm_en_2048: attention fusion
2021-02-11 10:11:47 -08:00
Yufeng Li
505c1f30b5 use == instead of is for python 3.8 2021-02-09 19:59:28 -08:00
Yufeng Li
56e4e47f66
Quantize model with QDQ format (#6541)
* implement qdq format in quant tool
* refactor code
2021-02-08 18:46:07 -08:00
Weixing Zhang
299ace0759
Support to allow user to specify compute stream per session (#3723)
* Support to allow user to specify compute stream per session

Create computation cuda stream explicitly rather than use default legacy stream or per-thread default stream.

remove some redudant cudaStreamSynchronize

fix gpt2 model test failures

don't use default stream in nccl either.

add stream schronization in OnRunEnd()

using cub::DeviceScan::InclusiveSum which can be called with stream specified.

fix topK failure due to latest rebase

fix tensorrt

support user specified stream

add user_stream support in tensorrt EP

use same stream for both tensort and CUDA EP.

fix ScatterND

specify stream for adasum and p2p kernels.

fix loop

fix CApiTest.custom_op_handler

fix CApiTest.varied_input_custom_op_handler

change for cudaMemcpyFromSymbol

improve provider options for user specified compute stream

* add changes for ROCM EP

* fix GatherGrad UT for ROCM EP

* clean code and fix NonMaxSuppression

* use default stream for ROCM now

* fix CApiTest.custom_op_handler:OrtFormatCustomOpTests.ConvertOnnxModelToOrt

* fix tensorrt ut: CApiTest.io_binding_cuda

Co-authored-by: Weixing Zhang <wezhan@microsoft.com>
2021-02-05 15:48:18 -08:00
Chi Lo
7c5bfbaaab
Lochi/refactor yolov3 quantization (#6290)
* Refactor the code and move data reader, preprocessing, evaluation to
E2E_example_mode

* Refactor the code.

Move data reader, preprocessing, evaluation to model specific example
under E2E_example_mode

* refactor code

* Move yolov3 example to specific folder and add additional pre/post
processing
2021-01-29 19:28:09 -08:00
Tianlei Wu
8306150e0e
Refine transformers profiler output (#6502)
* output nodes in the original order; grouped by node name
* add document for profiler
2021-01-29 12:14:50 -08:00
Tianlei Wu
d3203adc26
Update document of transformer optimization (#6487) 2021-01-29 05:47:01 -08:00
Zhang Lei
7abb5b667f
Support pad operator in quantization and quantized nhwc transformer. Fix Pad operator bug. (#6325)
Support pad operator in quantization tool.
Support pad operator in quantized nhwc transformer.
Fix pad() operator bug when pad input's inner(right) most axis value is zero for Edge and Reflect mode, it copied wrong value to the cells to be padded. Note the Constant mode will not trigger this bug, as Edge/Reflect need copy value from the already copied array while Constant mode only fill specified value.
Add more test cases to cover pad() operator bug fixed here.
Fix quantization tools uint8/int8 value overflow issue when quantize weights in python.
2021-01-29 00:00:14 -08:00
Yufeng Li
f68eb35aed
dequantize 1st input of lstm back if it is quantized (#6444) 2021-01-27 13:13:57 -08:00
Tianlei Wu
afd7b8b3f7
add tool for generating test data for longformer (#6415) 2021-01-26 16:34:29 -08:00
Yufeng Li
c20965f9b2
enable pipeline to run quantization tests (#6416)
* enable pipeline to run quantization tests
setup test pipeline for quantization
2021-01-25 09:33:08 -08:00
Changming Sun
bba185a582
Fix some compile warnings (#6316) 2021-01-21 16:40:42 -08:00
Martin Man
98cc7b5a9e
Load the model path correctly (#6369) 2021-01-21 09:23:50 -08:00
Ye Wang
ac36596fb8
fix convert_common version retrival (#6382) 2021-01-19 13:56:34 -08:00
stevenlix
eab164e1a5
Add python example of TensorRT INT8 inference on ResNet model (#6255)
* add trt int8 example on resnet model

* Update e2e_tensorrt_resnet_example.py

* remove keras dependency and update class names

* move ImageNetDataReader and ImageClassificationEvaluator to tensorrt resnet example

* simplify e2e_tensorrt_resnet_example.py

* Update preprocessing.py

* merge tensorrt_calibrate

* Update calibrate.py

* Update calibrate.py

* generalize calibrate

* Update calibrate.py

* fix issues

* fix formating

* remove augment_all
2021-01-15 09:59:56 -08:00
Ye Wang
5d9552cc8b
fix longformer benchmark io_binding output_buffers (#6345)
* fix longformer benchmark io_binding output_buffers

* format

* import benchmark_helper from parent directory.
2021-01-14 11:29:31 -08:00
Yufeng Li
c24f2950bf
update quantize to support basic optimization and e2e example for image classification (#6313)
update the resnet50-v1 to standard one from onnx zoo.
add an example for mobilenet
run basic optimization before quantization
fix a bug in Clip
2021-01-14 09:27:10 -08:00
Olivia Jain
56ab2166e8
Delete float16.py (#6336)
No longer needed. Also doesn't pass policheck.
2021-01-13 13:41:06 -08:00
Zhang Lei
f77ff1bc3d
Quantization support for split operator with its NHWC support (#6107)
* Make split working for quantization.

* NHWC transformer support for split operator

* Refactor some according to Feedback. Will add test cases soon.

* Fix build error on windows.

* Add test case for split op on uint8_t support

* Add nhwc_transformer_test for split uint8_t support

* Some change according to PR feedbacks.
2021-01-13 10:05:34 -08:00
Tianlei Wu
ec81e29c84
Add longformer to python package (#6314)
* add longformer to python package
* move test related script and data to a new folder
2021-01-12 10:38:39 -08:00
Tianlei Wu
a038924bee
update transformers required package versions (#6315) 2021-01-12 00:10:56 -08:00
Tianlei Wu
938e65d878
add --sequence_lengths option (#6285) 2021-01-11 14:26:22 -08:00
Ye Wang
da952a9a20
A list of changes in transformers tool (#6224)
* longformer fp16 e2e

* add fp16/fp32 parity check helper file

* excludes nodes with subgraph in profiling

* use onnxconverter_common to do fp32->fp16

* add version check for onnxconverter_common

* remove helper file

* add pkg installation on notebooks and script
2021-01-08 11:11:14 -08:00
Tianlei Wu
ac5ca2bbe0
fix data_ptr assertion error for past_sequence_length=0 in GPT-2 (#6284)
fix io binding crash for past_sequence_length=0
2021-01-07 23:43:50 -08:00
Ye Wang
a72fcbd5fc
Add helper to compare model with different precision (#6270)
* add parity_check_helper.py

* add real example

* remove lines
2021-01-07 16:54:56 -08:00
Tianlei Wu
b80e8ce6a5
rename past to past_key_values for GPT-2 (#6269)
rename past to past_key_values for transformers 4.*
2021-01-07 11:12:04 -08:00
Edward Chen
d761571afc
Deprecate Python global configuration functions [Part 2] (#6171)
Update Python API to allow more flexibility for setting providers and provider options.

The providers argument (InferenceSession/TrainingSession constructors, InferenceSession.set_providers()) now also accepts a tuple of (name, options dict).
Fix get_available_providers() API (and the corresponding function in the C API) to return the providers in default priority order. Now it can be used as a starting point for the providers argument and maintain the default priority order.
Convert some usages of the deprecated global configuration functions to use EP-specific options instead.

Update some EP-specific option parsing to fail on unknown options.

Other clean up.
2021-01-07 10:10:55 -08:00
Hariharan Seshadri
2347de4a9e
Fix Linux/Mac error message on input type mismatch (#6256) 2021-01-05 22:21:24 -08:00
Hariharan Seshadri
d42399e1b0
Allow querying a GraphProto's doc_string as part of ModelMetadata (#6248) 2021-01-05 22:18:03 -08:00
liqunfu
addb4b8c2b
Liqun/speech model loop to scan (#6070)
Provide a tool to convert Loop to Scan for Nuphar performance
Fix Nuphar CI pipeline failures.

Co-authored-by: liqun <liqun@OrtTrainingDev4.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
2021-01-05 15:15:23 -08:00
Olivia Jain
c8de3f355a
Refactor EP Perf Tool (#6202)
* merge master, keep postprocess status commit

* download float16.py everytime

* using variables to reference eps

* adding ACL EP to ep perf tool

* accuracy with absolute tolerance configurable

* add acl to dict + remove commented line
2021-01-04 08:50:41 -08:00
Changming Sun
1b23b28706
Remove MKLML/openblas/jemalloc build config (#6212) 2020-12-30 17:18:19 -08:00
Chi Lo
945fae8f56
Lochi/quantization tool for trt (#6103)
* Initial implementation of generating calibration dynamic range table

* Initialize validation support for Quantization

* Initialize validation support for Quantization (cont.)

* Improve validation support for Quantization

* Improve validation support for Quantization

* Rewrite/Refine for calibration and validation

* Rewrite/Refine for calibration and validation (cont.)

* Refine code

* Refine code

* Add data reader for BERT

* Add flatbuffers to serialize calibration table

* Refine code and add BERT evaluation

* Refine the code

* minor modification

* Add preprocess/postprocess of vision team yolov3 and refine the code

* Update annotation

* Make bbox cooridates more accurate

* Fix bug

* Add support of batch processing

* Batch processing for model zoo yolov3

* Add batch inference for evaluation

* Refine the code

* Add README

* Add comments

* Refine the code for PR

* Remove batch support checking in data_reader and refine the code

* Refine the code for PR

* Refine the code for PR review

Co-authored-by: Olivia Jain <oljain@microsoft.com>
2020-12-21 20:59:08 -08:00
Olivia Jain
234e94b4e1
Add Status.csv to EP Perf Tool (#6167)
* merge master, keep postprocess status commit

* download float16.py everytime

* removing hardcoded values
2020-12-21 20:23:19 -08:00
Cecilia Liu
980a93c164
Model Fusion For Bart (#6105)
Fusion fix for Bart models
2020-12-15 14:30:15 -08:00
Edward Chen
64709b1335
Deprecate Python global configuration functions [Part 1] (#5923)
Enable options to be set via execution provider (EP)-specific options and log deprecation warning from current global configuration functions.
2020-12-15 11:32:43 -08:00
ashbhandare
b1a75d0e98
Enable passing initial optimizer state while creating training session (#5869)
* Support to pass initial optimizer states to optimizer graph builder

* Changes for passing init optim state to training session config

* Pass optimizer state through cpp and python frontend

* Cleanup

* Review comments

* Fix windows and mac CI

* Review comments

* review comments

* Review comments

* Frontend review changes

* Fix CI
2020-12-08 21:20:51 -05:00
Ye Wang
fa06be2133
Support export >2G model when using optimizer.py only (#6014)
* checkin

* add warning if user specify same inut and output path
2020-12-07 17:18:49 -08:00