Искусственный интеллект

Используйте оптимизацию Intel Deep Learning в TensorFlow

Задайте единую переменную среды, чтобы повысить производительность до 3 раз

TensorFlow - это широко используемый фреймворк для глубокого обучения (DL). Intel сотрудничает с Google, чтобы оптимизировать свою производительность на платформах на базе процессоров Intel Xeon, используя Intel oneAPI Deep Neural Network (oneDNN), кроссплатформенную библиотеку производительности с открытым исходным кодом для приложений DL. Оптимизация TensorFlow включается через oneDNN для ускорения ключевых операций, требующих высокой производительности, таких как свертка, умножение матриц и пакетная нормализация.

Мы рады сообщить, что оптимизация oneDNN теперь доступна в официальном выпуске TensorFlow, что позволяет разработчикам беспрепятственно использовать оптимизацию Intel. Дополнительные приложения на основе TensorFlow, включая TensorFlow Extended, TensorFlow Hub и TensorFlow Serving, также будут включать оптимизацию oneDNN.

Включение оптимизации oneDNN в TensorFlow 2.5

  1. Установите последний пакет pip TensorFlow, например: pip install tensorflow
  2. По умолчанию оптимизация oneDNN отключена. Чтобы включить их, установите переменную среды TF_ENABLE_ONEDNN_OPTS. В системах Linux, например: export TF_ENABLE_ONEDNN_OPTS=1
  3. Запустите приложение TensorFlow.

Преимущества производительности TensorFlow 2.5 с оптимизацией oneDNN

Мы протестировали несколько популярных моделей TensorFlow на логический вывод и обучение DL, сравнив результаты с оптимизацией oneDNN, включенной на платформе скалярного процессора Intel Xeon 2-го поколения.

Логический вывод был протестирован с использованием четырех ядер на одном сокете для измерения задержки со всеми 28 ядрами для тестов пропускной способности. На рисунках 1 и 2 показано относительное улучшение производительности для вывода по ряду моделей. Для автономных измерений пропускной способности (с использованием больших пакетов) возможно повышение производительности до 3 раз (рисунок 1). Для вывода сервера в реальном времени (размер пакета = 1) TensorFlow с включенным oneDNN занял от 29% до 77% времени неоптимизированной версии для 10 из 11 моделей (рисунок 2).

Что касается обучения, то несколько популярных моделей наблюдали прирост производительности до 2,4 раз (рисунок 3). Выигрыш также наблюдался с предыдущими моделями графов TensorFlow 1.x и новыми моделями на основе активного исполнения TensorFlow 2.x.

Вы можете воспроизвести эти тесты, взяв те же модели из Model Zoo for Intel Architecture:

git clone https://github.com/IntelAI/models.git

Файлы README.md содержат инструкции по обучению модели и логическому выводу. Например, инструкции для модели inceptionv3 находятся в models/benchmarks/image_recognition/tensorflow/inceptionv3/README.md.

Основываясь на приведенных выше тестах и ​​результатах, мы рекомендуем специалистам по обработке данных и разработчикам загрузить последнюю официальную версию TensorFlow и включить оптимизацию oneDNN для немедленного повышения производительности на платформах на базе процессоров Intel Xeon.

Тип данных низкой точности

oneDNN также поддерживает типы данных int8 и bfloat16, чтобы улучшить интенсивное вычисление обучения и производительность вывода на новейших процессорах Intel Xeon Scalable 2-го и 3-го поколений. Эти оптимизации могут улучшить время выполнения модели до 4x для int8 и 2x для bfloat16. Тип данных int8 в настоящее время не поддерживается в официальном выпуске TensorFlow 2.5, но это ограничение будет устранено в более поздней версии. А пока, чтобы использовать тип данных int8, вы можете загрузить Intel Optimization for TensorFlow.

Ресурсы и поддержка TensorFlow

TensorFlow 2.5 можно найти здесь:

Чтобы получить помощь по техническим вопросам, посетите следующие сообщества и форумы, чтобы найти ответы и получить поддержку:

Сравнительный анализ конфигурации системы

Двухсокетный процессор Intel Xeon Platinum 8280L, 28 ядер, HT On, Turbo On, общий объем памяти 256 ГБ.

Системная BIOS: SE5C620.86B.02.01.0012.070720200218.

Версия TensorFlow: https://github.com/tensorflow/tensorflow.git (2.5RC3)

Компилятор и библиотеки: gcc 7.5.0, oneDNN v2.2.0

Тип данных: FP32

Дата сбора данных: 9 мая 2021 г.

Авторы

Махмуд Абузаина, инженер-программист глубокого обучения; Рамеш А.Г., главный инженер; Джейсон Чоу, менеджер по маркетингу; Сяомин Цуй, инженер-программист глубокого обучения; Рама Кетинени, инженер-программист глубокого обучения; и Гочжун Чжуан, инженер-программист глубокого обучения; Корпорация Intel.

Уведомления и отказ от ответственности

Результаты производительности основаны на тестировании на даты, указанные в конфигурациях, и могут не отражать все общедоступные параметры. Узнайте больше на www.Intel.com/PerformanceIndex.

Для технологий Intel может потребоваться включенное оборудование, программное обеспечение или активация службы. Ни один продукт или компонент не может быть абсолютно безопасным.

© Корпорация Intel. Intel, логотип Intel и другие знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Другие названия и бренды могут быть заявлены как собственность других лиц.