[RFC] Improve quantized convolution performance for armv8 architectures (#5754)
authorGiuseppe Rossini <giuseppe.rossini@arm.com>
Tue, 23 Jun 2020 05:20:05 +0000 (06:20 +0100)
committerGitHub <noreply@github.com>
Tue, 23 Jun 2020 05:20:05 +0000 (13:20 +0800)
commitb94e8b7290c5ced98728e730634ec73727c53c51
treeb9480b33011e71f3d0b4f8de24f3be0a0cfbe82e
parent82d157f0b83ae17fde7bbfca14110aa2f2b80b61
[RFC] Improve quantized convolution performance for armv8 architectures (#5754)

* Improve quantized conv2d performance for armv8

Signed-off-by: Giuseppe Rossini <giuseppe.rossini@arm.com>
Change-Id: I3a3d29f5332dd9b3354e8e0dfb24677a521f9c8f

* Add ASF header to conv2d_gemm.py

Change-Id: I33853279e39c849ae1b555a9c91d7557985a0a35

* Run clang-format-10 on c++ files

Change-Id: Ieee22f032e595dabfc1616ab33466fcbf8d94365

* Fix pylint errors/warnings

Change-Id: I435d4d7bca7500db99547f4401fdc0d0995a1ff4

* Fix pylint errors/warnings in topi

Change-Id: I2fc1ad8453e9020072ab967c849df5390c2967b5

* Fix legalizations tests for aarch64

Change-Id: I0a67a49a7849f52ef7d57b9292ce9125bbb7cb2c

* Reintroduce conv2d_nhwc_spatial_pack.arm_cpu and int16 cast

Change-Id: I91b67fabd475e90a9b75f2dd5ecfee851265e0bb

* Switch type of legalization depending on the strategy used

Change-Id: I9a03040a8c40a6cd2658ed14c3751e05a8e19f2b

* Revert last commit

Change-Id: Ice34101e358e3ce8ebfb12c58f73e910ba5de8e8

* Fix the auto-tuner by registering the correct schedules

Change-Id: Id9273688b2620e1ea849ab01b4c46af8fbf37fd0

* Address review comments

Change-Id: Ia1755a0af7b6d159072d9f0c93c932c481101e48

* Improve usability and readability of conv2d_gemm_weight_transform

Change-Id: I3333186bbc2fe4054b58ce15d910e3be7b315482

* Change variable name to weight in Conv2DGemmWeightTransformRel

Change-Id: Ifb5f1f33af7512fe67c6b049b20a42a0bb2d26c9

* Fix clang-10 linting errors

Change-Id: I25ccc844d9cee23766096e1daddb6180abc413a6

* Trigger tests

Change-Id: Id37706fb7cf77a87a3cc817ecf8046297d9ca95a
14 files changed:
include/tvm/relay/attrs/nn.h
python/tvm/relay/op/nn/_nn.py
python/tvm/relay/op/nn/nn.py
python/tvm/relay/op/strategy/arm_cpu.py
python/tvm/relay/op/strategy/generic.py
python/tvm/relay/qnn/op/legalizations.py
src/relay/op/nn/convolution.cc
src/relay/op/nn/convolution.h
topi/python/topi/arm_cpu/conv2d_alter_op.py
topi/python/topi/arm_cpu/conv2d_gemm.py [new file with mode: 0644]
topi/python/topi/arm_cpu/conv2d_int8.py
topi/python/topi/arm_cpu/tensor_intrin.py
topi/python/topi/generic/nn.py
topi/python/topi/nn/conv2d.py