itlab-vision / dl-benchmark

Deep Learning Inference benchmark. Supports OpenVINO™ toolkit, TensorFlow, TensorFlow Lite, ONNX Runtime, OpenCV DNN, MXNet, PyTorch, Apache TVM, ncnn, PaddlePaddle, etc.
http://hpc-education.unn.ru/dli
Apache License 2.0
27 stars 37 forks source link

Add openvino 2023.0 host benchmark results #495

Closed FenixFly closed 9 months ago

valentina-kustikova commented 9 months ago

@FenixFly, в html-таблице откуда-то возникли фреймворки Caffe и TensorFlow, которых не должно быть. Удали, пожалуйста. Из xlsx-таблицы вижу много непонятных NaN, например, для mobilenet-v1-0.25-128 или resnest-50-pytorch, а где-то явно только квантованные модели не запустились. Напиши, пожалуйста, что считать нормальным, а что планируется перезапускать. Спасибо!

FenixFly commented 9 months ago

@FenixFly, в html-таблице откуда-то возникли фреймворки Caffe и TensorFlow, которых не должно быть. Удали, пожалуйста. Из xlsx-таблицы вижу много непонятных NaN, например, для mobilenet-v1-0.25-128 или resnest-50-pytorch, а где-то явно только квантованные модели не запустились. Напиши, пожалуйста, что считать нормальным, а что планируется перезапускать. Спасибо!

Из html таблицы лишние фреймворки убрал. Наверное стоит сделать issue по этому поводу, что они добавляются всегда.

Если в xlsx таблице упал одиночный тест, то он скорей всего упал по таймауту, нужен инструмент чтобы все такие тесты выловить в один конфиг, потому что там некоторые считаются по 20 минут и "караулить" окончания десятков тестов вручную не могу.

Если упала вся строчка, то чаще всего проблема с конвертацией модели, особенно много у Pytorch с пачкой 8, может починят в будущих версиях, поэтому такие тесты я пока не удаляю из бенчмаркинга.

Ошибка моделей convnet-tiny в формате INT8 RuntimeError: Check 'false' failed at src/inference/src/core.cpp:114: [ GENERAL_ERROR ] AssertionFailed: data.size() == OC

Ошибка модели license-plate-recognition-barrier-0001 File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/utils.py", line 149, in reshape_input model.reshape(new_shapes) RuntimeError: Check 'DimType::merge(time_size, time_size, seq_mask_pshape[0])' failed at src/core/shape_inference/include/ctc_greedy_decoder_shape_inference.hpp:42: While validating node 'opset1::CTCGreedyDecoder decode (reshape2[0]:f32[88,1,71], seq_ind[0]:f32[1,1]) -> (f32[1,88,1,1])' with friendly_name 'decode': The first dimensions of input tensors must match.

Ошибка модели mobilenet-v1-0.25-128 В логах просто какие-то точки. Будто модель и не падала. Может она слишком быстрая и бенчмарк не обрабатывает корректно какие-то параметры

Ошибка модели resnet-50-pytorch File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/inference_openvino_async_mode.py", line 221, in main reshape_input(model, args.batch_size) File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/utils.py", line 149, in reshape_input model.reshape(new_shapes) RuntimeError: Check 'sum_of_splits == data_shape[axis].get_length()' failed at src/core/shape_inference/include/variadic_split_shape_inference.hpp:89: While validating node 'opset1::VariadicSplit /layer1/layer1.0/conv2/Split_1 (/layer1/layer1.0/conv2/Reshape[0]:f32[1,1024,1,1], Constant_371[0]:i64[], Constant_372[0]:i64[2]) -> (f32[1,64,1,1], f32[1,64,1,1])' with friendly_name '/layer1/layer1.0/conv2/Split_1': Total length of splits: 128 must match the length of the chosen axis: 1024 Как и у остальных новых pytorch моделей при конвертации в пачку 8 ломают какие-то тензоры. Не знаю с чем связано, я использую автоматически установленные библиотеки из openvino-dev. Может быть это поправится в будущих версиях.

Другие двухвходовые модели тоже частично сломались: person-detection-retail-0002

File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/io_adapter.py", line 91, in __read_data if data.shape[:-1] != input_shape[1:]: AttributeError: 'NoneType' object has no attribute 'shape'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/inference_openvino_sync_mode.py", line 215, in main io.prepare_input(model, args.input) File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/io_adapter.py", line 178, in prepare_input self.parse_inputinstance(input[0], input_blob, model) File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/io_adapter.py", line 160, in parse_input_instance value, shapes = self.convert_images(shape, value, element_type, input_blob) File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/io_adapter.py", line 34, in __convert_images image = self.read_data(image, shape, dtype, chw) File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/io_adapter.py", line 95, in __read_data raise ValueError(f'Unable to read input file {filename}. Exception occurred: {str(ex)}') ValueError: Unable to read input file /tmp/itlab-vision-dl-benchmark-data/Datasets/person-detection-retail-0002/im_info.csv. Exception occurred: 'NoneType' object has no attribute 'shape'

valentina-kustikova commented 9 months ago

@FenixFly, в html-таблице откуда-то возникли фреймворки Caffe и TensorFlow, которых не должно быть. Удали, пожалуйста. Из xlsx-таблицы вижу много непонятных NaN, например, для mobilenet-v1-0.25-128 или resnest-50-pytorch, а где-то явно только квантованные модели не запустились. Напиши, пожалуйста, что считать нормальным, а что планируется перезапускать. Спасибо!

Из html таблицы лишние фреймворки убрал. Наверное стоит сделать issue по этому поводу, что они добавляются всегда.

Если в xlsx таблице упал одиночный тест, то он скорей всего упал по таймауту, нужен инструмент чтобы все такие тесты выловить в один конфиг, потому что там некоторые считаются по 20 минут и "караулить" окончания десятков тестов вручную не могу.

Если упала вся строчка, то чаще всего проблема с конвертацией модели, особенно много у Pytorch с пачкой 8, может починят в будущих версиях, поэтому такие тесты я пока не удаляю из бенчмаркинга.

Ошибка моделей convnet-tiny в формате INT8 RuntimeError: Check 'false' failed at src/inference/src/core.cpp:114: [ GENERAL_ERROR ] AssertionFailed: data.size() == OC

Ошибка модели license-plate-recognition-barrier-0001 File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/utils.py", line 149, in reshape_input model.reshape(new_shapes) RuntimeError: Check 'DimType::merge(time_size, time_size, seq_mask_pshape[0])' failed at src/core/shape_inference/include/ctc_greedy_decoder_shape_inference.hpp:42: While validating node 'opset1::CTCGreedyDecoder decode (reshape2[0]:f32[88,1,71], seq_ind[0]:f32[1,1]) -> (f32[1,88,1,1])' with friendly_name 'decode': The first dimensions of input tensors must match.

Ошибка модели mobilenet-v1-0.25-128 В логах просто какие-то точки. Будто модель и не падала. Может она слишком быстрая и бенчмарк не обрабатывает корректно какие-то параметры

Ошибка модели resnet-50-pytorch File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/inference_openvino_async_mode.py", line 221, in main reshape_input(model, args.batch_size) File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/utils.py", line 149, in reshape_input model.reshape(new_shapes) RuntimeError: Check 'sum_of_splits == data_shape[axis].get_length()' failed at src/core/shape_inference/include/variadic_split_shape_inference.hpp:89: While validating node 'opset1::VariadicSplit /layer1/layer1.0/conv2/Split_1 (/layer1/layer1.0/conv2/Reshape[0]:f32[1,1024,1,1], Constant_371[0]:i64[], Constant_372[0]:i64[2]) -> (f32[1,64,1,1], f32[1,64,1,1])' with friendly_name '/layer1/layer1.0/conv2/Split_1': Total length of splits: 128 must match the length of the chosen axis: 1024 Как и у остальных новых pytorch моделей при конвертации в пачку 8 ломают какие-то тензоры. Не знаю с чем связано, я использую автоматически установленные библиотеки из openvino-dev. Может быть это поправится в будущих версиях.

Другие двухвходовые модели тоже частично сломались: person-detection-retail-0002

File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/io_adapter.py", line 91, in __read_data if data.shape[:-1] != input_shape[1:]: AttributeError: 'NoneType' object has no attribute 'shape'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/inference_openvino_sync_mode.py", line 215, in main io.prepare_input(model, args.input) File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/io_adapter.py", line 178, in prepare_input self.parse_inputinstance(input[0], input_blob, model) File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/io_adapter.py", line 160, in parse_input_instance value, shapes = self.convert_images(shape, value, element_type, input_blob) File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/io_adapter.py", line 34, in __convert_images image = self.read_data(image, shape, dtype, chw) File "/home/itmm/dli-jenkins-worker/dl-benchmark/src/inference/io_adapter.py", line 95, in __read_data raise ValueError(f'Unable to read input file {filename}. Exception occurred: {str(ex)}') ValueError: Unable to read input file /tmp/itlab-vision-dl-benchmark-data/Datasets/person-detection-retail-0002/im_info.csv. Exception occurred: 'NoneType' object has no attribute 'shape'

Список фреймворков для html вроде бы указывается в конфиге конвертера, посмотри повнимательнее.

На счет длительных моделей я не против, надо их вынести в отдельный конфиг и задать таймаут больше, чем у остальных.

С моделями ситуацию поняла. Спасибо! Надо сформировать список моделей, у которых поломан вывод и валидация. Возможно, это отдельные два списка.

Текущие результаты заливаю и публикую на вики.