[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] Visualizing Relay program as graph

2020-06-19 Thread masahi via TVM Discuss
One use case I have for a visualizer is to visualize the partitioning output in BYOC flow. Right now I'd check the output by eye-balling the text rep, but I wish there could be easier way than that. It would be great if I could visualize the entire graph, with partitioned functions color cod

[TVM Discuss] [Development/RFC] [RFC] Ansor: An Auto-scheduler for TVM (AutoTVM v2.0)

2020-06-17 Thread masahi via TVM Discuss
Also looking forward to seeing performance on quantized models and comparison against TFLite, FBGEMM and MKLDNN. --- [Visit Topic](https://discuss.tvm.ai/t/rfc-ansor-an-auto-scheduler-for-tvm-autotvm-v2-0/7005/5) to respond. You are receiving this because you enabled mailing list mode.

[TVM Discuss] [Development] [PyTorch] [Frontend] graph input names can change using loaded torchscript

2020-06-17 Thread masahi via TVM Discuss
Sure that sounds good. Since params are referenced by its numeric node id in Torch IR and we line-by-line translate, we still need association of numeric ID -> state_dict key name. state_dict key name is available here as "full_attr" so you can use this name when creating Var. https://github

[TVM Discuss] [Development/RFC] [RFC] Minor (bugfix) Release for v0.6

2020-06-14 Thread masahi via TVM Discuss
@yzhliu I see there are some PyTorch related fix, but the PyTorch frontend was not part of v0.6 release. --- [Visit Topic](https://discuss.tvm.ai/t/rfc-minor-bugfix-release-for-v0-6/6716/7) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from th

[TVM Discuss] [Development] Per-axis quantization support for TFLite

2020-06-03 Thread masahi via TVM Discuss
For per-channel weight quantization, it is fully supported. I don't know much about TFLite frontend, but our pytorch frontend fully supports per channel quantization. This tutorial demonstrate importing per-channel quantized pytorch model. https://docs.tvm.ai/tutorials/frontend/deploy_prequa

[TVM Discuss] [Development/RFC] [BYOC] Use pattern language to create composite functions

2020-05-19 Thread masahi via TVM Discuss
We should have a utility that converts existing relay op based patterns to the new pattern language. Otherwise it would break existing users code and we need to rewrite merge composite test cases manually. --- [Visit Topic](https://discuss.tvm.ai/t/byoc-use-pattern-language-to-create-comp

[TVM Discuss] [Development/RFC] [BYOC] Use pattern language to create composite functions

2020-05-19 Thread masahi via TVM Discuss
[quote="comaniac, post:8, topic:6727"] I see your point, although I personally think in this case we should either 1) specify 4 patterns, or 2) use pattern language to match `fused_conv` , and let codegen decide whether it is conv+bias or conv+bias+relu when the codegen is parsing a composite

[TVM Discuss] [Development/RFC] [BYOC] Use pattern language to create composite functions

2020-05-19 Thread masahi via TVM Discuss
No, it is more complicated than that. Currently our DNNL backends has two patterns, one for conv + relu and another for conv + bias + relu: https://github.com/apache/incubator-tvm/blob/master/python/tvm/relay/op/contrib/dnnl.py#L84-L86 Suppose we use optional to represent the two patterns. We

[TVM Discuss] [Development/RFC] [BYOC] Use pattern language to create composite functions

2020-05-19 Thread masahi via TVM Discuss
One thing that's not obvious to me is how we should interprete the result of optional matching. Ideally there should be an easy way to tell which of optionals are actually matched, for example by coming up with an appropriate value for composite attribute. Otherwise each backend needs to man

[TVM Discuss] [Development/RFC] [RFC][Relay] Program Matching for Relay Pt 1: A pattern language

2020-04-14 Thread masahi via TVM Discuss
[quote="mbrookhart, post:24, topic:5833"] V2 will include graph partitioning and verification to better support bring your own code gen, starting in on those passes now. [/quote] I'm very interested in this. Using composite, I have to generate many slightly different patterns (`with_bias`, `wit

[TVM Discuss] [Development/RFC] Deprecate OpenGL/WebGL in favor of Vulkan/WebGPU

2020-04-14 Thread masahi via TVM Discuss
I'm interested in this topic. Having worked on frontend stuff for some time, now I'm looking to revive my backend-fu :) Also I wanted to learn about graphics API, this seems a good opportunity. I also hope that `WebGPU + WASM = win` Although GPU support in WASM doesn't seem official yet. [q

[TVM Discuss] [Development] Missing memoization in ExprFunctor

2020-04-12 Thread masahi via TVM Discuss
[quote="zhiics, post:15, topic:6334"] I have another thought on this, how about just put this one in the backend/utils.h since the current usage of them would be for the code under there? [/quote] Yes, that's where I'd put this class in, given the current usage of `ExprFunctor`. [quote="tqc

[TVM Discuss] [Development] Missing memoization in ExprFunctor

2020-04-12 Thread masahi via TVM Discuss
Since the new base class would be as simple as the one below, I don't think there is much of abstraction cost. I don't see why we should prefer duplicating the same `VisitExpr(const Expr& n)` over this solution. ``` template class MemoizedExprFunctor : public ::tvm::relay::ExprFunctor { usi

[TVM Discuss] [Development] Missing memoization in ExprFunctor

2020-04-12 Thread masahi via TVM Discuss
[quote="tqchen, post:6, topic:6334"] That dispatching logic ca certainly be simplified as a one-liner, which will reduce the memo logic addition to be about 10 loc [/quote] Yes, the point is each derived class ends up having the exact same 10 loc. Until now we have 2 or 3 cases so that might b

[TVM Discuss] [Development] Missing memoization in ExprFunctor

2020-04-11 Thread masahi via TVM Discuss
[quote="tqchen, post:4, topic:6334"] The addtional cost for memo is not taking a lot of locs [/quote] Note that in addition to the memo logic itself, we can also remove `VisitExpr(const Expr& expr)` override in the derived classes (which to me seems only exist for memoization), and hence the d

[TVM Discuss] [Development] Missing memoization in ExprFunctor

2020-04-11 Thread masahi via TVM Discuss
hmm, then does it make sense to have a another derived class, say `MemoizedExprFunctor`, that does have a memo logic built in, for a simple use case in derived classes that requires memoization? The PR I saw today could derive from this instead of ExprFunctor, for example. Basically for encap

[TVM Discuss] [Development] Missing memoization in ExprFunctor

2020-04-11 Thread masahi via TVM Discuss
Currently I'm about to merge a PR https://github.com/apache/incubator-tvm/pull/5310 which adds memoization logic for `ExprFunctor` in two different derived classes. I've also noticed that there are many places in the code base that have the same duplicated memoization logic for `ExprFunctor`

[TVM Discuss] [Development] Spurious CI failures

2020-04-09 Thread masahi via TVM Discuss
Yes https://github.com/apache/incubator-tvm/pull/5293 --- [Visit Topic](https://discuss.tvm.ai/t/spurious-ci-failures/6312/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/8

[TVM Discuss] [Development/RFC] [CI][LINT] Enabling clang-format based lint checks

2020-04-01 Thread masahi via TVM Discuss
There was a related issue https://github.com/apache/incubator-tvm/issues/1732 that resulted in the introduction of .clang-format file. But we didn't do anything else to improve consistency of existing code or enforce the style for future code. --- [Visit Topic](https://discuss.tvm.ai/t/c

[TVM Discuss] [Development/RFC] Introduce new frontend for Chainer

2020-03-30 Thread masahi via TVM Discuss
[quote="ANSHUMAN.TRIPATHY, post:8, topic:6129"] But don’t you think the **“out of scope from TVM”** is applicable for all frontends. As all frontends first need to beakdown the model received and put all the pieces together to in terms of TVM. [/quote] No. For example, both Torchscript and ONNX

[TVM Discuss] [Development/RFC] Introduce new frontend for Chainer

2020-03-30 Thread masahi via TVM Discuss
Your proposal is reasonable from perspective of existing Chainer users looking for deployment solution. However, I see little benefit from TVM side. First of all, compared to other framework like PyTorch, the number of Chainer user had been very tiny even during Chainer was in active developme

[TVM Discuss] [Development] [PyTorch] [Frontend] graph input names can change using loaded torchscript

2020-03-25 Thread masahi via TVM Discuss
I realized that `output_index_map` is completely redundant if we make `outputs` a dict instead of a list. Because `outputs` is always accessed via `output_index_map` like this, (here, outputs is a list) ``` outputs[output_index_map[var_name]] ``` instead it should be just `outputs[var_name]`.

[TVM Discuss] [Development] [PyTorch] [Frontend] graph input names can change using loaded torchscript

2020-03-25 Thread masahi via TVM Discuss
[quote="jjohnson-arm, post:12, topic:6055"] Is that right? [/quote] Yes, exactly right. [quote="jjohnson-arm, post:13, topic:6055"] I am wondering if it would be possible just to append some conversion entries to the `output_map_index` instead and it would achieve the same thing? [/quote] I

[TVM Discuss] [Development] [PyTorch] [Frontend] graph input names can change using loaded torchscript

2020-03-25 Thread masahi via TVM Discuss
Oh you are right... I also realized that in a typical AOT deploy use case, we just load compiled models directly from exported libs, so there is no torchscript or relay models. But users still need to keep input names around somehow. I agree that an ideal solution is for compiled runtime modu

[TVM Discuss] [Development] [PyTorch] [Frontend] graph input names can change using loaded torchscript

2020-03-24 Thread masahi via TVM Discuss
@jjohnson-arm Do you want to send a PR about it? Otherwise I will, no problem --- [Visit Topic](https://discuss.tvm.ai/t/pytorch-frontend-graph-input-names-can-change-using-loaded-torchscript/6055/8) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe

[TVM Discuss] [Development] NDArray conversion to numpy array take time (around 350ms) with a simple data

2020-03-23 Thread masahi via TVM Discuss
No it is not strange, it is expected. `module.run()` is async-ish, to be sure you can insert explicit sync after `run()` --- [Visit Topic](https://discuss.tvm.ai/t/ndarray-conversion-to-numpy-array-take-time-around-350ms-with-a-simple-data/6053/6) to respond. You are receiving this becau

[TVM Discuss] [Development] [PyTorch] [Frontend] graph input names can change using loaded torchscript

2020-03-23 Thread masahi via TVM Discuss
PyTorch users should know the correct order of inputs, because PyTorch modules `forward(...)` method expects its inputs to be in the correct order (otherwise they cannot run any training code). [quote="zhiics, post:5, topic:6055"] And it is possible to connect the names after _run_jin_passes?

[TVM Discuss] [Development] NDArray conversion to numpy array take time (around 350ms) with a simple data

2020-03-23 Thread masahi via TVM Discuss
It is likely the inference hasn't been finished when you call `asnumpy()`. That is why `asnumpy` takes some time to complete. --- [Visit Topic](https://discuss.tvm.ai/t/ndarray-conversion-to-numpy-array-take-time-around-350ms-with-a-simple-data/6053/4) to respond. You are receiving this

[TVM Discuss] [Development] [PyTorch] [Frontend] graph input names can change using loaded torchscript

2020-03-23 Thread masahi via TVM Discuss
yes, we can repurpose and rename `_check_input_names` to do necessary input validation. For other frontends, I also remember being annoyed for having to supply input names. Unfortunately for them it is too late to fix. We shouldn't repeat the same mistake :wink: --- [Visit Topic](https:

[TVM Discuss] [Development] [PyTorch] [Frontend] graph input names can change using loaded torchscript

2020-03-23 Thread masahi via TVM Discuss
Thanks, it seems to me the best to way to fix this issue is not to require users to supply the correct input names, since this is an impl detail of torch and we can figure out the names in `from_pytorch`. Instead, users should just supply a list of input shapes in correct order. We call `get