mlcommons / inference_results_v0.5

This repository contains the results and code for the MLPerf™ Inference v0.5 benchmark.
https://mlcommons.org/en/inference-datacenter-05/
Apache License 2.0
55 stars 43 forks source link

Compiler errors when building Intel resnet benchmark #25

Open dagrayvid opened 4 years ago

dagrayvid commented 4 years ago

I am attempting to build and run the Intel inference benchmarks which use PyTorch (Caffe2). Following these instructions leads to the following build error when I run make.

Click for full compiler logs ``` ... inferencer.cc:144:38: required from here /usr/include/c++/8/bits/stl_vector.h:354:21: error: static assertion failed: std::vector must have the same value_type as its allocator static_assert(is_same::value, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... ```

``` g++ -fopenmp inferencer.cc -O3 -fpic -Wall -std=c++11 -g -I/opt/miniconda3//include -I/opt/pytorch/torch/include -I/opt/pytorch/third_party/ideep/include -I/opt/pytorch/third_party/ideep/euler/include -I/opt/pytorch/caffe2/core/nomnigraph/include -I~/tools/boost_1_63_0-install/include -L/opt/miniconda3//lib -L/opt/pytorch/third_party/ideep/euler/build/lib -L ~/.local/lib -L/opt/pytorch/build/lib -L~/tools/boost_1_63_0-install/lib -o inferencer -lcaffe2 -lc10 -lprotobuf `pkg-config --cflags --libs opencv` -lpthread -lrt In file included from /opt/pytorch/third_party/ideep/include/ideep.hpp:40, from /opt/pytorch/torch/include/caffe2/ideep/ideep_utils.h:6, from classifier.h:15, from inferencer.cc:2: /opt/pytorch/third_party/ideep/include/ideep/tensor.hpp: In member function ‘void ideep::param::descriptor::to_bytes(ideep::utils::bytestring&) const’: /opt/pytorch/third_party/ideep/include/ideep/tensor.hpp:161:35: warning: comparison between ‘const enum mkldnn_memory_format_t’ and ‘enum ideep::format’ [-Wenum-compare] if (desc->format == format::blocked) { ^~~~~~~ /opt/pytorch/third_party/ideep/include/ideep/tensor.hpp: In member function ‘void ideep::tensor::feed_from(const ideep::tensor&)’: /opt/pytorch/third_party/ideep/include/ideep/tensor.hpp:1253:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] for (int i = 0; i < dst_scale.size(); i++) { ~~^~~~~~~~~~~~~~~~~~ In file included from /opt/pytorch/third_party/ideep/include/ideep.hpp:39, from /opt/pytorch/torch/include/caffe2/ideep/ideep_utils.h:6, from classifier.h:15, from inferencer.cc:2: /opt/pytorch/third_party/ideep/include/ideep/computations.hpp: In member function ‘int ideep::computation::num_of_inputs() const’: /opt/pytorch/third_party/ideep/include/ideep/computations.hpp:216:34: warning: comparison of integer expressions of different signedness: ‘ideep::utils::s_vector::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] IDEEP_ENFORCE(inouts_.size() == (inputs_num_ + outputs_num_), ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /opt/pytorch/third_party/ideep/include/ideep/abstract_types.hpp:25:24: note: in definition of macro ‘IDEEP_ENFORCE’ error::wrap_c_api((condition) \ ^~~~~~~~~ /opt/pytorch/third_party/ideep/include/ideep/computations.hpp: In member function ‘int ideep::computation::num_of_outputs() const’: /opt/pytorch/third_party/ideep/include/ideep/computations.hpp:222:34: warning: comparison of integer expressions of different signedness: ‘ideep::utils::s_vector::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] IDEEP_ENFORCE(inouts_.size() == (inputs_num_ + outputs_num_), ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /opt/pytorch/third_party/ideep/include/ideep/abstract_types.hpp:25:24: note: in definition of macro ‘IDEEP_ENFORCE’ error::wrap_c_api((condition) \ ^~~~~~~~~ In file included from /opt/pytorch/third_party/ideep/include/ideep.hpp:41, from /opt/pytorch/torch/include/caffe2/ideep/ideep_utils.h:6, from classifier.h:15, from inferencer.cc:2: /opt/pytorch/third_party/ideep/include/ideep/computations.hpp: In constructor ‘ideep::convolution_backward_weights::descriptor::descriptor(const tdesc_t&, const tdesc_t&, const tdesc_t&, const tdesc_t&, const tdims_t&, const tdims_t&, const tdims_t&, const tdims_t&, ideep::algorithm, ideep::padding_kind)’: /opt/pytorch/third_party/ideep/include/ideep/computations.hpp:746:31: warning: unused variable ‘result’ [-Wunused-variable] mkldnn_primitive_desc_t result; ^~~~~~ inferencer.cc: In function ‘void RandomMultibatchTest(caffe2::Classifier&, caffe2::DataProvider&)’: inferencer.cc:41:34: warning: capture of variable ‘FLAGS_batch_size’ with non-automatic storage duration std::vector indexes = [&FLAGS_batch_size, &i](){ ^~~~~~~~~~~~~~~~ In file included from /opt/pytorch/torch/include/caffe2/core/flags.h:3, from inferencer.cc:1: /opt/pytorch/torch/include/c10/util/Flags.h:182:19: note: ‘int FLAGS_batch_size’ declared here C10_EXPORT type FLAGS_##name = default_value; \ ^~~~~~ /opt/pytorch/torch/include/c10/util/Flags.h:200:3: note: in expansion of macro ‘C10_DEFINE_typed_var’ C10_DEFINE_typed_var(int, name, default_value, help_str) ^~~~~~~~~~~~~~~~~~~~ inferencer.cc:11:1: note: in expansion of macro ‘C10_DEFINE_int’ C10_DEFINE_int(batch_size, 1, "image batch sizes"); ^~~~~~~~~~~~~~ In file included from /opt/pytorch/third_party/ideep/include/ideep/lru_cache.hpp:7, from /opt/pytorch/third_party/ideep/include/ideep/tensor.hpp:10, from /opt/pytorch/third_party/ideep/include/ideep.hpp:40, from /opt/pytorch/torch/include/caffe2/ideep/ideep_utils.h:6, from classifier.h:15, from inferencer.cc:2: /opt/pytorch/third_party/ideep/include/ideep/utils.hpp: In instantiation of ‘void ideep::utils::s_vector::assign(ideep::utils::s_vector::size_type, const T&, const Alloc&) [with T = std::shared_ptr; Alloc = std::allocator >; ideep::utils::s_vector::size_type = long unsigned int]’: /opt/pytorch/third_party/ideep/include/ideep/computations.hpp:52:69: required from here /opt/pytorch/third_party/ideep/include/ideep/utils.hpp:98:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘ideep::utils::s_vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] for (int i =0; i < count; i ++) ~~^~~~~~~ /opt/pytorch/third_party/ideep/include/ideep/utils.hpp:104:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘ideep::utils::s_vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] for (int i =0; i < count; i ++) ~~^~~~~~~ /opt/pytorch/third_party/ideep/include/ideep/utils.hpp: In instantiation of ‘ideep::utils::s_vector::s_vector(ideep::utils::s_vector::size_type, const Alloc&) [with T = ideep::tensor; Alloc = std::allocator; ideep::utils::s_vector::size_type = long unsigned int]’: /opt/pytorch/third_party/ideep/include/ideep/computations.hpp:104:70: required from here /opt/pytorch/third_party/ideep/include/ideep/utils.hpp:49:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘ideep::utils::s_vector::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] for (int i =0; i < count; i ++) ~~^~~~~~~ /opt/pytorch/third_party/ideep/include/ideep/utils.hpp: In instantiation of ‘void ideep::utils::s_vector::assign(ideep::utils::s_vector::size_type, const T&, const Alloc&) [with T = std::shared_ptr; Alloc = std::allocator >; ideep::utils::s_vector::size_type = long unsigned int]’: /opt/pytorch/third_party/ideep/include/ideep/computations.hpp:127:68: required from here /opt/pytorch/third_party/ideep/include/ideep/utils.hpp:98:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘ideep::utils::s_vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] for (int i =0; i < count; i ++) ~~^~~~~~~ /opt/pytorch/third_party/ideep/include/ideep/utils.hpp:104:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘ideep::utils::s_vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] for (int i =0; i < count; i ++) ~~^~~~~~~ inferencer.cc: In instantiation of ‘void run_net() [with T = char]’: inferencer.cc:144:38: required from here inferencer.cc:91:29: warning: comparison of integer expressions of different signedness: ‘std::size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] for (std::size_t i = 0; i < FLAGS_batch_size * FLAGS_iterations; ++i) { ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inferencer.cc: In instantiation of ‘void run_net() [with T = float]’: inferencer.cc:145:23: required from here inferencer.cc:91:29: warning: comparison of integer expressions of different signedness: ‘std::size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] In file included from /opt/pytorch/third_party/ideep/include/ideep/tensor.hpp:10, from /opt/pytorch/third_party/ideep/include/ideep.hpp:40, from /opt/pytorch/torch/include/caffe2/ideep/ideep_utils.h:6, from classifier.h:15, from inferencer.cc:2: /opt/pytorch/third_party/ideep/include/ideep/lru_cache.hpp: In instantiation of ‘static ideep::utils::lru_cache& ideep::utils::computation_cache::t_store() [with value_t = ideep::tensor::reorder; long unsigned int capacity = 1024; key_t = std::__cxx11::basic_string]’: /opt/pytorch/third_party/ideep/include/ideep/lru_cache.hpp:165:19: required from ‘static ideep::utils::computation_cache::iterator ideep::utils::computation_cache::find(const key_t&) [with value_t = ideep::tensor::reorder; long unsigned int capacity = 1024; key_t = std::__cxx11::basic_string; ideep::utils::computation_cache::iterator = std::_List_iterator, ideep::tensor::reorder, std::unordered_map>::node_t>]’ /opt/pytorch/third_party/ideep/include/ideep/tensor.hpp:1001:7: required from here /opt/pytorch/third_party/ideep/include/ideep/lru_cache.hpp:184:29: warning: unused variable ‘new_capacity’ [-Wunused-variable] static thread_local int new_capacity = [&](const char *pt) { ^~~~~~~~~~~~ In file included from inferencer.cc:3: data_provider.h: In instantiation of ‘caffe2::DataProvider::DataProvider(const string&, const string&, const string&, int, const string&, bool, int, const string&, const string&, const string&, bool) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’: inferencer.cc:102:27: required from ‘void run_net() [with T = char]’ inferencer.cc:144:38: required from here data_provider.h:200:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare] if ((batchSize_ * iterations_ < IMAGENET_IMAGE_SIZE) && useIndex_) ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ data_provider.h: In instantiation of ‘void caffe2::DataProvider::load_sample(size_t*, size_t) [with T = char; size_t = long unsigned int]’: inferencer.cc:119:3: required from ‘void run_net() [with T = char]’ inferencer.cc:144:38: required from here data_provider.h:137:23: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] if (sample_size != batchSize_ * iterations_) ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ data_provider.h: In instantiation of ‘caffe2::DataProvider::DataProvider(const string&, const string&, const string&, int, const string&, bool, int, const string&, const string&, const string&, bool) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’: inferencer.cc:102:27: required from ‘void run_net() [with T = float]’ inferencer.cc:145:23: required from here data_provider.h:200:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare] if ((batchSize_ * iterations_ < IMAGENET_IMAGE_SIZE) && useIndex_) ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ data_provider.h: In instantiation of ‘void caffe2::DataProvider::load_sample(size_t*, size_t) [with T = float; size_t = long unsigned int]’: inferencer.cc:119:3: required from ‘void run_net() [with T = float]’ inferencer.cc:145:23: required from here data_provider.h:137:23: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] if (sample_size != batchSize_ * iterations_) ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from inferencer.cc:2: classifier.h: In instantiation of ‘void caffe2::Classifier::PrepareInputBlob(T*, const int*) [with T = char]’: classifier.h:178:3: required from ‘void caffe2::Classifier::InitNet(const string&, const string&, const string&) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ classifier.h:134:3: required from ‘caffe2::Classifier::Classifier(const string&, T*, const std::vector&, const string&, const string&, int, const string&, bool, int, int, const string&, bool, int, const string&, const string&, bool) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:108:25: required from ‘void run_net() [with T = char]’ inferencer.cc:144:38: required from here classifier.h:463:62: warning: narrowing conversion of ‘((caffe2::Classifier*)this)->caffe2::Classifier::net_conf_.std::unique_ptr::operator->()->caffe2::NetConf::input_scale’ from ‘double’ to ‘float’ inside { } [-Wnarrowing] ideep::scale_t input_scale = ConvertScales({net_conf_->input_scale}); ~~~~~~~~~~~^~~~~~~~~~~ classifier.h:463:62: warning: narrowing conversion of ‘((caffe2::Classifier*)this)->caffe2::Classifier::net_conf_.std::unique_ptr::operator->()->caffe2::NetConf::input_scale’ from ‘double’ to ‘float’ inside { } [-Wnarrowing] classifier.h: In instantiation of ‘void caffe2::Classifier::PrepareInputBlob(T*, const int*) [with T = float]’: classifier.h:178:3: required from ‘void caffe2::Classifier::InitNet(const string&, const string&, const string&) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’ classifier.h:134:3: required from ‘caffe2::Classifier::Classifier(const string&, T*, const std::vector&, const string&, const string&, int, const string&, bool, int, int, const string&, bool, int, const string&, const string&, bool) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:108:25: required from ‘void run_net() [with T = float]’ inferencer.cc:145:23: required from here classifier.h:463:62: warning: narrowing conversion of ‘((caffe2::Classifier*)this)->caffe2::Classifier::net_conf_.std::unique_ptr::operator->()->caffe2::NetConf::input_scale’ from ‘double’ to ‘float’ inside { } [-Wnarrowing] classifier.h:463:62: warning: narrowing conversion of ‘((caffe2::Classifier*)this)->caffe2::Classifier::net_conf_.std::unique_ptr::operator->()->caffe2::NetConf::input_scale’ from ‘double’ to ‘float’ inside { } [-Wnarrowing] In file included from inferencer.cc:3: data_provider.h: In instantiation of ‘void caffe2::DataProvider::Preprocess(bool, T*, const std::vector >&) [with T = char]’: data_provider.h:294:3: required from ‘void caffe2::DataProvider::WrapLocalInput(bool) [with T = char]’ data_provider.h:301:5: required from ‘void caffe2::DataProvider::WrapInput(bool) [with T = char]’ data_provider.h:203:3: required from ‘caffe2::DataProvider::DataProvider(const string&, const string&, const string&, int, const string&, bool, int, const string&, const string&, const string&, bool) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:102:27: required from ‘void run_net() [with T = char]’ inferencer.cc:144:38: required from here data_provider.h:440:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long long unsigned int’ [-Wsign-compare] for (int i = 0; i < batchSize_ * inputSize_; ++i) ~~^~~~~~~~~~~~~~~~~~~~~~~~~ data_provider.h: In instantiation of ‘void caffe2::DataProvider::CreateUseSharedMemory(bool) [with T = char]’: data_provider.h:282:5: required from ‘void caffe2::DataProvider::WrapSHMInput(bool) [with T = char]’ data_provider.h:303:5: required from ‘void caffe2::DataProvider::WrapInput(bool) [with T = char]’ data_provider.h:203:3: required from ‘caffe2::DataProvider::DataProvider(const string&, const string&, const string&, int, const string&, bool, int, const string&, const string&, const string&, bool) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:102:27: required from ‘void run_net() [with T = char]’ inferencer.cc:144:38: required from here data_provider.h:238:35: warning: comparison of integer expressions of different signedness: ‘int’ and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare] if ((batchSize_ * iterations_ < IMAGENET_IMAGE_SIZE) && useIndex_) ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ data_provider.h: In instantiation of ‘void caffe2::DataProvider::DirectUseSharedMemory(bool) [with T = char]’: data_provider.h:284:5: required from ‘void caffe2::DataProvider::WrapSHMInput(bool) [with T = char]’ data_provider.h:303:5: required from ‘void caffe2::DataProvider::WrapInput(bool) [with T = char]’ data_provider.h:203:3: required from ‘caffe2::DataProvider::DataProvider(const string&, const string&, const string&, int, const string&, bool, int, const string&, const string&, const string&, bool) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:102:27: required from ‘void run_net() [with T = char]’ inferencer.cc:144:38: required from here data_provider.h:257:5: warning: catching polymorphic type ‘class boost::interprocess::interprocess_exception’ by value [-Wcatch-value=] catch(boost::interprocess::interprocess_exception) { ^~~~~ In file included from inferencer.cc:2: classifier.h: In instantiation of ‘void caffe2::Classifier::CreateUseSharedWeight() [with T = char]’: classifier.h:209:5: required from ‘void caffe2::Classifier::PrepareWeightBlob() [with T = char]’ classifier.h:194:3: required from ‘void caffe2::Classifier::InitNet(const string&, const string&, const string&) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ classifier.h:134:3: required from ‘caffe2::Classifier::Classifier(const string&, T*, const std::vector&, const string&, const string&, int, const string&, bool, int, int, const string&, bool, int, const string&, const string&, bool) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:108:25: required from ‘void run_net() [with T = char]’ inferencer.cc:144:38: required from here classifier.h:300:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] for (int i = 0; i < weight_blob_names.size(); ++i) { ~~^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/8/vector:64, from /opt/pytorch/torch/include/c10/util/Registry.h:20, from /opt/pytorch/torch/include/c10/util/Flags.h:36, from /opt/pytorch/torch/include/caffe2/core/flags.h:3, from inferencer.cc:1: /usr/include/c++/8/bits/stl_vector.h: In instantiation of ‘class std::vector, boost::interprocess::iset_index> > >’: classifier.h:342:20: required from ‘void caffe2::Classifier::CreateUseSharedWeight() [with T = char]’ classifier.h:209:5: required from ‘void caffe2::Classifier::PrepareWeightBlob() [with T = char]’ classifier.h:194:3: required from ‘void caffe2::Classifier::InitNet(const string&, const string&, const string&) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ classifier.h:134:3: required from ‘caffe2::Classifier::Classifier(const string&, T*, const std::vector&, const string&, const string&, int, const string&, bool, int, int, const string&, bool, int, const string&, const string&, bool) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:108:25: required from ‘void run_net() [with T = char]’ inferencer.cc:144:38: required from here /usr/include/c++/8/bits/stl_vector.h:354:21: error: static assertion failed: std::vector must have the same value_type as its allocator static_assert(is_same::value, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from inferencer.cc:2: classifier.h: In instantiation of ‘void caffe2::Classifier::DirectUseSharedWeight() [with T = char]’: classifier.h:211:5: required from ‘void caffe2::Classifier::PrepareWeightBlob() [with T = char]’ classifier.h:194:3: required from ‘void caffe2::Classifier::InitNet(const string&, const string&, const string&) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ classifier.h:134:3: required from ‘caffe2::Classifier::Classifier(const string&, T*, const std::vector&, const string&, const string&, int, const string&, bool, int, int, const string&, bool, int, const string&, const string&, bool) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:108:25: required from ‘void run_net() [with T = char]’ inferencer.cc:144:38: required from here classifier.h:373:10: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] while (*(managed_shm_.find(("SharedWeightSize" + numaId_).c_str()).first) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ != weight_blob_names.size()) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~ classifier.h:381:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] for (int i = 0; i < weight_blob_names.size(); ++i) { ~~^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from inferencer.cc:3: data_provider.h: In instantiation of ‘void caffe2::DataProvider::Preprocess(bool, T*, const std::vector >&) [with T = float]’: data_provider.h:294:3: required from ‘void caffe2::DataProvider::WrapLocalInput(bool) [with T = float]’ data_provider.h:301:5: required from ‘void caffe2::DataProvider::WrapInput(bool) [with T = float]’ data_provider.h:203:3: required from ‘caffe2::DataProvider::DataProvider(const string&, const string&, const string&, int, const string&, bool, int, const string&, const string&, const string&, bool) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:102:27: required from ‘void run_net() [with T = float]’ inferencer.cc:145:23: required from here data_provider.h:440:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long long unsigned int’ [-Wsign-compare] for (int i = 0; i < batchSize_ * inputSize_; ++i) ~~^~~~~~~~~~~~~~~~~~~~~~~~~ data_provider.h: In instantiation of ‘void caffe2::DataProvider::CreateUseSharedMemory(bool) [with T = float]’: data_provider.h:282:5: required from ‘void caffe2::DataProvider::WrapSHMInput(bool) [with T = float]’ data_provider.h:303:5: required from ‘void caffe2::DataProvider::WrapInput(bool) [with T = float]’ data_provider.h:203:3: required from ‘caffe2::DataProvider::DataProvider(const string&, const string&, const string&, int, const string&, bool, int, const string&, const string&, const string&, bool) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:102:27: required from ‘void run_net() [with T = float]’ inferencer.cc:145:23: required from here data_provider.h:238:35: warning: comparison of integer expressions of different signedness: ‘int’ and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare] if ((batchSize_ * iterations_ < IMAGENET_IMAGE_SIZE) && useIndex_) ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ data_provider.h: In instantiation of ‘void caffe2::DataProvider::DirectUseSharedMemory(bool) [with T = float]’: data_provider.h:284:5: required from ‘void caffe2::DataProvider::WrapSHMInput(bool) [with T = float]’ data_provider.h:303:5: required from ‘void caffe2::DataProvider::WrapInput(bool) [with T = float]’ data_provider.h:203:3: required from ‘caffe2::DataProvider::DataProvider(const string&, const string&, const string&, int, const string&, bool, int, const string&, const string&, const string&, bool) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:102:27: required from ‘void run_net() [with T = float]’ inferencer.cc:145:23: required from here data_provider.h:257:5: warning: catching polymorphic type ‘class boost::interprocess::interprocess_exception’ by value [-Wcatch-value=] catch(boost::interprocess::interprocess_exception) { ^~~~~ In file included from inferencer.cc:2: classifier.h: In instantiation of ‘void caffe2::Classifier::CreateUseSharedWeight() [with T = float]’: classifier.h:209:5: required from ‘void caffe2::Classifier::PrepareWeightBlob() [with T = float]’ classifier.h:194:3: required from ‘void caffe2::Classifier::InitNet(const string&, const string&, const string&) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’ classifier.h:134:3: required from ‘caffe2::Classifier::Classifier(const string&, T*, const std::vector&, const string&, const string&, int, const string&, bool, int, int, const string&, bool, int, const string&, const string&, bool) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:108:25: required from ‘void run_net() [with T = float]’ inferencer.cc:145:23: required from here classifier.h:300:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] for (int i = 0; i < weight_blob_names.size(); ++i) { ~~^~~~~~~~~~~~~~~~~~~~~~~~~~ classifier.h: In instantiation of ‘void caffe2::Classifier::DirectUseSharedWeight() [with T = float]’: classifier.h:211:5: required from ‘void caffe2::Classifier::PrepareWeightBlob() [with T = float]’ classifier.h:194:3: required from ‘void caffe2::Classifier::InitNet(const string&, const string&, const string&) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’ classifier.h:134:3: required from ‘caffe2::Classifier::Classifier(const string&, T*, const std::vector&, const string&, const string&, int, const string&, bool, int, int, const string&, bool, int, const string&, const string&, bool) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:108:25: required from ‘void run_net() [with T = float]’ inferencer.cc:145:23: required from here classifier.h:373:10: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] while (*(managed_shm_.find(("SharedWeightSize" + numaId_).c_str()).first) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ != weight_blob_names.size()) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~ classifier.h:381:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] for (int i = 0; i < weight_blob_names.size(); ++i) { ~~^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from inferencer.cc:3: data_provider.h: In instantiation of ‘void caffe2::DataProvider::ResizeWithAspect(cv::Mat*, cv::Mat*) [with T = char]’: data_provider.h:389:7: required from ‘void caffe2::DataProvider::PreprocessUsingCVMethod(T*, const std::vector >&) [with T = char]’ data_provider.h:437:5: required from ‘void caffe2::DataProvider::Preprocess(bool, T*, const std::vector >&) [with T = char]’ data_provider.h:294:3: required from ‘void caffe2::DataProvider::WrapLocalInput(bool) [with T = char]’ data_provider.h:301:5: required from ‘void caffe2::DataProvider::WrapInput(bool) [with T = char]’ data_provider.h:203:3: required from ‘caffe2::DataProvider::DataProvider(const string&, const string&, const string&, int, const string&, bool, int, const string&, const string&, const string&, bool) [with T = char; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:102:27: required from ‘void run_net() [with T = char]’ inferencer.cc:144:38: required from here data_provider.h:320:74: warning: left operand of comma operator has no effect [-Wunused-value] cv::resize((*sample), (*sample_resized), cv::Size(new_width, res), (0, 0), (0, 0), inter_pol); ~~^~~~ data_provider.h:320:82: warning: left operand of comma operator has no effect [-Wunused-value] cv::resize((*sample), (*sample_resized), cv::Size(new_width, res), (0, 0), (0, 0), inter_pol); ~~^~~~ data_provider.h:323:75: warning: left operand of comma operator has no effect [-Wunused-value] cv::resize((*sample), (*sample_resized), cv::Size(res, new_height), (0, 0), (0, 0), inter_pol); ~~^~~~ data_provider.h:323:83: warning: left operand of comma operator has no effect [-Wunused-value] cv::resize((*sample), (*sample_resized), cv::Size(res, new_height), (0, 0), (0, 0), inter_pol); ~~^~~~ data_provider.h: In instantiation of ‘void caffe2::DataProvider::ResizeWithAspect(cv::Mat*, cv::Mat*) [with T = float]’: data_provider.h:389:7: required from ‘void caffe2::DataProvider::PreprocessUsingCVMethod(T*, const std::vector >&) [with T = float]’ data_provider.h:437:5: required from ‘void caffe2::DataProvider::Preprocess(bool, T*, const std::vector >&) [with T = float]’ data_provider.h:294:3: required from ‘void caffe2::DataProvider::WrapLocalInput(bool) [with T = float]’ data_provider.h:301:5: required from ‘void caffe2::DataProvider::WrapInput(bool) [with T = float]’ data_provider.h:203:3: required from ‘caffe2::DataProvider::DataProvider(const string&, const string&, const string&, int, const string&, bool, int, const string&, const string&, const string&, bool) [with T = float; std::__cxx11::string = std::__cxx11::basic_string]’ inferencer.cc:102:27: required from ‘void run_net() [with T = float]’ inferencer.cc:145:23: required from here data_provider.h:320:74: warning: left operand of comma operator has no effect [-Wunused-value] cv::resize((*sample), (*sample_resized), cv::Size(new_width, res), (0, 0), (0, 0), inter_pol); ~~^~~~ data_provider.h:320:82: warning: left operand of comma operator has no effect [-Wunused-value] cv::resize((*sample), (*sample_resized), cv::Size(new_width, res), (0, 0), (0, 0), inter_pol); ~~^~~~ data_provider.h:323:75: warning: left operand of comma operator has no effect [-Wunused-value] cv::resize((*sample), (*sample_resized), cv::Size(res, new_height), (0, 0), (0, 0), inter_pol); ~~^~~~ data_provider.h:323:83: warning: left operand of comma operator has no effect [-Wunused-value] cv::resize((*sample), (*sample_resized), cv::Size(res, new_height), (0, 0), (0, 0), inter_pol); ~~^~~~ In file included from classifier.h:19, from inferencer.cc:2: net_config.h: In function ‘std::unique_ptr caffe2::get_net_conf(const string&)’: net_config.h:107:19: warning: control reaches end of non-void function [-Wreturn-type] << "or you can just input 'resnet50' 'mobilenetv1' as net_conf"; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make: *** [Makefile:18: inferencer] Error 1 ```

It's possible that I have installed some incompatible versions of dependencies. I am compiling on RHEL8 (UBI8 container). Any suggestions from people who have been able to run these would be appreciated.

dagrayvid commented 4 years ago

I was able to build inferencer, by switching to a RHEL UBI7 container, replacing -lcaffe2 with -ltorch in the Makefile, since the caffe2 API has moved to libtorch, and building OpenCV 3 from source.

However, I am still hoping the creators of this implementation could give more instructions on how to run the benchmark, and where to get the exact model files they used (resnet50/init_net_int8.pb and resnet50/predict_net_int8.pbtxt)

wangyuyue commented 4 years ago

Hi, dagrayvid. So how did you build the Intel resnet benchmark? I can't find the dataset and model files in the repo, can you give me some advice about where to find it? I really appreciate it if you can share more experience on this benchmark. Thanks!

wangyuyue commented 4 years ago

And some environment variables in these scripts are quite confusing, they use ambiguous relative paths.