[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-07-01 Thread Yi-Hsiang (Sean) Lai via TVM Discuss
Thanks everyone for the feedback. As mentioned above, the focus of this RFC is for the calibration pass, which is an optional analysis pass that can be applied by users. It does not necessarily need to be bound with BYOC. Moreover, quantization is also not the focus of this RFC. We will open o

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-07-01 Thread Zhi via TVM Discuss
Thanks for the discussion. I think we don't really need to tie this feature to the BYOC flow. The problem it tries to solve is providing calibration data to 3rd codegen with quantizers as @anijain2305 pointed out. This is not required by QNN or AutoQ. It is also optional to 3rd codegen or BYO

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-30 Thread tqchen via TVM Discuss
Thanks for the good summarization. One concern that I have for this case is mainly about the coupling of the quantization part with the customized code generator. While the application scenario is certainly understandable. We will need to resolve two questions, as an overall goal of the proje

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-30 Thread Animesh Jain via TVM Discuss
I think we are getting confused because of the overloaded term quantization. To be precise, maybe we can stick to certain terms * *QNN Dialect* - Framework (like TF/PyTorch/MXNet) performs quantization. Relay parser reads this pre-quantized model and creates a QNN-dialect graph. QNN ops are l

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-30 Thread Logan Weber via TVM Discuss
I agree with @matt-arm that we should be hesitant to use BYOC as a catch-all for everything we haven't implemented in TVM. What would help me better understand the motivation for this change is an example of a quantization flow that isn't easily expressible with TVM's *internal* facilities.

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-30 Thread Animesh Jain via TVM Discuss
LGTM. I think we can rename to `get_calibration_data` or `get_profiling_data` instead of `calibrate_partition_gaph`. I think calibration means more than collecting i/o tensors (for quantization, it means choosing min/max such that quantized data representation is similar to float32 data repres

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-30 Thread Cody H. Yu via TVM Discuss
@matt-arm For each BYOC backend such as DNNL, we could define a transform sequence so that we can have `mod = transform.partition("dnnl")(mod)`. However, there are some issues should be further discussed. For example, where should we put those transform sequences (e.g., put them under `tvm.tr

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-30 Thread Matt Barrett via TVM Discuss
This looks reasonable to me, it's not something we require for Ethos-N but I can see why it may be desirable. I am noticing quite a bit of API creep around BYOC though. We never really settled on a way to encapsulate the partitioning passes and now we have another special pass that may or may

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-29 Thread tqchen via TVM Discuss
cc @ziheng @weberlo who might also be interested --- [Visit Topic](https://discuss.tvm.ai/t/rfc-byoc-data-calibration-flow/7099/7) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.ai/email/unsubsc

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-29 Thread Yi-Hsiang (Sean) Lai via TVM Discuss
Hi, for now, the `calib_data` will be sent in as an argument of `PassContext`, which is accessible by the BYOC pass triggered by `relay.build`. Users can use the calibration data to perform quantization. You can imagine that users can build a helper quantizer that takes in the calibration data

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-29 Thread masahi via TVM Discuss
This makes sense to me. I'm curious to see how `calib_data` is going to be used during codegen. Assuming you want to upstream this pass, how are you going to add tests for this? I can imagine you can use the DNNL codegen to run a dummy calibration pass, but not quantize. --- [Visit Topi

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-29 Thread Cody H. Yu via TVM Discuss
Gentle ping for comments @anijain2305, @masahi, @matt-arm, @tqchen :) --- [Visit Topic](https://discuss.tvm.ai/t/rfc-byoc-data-calibration-flow/7099/4) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-25 Thread Zhi via TVM Discuss
cc @anijain2305 as well --- [Visit Topic](https://discuss.tvm.ai/t/rfc-byoc-data-calibration-flow/7099/3) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.ai/email/unsubscribe/da1ed6d19e3b968d5c39

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-25 Thread Cody H. Yu via TVM Discuss
Also cc @JoeyChou @abergeron --- [Visit Topic](https://discuss.tvm.ai/t/rfc-byoc-data-calibration-flow/7099/2) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.ai/email/unsubscribe/e825d1e5ca1d063

[TVM Discuss] [Development/RFC] [RFC][BYOC] Data Calibration Flow

2020-06-25 Thread Yi-Hsiang (Sean) Lai via TVM Discuss
## Motivation Although TVM provides quantization flow for pre-quantized models, we do find some developers would prefer to use their own quantization flow for their accelerators, since they may have specialized calibration and quantization flows other than TVM QNN. However, current BYOC flow