TGViewer
opennet.ru полные новости opennet.ru полные новости @opennet_full · 236 subscribers
Post #6949 36
Выпуск компилятора ISPC 1.32, развиваемого Intel для языка Си с расширениями SPMD

Компания Intel опубликовала компилятор ISPC 1.32 (Implicit SPMD Program Compiler), предназначенный для сборки кода на языке Си с расширениями параллельного программирования SPMD (Single Program, Multiple Data), позволяющими добиться параллельного выполнения нескольких экземпляров одной программы с разными наборами входных данных. Код проекта написан на языке С++ и распространяется под лицензией BSD. Поддерживается работа в Linux, Windows, macOS и FreeBSD.


Си-программы с расширениями SPMD компилируются для выполнения на вычислительных блоках SIMD, предоставляемых CPU и GPU, что позволяет задействовать механизмы векторизации SIMD без низкоуровневых оптимизаций и явного применения в коде SIMD-инструкций. Для написания распараллеливаемых функций используется привычный синтаксис и идиомы языка Си - SPMD-функции напрямую взаимодействуют с функциями и структурами, написанными на C/C++. Для отладки программ могут применяться существующие отладчики.




В качестве бэкенда для генерации кода и оптимизации в ISPC используется инфраструктура LLVM. Поддерживаются векторные инструкции x86 (SSE2, SSE4, AVX, AVX2, AVX512) и ARM (NEON), а также вынос вычислений на сторону GPU (Intel Gen9 и Xe). На архитектурах с векторными блоками SSE, обрабатывающими по 4 элемента за раз, применение ISPC даёт возможность добиться ускорения выполнения программы в 3 или более раз, а на архитектурах с векторными блоками AVX, обрабатывающими по 8 элементов за раз, ускорение может достигать 5-6 раз. При этом помимо размера векторного блока, масштабирование также обеспечивается за счёт выполнения на разных процессорных ядрах.


Основные новшества, добавленные в версии ISPC 1.32:


- Обеспечена полная поддержка расширений AVX10.2 и APX (Advanced Performance Extensions), применяемых при генерации кода для сборочных целей avx10.2dmr (Intel Diamond Rapids) и avx10.2nvl (Intel Nova Lake).
- Добавлена поддержка процессоров на базе микроархитектуры AMD Zen 6, включаемая через опцию "--cpu=znver6".
- В стандартную библиотеку добавлены функции pdep32(), pext32(), pdep64() и pext64() для выполнения операций над битами "параллельное извлечение" и "параллельное размещение" ()

- В ISPC Runtime реализованы функции ispcrtLoadModuleFromMemory() и ispcrtLoadModuleFromMemoryWithOptions(), при помощи которых можно загрузить GPU-модуль из находящегося в оперативной памяти буфера SPIR-V.

- Инструментарий LLVM обновлён до версии 23.1.2. Добавлена начальная поддержка сборки с находящейся в разработке веткой LLVM 24.






https://opennet.ru/66467/
https://opennet.me/66467/
More from @opennet_full
  1. Oct 14, 2026Выпуск QLinuxDeviceManager 1.3, диспетчера устройств для Linux с расширенной диагностикой…
  2. Oct 14, 2026Релиз файлового менеджера Strata 1.0, развиваемого для Omarchy Linux Опубликован релиз фай…
  3. Oct 14, 2026Релиз KDE Plasma 6.8 В день тридцатилетия проекта опубликован релиз среды рабочего стола K…
  4. Oct 14, 2026Выявлены импланты для кражи криптовалюты с аппаратных криптокошельков Ledger Nano X Компан…
  5. Oct 13, 2026Выпуск ядра Asterinas 0.19, написанного на языке Rust и совместимого с Linux Опубликован р…
  6. Oct 13, 2026Релиз Firefox 158 Состоялся релиз web-браузера Firefox 158 и сформированы обновления прошл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →