Re: [apache/tvm] [VOTE] Replace codeowners with more relevant automation (Issue #10471)

2022-03-03 Thread Matthew Brookhart
+1 -- Reply to this email directly or view it on GitHub: https://github.com/apache/tvm/issues/10471#issuecomment-1058491019 You are receiving this because you are subscribed to this thread. Message ID:

[Apache TVM Discuss] [Development] [AutoScheduler] Do we have plan to support auto schedule ExternOp?

2021-07-01 Thread Matthew Brookhart via Apache TVM Discuss
I spent a lot of time optimizing the sort/argsort kernel for GPUs, we get pretty good performance on GPUs from multiple vendors that competes with those vendor's hand tuned libraries. If these TIR kernels are well optimized, they shouldn't end up being the bottleneck in models. --- [Visi

[Apache TVM Discuss] [Development] [AutoScheduler] Do we have plan to support auto schedule ExternOp?

2021-07-01 Thread Matthew Brookhart via Apache TVM Discuss
TE is a limited declarative programming model, it's not possible to write operations that do data-dependent indexing in TE. Anything that's sort/scatter related needs to be written directly in the more imperative TIR. --- [Visit Topic](https://discuss.tvm.apache.org/t/autoscheduler-do-we

Re: [apache/tvm] [VOTE] Adopt the New RFC Process (#7991)

2021-05-06 Thread Matthew Brookhart
+1 -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/apache/tvm/issues/7991#issuecomment-833699197

[Apache TVM Discuss] [Development/RFC] [RFC] TVM Object Schema DSL

2020-11-04 Thread Matthew Brookhart via Apache TVM Discuss
I've been looking at the PR and some of the discussion, and I thought I'd bring my thoughts back jto this RFC, it seems like a better place for broader design thoughts. First, thanks for the RFC, @ziheng. There is definitely wy too much boilerplate in TVM right now, and finding ways to st

[Apache TVM Discuss] [Development/RFC] RFC: Introduce automatic formatting of Python code

2020-09-08 Thread Matthew Brookhart via Apache TVM Discuss
Agreed, 100%. I've been using a `yapf` configuration file I got from @comaniac, but I'm happy to standardize. --- [Visit Topic](https://discuss.tvm.apache.org/t/rfc-introduce-automatic-formatting-of-python-code/7843/2) to respond. You are receiving this because you enabled mailing list m

Re: [apache/incubator-tvm] [COMMUNITY] Matthew Brookhart -> Reviewer (#5886)

2020-06-22 Thread Matthew Brookhart
Thanks, @icemelon9 and the community! -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/apache/incubator-tvm/pull/5886#issuecomment-647736567

[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

Re: [apache/incubator-tvm] [RFC] AlterOpLayout Pass Refactoring (#3670)

2020-04-24 Thread Matthew Brookhart
@yzhliu I've hit a couple of issue that would be completely solved by this change :). Any chance you've made progress? If not, would you be offended if I gave it a shot over the next few weeks? -- You are receiving this because you are subscribed to this thread. Reply to this email directly or

[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