Intel-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ ISPC 1.31 แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ C แƒ”แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก SPMD แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒ—

Intel-แƒ›แƒ แƒ’แƒแƒ›แƒแƒแƒฅแƒ•แƒ”แƒงแƒœแƒ ISPC 1.31 (Implicit SPMD Program Compiler), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜แƒ C แƒ™แƒแƒ“แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก SPMD (Single Program, Multiple Data) แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ”แƒ’แƒ–แƒ”แƒ›แƒžแƒšแƒแƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ C++-แƒจแƒ˜ แƒ“แƒ แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ BSD แƒšแƒ˜แƒชแƒ”แƒœแƒ–แƒ˜แƒ˜แƒ—. แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก Linux, Windows, macOS แƒ“แƒ FreeBSD.

C แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜ SPMD แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒแƒ“ CPU-แƒกแƒ แƒ“แƒ GPU-แƒก แƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒš SIMD แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒ— แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— SIMD แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ“แƒแƒœแƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒแƒ“แƒจแƒ˜ SIMD แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒจแƒ™แƒแƒ แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒ˜แƒ–แƒ˜แƒ แƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ C แƒ”แƒœแƒ˜แƒก แƒœแƒแƒชแƒœแƒแƒ‘แƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒ“แƒ แƒ˜แƒ“แƒ˜แƒแƒ›แƒ”แƒ‘แƒ˜ - 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 (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.

แƒฌแƒงแƒแƒ แƒ: opennet.ru

แƒจแƒ”แƒ˜แƒซแƒ˜แƒœแƒ”แƒ— แƒกแƒแƒ˜แƒ›แƒ”แƒ“แƒ แƒฐแƒแƒกแƒขแƒ˜แƒœแƒ’แƒ˜ DDoS แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒ›แƒฅแƒแƒœแƒ” แƒกแƒแƒ˜แƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, VPS VDS แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก ๐Ÿ”ฅ แƒจแƒ”แƒ˜แƒซแƒ˜แƒœแƒ”แƒ— แƒกแƒแƒ˜แƒ›แƒ”แƒ“แƒ แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ˜แƒก แƒฐแƒแƒกแƒขแƒ˜แƒœแƒ’แƒ˜ DDoS แƒ“แƒแƒชแƒ•แƒ˜แƒ—, VPS VDS แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜ | ProHoster