Написать пост

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

Аватар Семён Алексин

Библиотека cpu_features позволяет программе определять технологии, поддерживаемые процессором, и использовать их для оптимизации кода.

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

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

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

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

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

 

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

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий2К показов