Merge pull request #30202 from freddan80:pr_0626

PiperOrigin-RevId: 265178580
This commit is contained in:
TensorFlower Gardener 2019-08-23 19:02:20 -07:00
commit 86f68536cb

View File

@ -392,17 +392,42 @@ optimizations and link it with the microlite lib.
To utilize the CMSIS-NN optimized kernels, choose your target, e.g. Bluepill,
and build with:
make -f tensorflow/lite/experimental/micro/tools/make/Makefile TAGS=cmsis-nn
TARGET=bluepill test
```
make -f tensorflow/lite/experimental/micro/tools/make/Makefile TAGS=cmsis-nn TARGET=bluepill test
```
That will build the microlite lib including CMSIS-NN optimized kernels based on
the version downloaded by 'download_dependencies.sh', so make sure you have run
this script. If you want to utilize another version of CMSIS, clone it to a
custom location run the following command:
make -f tensorflow/lite/experimental/micro/tools/make/Makefile
CMSIS_PATH=<CUSTOM_LOCATION> TAGS=cmsis-nn TARGET=bluepill test (--- Under
development, it will build, but test will fail ---)
```
make -f tensorflow/lite/experimental/micro/tools/make/Makefile CMSIS_PATH=<CUSTOM_LOCATION> TAGS=cmsis-nn TARGET=bluepill test
```
To test the optimized kernel(s) on your target platform using mbed (depthwise
conv in this example), follow these steps:
1. Clone CMSIS to a custom location (<CUSTOM_LOCATION>) url:
https://github.com/ARM-software/CMSIS_5.git Make sure you're on the
development branch.
2. Generate the project for depthwise conv mbed test: `make -f
tensorflow/lite/experimental/micro/tools/make/Makefile TAGS=cmsis-nn
CMSIS_PATH=<CUSTOM_LOCATION> generate_depthwise_conv_test_mbed_project`
3. Go to the generated mbed folder: `cd
tensorflow/lite/experimental/micro/tools/make/gen/linux_x86_64/prj/depthwise_conv_test/mbed`
4. Follow the steps in README_MBED.md to setup the environment. Or simply do:
`mbed config root . mbed deploy python -c 'import fileinput, glob; for
filename in glob.glob("mbed-os/tools/profiles/*.json"): for line in
fileinput.input(filename, inplace=True):
print(line.replace("\"-std=gnu++98\"","\"-std=gnu++11\",
\"-fpermissive\""))'`
5. Compile and flash. The 'auto' flag requires your target to be plugged in.
`mbed compile -m auto -t GCC_ARM -f --source . --source
<CUSTOM_LOCATION>/CMSIS/NN/Include --source
<CUSTOM_LOCATION>/CMSIS/NN/Source/ConvolutionFunctions --source
<CUSTOM_LOCATION>/CMSIS/DSP/Include --source
<CUSTOM_LOCATION>/CMSIS/Core/Include -j8`
## Goals