[CPU] Fixed quantization post op memory leak (#2101)
This commit is contained in:
parent
b3829c58a8
commit
d78fd196e8
@ -525,7 +525,17 @@ void MKLDNNQuantizeNode::execute(mkldnn::stream strm) {
|
||||
}
|
||||
|
||||
void MKLDNNQuantizeNode::appendPostOps(mkldnn::post_ops& ops) {
|
||||
ops.append_quantization(quantizeAlgorithm , cropLow, cropHigh, inputScale, inputShift, outputScale, outputShift);
|
||||
if (!isPostOpDataInitialized) {
|
||||
isPostOpDataInitialized = true;
|
||||
cropLowData.set(cropLow.size(), 1 << 1, &cropLow[0]);
|
||||
cropHighData.set(cropHigh.size(), 1 << 1, &cropHigh[0]);
|
||||
inputScaleData.set(inputScale.size(), 1 << 1, &inputScale[0]);
|
||||
inputShiftData.set(inputShift.size(), 1 << 1, &inputShift[0]);
|
||||
outputScaleData.set(outputScale.size(), 1 << 1, &outputScale[0]);
|
||||
outputShiftData.set(outputShift.size(), 1 << 1, &outputShift[0]);
|
||||
}
|
||||
|
||||
ops.append_quantization(quantizeAlgorithm, &cropLowData, &cropHighData, &inputScaleData, &inputShiftData, &outputScaleData, &outputShiftData);
|
||||
}
|
||||
|
||||
bool MKLDNNQuantizeNode::created() const {
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
#include <primitive_attr.hpp>
|
||||
|
||||
namespace MKLDNNPlugin {
|
||||
|
||||
@ -41,12 +42,12 @@ public:
|
||||
const std::vector<float>& getOutputScale() const { return outputScale; }
|
||||
const std::vector<float>& getOutputShift() const { return outputShift; }
|
||||
|
||||
void setCropLow(std::vector<float> newCropLow) { cropLow = std::move(newCropLow); }
|
||||
void setCropHigh(std::vector<float> newCropHigh) { cropHigh = std::move(newCropHigh); }
|
||||
void setInputScale(std::vector<float> newInputScale) { inputScale = std::move(newInputScale); }
|
||||
void setInputShift(std::vector<float> newInputShift) { inputShift = std::move(newInputShift); }
|
||||
void setOutputScale(std::vector<float> newOutputScale) { outputScale = std::move(newOutputScale); }
|
||||
void setOutputShift(std::vector<float> newOutputShift) { outputShift = std::move(newOutputShift); }
|
||||
void setCropLow(std::vector<float> newCropLow) { cropLow = std::move(newCropLow); isPostOpDataInitialized = false; }
|
||||
void setCropHigh(std::vector<float> newCropHigh) { cropHigh = std::move(newCropHigh); isPostOpDataInitialized = false; }
|
||||
void setInputScale(std::vector<float> newInputScale) { inputScale = std::move(newInputScale); isPostOpDataInitialized = false; }
|
||||
void setInputShift(std::vector<float> newInputShift) { inputShift = std::move(newInputShift); isPostOpDataInitialized = false; }
|
||||
void setOutputScale(std::vector<float> newOutputScale) { outputScale = std::move(newOutputScale); isPostOpDataInitialized = false;}
|
||||
void setOutputShift(std::vector<float> newOutputShift) { outputShift = std::move(newOutputShift); isPostOpDataInitialized = false; }
|
||||
|
||||
bool isInputLowBroadcast() const { return isInputLowBroadcasted; }
|
||||
bool isInputHighBroadcast() const { return isInputHighBroadcasted; }
|
||||
@ -74,6 +75,15 @@ private:
|
||||
std::vector<float> outputScale;
|
||||
std::vector<float> outputShift;
|
||||
|
||||
// mkldnn style post ops data representation
|
||||
bool isPostOpDataInitialized = false;
|
||||
mkldnn::impl::shifts_t<float> cropLowData;
|
||||
mkldnn::impl::shifts_t<float> cropHighData;
|
||||
mkldnn::impl::scales_t inputScaleData;
|
||||
mkldnn::impl::shifts_t<float> inputShiftData;
|
||||
mkldnn::impl::scales_t outputScaleData;
|
||||
mkldnn::impl::shifts_t<float> outputShiftData;
|
||||
|
||||
bool isInputLowBroadcasted = false;
|
||||
bool isInputHighBroadcasted = false;
|
||||
bool isOutputLowBroadcasted = false;
|
||||
|
2
inference-engine/thirdparty/mkl-dnn
vendored
2
inference-engine/thirdparty/mkl-dnn
vendored
@ -1 +1 @@
|
||||
Subproject commit 683bea673b4e510eb150e4b338aeeeb366ba17f6
|
||||
Subproject commit 6547f0b6aac2725bd4e36197e19fb1a6f2ee2f51
|
Loading…
Reference in New Issue
Block a user