αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžˆαž»αžαž…αž„αž€αŸ’αžšαž„ GCC 10

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž”αžΆαž“αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αŸ” αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„αžŠαŸ„αž™αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒ GCC αŸ§αžŠαŸ‚αž›αž‡αžΆαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž›αžΎαž€αžŠαŸ†αž”αžΌαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžΆαžαžΆ GCC 10.x αžαŸ’αž˜αžΈαŸ” αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž’αž“αž»αž›αŸ„αž˜β€‹αžαžΆαž˜ αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžαŸ’αž˜αžΈαŸ” αž›αŸαžαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αž€αŸ†αžŽαŸ‚ 10.0 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž αžΎαž™αž˜αž·αž“αž™αžΌαžšαž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž˜αž»αž“αž–αŸαž›αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ GCC 10.1 សអខអ GCC 11.0 αž”αžΆαž“αž•αŸ’αžαžΆαž…αŸ‹αž…αŸαž‰αž αžΎαž™ αžŠαŸ„αž™αžˆαžšαž›αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‚αžΊ GCC 11.1 αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αŸ”

GCC 10.1 αž‚αžΊαž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž—αžΆαžŸαžΆ C ++ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C ++ 20 αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž—αžΆαžŸαžΆ C αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αž (C2x) αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαŸ’αž˜αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ αž“αž·αž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαŸ” αžšαž”αŸ€αž”αžœαž·αž—αžΆαž‚αž‹αž·αžαž·αžœαž“αŸ’αž. αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž“αŸƒαž€αžΆαžšαžšαŸ€αž”αž…αŸ†αžŸαžΆαžαžΆαžαŸ’αž˜αžΈαž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž”αžΆαž“αž•αŸ’αž‘αŸαžšαžƒαŸ’αž›αžΆαŸ†αž„αž–αžΈ SVN αž‘αŸ… Git αŸ”

αžŸαŸ†αžαžΆαž“αŸ‹ αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš:

  • αž”αž“αŸ’αžαŸ‚αž˜ αžšαž”αŸ€αž”αž–αž·αžŸαŸ„αž’αž“αŸαž“αŸƒαž€αžΆαžšαžœαž·αž—αžΆαž‚αž‹αž·αžαž·αžœαž“αŸ’αž "- αž’αŸ’αž“αž€αžœαž·αž—αžΆαž‚β€œ αžŠαŸ‚αž›αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαžœαž·αž—αžΆαž‚αž’αž“αŸ’αžαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„αž›αžΎαž’αž“αž’αžΆαž“αž“αŸƒαž•αŸ’αž›αžΌαžœαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠ αž“αž·αž„αž›αŸ†αž αžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™αŸ” αžšαž”αŸ€αž”αž“αŸαŸ‡αž˜αžΆαž“αžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž€αžƒαžΎαž‰αž”αž‰αŸ’αž αžΆαž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž…αž„αž€αŸ’αžšαž„ αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž αŸ…αž–αžΈαžšαžŠαž„αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αž»αžαž„αžΆαžš free() αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ†αž”αž“αŸ‹αž˜αŸαž˜αŸ‰αžΌαžšαžΈαž˜αž½αž™ αž€αžΆαžšαž›αŸαž…αž’αŸ’αž›αžΆαž™αž―αž€αžŸαžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆ αž€αžΆαžšαž–αž“αŸ’αž™αžΆαžš αž“αž·αž„αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž‘αŸ’αžšαž“αž·αž…αž‘αž‘αŸ αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αž›αž»αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αžŠαŸ„αŸ‡αž›αŸ‚αž„ αžŠαŸ„αž™αž”αŸ’αžšαžΎαžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αŸ”αž›αŸ” αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αŸ€αž”αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΌαžŠ OpenSSL αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžšαž½αž…αž αžΎαž™ αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž‚αŸ’αžšαŸ„αŸ‡αžαŸ’αž“αžΆαž€αŸ‹.
  • αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž’αž“αŸ’αžαžšαž“αžΈαžαž·αžœαž·αž’αžΈαŸ” αž”αŸαžŽαŸ’αžŽ IPA-SRA (αž’αž“αŸ’αžαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΈαžαž·αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ Scalar Shared Replacement) αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž‘αžΎαž„αžœαž·αž‰αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž–αŸαž›αž…αž„ αž αžΎαž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžšαž”αžŸαŸ‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αž€αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž”αžΆαž“αž‚αžŽαž“αžΆ αž“αž·αž„αžαŸ’αžšαž‘αž”αŸ‹αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž˜αž·αž“αž”αŸ’αžšαžΎαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– "-O2" αž‡αž˜αŸ’αžšαžΎαžŸ "-finline-functions" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž‘αžΎαž„αžœαž·αž‰αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αž‚αŸ’αžšαŸ„αŸ‡αž€αžΌαžŠαž”αž„αŸ’αžšαž½αž˜αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž›αžΎαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαŸ” αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹ heuristic αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž˜αž»αžαž„αžΆαžšαž€αŸ’αž“αž»αž„αž‡αž½αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž“αŸ’αž›αžΏαž“αŸ” αž€αžΆαžšαž–αž„αŸ’αžšαžΈαž€β€‹αž€αŸ’αž“αž»αž„β€‹αž‡αž½αžšβ€‹αž˜αž»αž αž“αž·αž„β€‹αž˜αž»αžαž„αžΆαžšβ€‹αž€αŸ’αž›αžΌαž“β€‹αž’αžΆαž…β€‹αž”αŸ’αžšαžΎβ€‹αž–αŸαžαŸŒαž˜αžΆαž“β€‹αž’αŸ†αž–αžΈβ€‹αž‡αž½αžšβ€‹αžαž˜αŸ’αž›αŸƒβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž‘αžŸαŸ’αžŸαž“αŸαž‘αžΆαž™β€‹αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–β€‹αž“αŸƒβ€‹αž€αžΆαžšαž”αŸ†αž”αŸ’αž›αŸ‚αž„β€‹αž”αž»αž‚αŸ’αž‚αž›αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ C++ αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαž€αžΆαžšαž‰αŸ‚αž€αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž”αŸ’αžšαž—αŸαž‘αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αŸ”
  • αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž–αŸαž›αžœαŸαž›αžΆαž“αŸƒαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹ (LTO) αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ’αž˜αžΈαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αŸ” αž”αŸ„αŸ‡αž…αŸ„αž› αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž―αž€αžŸαžΆαžšαžœαžαŸ’αžαž»αž‡αžΆαž˜αž½αž™ LTO bytecode αŸ” αž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž› LTO αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αŸ†αžŽαžαŸ‹αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž”αž„αŸ’αž€αžΎαžαž—αžΆαžšαž€αž·αž…αŸ’αž… αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž–αž½αž€αž‚αŸαž˜αž·αž“αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž”αžΆαž“ αžŸαžΌαž˜αž”αŸ’αžšαžΎαž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž…αŸ†αž“αž½αž“αžŸαŸ’αž“αžΌαž›αžŸαŸŠαžΈαž—αžΈαž™αžΌαž‡αžΆαž€αžαŸ’αžαžΆαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž αžΆαž”αŸ‹ LTO bytecode αžŠαŸ„αž™αž”αŸ’αžšαžΎ zstd algorithm αŸ”
  • αž™αž“αŸ’αžαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž‘αž˜αŸ’αžšαž„αŸ‹αž€αžΌαžŠ (PGO - αž€αžΆαžšαž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαžαžΆαž˜αž‘αž˜αŸ’αžšαž„αŸ‹αžŽαŸ‚αž“αžΆαŸ†) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„ αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαžŠαŸαž›αŸ’αž’αž”αŸ’αžšαžŸαžΎαžšαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαžœαž·αž—αžΆαž‚αž’αŸ†αž–αžΈαž›αž€αŸ’αžαžŽαŸˆαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαŸ” αž€αžΆαžšαžαŸ‚αžšαž€αŸ’αžŸαžΆαž‘αž˜αŸ’αžšαž„αŸ‹αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž…αž„αž€αŸ’αžšαž„ αž“αž·αž„αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αž€αžΌαžŠαž€αŸ’αžαŸ…/αžαŸ’αžšαž‡αžΆαž€αŸ‹αŸ” αžαžΆαž˜αžšαž™αŸˆαž‡αž˜αŸ’αžšαžΎαžŸ "-fprofile-αžαž˜αŸ’αž›αŸƒΒ» αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αžΆαž…αžαžΆαž˜αžŠαžΆαž“αžαž˜αŸ’αž›αŸƒαž‘αž˜αŸ’αžšαž„αŸ‹αžšαž αžΌαžαžŠαž›αŸ‹ 4 αž§αž‘αžΆαž αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžŠαŸ„αž™αž”αŸ’αžšαž™αŸ„αž› αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž‘αž˜αŸ’αžšαž„αŸ‹αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαŸ”
  • αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆ C, C++ αž“αž·αž„ Fortran OpenACC 2.6αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž·αž‘αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎ GPUs αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž―αž€αž‘αŸαžŸαžŠαžΌαž…αž‡αžΆ NVIDIA PTX αž‡αžΆαžŠαžΎαž˜αŸ” αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž‚αžΊαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž–αŸαž‰αž›αŸαž‰ αž’αžΌαž—αžΈαž’αŸαžŸ αŸ₯.០ (Open Multi-Processing) αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹ API αž“αž·αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αž αž»αžŸαŸ’αž“αžΌαž› αž“αž·αž„αž€αžΌαž“αž€αžΆαžαŸ‹ (CPU + GPU/DSP) αžŠαŸ‚αž›αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžšαž½αž˜ αž“αž·αž„αžœαŸ‰αž·αž…αž‘αŸαžš (ស៊ីមឌី)αŸ” αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŠαŸ‚αž›αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŠαžΌαž…αž‡αžΆαž›αž€αŸ’αžαžαžŽαŸ’αžŒαž…αž»αž„αž€αŸ’αžšαŸ„αž™αž―αž€αž‡αž“ αž€αžΆαžšαžŸαŸ’αž€αŸαž“ αž“αž·αž„αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ† αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰ αž“αž·αž„αž€αž“αŸ’αžŸαŸ„αž˜ use_device_addr αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ OpenMP αž“αž·αž„ OpenACC αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš offloading αž“αŸ…αž›αžΎ GPUs αž‡αŸ†αž“αžΆαž“αŸ‹αž‘αžΈ 10 (Fiji) αž“αž·αž„ AMD Radeon (GCN) αž‡αŸ†αž“αžΆαž“αŸ‹αž‘αžΈ 20 (VEGA XNUMX/VEGA XNUMX)αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆαž“αŸƒαž‚αŸ’αžšαž½αžŸαžΆαžš C αž˜αž»αžαž„αžΆαžš "αž…αžΌαž›αž”αŸ’αžšαžΎ" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžŠαžΎαž˜αŸ’αž”αžΈαž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž€αžΆαžšαž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹αž˜αž»αžαž„αžΆαžšαž‘αŸ…αž€αžΆαž“αŸ‹αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αžŠαŸ„αž™αž―αž€αžŸαžΆαžšαž™αŸ„αž„ αž¬αž‘αŸ’αžšαž“αž·αž… αž“αž·αž„αžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž‡αžΆαž”αŸ‹αžœαžαŸ’αžαž»αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž…αŸ†αž“αž½αž“αž‚αžαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž‘αŸ†αž αŸ†αž“αŸƒαžœαžαŸ’αžαž»αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™ "αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎ" αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆ "αž”αŸ’αžšαž—αŸαž‘" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αž±αŸ’αž™αžƒαžΎαž‰αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž–αžΈαž˜αž»αžαž„αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ αž§αž‘αžΆαž αžšαžŽαŸ αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαžαž˜αŸ’αž›αŸƒαž‘αŸ…αžαŸ†αž”αž“αŸ‹αž˜αž½αž™αž“αŸ…αžαžΆαž„αž€αŸ’αžšαŸ…αž–αŸ’αžšαŸ†αžŠαŸ‚αž“αž“αŸƒαž’αžΆαžšαŸαŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž•αž„αžŠαŸ‚αžšαž“αžΌαžœαž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆ "symver" αžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž‡αžΆαž”αŸ‹αž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš ELF αžŠαŸ‚αž›αž˜αžΆαž“αž›αŸαžαž€αŸ†αžŽαŸ‚αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αŸ”
  • αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“αžαŸ’αž˜αžΈαž”αž“αŸ’αžαŸ‚αž˜αŸ–
    • "-Wstring-compare" (αž”αžΆαž“αž”αžΎαž€αž‡αžΆαž˜αž½αž™ "-Wextra") - αž–αŸ’αžšαž˜αžΆαž“αž’αŸ†αž–αžΈαžœαžαŸ’αžαž˜αžΆαž“αž“αŸƒαž€αž“αŸ’αžŸαŸ„αž˜αžŠαŸ‚αž›αžŸαžΌαž“αŸ’αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž αŸ…αž˜αž»αžαž„αžΆαžš strcmp αž“αž·αž„ strncmp αžŠαŸ‚αž›αžŸαŸ’αž˜αžΎαž“αžΉαž„αžαŸαžšαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž”αŸ’αžšαžœαŸ‚αž„ αž“αŸƒαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž˜αž½αž™αž‚αžΊαž’αŸ†αž‡αžΆαž„αž‘αŸ†αž αŸ†αž“αŸƒαž’αžΆαžšαŸαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž‘αžΈαž–αžΈαžšαŸ”
    • "-Wzero-length-bounds" (αž”αžΆαž“αž”αžΎαž€αž‡αžΆαž˜αž½αž™ "-Warray-bounds") - αž–αŸ’αžšαž˜αžΆαž“αž’αŸ†αž–αžΈαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž’αžΆαžαž»αž’αžΆαžšαŸαž“αŸƒαž”αŸ’αžšαžœαŸ‚αž„αžŸαžΌαž“αŸ’αž™ αžŠαŸ‚αž›αž’αžΆαž…αž“αžΆαŸ†αž‘αŸ…αžŠαž›αŸ‹αž€αžΆαžšαžŸαžšαžŸαŸαžšαž‡αžΆαž“αŸ‹αž›αžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”
    • αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“ "-Warray-bounds", "-Wformat-overflow", "-Wrestrict", "-Wreturn-local-addr" αž“αž·αž„ "-Wstringop-overflow" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αžŠαžΎαž˜αŸ’αž”αžΈαž–αž„αŸ’αžšαžΈαž€αž…αŸ†αž“αž½αž“αž“αŸƒαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž€αŸ’αžšαŸ…αž–αŸ’αžšαŸ†αžŠαŸ‚αž“αŸ” αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αŸ”
  • αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αžΌαžœαžαž½αž’αž€αŸ’αžŸαžšαž’αŸ†αž‘αžΌαž›αžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαž’αŸŠαž·αž“αž€αžΌαžŠαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ (UTF-8 αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜) αž‡αžΆαž‡αžΆαž„αž€αžΆαžšαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ UCN (\uNNNN ឬ \UNNNNNNNN) αŸ” αž§αž‘αžΆαž αžšαžŽαŸ:

    static const int Ο€ = 3;
    int get_naΓ―ve_pi() {
    αžαŸ’αžšαž‘αž”αŸ‹Ο€;
    }

  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆ C αž•αŸ’αž“αŸ‚αž€αž“αŸƒαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžαŸ’αž˜αžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C2X αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž (αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžŠαŸ„αž™αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ -std=c2x αž“αž·αž„ -std=gnu2x)αŸ– αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ "[[]]" αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαžŠαžΌαž…αž“αŸ…αž€αŸ’αž“αž»αž„ C++ (αž§αž‘αžΆαž αžšαžŽαŸ [[gnu ::const]], [[αž”αžŠαž·αžŸαŸαž’]], [[fallthrough]] αž“αž·αž„ [[maybe_unused]] αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ "u8" αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžαŸαžšαž‡αžΆαž˜αž½αž™αžαž½αž’αž€αŸ’αžŸαžš UTF-8 αŸ”
    αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž˜αŸ‰αžΆαž€αŸ’αžšαžΌαžαŸ’αž˜αžΈαž‘αŸ… . αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‡αŸ†αž“αž½αžŸ "%OB" αž“αž·αž„ "%Ob" αž‘αŸ… strftime αŸ”

  • αžšαž”αŸ€αž”αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ C αž‚αžΊ "-fno-common" αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž…αžΌαž›αž”αŸ’αžšαžΎαž’αžαŸαžšαžŸαž€αž›αž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž„αž˜αž»αž“αž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ C++ αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžαŸ’αž˜αžΈαž”αŸ’αžšαž αŸ‚αž› 16 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš C++ 20αŸ” αžšαž½αž˜αž‘αžΆαŸ†αž„αž–αžΆαž€αŸ’αž™αž‚αž“αŸ’αž›αžΉαŸ‡αž”αž“αŸ’αžαŸ‚αž˜ "constinit"
    αž“αž·αž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž‚αŸ†αžšαžΌαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž "αž‚αŸ†αž“αž·αž"αŸ” αž‚αŸ†αž“αž·αžαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‚αŸ†αžšαžΌαžŠαŸ‚αž›αž“αŸ…αž–αŸαž›αž…αž„αž€αŸ’αžšαž„αž€αŸ†αžŽαžαŸ‹αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž”αžΆαž“αž‡αžΆαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‚αŸ†αžšαžΌαŸ” αž‚αŸ„αž›αž‚αŸ†αž“αž·αžαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ€αžŸαžœαžΆαž„αž—αžΆαž–αž˜αž·αž“αžŸαŸŠαžΈαž‚αŸ’αž“αžΆαž“αŸƒαž‘αžΌαž‡αžΈαžαž›αžšαžœαžΆαž„αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž“αŸƒαž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αžšαžΌ αž“αž·αž„αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸƒαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž”αž‰αŸ’αž…αžΌαž›αŸ”

  • G++ αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαžšαž€αžƒαžΎαž‰αž“αŸƒαž₯αžšαž·αž™αžΆαž”αž‘αžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž˜αž€αž–αžΈαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžœαžαŸ’αžαž»αžαŸαžšαžαžΆαž˜αžšαž™αŸˆ constexpr αŸ” αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ„αž™αž’αŸ’αž“αž€αž…αž„αž€αŸ’αžšαž„αž“αŸ…αž–αŸαž›αž‚αžŽαž“αžΆ constexpr αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“αžαŸ’αž˜αžΈ "-Wmismatched-tags" αž“αž·αž„ "-Wredundant-tags" αŸ”
  • αž‡αž˜αŸ’αžšαžΎαžŸαž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αŸ–
    • "-fallocation-dce" αžŠαžΎαž˜αŸ’αž”αžΈαž›αž»αž”αž‚αžΌαžŠαŸ‚αž›αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αŸƒ "αžαŸ’αž˜αžΈ" αž“αž·αž„ "αž›αž»αž”" αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαŸ”
    • "-fprofile-partial-training" αžŠαžΎαž˜αŸ’αž”αžΈαž”αž·αž‘αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‘αŸ†αž αŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΌαžŠαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž›αŸ”
    • "-fprofile-reproducible αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž˜αŸ’αžšαž·αžαž“αŸƒαž€αžΆαžšαž”αž“αŸ’αžαž–αžΌαž‡αž‘αž˜αŸ’αžšαž„αŸ‹αŸ”
    • "-fprofile-prefix-path" αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžαžαž”αŸ’αžšαž—αž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž‘αž˜αŸ’αžšαž„αŸ‹αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ "-fprofile-generate=profile_dir" αž“αž·αž„ "-fprofile-use=profile_dir") αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž–αŸ’αžšαž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹ αžαŸ†αžŽαžαŸ’αž–αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž―αž€αžŸαžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” αž€αžΆαžšαž‡αŸ†αž“αž½αžŸ URL αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‡αž˜αŸ’αžšαžΎαžŸ "-fdiagnostics-urls" αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž»αž“ "__αž˜αžΆαž“_αžŸαžΆαž„αžŸαž„αŸ‹" αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αžαŸ’αž˜αžΈ "__builtin_roundeven" αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž˜αž»αžαž„αžΆαžšαž”αž„αŸ’αž‚αžαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž”αžŸαŸ‹ ISO/IEC TS 18661 αžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„ "αž‡αž»αŸ†" αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž•αŸ’αž“αŸ‚αž€αž”αž„αŸ’αž‚αžαŸ‹αž’αŸ†αž‡αžΆαž„ 0.5 αž‘αžΎαž„αž‘αŸ… (αžŠαž›αŸ‹αžαž˜αŸ’αž›αŸƒαž’αŸ†αž‡αžΆαž„) αžαž·αž…αž‡αžΆαž„ 0.5 - αž…αž»αŸ‡αž€αŸ’αžšαŸ„αž˜ (αžŠαž›αŸ‹αžŸαžΌαž“αŸ’αž™) αž“αž·αž„αžŸαŸ’αž˜αžΎ ០.αŸ₯ - αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž–αžΈαž—αžΆαž–αžŸαŸ’αž˜αžΎαž‚αŸ’αž“αžΆαž“αŸƒαžαŸ’αž‘αž„αŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ”
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ AArch64 αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ SVE2 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αž αžΎαž™αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ SVE (Scalable Vector Extension) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„ αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž»αžαž„αžΆαžš αž“αž·αž„αž”αŸ’αžšαž—αŸαž‘ SVE ACLE αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžœαŸ‰αž·αž…αž‘αŸαžšαŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ LSE (αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸ†) αž“αž·αž„ TME (αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžαŸ’αž˜αžΈαžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„ Armv8.5-A αž“αž·αž„ Armv8.6-A αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž›αŸαžαž…αŸƒαžŠαž“αŸ’αž™ αž€αžΆαžšαž”αž„αŸ’αž‚αžαŸ‹ αž€αžΆαžšαž…αž„αžŸαŸ’αž›αžΆαž€αž˜αŸαž˜αŸ‰αžΌαžšαžΈαŸ”
    bfloat16 αž“αž·αž„αž‚αž»αžŽαž˜αŸ‰αžΆαž‘αŸ’αžšαžΈαžŸαŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš
    Arm Cortex-A77,
    Arm Cortex-A76AE,
    Arm Cortex-A65,
    Arm Cortex-A65AE,
    Arm Cortex-A34 αž“αž·αž„
    Marvell ThunderX3.

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ ABI FDPIC (αž‘αŸ’αžšαž“αž·αž…αž˜αž»αžαž„αžΆαžš 32 αž”αŸŠαžΈαž) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ ARM64 αŸ” αžšαž…αž“αžΆαž‘αžΎαž„αžœαž·αž‰ αž“αž·αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž…αŸ†αž“αž½αž“αž‚αžαŸ‹ 64 αž”αŸŠαžΈαžαŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαŸŠαžΈαž—αžΈαž™αžΌ
    Arm Cortex-A77,
    Arm Cortex-A76AE αž“αž·αž„
    Arm Cortex-M35P αŸ” αž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαž…αž€αŸ’αžαžΈαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹ ACLE αžšαž½αž˜αž‘αžΆαŸ†αž„ SIMD 32 αž”αŸŠαžΈαž αž€αžΆαžšαž‚αž»αžŽ 16 αž”αŸŠαžΈαž αž›αŸαžαž“αž–αŸ’αžœαž“αŸ’αž’ αž“αž·αž„ αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ DSP αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‡αŸ†αž“αž½αž™αž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† ACLE CDE (αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“)αŸ”

  • αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠ αž“αž·αž„αžœαŸ‰αž·αž…αž‘αŸαžšαž˜αžΆαž“αž—αžΆαž–αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ AMD GPUs αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž˜αžΈαž€αŸ’αžšαžΌαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ GCN αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαžŠαžΌαž… XMEGA αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ AVR
    ATtiny202, ATtiny204, ATtiny402, ATtiny404, ATtiny406, ATtiny804, ATtiny806, ATtiny807, ATtiny1604, ATtiny1606, ATtiny1607, ATmega808, ATmega809 ATmega1608 1609, ATmega3208 αž“αž·αž„ ATmega3209αŸ”

  • αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Intel ENQCMD αžαŸ’αž˜αžΈ (-menqcmd) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ IA-32/x86-64 αŸ” αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Intel Cooperlake (-march=cooperlake αžšαž½αž˜αž˜αžΆαž“αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ AVX512BF16 ISA) αž“αž·αž„ Tigerlake (-march=tigerlake αžšαž½αž˜αž˜αžΆαž“ αžŸαŸŠαžΈαž—αžΈαž™αžΌ MOVDIRI, MOVDIR64B αž“αž·αž„ AVX512VP2INTERSECT ISA) αžŸαŸŠαžΈαž—αžΈαž™αžΌαŸ”
  • αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒ HSAIL (Heterogeneous System Architecture Intermediate Language) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ HSA αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžŠαž·αžŸαŸαž’ αž αžΎαž™αž‘αŸ†αž“αž„αž‡αžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž™αž€αž…αŸαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹