sophgo / tpu-mlir

Machine learning compiler based on MLIR for Sophgo TPU.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

transpose移动及抵消

baifengbai opened this issue · comments

任务目标:添加transpose的移动抵消pass。例如transpose+add+relu+transpose,第一个transpose可以移动到add和relu之后,此时两个transpose就可以抵消为一个transpose或直接抵消。任务代码路径:lib/Dialect/Top/Transforms路径下。任务测试方法:使用onnx单元测试搭建测试网络,测试网络中必须包含conv2d。pooling2d,add,sub,mul,pad,batchnorm,matmul,relu,softmax算子。每个算子之间必须有一个transpose相隔。在调用该pass前,该网络可以正常生成对应的.mlir, tpu.mlir以及final.mlir文件;调用该pass后,transpose可以移动抵消,并生成对应的.mlir, tpu.mlir文件且比对没问题。注意事项:不是所有的op都支持transpose移动,比如conv2d,pool算子都不支持transpose移动。