发布由 Intel 开发的带有 SPMD 扩展的 C 语言 ISPC 1.31 编译器

英特尔发布了 ISPC 1.31(隐式 SPMD 程序编译器),旨在编译带有 SPMD(单程序多数据)并行编程扩展的 C 代码,从而能够使用不同的输入数据集并行执行单个程序的多个实例。该项目代码使用 C++ 编写,并以 BSD 许可证发布。它支持 Linux, Windows, macOS 以及 FreeBSD。

具有 SPMD 扩展的 C 程序经过编译后可在 CPU 和 GPU 提供的 SIMD 计算单元上执行,这使您可以使用 SIMD 矢量化机制,而无需在代码中进行低级优化和显式使用 SIMD 指令。要编写可并行函数,请使用熟悉的 C 语言语法和习惯用法 - 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.31 版中添加的关键创新:

  • Добавлена экспериментальная поддержка 64-разрядной little-endian архитектуры PowerPC (ppc64le). По умолчанию осуществляется сборка для POWER ISA 2.7 (POWER8+) с расширениями VSX (Vector Scalar Extension).
  • Добавлены новые сборочные цели avx10.2nvl-x4, avx10.2nvl-x8, avx10.2nvl-x16, avx10.2nvl-x32 и avx10.2nvl-x64, реализующие поддержку расширенный наборов инструкций AVX10.2 (Advanced Vector Extensions) и APX (Advanced Performance Extensions) для процессоров на базе микроархитектуры Intel Nova Lake.
  • В диспетчеризаторе обеспечен выбор вариантов сборочных целей с поддержкой AMX (avx512spr, avx512gnr, avx10.2dmr) только при реальной поддержке расширений AMX (Advanced Matrix Extensions) в операционной системе и CPU.
  • Добавлена опция «—opt=disable-apx» для выборочного отключения отдельных возможностей x86 APX (egpr, ndd, push2pop2, ppx, ccmp, cf, nf, zu и jmpabs), которые по умолчанию включены в поддерживающих APX сборочных целях, таких как avx10.2dmr и avx10.2nvl.
  • Добавлены сбалансированный («balanced») и агрессивный («aggressive») режимы оптимизации математических вычислений, включаемые через опцию «—opt=fast-math» и более агрессивные по сравнению с применяемым по умолчанию режимом оптимизации.
  • В сандартную библиотеку добавлены новые математические функции:
    erf, erfc (функции ошибок Гаусса), expm1 (точное вычисление «exp(x)-1»), log1p («log(1+x)»), sinh, cosh и tanh (гиперболические синус, косинус и тангенс). Повышена точность и производительность функций asin, acos, atan и log.
  • Значительно повышена производительность 32-битных операций перестановки (shuffles) для сборочной цели avx2-i32x16 и вычислений popcnt для целей avx2-i8x32, avx512skx-x32 и avx512skx-x64.
  • Инструментарий LLVM обновлён до находящейся в разработке ветки 23.

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster