Google представила библиотеку cpu_features для определения функций процессора

cpu_features

Для разработчиков, желающих получить максимум производительности, очень важны аппаратные методы, позволяющие оптимизировать код. Но ранее не было способа узнать точно, какие методы и технологии процессор поддерживает. Библиотека cpu_features написана, чтобы решить эту проблему. Используя ее, можно прямо из кода узнать, поддерживает ли процессор ту или иную функцию. Написанная на C, эта библиотека может быть использована в любых проектах. При этом сами авторы заявляют, что cpu_features не выделяет себе памяти и работает в изолированном потоке.

Возможности cpu_features

Не все процессоры имеют одинаковый набор функций. Существуют индивидуальные методы, или даже наборы инструкций, позволяющие улучшить производительность программы, но доступные лишь на определенных архитектурах процессоров. Например, процессоры Intel с архитектурой Haswell поддерживают набор инструкций AVX2. А вот архитектура Sandy Bridge не имеет такой функции. В таком случае на помощь придет cpu_features, способная определить доступные функции за пару строк кода. Это будет очень полезно для разработчиков, старающихся максимально ускорить и оптимизировать свой код, особенно если это драйвер для устройства или новый видеокодек.

На момент написания статьи библиотека поддерживает процессоры x86, ARM, AArch64 и MIPS. Более детально о поддерживаемых архитектурах и технологиях ниже:

cpu_features Таблица поддерживаемых технологий и функций

 

Исходный код библиотеки и документация доступны на GitHub.

Источник: блог Google Open Source

Наши тесты для вас:
Какой язык программирования стоит выбрать для изучения?
Что вы знаете о работе мозга?
Насколько вы гиканутый?