Сравнение векторов и мультимедийных расширений

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

Также, в отличие от мультимедийных расширений, передача данных не нуждается в их смежности. Векторы поддерживают как пошаговые доступы, при которых оборудование загружает в память каждый n-ный элемент данных, так и индексированные доступы, при которых оборудование находит адреса загружаемых элементов в векторном регистре.

Как и мультимедийные расширения, вектор легко приспосабливается к гибкости в длине данных, поэтому заставить операции работать с 32 64-разрядными элементами данных, или с 64 32-разрядными элементами данных, или со 128 16-разрядными элементами данных, или с 256 8-разрядными элементами данных довольно просто.

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

Уточнение. Почему же имеющие такие преимущества вектора не стали более популярными за пределами высокопроизводительных вычислений? Высказывались серьезные беспокойства насчет того, что векторные регистры увеличивают время переключения контекста, а также насчет сложности обработки ошибок отсутствия страниц при загрузках и сохранениях векторов, и утверждалось, что SIMD-инструкции достигли некоторых преимуществ векторных инструкций. Но в последних новостях компании Intel были намеки на то, что роль векторов будет расти. Технология INTEL под названием «усовершенствованные векторные инструкции» Advanced Vector Instructions (AVI) сможет мгновенно расширять SSE-регистры со 128 до 256 разрядов и допускать их расширение вплоть до 1024 разрядов. Последнее расширение эквивалентно 16 числам с плавающей точкой, имеющим двойную точность. Пока непонятно, будут ли при этом представлены инструкции загрузки и сохранения векторов. Кроме того, считается, что в процессоре Larrabee, проникновение Intel на рынок дискретных графических процессоров имеются векторные инструкции.

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий