Archermmt opened a new pull request, #15500: URL: https://github.com/apache/tvm/pull/15500
This is a pull request for MSC(Multi-System Compile) RFC: https://discuss.tvm.apache.org/t/rfc-unity-msc-introduction-to-multi-system-compiler/15251/5 Tracking issue: https://github.com/apache/tvm/issues/15233 This is the first part of Milestone 0: Build MSCGraph core parts. Enable translation between Relay, Relax and MSCGraph without loss information. To limit each PR in reviewable size, the Milestone 0 will be split into 5 steps: M0.1: Passes for set name and layout for expressions (src/contrib/msc/transform) M0.2: MSCGraph core (src/contrib/msc/core/ir/graph && python/tvm/contrib/msc/core/ir/graph) M0.3: MSCGraph Builder (src/contrib/msc/core/ir/graph_builder) M0.4: Codegen (src/contrib/msc/core/codegen, src/contrib/msc/framework/tvm/codegen) M0.5: Translation test (relax/relay test && related helper modules in python) This is the M0.1 step. Passes are added to set name and layouts via Span. The names are essential for developing optimization algorithms, especially when developer want to control the optimization tensor by tensor. This always happens in developing of advanced quantization. Layout is essential for pruning process, where channel relation between weights are built. And building channel relationship need layout of tensors to be set. Some quantization algorithm also need layout for quantize weights per channel or per token. These attributes need to be set to Call, Constant as well as Var. So the best way is to find a common attributes holder for them all. In the end I chose span as the attributes holder, and special xml format like <key>value</kay> is used to mark key:value pair in span. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
