Rakirina berhevkarê ISPC 1.31 ku ji hêla Intel ve ji bo zimanê C bi dirêjkirina SPMD ve hatî pêşve xistin

Intel ISPC 1.31 (Berhevkarê Bernameya SPMD ya Nepenî) weşandiye, ku ji bo berhevkirina koda C bi dirêjkirinên bernamekirina paralel ên SPMD (Bernameya Yekane, Daneyên Pirjimar) hatiye çêkirin, ku rê dide pêkanîna paralel a gelek mînakên bernameyek yekane bi setên daneyên têketinê yên cûda. Koda projeyê bi C++ hatiye nivîsandin û di bin lîsansa BSD de tê belavkirin. Ew piştgirî dide Linux, Windows, macOS û FreeBSD-ê.

Bernameyên C yên bi dirêjkirina SPMD-ê ji bo darvekirinê li ser yekîneyên hesabker ên SIMD-ê yên ku ji hêla CPU û GPU ve têne peyda kirin têne berhev kirin, ku dihêle hûn mekanîzmayên vektorîzasyona SIMD-ê bêyî xweşbîniyên kêm-ast û karanîna eşkere ya rêwerzên SIMD-ê di kodê de bikar bînin. Ji bo nivîsandina fonksiyonên paralel, hevoksazî û îdyomên naskirî yên zimanê C têne bikar anîn - fonksiyonên SPMD rasterast bi fonksiyon û strukturên ku bi C/C++ hatine nivîsandin re têkildar in. Debuggerên heyî dikarin ji bo rakirina bernameyan werin bikar anîn.

ISPC binesaziya LLVM-ê wekî paşîn ji bo hilberîna kod û xweşbîniyê bikar tîne. x86 (SSE2, SSE4, AVX, AVX2, AVX512) û rêwerzên vektorê ARM (NEON) têne piştgirî kirin, û her weha hesabên li alîyê GPU (Intel Gen9 û Xe) dakêşin. Li ser mîmariyên bi blokên vektorî yên SSE ku di yek carê de 4 hêmanan hildiberînin, karanîna ISPC dihêle ku meriv bi 3 an zêdetir carî leza darvekirina bernameyê bi dest bixe, û li ser mîmariyên bi blokên vektorî yên AVX ku di carekê de 8 hêmanan hildiberîne, lezkirin dikare bigihîje 5- 6 caran. Digel vê yekê, ji bilî mezinahiya bloka vektorê, pîvandin di heman demê de ji hêla darvekirinê ve li ser cûreyên cûda yên pêvajoyê jî tê misoger kirin.

Nûvekirinên sereke di guhertoya ISPC 1.31 de hatine zêdekirin:

  • Добавлена экспериментальная поддержка 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.

Source: opennet.ru

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster