SIMD (single instruction, multiple data; одиночный поток команд, множественный поток данных) — принцип компьютерных вычислений, позволяющий обеспечить параллелизм на уровне данных. Это значительно повышает эффективность логики вычислений и, в свою очередь, общую производительность.

Компания Intel давно поддерживает SIMD-инструкции, начиная с расширения MMX в процессорах Pentium MMX. В дальнейшем набор инструкций поддерживался в расширениях SSE, SSE2, SSE3 и т.д.

С помощью низкоуровневых интерфейсов SIMD для JavaScript становится возможным использовать параллелизм на уровне данных даже в веб-приложениях. Технология разработана сотрудниками Intel, совместно с коллегами из Google и Mozilla.

Intel приводит результаты расчёта множества Мандельброта с поддержкой SIMD.JS и без неё. Тесты показывают трёхкратное ускорение работы в браузере Chromium и почти четырёхкратное — в Firefox.

Особенно полезно применение SIMD в приложениях, которые обрабатывают мультимедийный контент: изображения, аудио и видео. Это, например, программы компьютерного зрения.

Базовая поддержка SIMD.JS API реализована в последней версии Firefox Nightly, а также предложена для включения в Chromium. Компании Google, Intel и Mozilla предлагают добавить JavaScript SIMD API ещё и в будущую версию TC39 ECMAScript, то есть в стандарт JavaScript.

Более подробно о технологии см. в статье “SIMD in JavaScript”, а также в презентации Intel.



Оставить мнение