Running int8 convolution on odroid xu4


#1

Hi, I’m trying to run int8 convolution on odroid xu4, and its architecture is armv7a.

I’ve only modified the TARGET_NAME of “topi/recipe/conv/test_conv_int8_arm.py” as below

TARGET_NAME = 'llvm -device=arm_cpu -target=armv7l-linux-gnueabihf -mattr=+v7,+dotprod'

And message are:

INFO:test_conv_int8_intel:Workload, Kernel_size, FP32_time, INT8_time, Speedup
WARNING:autotvm:Cannot find config for target=llvm -device=arm_cpu -target=armv7l-linux-gnueabihf -mattr=neon, workload=('conv2d_NCHWc', (1, 4, 56, 56, 16, 'float32'), (4, 4, 3, 3, 16, 16, 'float32'), 1, 1, (1, 1), 'NCHWc', 'NCHWc', 'float32'). A fallback configuration is used, which may bring great performance regression.
WARNING:autotvm:Cannot find config for target=llvm -device=arm_cpu -target=armv7l-linux-gnueabihf -mattr=neon, workload=('conv2d_NCHWc_int8', (1, 4, 56, 56, 16, 'uint8'), (4, 4, 3, 3, 4, 16, 4, 'uint8'), 1, 1, (1, 1), 'NCHWc', 'NCHWc', 'uint32'). A fallback configuration is used, which may bring great performance regression.
LLVM ERROR: Cannot select: intrinsic %llvm.aarch64.neon.udot

It seems like tvm automatically chooses the target platform as aarch64…
And my questions are

  1. What is the proper configuration for armv7a?
  2. Does tvm supports int8 convolution for armv7a?

Thank you.