Intel портировала инструкции SIMD на JavaSсript
- воскресенье, 15 июня 2014 г. в 03:11:57
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.