Fa'asa'olotoina o le ISPC 1.31 compiler na fausia e Intel mo le gagana C fa'atasi ai ma fa'aopoopoga SPMD

Ua lomia e Intel le ISPC 1.31 (Implicit SPMD Program Compiler), ua mamanuina e tuufaatasia ai le code C faatasi ai ma le SPMD (Single Program, Multiple Data) parallel programming extensions, lea e mafai ai ona faatino faatasi le tele o faataitaiga o se polokalama e tasi faatasi ai ma seti eseese o faamatalaga ua ulufale mai. O le code o le poloketi ua tusia i le C++ ma ua tufatufaina atu i lalo o le laisene BSD. E lagolagoina. Linux, Windows, macOS ma le FreeBSD.

O polokalame C faʻatasi ai ma faʻaopoopoga SPMD ua tuʻufaʻatasia mo le faʻatinoina i luga o iunite faʻapipiʻi SIMD na tuʻuina atu e le PPU ma le GPU, lea e mafai ai ona e faʻaogaina masini faʻapipiʻi SIMD e aunoa ma ni faʻataʻitaʻiga maualalo ma le faʻaogaina manino o faʻatonuga SIMD i le code. Ina ia tusia galuega tutusa, o le syntax masani ma idioms o le gagana C o loʻo faʻaaogaina - SPMD galuega faʻafesoʻotaʻi saʻo ma galuega ma fausaga o loʻo tusia ile C/C++. E mafai ona fa'aogaina le fa'apalapala o lo'o iai e fa'apolokalame ai polokalame.

O lo'o fa'aogaina e le ISPC le atina'e a le LLVM e fai ma pito i tua mo le fa'atupuina o tulafono ma le fa'asilisiliina. x86 (SSE2, SSE4, AVX, AVX2, AVX512) ma ARM (NEON) faʻatonuga faʻatonuga o loʻo lagolagoina, faʻapea foʻi ma le faʻaogaina o faʻatusatusaga i le itu GPU (Intel Gen9 ma Xe). I luga o faʻataʻitaʻiga ma poloka poloka SSE e faʻaogaina elemene 4 i le taimi, o le faʻaogaina o le ISPC e mafai ai ona ausia le faʻavavevaveina o le polokalame i le 3 pe sili atu taimi, ma i luga o fausaga faʻatasi ma AVX vector poloka e faʻaogaina elemene 8 i le taimi, faʻavavevave e mafai ona oʻo atu i le 5- 6 taimi. E le gata i lea, i le faaopoopo atu i le tele o le poloka vector, e faʻamautinoaina foi le faʻaogaina e ala i le faʻatinoina i luga o faʻasalalauga eseese.

Fa'afou fou fa'aopoopo ile ISPC version 1.31:

  • Ua fa'aopoopoina le lagolago fa'ata'ita'i mo le 64-bit little-endian PowerPC architecture (ppc64le). O le sini fau masani o le POWER ISA 2.7 (POWER8+) fa'atasi ai ma le VSX (Vector Scalar Extensions).
  • Ua fa'aopoopoina sini fou o le fausiaina o masini avx10.2nvl-x4, avx10.2nvl-x8, avx10.2nvl-x16, avx10.2nvl-x32 ma le avx10.2nvl-x64, lea e fa'atinoina le lagolago mo seti fa'atonuga fa'alauteleina AVX10.2 (Advanced Vector Extensions) ma le APX (Advanced Performance Extensions) mo fa'agasologa e fa'avae i luga o le Intel Nova Lake microarchitecture.
  • E tu'uina atu e le dispatcher se filifiliga o filifiliga fa'apitoa mo le fa'apotopotoga fa'atasi ai ma le lagolago a le AMX (avx512spr, avx512gnr, avx10.2dmr) fa'atasi ai ma le lagolago moni mo fa'aopoopoga AMX (Advanced Matrix Extensions) i le faiga fa'aoga ma le CPU.
  • Ua fa'aopoopoina le filifiliga "--opt=disable-apx" e fa'agata ai vaega ta'itasi o le x86 APX (egpr, ndd, push2pop2, ppx, ccmp, cf, nf, zu, ma jmpabs) ia ua fa'agaoioia e ala i le fa'aletonu i luga o sini faufale e mafai ona fa'aogaina le APX e pei o le avx10.2dmr ma le avx10.2nvl.
  • Ua fa'aopoopoina ni faiga paleni ma malolosi mo le fa'aleleia atili o fuafuaga fa'amatematika, ua fa'agaoioia e ala i le filifiliga "--opt=fast-math" ma sili atu le malosi nai lo le faiga fa'aleleia masani.
  • Ua fa'aopoopoina ni galuega fa'atino fou fa'amatematika i le faletusi masani:
    erf, erfc (Gaussian error functions), expm1 (fuafuaga sa'o o le "exp(x)-1"), log1p ("log(1+x)"), sinh, cosh, ma le tanh (hyperbolic sine, cosine, ma le tangent). Ua fa'aleleia le sa'o ma le fa'atinoga o galuega a le asin, acos, atan, ma le log.
  • Ua matuā fa’aleleia atili le fa’atinoga o 32-bit shuffles mo le avx2-i32x16 assembly target ma le popcnt calculations mo le avx2-i8x32, avx512skx-x32, ma le avx512skx-x64 targets.
  • Ua faŹ»afouina le LLVM toolchain i le lala atinaŹ»e 23.

puna: opennet.ru

FaŹ»atau talimalo faŹ»atuatuaina mo nofoaga ma DDoS puipuiga, VPS VDS servers šŸ”„ Fa'atau le 'upega tafa'ilagi talimalo fa'atuatuaina ma le puipuiga DDoS, 'au'aunaga VPS VDS | ProHoster