Commit e282915a by Lianmin Zheng Committed by Tianqi Chen

add -mattr=+neon for all arm cpu target (#1612)

parent 093dc741
...@@ -63,8 +63,11 @@ python3 -m tvm.exec.rpc_tracker ...@@ -63,8 +63,11 @@ python3 -m tvm.exec.rpc_tracker
python3 arm_cpu_imagenet_bench.py --device mate10pro --rpc-key mate10pro python3 arm_cpu_imagenet_bench.py --device mate10pro --rpc-key mate10pro
``` ```
If your device has a same SoC of the above device, you can reuse these parameters If your device has a same or similar SoC of the above devices, you can reuse these parameters.
(e.g. use `llvm -device=arm_cpu -mode=rk3399 -target=aarch64-linux-gnu` as target). For example, if your SoC is similar to rasp3b, use
Otherwise, you need to tune for your own device, please follow this ```bash
[tutorial](https://docs.tvm.ai/tutorials/autotvm/tune_nnvm_arm.html). python3 arm_cpu_imagenet_bench.py --device rasp3b --rpc-key your_custom_key
```
For other devices, to get the best performance, it is recommended that you tune your network by yourself.
Please follow this [tutorial](https://docs.tvm.ai/tutorials/autotvm/tune_nnvm_arm.html).
...@@ -427,14 +427,14 @@ def arm_cpu(model='unknown', options=None): ...@@ -427,14 +427,14 @@ def arm_cpu(model='unknown', options=None):
from . import autotvm from . import autotvm
trans_table = { trans_table = {
"pixel2": ["-model=snapdragon835", "-target=arm64-linux-android"], "pixel2": ["-model=snapdragon835", "-target=arm64-linux-android -mattr=+neon"],
"mate10": ["-model=kirin970", "-target=arm64-linux-android"], "mate10": ["-model=kirin970", "-target=arm64-linux-android -mattr=+neon"],
"mate10pro": ["-model=kirin970", "-target=arm64-linux-android"], "mate10pro": ["-model=kirin970", "-target=arm64-linux-android -mattr=+neon"],
"p20": ["-model=kirin970", "-target=arm64-linux-android"], "p20": ["-model=kirin970", "-target=arm64-linux-android -mattr=+neon"],
"p20pro": ["-model=kirin970", "-target=arm64-linux-android"], "p20pro": ["-model=kirin970", "-target=arm64-linux-android -mattr=+neon"],
"rasp3b": ["-model=bcm2837", "-target=armv7l-linux-gnueabihf"], "rasp3b": ["-model=bcm2837", "-target=armv7l-linux-gnueabihf -mattr=+neon"],
"rk3399": ["-model=rk3399", "-target=aarch64-linux-gnu"], "rk3399": ["-model=rk3399", "-target=aarch64-linux-gnu -mattr=+neon"],
"pynq": ["-model=pynq", "-target=armv7a-linux-eabi"], "pynq": ["-model=pynq", "-target=armv7a-linux-eabi -mattr=+neon"],
} }
pre_defined_opt = trans_table.get(model, ["-model=%s" % model]) pre_defined_opt = trans_table.get(model, ["-model=%s" % model])
......
...@@ -154,7 +154,7 @@ if local_demo: ...@@ -154,7 +154,7 @@ if local_demo:
else: else:
target = tvm.target.arm_cpu('rasp3b') target = tvm.target.arm_cpu('rasp3b')
# The above line is a simple form of # The above line is a simple form of
# target = tvm.target.create('llvm -devcie=arm_cpu -target=armv7l-linux-gnueabihf') # target = tvm.target.create('llvm -devcie=arm_cpu -model=bcm2837 -target=armv7l-linux-gnueabihf -mattr=+neon')
with nnvm.compiler.build_config(opt_level=2, add_pass=['AlterOpLayout']): with nnvm.compiler.build_config(opt_level=2, add_pass=['AlterOpLayout']):
graph, lib, params = nnvm.compiler.build( graph, lib, params = nnvm.compiler.build(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment