![](https://e4g.ru/wp-content/uploads/2023/04/TensorFlow.png)
Всем привет!
Сегодня мы попробует ответь на вопрос, а есть ли зависимость в производительности TensorFlow от скорости работы памяти.
Тестовый стенд
Процессор: Intel(R) Xeon(R) CPU E3-1270 V2 @ 3.50GHz
Материнская плата: Gigabyte GA-H77M-D3H LGA 1155 DDR3
Оперативная память: NETAC DDR3 8Gb 1600MHz pc-12800 (NTBSD3P16SP-08)
Видеокарта: GP102 [GeForce GTX 1080 Ti]
Жесткий диск: Seagate ST3160815AS
SSD: KINGSTON SKC300S
Т.к. TensorFlow в основном используется в Linux подобных системах, то и тесты мы проведем в Ubuntu.
К сожалению в Ubuntu нет привычных нам программ тестирования, которыми обычно пользуются в Windows. Но мне удалось найти один очень интересный Opensource проект под названием Phoronix Test Suite.
На данный момент Phoronix Test Suite поддерживает около 600 различных тестов, с помощью которых можно комплексно оценить производительность системы в целом. Но для сегодня у меня цель лишь оценить на сколько влияет работа памяти в одно или двуканальном режиме на производительность TensorFlow.
Для начала, из огромного перечня тестов, я решил выбрать 6 наиболее подходящих на мой взгляд. Все тесты можно запустить одной командой и они будут выполняться последовательно.
![консольная-команда-запуска-6-тесов](https://e4g.ru/wp-content/uploads/2023/04/консольная-команда-запуска-6-тесов_1.1.1-1024x576.png)
После запуска каждый тест предложит нам варианты конфигурации, отвечаем на вопросы согласно наших предпочтений
![](https://e4g.ru/wp-content/uploads/2023/04/настройки-тестов_1.1.2-1024x576.png)
Далее нас спросят хотим ли мы сохранить результаты теста, соглашаемся.
![](https://e4g.ru/wp-content/uploads/2023/04/сохронять-результаты-теста-или-нет_1.1.3-1024x576.png)
За кадром, я уже пробовал как тут все работает, поэтому программа мне выдает имена файлов с данными ранее пройдённых тестов. Придумываем название и жмем Enter. На остальные вопросы необходимости отвечать нет.
![](https://e4g.ru/wp-content/uploads/2023/04/имена-ранее-пройденых-тестов_1.1.4-1024x576.png)
Тест будет идти 7 часов, поэтому не вижу смысла делать полную запись
![](https://e4g.ru/wp-content/uploads/2023/04/начало-теста-общего_1.1.5-1024x576.png)
Первая попытка вышла не удачной. После двух минут работы тест выпал в ошибку и отправил систему в ребут, к слову, такое вижу в первый раз, что бы линукс после ошибки ушел в ребут. Сначала я не понял, что произошло и только на монтаже увидел, что произошла ошибка драйвера видеокарты.
![](https://e4g.ru/wp-content/uploads/2023/04/ошибка-драйвера-видеокарты_2.1.1-1024x576.png)
Ну, что же, придется начать заново. Но на этот раз будем запускать тесты по одному и начнем с теста tensorflow, т.к. собственного его скорость работы мы и хотим протестировать.
В конфигурации теста выберем размер паке максимум 64, в реальных проектах редко используют пакеты большего размера. Модель выберем самую первую VGG-16, что бы это не значило.
![](https://e4g.ru/wp-content/uploads/2023/04/настройки-теста-tensorflow_1.4.1-1024x576.png)
Дальше все делаем также, вводим имя файла остальные вопросы пропускаем.
И снова останавливаем тест. Пошерстив просторы интернета наткнулся наткнулся на то, что если запускать тест с параметром MONITOR=all, то будут писаться показания всех датчиков, потому перезапускаем все с этим параметром.
![](https://e4g.ru/wp-content/uploads/2023/04/перезапускаем-тест-с-параметом-MONITOR_1.8.1-1024x576.png)
И так первый тест закончен, мы получили первые результаты. Нас спрашивают хотим ли мы посмотреть результаты теста в браузере, опубликовать их на сайте, прикладывать системные логи или нет.
![](https://e4g.ru/wp-content/uploads/2023/04/сохронять-результаты-теста-или-нет_1.1.3-1-1024x576.png)
После сохранения мы можем их просмотреть
![](https://e4g.ru/wp-content/uploads/2023/04/сохронять-результаты-теста-или-нет_1.1.3-2-1024x576.png)
![](https://e4g.ru/wp-content/uploads/2023/04/просмотр-результата-первого-теста_1.3.1-1024x576.png)
![](https://e4g.ru/wp-content/uploads/2023/04/CPU-Freq-befor_1.3.3-1024x576.png)
![](https://e4g.ru/wp-content/uploads/2023/04/Cpu-temp-befor_1.3.4-1024x576.png)
![](https://e4g.ru/wp-content/uploads/2023/04/system-temp-befor_1.3.5-1024x576.png)
Дальше прогоняем другой тест, чисто рассчитанный на память
![](https://e4g.ru/wp-content/uploads/2023/04/резудьтат-теста-памяти-1_1.3.6-1024x576.png)
Смотрим его результаты
![](https://e4g.ru/wp-content/uploads/2023/04/CPU-use-memtest-1_1.4.2-1024x576.png)
![](https://e4g.ru/wp-content/uploads/2023/04/cpu-temp-memetest-1_1.4.3-1024x576.png)
Как видно из графиков нагрузки на процессор почти нет, поэтому нам интересны только места в рейтинге сайта OpenBenchmarking
![](https://e4g.ru/wp-content/uploads/2023/04/Позиции-в-рейтинге-по-тетсу-памяти-до.png)
Далее повторяем тесты. Сначала идет tensorflow
![](https://e4g.ru/wp-content/uploads/2023/04/повторный-тест-tensorflow-после-замены-ram_1.3.7-1024x576.png)
Ну и далее результаты теста памяти
![](https://e4g.ru/wp-content/uploads/2023/04/memory-test-after_1.1.6-1024x576.png)
![](https://e4g.ru/wp-content/uploads/2023/04/memory-test-after-raiting_1.1.6.png)
![](https://e4g.ru/wp-content/uploads/2023/04/сравнения-результатов-тетса-памяти.png)
Из полученных результатов напрашивается интересный вывод, что на работу tensorflow особо не оказывает влияние скорость работы памяти.