Выпуск кампілятара ISPC 1.31, які развіваецца Intel для мовы Сі з пашырэннямі SPMD

Кампанія Intel апублікавала кампілятар ISPC 1.31 (Implicit SPMD Program Compiler), прызначаны для зборкі кода на мове Сі з пашырэннямі раўналежнага праграмавання SPMD (Single Program, Multiple Data), якія дазваляюць дамагчыся раўналежнага выканання некалькіх асобнікаў адной праграмы з рознымі наборамі ўваходных дадзеных. Код праекту напісаны на мове З++ і распаўсюджваецца пад ліцэнзіяй BSD. Падтрымліваецца праца ў Linux, Windows, macOS і FreeBSD.

Сі-праграмы з пашырэннямі SPMD кампілююцца для выканання на вылічальных блоках SIMD, якія прадстаўляюцца CPU і GPU, што дазваляе задзейнічаць механізмы вектарызацыі SIMD без нізкаўзроўневых аптымізацый і відавочнага ўжывання ў кодзе SIMD-інструкцый. Для напісання распаралельваных функцый выкарыстоўваецца звыклы сінтаксіс і ідыёмы мовы Сі - SPMD-функцыі напроста ўзаемадзейнічаюць з функцыямі і структурамі, напісанымі на C/C++. Для адладкі праграм могуць прымяняцца існуючыя адладчыкі.

У якасці бэкенда для генерацыі кода і аптымізацыі ў ISPC выкарыстоўваецца інфраструктура LLVM. Падтрымліваюцца вектарныя інструкцыі x86 (SSE2, SSE4, AVX, AVX2, AVX512) і ARM (NEON), а таксама вынас вылічэнняў на бок GPU (Intel Gen9 і Xe). На архітэктурах з вектарнымі блокамі SSE, якія апрацоўваюць па 4 элемента за раз, ужыванне ISPC дае магчымасць дамагчыся паскарэнні выканання праграмы ў 3 ці больш разоў, а на архітэктурах з вектарнымі блокамі AVX, якія апрацоўваюць па 8 элементаў за раз, паскарэнне можа дасягаць 5-6 раз. . Пры гэтым апроч памеру вектарнага блока, маштабаванне таксама забяспечваецца за рахунак выканання на розных працэсарных ядрах.

Асноўныя навіны, дададзеныя ў версіі 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. 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.2n10.2.
  • Дададзены збалансаваны («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.

Крыніца: opennet.ru

Купіць надзейны хостынг для сайтаў з абаронай ад DDoS, VPS VDS серверы 🔥 Купіць надзейны хостынг для сайтаў з абаронай ад DDoS, VPS VDS серверы | ProHoster