You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tvm.apache.org by "Matt Welsh (OctoML) via Apache TVM Discuss" <no...@discuss.tvm.ai> on 2021/02/10 17:05:10 UTC

[Apache TVM Discuss] [Development/RFC] [µTVM] Mini-Map: the µTVM Developer Workflow


Well, I think there are two basic approaches.

(1) The interface between TVM and the Platform Provider is just a Python API. Whether or not there happen to be separate processes/commands/whatever is hidden behind that API. So a Platform Provider simply implements the Platform Provider Python API invoked by TVM. This seems to be the most flexible. Maybe this is what you had in mind originally?

(2) If we want to standardize the "wire protocol" between the Platform Provider and TVM, I'd recommend just using gRPC or something similar, since it is well supported in Python, easy to integrate, and does not limit you in terms of where the client/server are running (they can be on the same machine or even in the same process). The main reason to do this would be to make Platform Providers pluggable at the wire protocol level rather than the Python API level. I am not sure whether this is important or not.





---
[Visit Topic](https://discuss.tvm.apache.org/t/tvm-mini-map-the-tvm-developer-workflow/9045/8) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/f36cfa9622b0c9f78b41b2bf136076db394f85ec25fc739e09cf5f319d0555f9).

[Apache TVM Discuss] [Development/RFC] [µTVM] Mini-Map: the µTVM Developer Workflow

Posted by Andrew Reusch via Apache TVM Discuss <no...@discuss.tvm.ai>.

At a high level I was kind of thinking to implement a mix of (1) and (2):
 - Checkin a Python library to the TVM repo which makes this look like a Python API to TVM and API implementation, and handles all the serialization/deserialization using JSON
 - Project API impls import this library and use it to communicate over stdio locally
 - Handle network communication using the existing RPC server

I kind of like this because there are no dependencies, and it's not clear we need to expose this directly over the network--see below.

A use case I'd like to enable is compiling on the AutoTVM runner node. That requires some type of file upload, and the TVM RPC protocol already handles that. So my initial thought was just to use the Platform API as a sort of IPC (slightly more separation than a Python API--so you don't _have_ to use Python in your platform API implementation but it's strongly suggested. I could see arguments for not-Python if the project's build system is e.g. written heavily in ruby for some reason.

These are all just high-level initial thoughts. I need to think about them a bit more before I formally propose them.





---
[Visit Topic](https://discuss.tvm.apache.org/t/tvm-mini-map-the-tvm-developer-workflow/9045/9) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/ab27582a3809958d68d2f3ad66d6244a6632c5a561362bd59edd8f3599072408).