Keluaran pengkompil ISPC 1.31 yang dibangunkan oleh Intel untuk bahasa C dengan sambungan SPMD

Intel telah menerbitkan ISPC 1.31 (Implicit SPMD Program Compiler), yang direka untuk mengkompil kod C dengan sambungan pengaturcaraan selari SPMD (Single Program, Multiple Data), yang membolehkan pelaksanaan selari berbilang contoh program tunggal dengan set data input yang berbeza. Kod projek ditulis dalam C++ dan diedarkan di bawah lesen BSD. Ia menyokong Linux, Windows, macOS dan FreeBSD.

Program C dengan sambungan SPMD disusun untuk pelaksanaan pada unit pengiraan SIMD yang disediakan oleh CPU dan GPU, yang membolehkan anda menggunakan mekanisme vektorisasi SIMD tanpa pengoptimuman peringkat rendah dan penggunaan eksplisit arahan SIMD dalam kod. Untuk menulis fungsi boleh selari, sintaks dan simpulan bahasa yang biasa digunakan dalam bahasa C - Fungsi SPMD berinteraksi secara langsung dengan fungsi dan struktur yang ditulis dalam C/C++. Penyahpepijat sedia ada boleh digunakan untuk nyahpepijat atur cara.

ISPC menggunakan infrastruktur LLVM sebagai bahagian belakang untuk penjanaan dan pengoptimuman kod. Arahan vektor x86 (SSE2, SSE4, AVX, AVX2, AVX512) dan ARM (NEON) disokong, serta memunggah pengiraan ke bahagian GPU (Intel Gen9 dan Xe). Pada seni bina dengan blok vektor SSE memproses 4 elemen pada satu masa, penggunaan ISPC memungkinkan untuk mencapai pecutan pelaksanaan program sebanyak 3 kali atau lebih, dan pada seni bina dengan blok vektor AVX memproses 8 elemen pada satu masa, pecutan boleh mencapai 5- 6 kali. Selain itu, sebagai tambahan kepada saiz blok vektor, penskalaan juga dipastikan dengan pelaksanaan pada teras pemproses yang berbeza.

Inovasi utama ditambah dalam 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.

Sumber: opennet.ru

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS πŸ”₯ Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster