mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 12:21:27 +01:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/13660 Any change in server side quantized operator was triggering ios-sanity-check with more than 5 hours testing time. I suspect this was because the operator code was synced with xplat directory. This diff moves server side quantized operators to caffe2/caffe2/quantization/server to avoid this issue. Reviewed By: hx89 Differential Revision: D12955420 fbshipit-source-id: b6c824b9de5e2a696f8c748e1b2c77d81d46746b
38 lines
923 B
C++
38 lines
923 B
C++
#pragma once
|
|
|
|
#include "caffe2/operators/channel_shuffle_op.h"
|
|
#include "caffe2/operators/conv_pool_op_base.h"
|
|
#include "caffe2/quantization/server/conv_pool_dnnlowp_op_base.h"
|
|
#include "caffe2/quantization/server/dnnlowp.h"
|
|
#include "caffe2/quantization/server/dnnlowp_op.h"
|
|
|
|
namespace caffe2 {
|
|
|
|
namespace {
|
|
|
|
template <class Context>
|
|
using ChannelShuffleFp32Op = ChannelShuffleOp<float, Context>;
|
|
|
|
} // namespace
|
|
|
|
template <typename T>
|
|
class ChannelShuffleDNNLowPOp final
|
|
: public DNNLowPOp<T, ChannelShuffleFp32Op<CPUContext>> {
|
|
public:
|
|
USE_OPERATOR_FUNCTIONS(CPUContext);
|
|
USE_DNNLOWP_OPERATOR_BASE_FUNCTIONS(T, ChannelShuffleFp32Op<CPUContext>);
|
|
|
|
ChannelShuffleDNNLowPOp(const OperatorDef& operator_def, Workspace* ws);
|
|
|
|
bool RunOnDevice() override;
|
|
|
|
bool RunOnDeviceWithOrderNCHW();
|
|
bool RunOnDeviceWithOrderNHWC();
|
|
|
|
private:
|
|
const StorageOrder order_;
|
|
const int group_;
|
|
};
|
|
|
|
} // namespace caffe2
|