Update QNNPACK (#15561)
authorMarat Dukhan <marat@fb.com>
Thu, 27 Dec 2018 19:55:02 +0000 (11:55 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Thu, 27 Dec 2018 19:59:54 +0000 (11:59 -0800)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/15561

- Update QNNPACK submodule to master (API-incompatible)
- Do matching changes in Caffe2 Int8 operators

Reviewed By: dreiss

Differential Revision: D13551322

fbshipit-source-id: 066f9087061167f7d7cfbc1c8f8628dfa93d056e

12 files changed:
caffe2/operators/quantized/int8_add_op.h
caffe2/operators/quantized/int8_average_pool_op.h
caffe2/operators/quantized/int8_channel_shuffle_op.h
caffe2/operators/quantized/int8_conv_op.h
caffe2/operators/quantized/int8_conv_transpose_op.h
caffe2/operators/quantized/int8_fc_op.h
caffe2/operators/quantized/int8_leaky_relu_op.h
caffe2/operators/quantized/int8_max_pool_op.h
caffe2/operators/quantized/int8_relu_op.h
caffe2/operators/quantized/int8_sigmoid_op.h
caffe2/operators/quantized/int8_softmax_op.h
third_party/QNNPACK

index 4f30195..391bf86 100644 (file)
@@ -68,6 +68,7 @@ class Int8AddOp final : public Operator<CPUContext> {
         static_cast<uint8_t>(Y_zero_point), Y_scale,
         activationLimits(Y_scale, Y_zero_point, Ac).first,
         activationLimits(Y_scale, Y_zero_point, Ac).second,
+        0 /* flags */,
         &qnnpackOperator_);
       CAFFE_ENFORCE(
           createStatus == qnnp_status_success,
index 58ac4ad..1d542ce 100644 (file)
@@ -62,6 +62,7 @@ class Int8AveragePoolOp final : public ConvPoolOpBase<CPUContext> {
             Y->zero_point, Y->scale,
             activationLimits(Y->scale, Y->zero_point, Ac).first,
             activationLimits(Y->scale, Y->zero_point, Ac).second,
+            0 /* flags */,
             &this->qnnpackGlobalOperator_);
         CAFFE_ENFORCE(
             createStatus == qnnp_status_success,
@@ -102,6 +103,7 @@ class Int8AveragePoolOp final : public ConvPoolOpBase<CPUContext> {
           Y->zero_point, Y->scale,
           activationLimits(Y->scale, Y->zero_point, Ac).first,
           activationLimits(Y->scale, Y->zero_point, Ac).second,
+          0 /* flags */,
           &this->qnnpackOperator_);
         CAFFE_ENFORCE(
             createStatus == qnnp_status_success,
index beef35e..0037e1d 100644 (file)
@@ -54,6 +54,7 @@ class Int8ChannelShuffleOp final : public ConvPoolOpBase<CPUContext> {
       const qnnp_status createStatus = qnnp_create_channel_shuffle_nc_x8(
         G /* groups */,
         C / G /* group channels */,
+        0 /* flags */,
         &this->qnnpackOperator_);
       CAFFE_ENFORCE(
           createStatus == qnnp_status_success,
index ad5b6d1..51afa7a 100644 (file)
@@ -93,6 +93,7 @@ class Int8ConvOp final : public ConvPoolOpBase<CPUContext> {
             Y->scale,
             activationLimits(Y->scale, Y->zero_point, Ac).first,
             activationLimits(Y->scale, Y->zero_point, Ac).second,
+            0 /* flags */,
             &this->qnnpackObject_);
         CAFFE_ENFORCE(
             createStatus == qnnp_status_success,
index 85d2e4e..ad8ab31 100644 (file)
@@ -92,6 +92,7 @@ class Int8ConvTransposeOp final : public ConvTransposeUnpoolBase<CPUContext> {
             Y->scale,
             std::numeric_limits<uint8_t>::min(),
             std::numeric_limits<uint8_t>::max(),
+            0 /* flags */,
             &this->qnnpackObject_);
         CAFFE_ENFORCE(
             createStatus == qnnp_status_success,
index 313fd6b..398e8e1 100644 (file)
@@ -65,6 +65,7 @@ class Int8FCOp final : public Operator<CPUContext> {
             Y->scale,
             std::numeric_limits<uint8_t>::min(),
             std::numeric_limits<uint8_t>::max(),
+            0 /* flags */,
             &this->qnnpackObject_);
         CAFFE_ENFORCE(
             createStatus == qnnp_status_success,
@@ -88,8 +89,7 @@ class Int8FCOp final : public Operator<CPUContext> {
             inputPtr,
             K /* input stride */,
             Y->t.template mutable_data<uint8_t>(),
-            N /* output stride */,
-            nullptr /* threadpool */);
+            N /* output stride */);
         CAFFE_ENFORCE(
             setupStatus == qnnp_status_success,
             "failed to setup QNNPACK fully connected operator");
index 81ab8e1..ef7dc1f 100644 (file)
@@ -62,6 +62,7 @@ class Int8LeakyReluOp final : public Operator<CPUContext> {
         static_cast<uint8_t>(Y_zero_point), Y_scale,
         0 /* output min */,
         255 /* output max */,
+        0 /* flags */,
         &qnnpackOperator_);
       CAFFE_ENFORCE(
           createStatus == qnnp_status_success,
index c56c011..ce65bb4 100644 (file)
@@ -55,6 +55,7 @@ class Int8MaxPoolOp final : public ConvPoolOpBase<CPUContext> {
         channels,
         activationLimits(Y->scale, Y->zero_point, Ac).first,
         activationLimits(Y->scale, Y->zero_point, Ac).second,
+        0 /* flags */,
         &this->qnnpackOperator_);
       CAFFE_ENFORCE(
           createStatus == qnnp_status_success,
index d179087..843f8aa 100644 (file)
@@ -47,6 +47,7 @@ class Int8ReluOp final : public Operator<CPUContext> {
         1 /* channels */,
         X.zero_point /* output min */,
         255 /* output max */,
+        0 /* flags */,
         &qnnpackOperator_);
       CAFFE_ENFORCE(
           createStatus == qnnp_status_success,
index feed15c..5773bde 100644 (file)
@@ -55,6 +55,7 @@ class Int8SigmoidOp final : public Operator<CPUContext> {
         static_cast<uint8_t>(Y_zero_point), Y_scale,
         0 /* output min */,
         255 /* output max */,
+        0 /* flags */,
         &qnnpackOperator_);
       CAFFE_ENFORCE(
           createStatus == qnnp_status_success,
index d1a532b..e625df7 100644 (file)
@@ -55,6 +55,7 @@ class Int8SoftmaxOp final : public Operator<CPUContext> {
         X.t.numel() / X.t.size(0) /* channels */,
         X_scale,
         static_cast<uint8_t>(Y_zero_point), Y_scale,
+        0 /* flags */,
         &qnnpackOperator_);
       CAFFE_ENFORCE(
           createStatus == qnnp_status_success,
index dd56525..6c62fdd 160000 (submodule)
@@ -1 +1 @@
-Subproject commit dd56525aefd497f2b3098ac39107cec96d576acf
+Subproject commit 6c62fddc6d15602be27e9e4cbb9e985151d2fa82