Fork QNNPACK into aten/src/ATen/native/quantized/cpu/qnnpack (#25500)
Summary:
The motivation for this move, and our long-term commitment to maintaining and integrating this code into ATen is described in the issue below:
https://github.com/pytorch/pytorch/issues/25621
Pull Request resolved: https://github.com/pytorch/pytorch/pull/25500
Test Plan:
QNNPack unit tests, as follows:
OSS:
x86:
mkdir build; cd build; cmake ..; make all -j16 && make test
All 26 unit tests pass, both when built with ADD_DEFINITIONS(-DPYTORCH_QNNPACK_RUNTIME_QUANTIZATION=0) and ADD_DEFINITIONS(-DPYTORCH_QNNPACK_RUNTIME_QUANTIZATION=1)
ARM:
Make sure you have an android device available to adb either through one world or directly connected.
To compile and push do
$> adb shell mkdir /data/qnnpack && ./scripts/build-android-arm64.sh && adb push ./build/android/arm64-v8a/*-test /data/qnnpack
To execute tests, first $> adb shell to login into the device, then run all the tests by
$> for t in $(ls /data/qnnpack); do /data/qnnpack/$t; done
Repeat the exact same process with ADD_DEFINITIONS(-DPYTORCH_QNNPACK_RUNTIME_QUANTIZATION=0), and ADD_DEFINITIONS(-DPYTORCH_QNNPACK_RUNTIME_QUANTIZATION=1)
Repeat the exact same process with ./scripts/build-android-armv7.sh for AARCH32.
Reviewed By: ljk53
Differential Revision: D17194732
Pulled By: AshkanAliabadi
fbshipit-source-id: 9e627338ebd63aa917a36b717618c0643ccf40c8