ucb-bar/onnxruntime-riscv

Bump to quantizer from upstream

Open

#28 opened on Feb 19, 2021

View on GitHub
 (4 comments) (0 reactions) (0 assignees)C++ (37 forks)auto 404
dependenciesenhancementgood first issue

Repository metrics

Stars
 (93 stars)
PR merge metrics
 (PR metrics pending)

Description

The quantizer we currently have (in systolic_runner/quantization) was forked long time ago and has since diverged significantly from upstream. Now this isn't really a bug per se since it works fine (and has been tested/tweaked on all the models we currently need). However, lagging so far behind means we don't get any of the new goodies they upstream like the new histogram-based range calculations (instead of just min/max) or any of the fancy things like the equalization algorithm.

In 5458ce99b (branch merge_upstream_quantizer) I've ported most of the changes I used for int8, and I tested with resnet50 and it works (for some reason the calculated scale factors are ever-so-slightly different. I'll try and find out why, but it's probably just a difference in formula used somewhere).

However, I'm hesitant to actually merge it into the main branch since this hasn't been used as much as the older implementation, so things will probably break. In particular, I'm worried about more esoteric models like BERT and mask-rcnn.

Contributor guide