Профессиональное программирование на ассемблере 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
Архитектура современных процессоров 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
Внимание! У Вас нет прав для просмотра скрытого текста.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.