Dimittis de ISPC 1.26 compilator per Intel pro C lingua cum extensionibus SPMD evoluta

Intel emisit ISPC 1.26 (Implicit SPMD Program Compiler), voluit convenire C codicem cum SPMD (Unum Programma, Multiplex Data) programmandi extensiones parallelas, quae permittunt exsecutionem parallelam plurium instantiarum eiusdem programmatis cum diversis initus datarum. In codice exertus scriptum est in C++ et sub BSD licentia distribuitur. Sustinet opera in Linux, Fenestra, macOS et FreeBSD.

C programmata cum extensionibus SPMD compilata sunt ad executionem in SIMD unitates computativas ab CPU et GPU paratas, quibus sino utere machinationes SIMD vectorizationis sine optimizationibus humili gradu et expresso usu mandatorum SIMD in codice. Ad functiones parallelizabiles scribendas, nota syntaxis et idiomata linguae C adhibentur - SPMD functiones directe se occurrunt cum functionibus et structuris in C/C ++ scripta. Existens debuggers potest ad programmata debug.

ISPC utitur infrastructura LLVM ut tergum generationis et optimiizationis pro codice. x86 (SSE2, SSE4, AVX, AVX2, AVX512) et ARM (NEON) vector instructiones sustentantur, necnon offloading calculis ad GPU latus (Intel Gen9 et Xe). In architecturae cum SSE vectoris cuneos processus 4 elementorum ad tempus, usus ISPC efficit ut progressio exsecutionis acceleratio per 3 vel plura tempora consequi possit, et in architecturas cum AVX vector cuneos processus 8 elementorum ad tempus, acceleratio attingere potest 5. 6 times . Praeterea, praeter scandalum vectoris magnitudine, scalis etiam in diversis nucleis processuum exsecutioni mandatur.

Clavis rerum novarum in ISPC versio 1.26 additae:

  • ARM architecturae subsidium melius:
    • Mores vexillum "--arch=arm" mutatum est, quae nunc cum ARMv8 (32-bit) architectura coniungitur, non ARMv7 (pro ARMv8 in 64-bit modo, "--arch=aarch64" adhuc utendum est).
    • Firmamentum pro ARMv7 Cortex-a9 et Cortex-a15 processuum discontinuatum est.
    • Cortex-a55, Cortex-a78, Cortex-a510, Cortex-a520 processors, ac novus processus Apple ARM.
    • Additis novis scutis constructis: neon-i16x16 et neon-i8x32.
    • Auxilia addiderunt operationes quae ex ARM SDOT et UDOT mandatorum vectoris sunt.
    • Optimization peracta est, effectus pro ARMv8 per 13% in mediocris auctus est.
  • Novum genus scutorum aedificandi adiectum est - "genericum", quod permittit optimizing architecturae internae compilatoris et simpliciorem additionem novorum scutorum aedificandi. Idea est scuta turpia sustinere pro facultatibus hardware specificis, super quibus scuta cum optimizationibus specificis facile aedificantur. Firmamentum architecturae ARM switched ad scuta generica utens.
  • In codice generans suum ansam habuit ac munus explicans adaequatum ad redigendam magnitudinem codici consequentis in "-O1" optimizationis modo. Melior codice generationis ad munera constructa in munerum computatione_zeros et trailing_zeros, tum redeuntes structuras e functionibus et cum notitia salutaris vel onerationis cum int8/int16 generibus.
  • Auxilia dilatata pro LLVM intrinsecis, sivit specificando vexillum "-enable-llvm-intrin-cum".
  • LLVM toolchain ad versionem 18.1.8 cum inaequaliter renovatis. Macro addidit ad detegendam versionem LLVM adhibitam in ISPC.
  • Liceat applicare "__attribute" ((deprecated))" attribuere muneribus ad commonitionem imprimendi cum munus vocatur.
  • Remove scopo avx512knl-x16 constructum (KNL).
  • Adiecit "--darwin-version-min" optionem ad designandam minimam firmatam versionem scopo tribunal macOS et iOS.

Source: opennet.ru

Add a comment