Rilis kompiler ISPC 1.31 sing dikembangake dening Intel kanggo basa C kanthi ekstensi SPMD

Компания Intel ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° компилятор ISPC 1.31 (Implicit SPMD Program Compiler), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для сборки ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования SPMD (Single Program, Multiple Data), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… экзСмпляров ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Π‘++ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° Π² Linux, Windows, macOS lan FreeBSD.

Program C karo ekstensi SPMD diklumpukake kanggo eksekusi ing unit komputasi SIMD sing diwenehake dening CPU lan GPU, sing ngidini sampeyan nggunakake mekanisme vektorisasi SIMD tanpa optimasi tingkat rendah lan panggunaan eksplisit instruksi SIMD ing kode kasebut. Kanggo nulis fungsi parallelizabel, sintaksis lan idiom sing akrab saka basa C digunakake - fungsi SPMD langsung berinteraksi karo fungsi lan struktur sing ditulis ing C/C++. Debugger sing wis ana bisa digunakake kanggo debug program.

ISPC nggunakake infrastruktur LLVM minangka backend kanggo nggawe kode lan optimasi. x86 (SSE2, SSE4, AVX, AVX2, AVX512) lan ARM (NEON) instruksi vektor didhukung, uga petungan offloading kanggo sisih GPU (Intel Gen9 lan Xe). Ing arsitektur kanthi pamblokiran vektor SSE ngolah 4 unsur sekaligus, panggunaan ISPC ndadekake bisa nggayuh percepatan eksekusi program kanthi kaping 3 utawa luwih, lan ing arsitektur kanthi blok vektor AVX ngolah 8 unsur sekaligus, akselerasi bisa tekan 5- 6 kaping. Kajaba iku, saliyane ukuran blok vektor, skala uga ditindakake kanthi eksekusi ing inti prosesor sing beda.

Inovasi utama sing ditambahake ing versi 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.

Source: opennet.ru

Tuku hosting sing dipercaya kanggo situs kanthi proteksi DDoS, server VPS VDS πŸ”₯ Tuku hosting situs web sing bisa dipercaya nganggo proteksi DDoS, server VPS VDS | ProHoster