[TVM Discuss] [Development/RFC] Dynamic Ops in Relay

2020-06-16 Thread Matthew Brookhart via TVM Discuss
https://github.com/apache/incubator-tvm/pull/5826 --- [Visit Topic](https://discuss.tvm.ai/t/dynamic-ops-in-relay/6909/16) 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/5e76

[TVM Discuss] [Development] [DISCUSS] The meaning of "float" in Relay

2020-06-11 Thread Matthew Brookhart via TVM Discuss
I agree with @tqchen that making `float` throw a warning is a good option, it's an ambiguous declaration, even in C, it means different things on different systems and in different contexts. Being more precise is probably better. --- [Visit Topic](https://discuss.tvm.ai/t/discuss-the-me

[TVM Discuss] [Development/RFC] Dynamic Ops in Relay

2020-06-09 Thread Matthew Brookhart via TVM Discuss
@kevinthesun @tqchen Are you guys agreeing to A1? @lixiaoquan I haven't put much thought into dynamic rank. I'm not sure how we would produce it with the current opset, do you have any use cases in mind? --- [Visit Topic](https://discuss.tvm.ai/t/dynamic-ops-in-relay/6909/8) to respond. Y

[TVM Discuss] [Development/RFC] Dynamic Ops in Relay

2020-06-08 Thread Matthew Brookhart via TVM Discuss
Frameworks and state of the art models are moving more and more toward dynamism, where the shapes of tensors in a model are calculated at runtime, either from the shapes of inputs or from the values of inputs. There are a number of efforts underway in TVM to better support dynamic models, inc

[TVM Discuss] [Development/RFC] [PatternLang] Match Constant Nodes

2020-05-28 Thread Matthew Brookhart via TVM Discuss
:) Want to open that POC as a PR? --- [Visit Topic](https://discuss.tvm.ai/t/patternlang-match-constant-nodes/6835/4) 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/2c7ad226

[TVM Discuss] [Development/RFC] [PatternLang] Match Constant Nodes

2020-05-28 Thread Matthew Brookhart via TVM Discuss
Hi Cody, There are some examples in the unit tests of matching const nodes with specific values: https://github.com/apache/incubator-tvm/blob/a072da0588c542757d2815832b7f010f530b2428/tests/python/relay/test_dataflow_pattern.py#L685-L759 Adding ConstantPattern with an optional value is probabl

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

2020-05-21 Thread Matthew Brookhart via TVM Discuss
@comaniac @matt-arm @masahi Sorry for the delay! The Meetup this morning ate more of my time than I expected. https://github.com/apache/incubator-tvm/pull/5646 --- [Visit Topic](https://discuss.tvm.ai/t/byoc-use-pattern-language-to-create-composite-functions/6727/28) to respond. You

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

2020-05-20 Thread Matthew Brookhart via TVM Discuss
Hmm. Okay. I'll add a check callback to the partition pass. I think that leaves us with three levels of possible user control in level of priority: 1. Use the Pattern Language for any constraints possible. We might be able to add shape checking to the language, we can't use an external codegen

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

2020-05-20 Thread Matthew Brookhart via TVM Discuss
@comaniac @matt-arm I've extending the AttrPattern to handle attributes of CallNodes and FunctionNodes here: https://github.com/apache/incubator-tvm/pull/5637 Would you mind taking a look and letting me know if you think that would be sufficiently powerful for solution B? --- [Visit Top

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

2020-05-20 Thread Matthew Brookhart via TVM Discuss
I see. This is easily doable with the Rewriter API, since you can do an arbitrary callback, but it doesn't have the niceties of the Parition pass. The current AttrPattern is only matching Op attributes, but that's fairly easy to extend. I think I prefer doing this with the AttrPattern, it's a

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

2020-05-19 Thread Matthew Brookhart via TVM Discuss
[quote="matt-arm, post:13, topic:6727"] Looking forward slightly, I do wonder whether it will start making sense to instead of creating composite functions just directly insert the annotations around the match. This would give us an opportunity to link up ‘composite’ matches with single ops as

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

2020-05-19 Thread Matthew Brookhart via TVM Discuss
[quote="matt-arm, post:13, topic:6727"] Do you envisage this having a similar API to the existing pass? In particular it’s important for us to retain the added ‘check’ function to confirm whether a match is valid. [/quote] @matt-arm Can you point me at the API? I have something like this inte

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

2020-05-19 Thread Matthew Brookhart via TVM Discuss
We'd still need something like this: `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 function with fused_conv attribute.` But it would be analyzing strings instead of graphs. --- [Visit T

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

2020-05-19 Thread Matthew Brookhart via TVM Discuss
While I wasn't paying attention to the discussion, I implemented Cody's original ask here: https://github.com/apache/incubator-tvm/pull/5627 @masahi, what do you think of stringing together the types of all of the nodes/names of all of the called ops in the partitioned function, in topologic

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

2020-05-19 Thread Matthew Brookhart via TVM Discuss
The currently implementation wont, thinking over it more, but I'll work on an update that adds that functionality and a user-specified set of attributes --- [Visit Topic](https://discuss.tvm.ai/t/byoc-use-pattern-language-to-create-composite-functions/6727/4) to respond. You are receivin

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

2020-05-19 Thread Matthew Brookhart via TVM Discuss
I'd be happy to extend the parition pass to accept an optional map of attributes. I think it's a relatively small change to the pass, if you guys think that would be the easiest option. Something I thought of over the last few days: If some patterns in your list are larger (say conv-bias-relu

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

2020-04-24 Thread Matthew Brookhart via TVM Discuss
In particular: 1. The Dominator pattern adds some fuzziness to the pattern matching that is non-standard for graph pattern matchers. It provides a way to find something like a convolution op, who's output is then used by several elementwise ops, that are then combined together. This kind of fe

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

2020-04-24 Thread Matthew Brookhart via TVM Discuss
Hi All, Thanks for all of the comments. The PR is complete, I've added the Partitioner we were planning on doing. Since some of the API's (especially around the dominator pattern) are somewhat novel, I'd appreciate anyone who can take a few minutes to look over the PR. Matthew --- [Visi

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

2020-04-14 Thread Matthew Brookhart via TVM Discuss
I think the PR is ready for review as V1 of the pattern language, it contains some documentation, testing, and the language itself, the matcher, and pattern-based expression rewriting. V2 will include graph partitioning and verification to better support bring your own code gen, starting in o

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

2020-04-03 Thread Matthew Brookhart via TVM Discuss
Hi @jonso, You can take a look at the matcher here: https://github.com/apache/incubator-tvm/pull/5231 Need to add a little more documentation, and I'm working on a second stage pattern-based rewriter now. --- [Visit Topic](https://discuss.tvm.ai/t/rfc-relay-program-matching-for-relay-pt

[TVM Discuss] [Development/RFC] Performing Relay Passes Non-Recursively

2020-03-30 Thread Matthew Brookhart via TVM Discuss
Okay, I've implemented these APIs and converted a couple of passes to use them, please take a look and review. https://github.com/apache/incubator-tvm/pull/4886 @haichen @MarisaKirisame I'm noticing that the passes with these edge cases all seem to be doing more complicated things than the sim

[TVM Discuss] [Development/RFC] Performing Relay Passes Non-Recursively

2020-03-23 Thread Matthew Brookhart via TVM Discuss
Hmm, that's a good point, the other thing I'm currently working on is the [Pattern Language](https://discuss.tvm.ai/t/rfc-relay-program-matching-for-relay-pt-1-a-pattern-language/5833), and I'm noticing some similar kinds of inflexibilities with that. Will think about how to make this a litt