Всем привет!
Сегодня мы попробует ответь на вопрос, а есть ли зависимость в производительности 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 наиболее подходящих на мой взгляд. Все тесты можно запустить одной командой и они будут выполняться последовательно.
После запуска каждый тест предложит нам варианты конфигурации, отвечаем на вопросы согласно наших предпочтений
Далее нас спросят хотим ли мы сохранить результаты теста, соглашаемся.
За кадром, я уже пробовал как тут все работает, поэтому программа мне выдает имена файлов с данными ранее пройдённых тестов. Придумываем название и жмем Enter. На остальные вопросы необходимости отвечать нет.
Тест будет идти 7 часов, поэтому не вижу смысла делать полную запись
Первая попытка вышла не удачной. После двух минут работы тест выпал в ошибку и отправил систему в ребут, к слову, такое вижу в первый раз, что бы линукс после ошибки ушел в ребут. Сначала я не понял, что произошло и только на монтаже увидел, что произошла ошибка драйвера видеокарты.
Ну, что же, придется начать заново. Но на этот раз будем запускать тесты по одному и начнем с теста tensorflow, т.к. собственного его скорость работы мы и хотим протестировать.
В конфигурации теста выберем размер паке максимум 64, в реальных проектах редко используют пакеты большего размера. Модель выберем самую первую VGG-16, что бы это не значило.
Дальше все делаем также, вводим имя файла остальные вопросы пропускаем.
И снова останавливаем тест. Пошерстив просторы интернета наткнулся наткнулся на то, что если запускать тест с параметром MONITOR=all, то будут писаться показания всех датчиков, потому перезапускаем все с этим параметром.
И так первый тест закончен, мы получили первые результаты. Нас спрашивают хотим ли мы посмотреть результаты теста в браузере, опубликовать их на сайте, прикладывать системные логи или нет.
После сохранения мы можем их просмотреть
Дальше прогоняем другой тест, чисто рассчитанный на память
Смотрим его результаты
Как видно из графиков нагрузки на процессор почти нет, поэтому нам интересны только места в рейтинге сайта OpenBenchmarking
Далее повторяем тесты. Сначала идет tensorflow
Ну и далее результаты теста памяти
Из полученных результатов напрашивается интересный вывод, что на работу tensorflow особо не оказывает влияние скорость работы памяти.