Llançament del compilador ISPC 1.31 desenvolupat per Intel per al llenguatge C amb extensions SPMD

Intel ha publicat l'ISPC 1.31 (Compilador de programes implícit SPMD), dissenyat per compilar codi C amb les extensions de programació paral·lela SPMD (Single Program, Multiple Data), que permeten l'execució paral·lela de múltiples instàncies d'un sol programa amb diferents conjunts de dades d'entrada. El codi del projecte està escrit en C++ i es distribueix sota la llicència BSD. Admet Linux, Windows, macOS i FreeBSD.

Els programes C amb extensions SPMD es compilen per a l'execució en unitats computacionals SIMD proporcionades per la CPU i la GPU, la qual cosa us permet utilitzar mecanismes de vectorització SIMD sense optimitzacions de baix nivell i l'ús explícit d'instruccions SIMD al codi. Per escriure funcions paral·lelitzables, s'utilitzen la sintaxi i els idiomes familiars del llenguatge C: les funcions SPMD interactuen directament amb funcions i estructures escrites en C/C++. Els depuradors existents es poden utilitzar per depurar programes.

ISPC utilitza la infraestructura LLVM com a backend per a la generació i optimització de codi. S'admeten instruccions vectorials x86 (SSE2, SSE4, AVX, AVX2, AVX512) i ARM (NEON), així com la descàrrega de càlculs al costat de la GPU (Intel Gen9 i Xe). En arquitectures amb blocs vectorials SSE que processen 4 elements alhora, l'ús d'ISPC permet aconseguir una acceleració d'execució del programa 3 o més vegades, i en arquitectures amb blocs vectorials AVX que processen 8 elements alhora, l'acceleració pot arribar a 5- 6 vegades. A més, a més de la mida del bloc vectorial, l'escalat també està garantit mitjançant l'execució en diferents nuclis de processador.

Innovacions clau afegides a ISPC versió 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.

Font: opennet.ru

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster