Исправлено: Ваш процессор поддерживает инструкции, что этот двоичный файл TensorFlow не был скомпилирован для использования AVX2
Advanced Vector Extensions ( AVX, также известный как Sandy Bridge New Extensions ) — это расширения архитектуры набора команд x86 для микропроцессоров от Intel и AMD, предложенные Intel в марте 2008 года и впервые поддерживаемые Intel с выпуском процессора Sandy Bridge в первом квартале 2011 года и позже. AMD выпустит процессор Bulldozer в третьем квартале 2011 года. AVX предоставляет новые функции, новые инструкции и новую схему кодирования.

Предупреждение отображается в cmd
Это предупреждающее сообщение распечатывается общей библиотекой TensorFlow. Как указано в сообщении, общая библиотека не содержит инструкций, которые ваш процессор может использовать.
Что вызывает это предупреждение?
После TensorFlow 1.6 двоичные файлы теперь используют инструкции AVX, которые могут больше не работать на старых процессорах. Таким образом, старые процессоры не смогут запускать AVX, в то время как для более новых ЦП пользователь должен построить тензорный поток из источника для своего ЦП. Ниже приведена вся информация, которую вам нужно знать об этом конкретном предупреждении. Также есть способ избавления от этого предупреждения для дальнейшего использования.
Что делает AVX?
В частности, AVX представил FMA (Fused multiply-add); которая является операцией умножения-сложения с плавающей точкой, и эта операция выполняется за один шаг. Это помогает ускорить многие операции без каких-либо проблем. Это делает вычисления алгебры более быстрыми и простыми в использовании, а также точечное произведение, умножение матриц, свертку и т. Д. И это все наиболее используемые и основные операции для любого обучения машинному обучению. Процессоры, которые поддерживают AVX и FMA, будут намного быстрее, чем старые. Но в предупреждении говорится, что ваш процессор поддерживает AVX, так что это хороший момент.

Технология Intel AVX
Почему он не используется по умолчанию?
Это связано с тем, что дистрибутив по умолчанию TensorFlow создается без расширений ЦП. Из-за расширений ЦП указываются AVX, AVX2, FMA и т. Д. Инструкции, которые вызывают эту проблему, не включены по умолчанию в доступных сборках по умолчанию. Причины, по которым они не включены, состоят в том, чтобы сделать это более совместимым с максимально возможным количеством процессоров. Также, чтобы сравнить эти расширения, они гораздо медленнее в процессоре, чем в графическом процессоре. Процессор используется в маломасштабном машинном обучении, в то время как использование ГПУ ожидается, когда он используется для обучения в среднем или крупномасштабном машинном обучении.
Исправление Предупреждение!
Эти предупреждения — просто сообщения. Целью этих предупреждений является информирование вас о встроенном TensorFlow из источника. Когда вы создаете TensorFlow из исходного кода, он может быть быстрее на машине. Так что все эти предупреждения говорят вам о сборке TensorFlow из исходного кода.
Если на вашем компьютере установлен графический процессор, вы можете игнорировать эти предупреждения от поддержки AVX. Потому что самые дорогие будут отправлены на устройстве с графическим процессором. И если вы хотите больше не видеть эту ошибку, вы можете просто проигнорировать ее, добавив:
импортировать модуль ОС в основной программный код, а также установить для него объект отображения
# Для отключения импорта предупреждений os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'
Но если вы работаете в Unix, используйте команду export в оболочке bash
экспортировать TF_CPP_MIN_LOG_LEVEL = 2
Но если у вас нет графического процессора и вы хотите максимально использовать свой процессор, вам следует собрать TensorFlow из источника, оптимизированного для вашего процессора, с включенными здесь AVX, AVX2 и FMA.
AVX 2 (Advanced Vector Extensions 2)

AVX 2 (Advanced Vector Extensions 2) — расширение системы команд процессора, разработанное компанией Intel в дополнение к набору инструкций AVX. Впервые использовано в 2013 г. в процессорах Intel на ядре Haswell.
• добавлена инструкция Fused Multiply Add (FMA), объединяющая в себе операции сложения и умножения (а это ключевые действия в цифровой обработке сигналов);
• реализована возможность операций с 256-битными целочисленными векторами;
• реализована поддержка так называемых gather-инструкций, благодаря которым перестает действовать строгое требование непрерывного расположения данных в памяти. Теперь данные могут собираться из разных адресов памяти;
• добавлены инструкции манипуляций/операций над битами.
В целом, инструкции AVX2 ориентированы на повышение быстродействия процессора в целочисленных вычислениях (при условии использования соответствующего программного обеспечения). С точки зрения рядового пользователя — это работа с видео, фотографиями, звуком, а также с программами, использующими алгоритмы распознавания голоса, лиц, жестов.
ПОДЕЛИТЬСЯ:

НАПИСАТЬ АВТОРУ
Похожие материалы

Технологии и инструкции, используемые в процессорах
Люди обычно оценивают процессор по количеству ядер, тактовой частоте, объему кэша и других показателях, редко обращая внимание на поддерживаемые им технологии.
Отдельные из этих технологий нужны только для решения специфических заданий и в «домашнем» компьютере вряд ли когда-нибудь понадобятся. Наличие же других является непременным условием работы программ, необходимых для повседневного использования.
Так, полюбившийся многим браузер Google Chrome не работает без поддержки процессором SSE2. Инструкции AVX могут в разы ускорить обработку фото- и видеоконтента. А недавно один мой знакомый на достаточно быстром Phenom II (6 ядер) не смог запустить игру Mafia 3, поскольку его процессор не поддерживает инструкции SSE4.2.
Если аббревиатуры SSE, MMX, AVX, SIMD вам ни о чем не говорят и вы хотели бы разобраться в этом вопросе, изложенная здесь информация станет неплохим подспорьем.

Таблица совместимости процессоров и материнских плат AMD
Одной из особенностей компьютеров на базе процессоров AMD, которой они выгодно отличаются от платформ Intel, является высокий уровень совместимости процессоров и материнских плат. У владельцев относительно не старых настольных систем на базе AMD есть высокие шансы безболезненно «прокачать» компьютер путем простой замены процессора на «камень» из более новой линейки или же флагман из предыдущей.
Если вы принадлежите к их числу и задались вопросом «апгрейда», эта небольшая табличка вам в помощь.

Сравнение процессоров
В таблицу можно одновременно добавить до 6 процессоров, выбрав их из списка (кнопка «Добавить процессор»). Всего доступно больше 2,5 тыс. процессоров Intel и AMD.
Пользователю предоставляется возможность в удобной форме сравнивать производительность процессоров в синтетических тестах, количество ядер, частоту, структуру и объем кэша, поддерживаемые типы оперативной памяти, скорость шины, а также другие их характеристики.
Дополнительные рекомендации по использованию таблицы можно найти внизу страницы.

Спецификации процессоров
В этой базе собраны подробные характеристики процессоров Intel и AMD. Она содержит спецификации около 2,7 тысяч десктопных, мобильных и серверных процессоров, начиная с первых Пентиумов и Атлонов и заканчивая последними моделями.
Информация систематизирована в алфавитном порядке и будет полезна всем, кто интересуется компьютерной техникой.

Таблица процессоров
Таблица содержит информацию о почти 2 тыс. процессоров и будет весьма полезной людям, интересующимся компьютерным «железом». Положение каждого процессора в таблице определяется уровнем его быстродействия в синтетических тестах (расположены по убыванию).
Есть фильтр, отбирающий процессоры по производителю, модели, сокету, количеству ядер, наличию встроенного видеоядра и другим параметрам.
Для получения подробной информации о любом процессоре достаточно нажать на его название.

Как проверить стабильность процессора
Проверка стабильности работы центрального процессора требуется не часто. Как правило, такая необходимость возникает при приобретении компьютера, разгоне процессора (оверлокинге), при возникновении сбоев в работе компьютера, а также в некоторых других случаях.
В статье описан порядок проверки процессора при помощи программы Prime95, которая, по мнению многих экспертов и оверлокеров, является лучшим средством для этих целей.

ПОКАЗАТЬ ЕЩЕ
SIMD
SIMD (Single-Instruction, Multiple-Data — «Одна инструкция, много данных») представляет специальный набор инструкций, которые предоставляют параллельную обработку данных. То есть некоторые группы данных могут обрабатываться одновременно, благодаря чему увеличивается производительность и ускоряется выполнение программы. В архитектуре x86-64 инструкции SIMD представлены специальными расширениями SSE/AVX, которые имеют три поколения:
- Архитектура SSE (Streaming SIMD Extensions), которая предоставляет шестнадцать 128-битных регистров XMM (поддерживают как целочисленные типы данных, так и типы с плавающей точкой)
- Архитектура AVX/AVX2 , которая поддерживает шестнадцать 256-битных регистров YMM (также поддерживают как целочисленные типы данных, так и типы с плавающей точкой)
- Архитектура AVX-512 , которая поддерживает до 32-х 512-битных регистров ZMM .
Архитектуры SSE и AVX поддерживают два основных типа данных: скалярные значения (отдельные числа) и векторы (наборы чисел). Скалярные значения представляют отдельные значения с плавающей точкой одинарной или двойной точности. Векторы содержат несколько значений с плавающей точкой или целых чисел (от 2 до 32 значений, в зависимости от типа данных: byte, word, dword, qword, real4 или real8, а также регистра и размера памяти) .
Регистры XMM (XMM0-XMM15) могут хранить одно 32-разрядное значение с плавающей точкой (то есть значение типа real4 ) или четыре значения с плавающей точкой одинарной точности (то есть вектор из 4-х значений). Регистры YMM (YMM0-YMM15) могут хранить 8 чисел с плавающей точкой одинарной точности (32-разрядных):

Регистры XMM могут также хранить одно число с плавающей точкой двойной точности — real8 или вектор из двух значений чисел real8 . Регистры YMM могут хранить вектор из четырех чисел с плавающей точкой двойной точности

Аналогичным образом, регистр XMM может хранить вектор с 16 значениями byte (YMM — вектор с 32 байтами), с 8 значениями word (YMM — вектор с 16 word), 4 числами dword ((YMM — вектор с 8 dword)) и 2 числами qword (YMM — 4 qword)

Элементы вектора еще называются дорожками (lane) регистров XMM и YMM. Например, 128-битный регистр XMM может хранить вектор из 16 байтов. Биты с 0 по 7 — это дорожка 0, биты с 8 по 15 — дорожка 1, биты с 16 по 23 — дорожка 2, и так далее. Последние биты со 120 по 127 образуют дорожку 15. 256-битный регистр YMM имеет 32 байтовые дорожки, а 512-битный регистр ZMM имеет 64 байтовые дорожки.
Аналогично 128-битный регистр XMM имеет восемь дорожек размером для типов word (дорожки с 0 по 7). 256-битный регистр YMM имеет шестнадцать дорожек размером в слово (дорожки с 0 по 15). На процессорах с поддержкой AVX-512 регистр ZMM (размер 512 бит) имеет 32 дорожки для типов word, пронумерованные от 0 до 31. Регистр XMM имеет 4 дорожки размером с dword и real4 (дорожки с 0 по 3). Регистр YMM имеет 8 дорожек для dword и real4 (дорожки с 0 по 7). Регистр ZMM имеет 16 дорожек размера двойного слова или одинарной точности (номера от 0 до 15).
Проверка доступности расширений для SIMD
Разные процессоры имеют разную поддержку расширений для SIMD. Более новые версии расширений могут быть доступны для более новых версий процессоров. Расширения SSE 4.2 было аннонсировано в 2006, и таким образом, есть очень большая вероятность, что компьютер, на котором будет запускаться программа, поддерживает это расширение (не говооря уже о более ранних версиях SSE). Расширения AVX были предложены в 2008 году, а первый процессор с этими расширениями — Sandy Bridge вышел в 2011 году. Расширения AVX2 вышли в свет с процессором Haswell в 2013 году. Расширения AVX-512, которые добавили поддержку 512-битных регистров, были предложены в 2013 г\оду и были впервые релизованы в процессорах Xeon Phi x200 и Skylake-X в 2015/2016 году.
Чтобы определить, поддерживает ли тот или иной процессор определенные расширения, мы можем применять инструкцию cpuid . Она принимает один параметр, который передавается через регистр EAX. В зависимости от значения, переданного в EAX, эта инструкция возвращает различную информацию о процессоре. Приложение может проверить возвращаемую информацию, чтобы узнать, доступны ли определенные функции процессора.
Например, чтобы узнать поддержку расширений для SIMD, в EAX передается значение 1. В этом случае результат инструкции помещается в регистр ECX. Определенные биты результат могут указывать на поддержку определенных возможностей:
Инструкции AVX и AVX2: что это и как их использовать в TensorFlow

При использовании TensorFlow, особенно после первоначальной установки, может возникнуть ситуация, когда при попытке запуска кода появляется следующее сообщение:
Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
Это сообщение хоть и звучит сложно, на самом деле не является ошибкой. AVX (Advanced Vector Extensions) и AVX2 — это расширения набора инструкций процессора, которые позволяют увеличить производительность при выполнении операций с векторами и матрицами.
Однако, бинарные файлы TensorFlow, которые можно скачать и установить, обычно не поддерживают эти инструкции. Это сделано для обеспечения совместимости с большим количеством процессоров, включая те, которые не поддерживают AVX и AVX2.
В результате, при запуске кода TensorFlow на процессоре, который поддерживает AVX или AVX2, появляется упомянутое сообщение. Оно просто информирует, что TensorFlow может работать быстрее, если бы был скомпилирован с поддержкой этих инструкций.
Для того чтобы TensorFlow использовал AVX и AVX2, необходимо его скомпилировать из исходного кода с соответствующими параметрами. Это немного сложнее, чем просто скачать и установить готовый пакет, и может потребовать некоторых знаний и опыта работы с компиляторами.
Однако, важно отметить, что использование AVX и AVX2 может привести к незначительному увеличению производительности. В большинстве случаев разница в скорости работы не будет заметна. Поэтому, если не требуется максимальная производительность, можно просто игнорировать это сообщение.