[GNA] Safety fixes (#2158)

This commit is contained in:
Denis Orlov 2020-09-15 11:24:17 +03:00 committed by GitHub
parent e4f0d8053a
commit eea5acaacc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 3 deletions

View File

@ -542,9 +542,11 @@ void GNAGraphCompiler::PowerPrimitive(InferenceEngine::CNNLayerPtr layer) {
connectInput(layer, ptr_inputs, num_data_bytes_in, 0, 0);
if (gnaFlags->sw_fp32) {
IE_ASSERT(quantized == nullptr);
gnamem->readonly().push_value(ptr_weights, power.scale, num_rows_out, 64);
gnamem->readonly().push_value(ptr_biases, power.offset, num_rows_out, 64);
} else {
IE_ASSERT(quantized != nullptr);
auto quantizedScale = FLOAT_TO_INT16(std::min(quantized->_weights_quant.scale * power.scale,
static_cast<float>(INT16_MAX)));
auto quantizedOffset = FLOAT_TO_INT32(std::min(quantized->_dst_quant.scale * power.offset,

View File

@ -33,7 +33,7 @@ class GNAPlugin : public InferenceEngine::IInferencePlugin {
protected:
std::string _pluginName = "GNA";
Config config;
Config config {};
std::shared_ptr<GNAPluginNS::backend::AMIntelDNN> dnn;
std::shared_ptr<GNAPluginNS::GNAFlags> gnaFlags;
std::shared_ptr<GNAPluginNS::gna_memory_type> gnamem;

View File

@ -7,9 +7,9 @@
#include <cstdint>
typedef struct {
double slope;
double slope {};
uint64_t slope_scale = 0;
uint32_t slope_scale_index;
uint32_t slope_scale_index {};
} pwl_gna_slope_scale_t;
pwl_gna_slope_scale_t gna_slope(const double slope, const double in_scale, const double out_scale);

View File

@ -294,6 +294,9 @@ void SubstituteSoftSignPass::run() {
};
auto getNthChild = [](CNNLayerPtr l, int N) {
auto first = getInputTo(l->outData.front()).begin();
auto last = getInputTo(l->outData.front()).end();
IE_ASSERT(first != last);
IE_ASSERT(N <= std::distance(first, last));
std::advance(first, N);
return first->second;
};
@ -1119,6 +1122,7 @@ void EltwiseSplitOverChannelsPass::run() {
for (size_t k = 0; k != totalSplits; k++) {
auto eltwiseRaw = std::make_shared<EltwiseLayer>(
LayerParams{l->name + "/eltwise/" + std::to_string(k), "Eltwise", Precision::FP32});
IE_ASSERT(eltwiseRaw != nullptr);
eltwiseRaw->_operation = masterEltwise->_operation;
eltwiseRaw->coeff = masterEltwise->coeff;
auto eltwise = quantized ? InferenceEngine::injectData<QuantizedLayerParams>(eltwiseRaw) : eltwiseRaw;