Профессиональное программирование на ассемблере x64 с расширениями AVX, AVX2 и AVX-512

Профессиональное программирование на ассемблере x64 с расширениями AVX, AVX2 и AVX-512

Учитывая преобладание в XXI веке языков высокого уровня, таких как C++, C#, Java и Python, может быть удивительно узнать, что многие разработчики программного обеспечения все еще используют язык ассемблера для кодирования критически важных в плане быстродействия участков своих программ. И хотя с годами компиляторы заметно улучшились с точки зрения генерации машинного кода, который стал эффективнее по объему и произво­дительности, все еще остаются ситуации, когда разработчику программного обеспечения имеет смысл использовать преимущества программирования на языке ассемблера.

Архитектура современных процессоров x86 с одним потоком команд и множеством потоков данных (SIMD, single instruction stream – multiple data stream) является еще одним объяснением постоянного интереса к программирова­нию на языке ассемблера. Процессор с поддержкой SIMD обладает вычисли­тельными ресурсами, которые упрощают параллельные вычисления с исполь­зованием нескольких значений данных, что может значительно повысить быстродействие приложений, обеспечивающих высокую скорость отклика в реальном времени. Архитектуры SIMD также хорошо подходят для ресурсо­емких проблемных областей, таких как обработка изображений, кодирование аудио и видео, автоматизированное проектирование, компьютерная графика и интеллектуальный анализ данных. К сожалению, многие языки высокого уровня и инструменты разработки по-прежнему не могут полностью или хотя бы частично использовать возможности SIMD современного процессора x86. С другой стороны, язык ассемблера открывает разработчику программного обеспечения полный доступ к ресурсам SIMD процессора.

Эта книга рассказывает о программировании на 64-битном (x86-64) языке ассемблера x86. Содержание и структура книги призваны помочь вам быстро освоить программирование на языке ассемблера x86-64 и вычислительные ресурсы векторных расширений набора команд Advanced Vector Extensions (AVX). Она также содержит множество примеров исходного кода, которые способствуют ускоренному изучению и пониманию основных конструкций языка ассемблера x86-64 и концепций программирования SIMD. После про­чтения этой книги вы сможете кодировать быстродействующие функции и алгоритмы с помощью языка ассемблера x86-64 и наборов инструкций AVX, AVX2 и AVX-512.

Прежде чем продолжить, я должен обратить ваше внимание, что в этой книге не рассматривается программирование на языке ассемблера x86-32. В нем также не обсуждаются устаревшие технологии x86, такие как модуль с плава­ющей запятой x87, MMX и Streaming SIMD Extensions. Если вы заинтересованы в изучении этих тем, прочтите первое издание книги (в переводе не издава­лось). Эта книга не объясняет архитектурные особенности x86 или привилегированные команды процессора, которые используются в опе­рационных системах. Однако вам все равно придется досконально изучить материал, представленный в данной книге, чтобы разрабатывать код на языке ассемблера x86 для использования в операционной системе. Хотя теоретически возможно написать целую прикладную программу, ис­пользуя только язык ассемблера, высокие требования к разработке современ­ного программного обеспечения делают такой подход непрактичным и не­целесообразным. Вместо этого в данной книге основное внимание уделяется кодированию функций языка ассемблера x86-64, вызываемых из C++. Каждый пример исходного кода был создан с использованием Microsoft Visual Studio C++ и Microsoft Macro Assembler (MASM).

Название: Профессиональное программирование на ассемблере x64 с расширениями AVX, AVX2 и AVX-512
Автор: Даниэль Куссвюрм
Издательство: ДМК Пресс
Год: 2021
Страниц: 629
Язык: русский
Формат: pdf
Размер: 33.6 MB

Скачать Профессиональное программирование на ассемблере x64 с расширениями AVX, AVX2 и AVX-512
Внимание! У Вас нет прав для просмотра скрытого текста.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.