āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ āĻŦāĻāĻ° āĻĒāĻ°
GCC 10.1 C++20 āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻļāĻŋāĻ¤ C++ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻ
āĻ¨ā§āĻ āĻāĻĻā§āĻāĻžāĻŦāĻ¨, āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§āĻ° C āĻāĻžāĻˇāĻžāĻ° āĻŽāĻžāĻ¨ (C2x) āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ, āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄā§ āĻ¨āĻ¤ā§āĻ¨ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĨ¤
āĻĒā§āĻ°āĻ§āĻžāĻ¨
-
ĐОйавĐģĐĩĐŊ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻŽā§āĻĄ "- āĻĢā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻžāĻāĻāĻžāĻ° ", āĻ¯āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§ āĻā§āĻĄ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻĒāĻžāĻĨ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻŦāĻžāĻšā§āĻ° āĻ¸āĻŽā§āĻĒāĻĻ-āĻ¨āĻŋāĻŦāĻŋāĻĄāĻŧ āĻāĻ¨ā§āĻ¤āĻāĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ¤ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°ā§āĨ¤ āĻŽā§āĻĄāĻāĻŋ āĻ¸āĻāĻāĻ˛āĻ¨ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻļāĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻ˛āĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĢā§āĻ°āĻŋ() āĻĢāĻžāĻāĻļāĻ¨ā§ āĻĄāĻžāĻŦāĻ˛ āĻāĻ˛, āĻĢāĻžāĻāĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§ āĻĢāĻžāĻāĻ¸, āĻĄāĻŋāĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸āĻŋāĻ āĻāĻŦāĻ āĻ¨āĻžāĻ˛ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĒāĻžāĻ¸ āĻāĻ°āĻž, āĻĢā§āĻ°āĻŋāĻĄ āĻŽā§āĻŽāĻ°āĻŋ āĻŦā§āĻ˛āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž, āĻļā§āĻ°ā§ āĻ¨āĻž āĻāĻ°āĻž āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻāĻĒā§āĻ¨āĻāĻ¸āĻāĻ¸āĻāĻ˛ āĻā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻŽā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§āĻā§āĻŦāĻŋāĻĒāĻā§āĻāĻ¨āĻ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž . - āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ¨ā§āĻ¤āĻāĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ¤ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨āĨ¤ āĻāĻāĻĒāĻŋāĻ-āĻāĻ¸āĻāĻ°āĻ (āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°āĻžāĻ˛ āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻļā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ°āĻŋāĻĒā§āĻ˛ā§āĻ¸āĻŽā§āĻ¨ā§āĻ) āĻĒāĻžāĻ¸āĻāĻŋ āĻŦāĻžāĻāĻ¨ā§āĻĄ āĻāĻžāĻāĻŽā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻāĻāĻ¨ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻāĻŦāĻ āĻ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ "-O2" āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ āĻŽā§āĻĄā§, "-āĻĢāĻžāĻāĻ¨āĻ˛āĻžāĻāĻ¨-āĻĢāĻžāĻāĻļāĻ¨" āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻ°āĻ āĻāĻŽāĻĒā§āĻ¯āĻžāĻā§āĻ āĻā§āĻĄā§āĻ° āĻĒāĻā§āĻˇā§ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ¨āĻ˛āĻžāĻāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻšāĻŋāĻāĻ°āĻŋāĻ¸ā§āĻāĻŋāĻ āĻāĻ° āĻāĻžāĻ āĻ¤ā§āĻŦāĻ°āĻžāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ¨āĻ˛āĻžāĻāĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖ āĻāĻŦāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻ˛ā§āĻ¨āĻŋāĻ āĻšāĻŋāĻāĻ°āĻŋāĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻāĻ¨ āĻĒā§āĻĨāĻ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻāĻŦāĻŋāĻˇā§āĻ¯āĻĻā§āĻŦāĻžāĻŖā§ āĻāĻ°āĻ¤ā§ āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ C++ āĻāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻžāĻāĻĒ-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻāĻĒāĻ¨āĻžāĻŽ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛āĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻāĻ¨ā§āĻ¨āĻ¤ āĻ˛āĻŋāĻā§āĻāĻŋāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ (LTO)āĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
lto-āĻĄāĻžāĻŽā§āĻĒ LTO āĻŦāĻžāĻāĻāĻā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§ āĻ āĻŦāĻā§āĻā§āĻ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°āĻ¤ā§āĨ¤ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻāĻ˛āĻāĻŋāĻ āĻĒāĻžāĻ¸āĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻāĻ¯ā§āĻā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻŽā§āĻ āĻāĻžāĻ¸ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻŦā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻāĻ°āĻŖ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ CPU āĻā§āĻ°ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ zstd āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ LTO āĻŦāĻžāĻāĻāĻā§āĻĄ āĻ¸āĻāĻā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ - āĻā§āĻĄ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛āĻŋāĻ (PGO - āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛-āĻāĻžāĻāĻĄā§āĻĄ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨) āĻāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻā§āĻĄ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻ°āĻ āĻ
āĻ¨ā§āĻā§āĻ˛ āĻā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤ āĻ¸āĻāĻāĻ˛āĻ¨ āĻāĻŦāĻ āĻāĻ°āĻŽ/āĻ āĻžāĻ¨ā§āĻĄāĻž āĻā§āĻĄ āĻĒā§āĻĨāĻā§āĻāĻ°āĻŖā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¨ā§āĻ¨āĻ¤ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖāĨ¤ āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ "
-āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛-āĻŽāĻžāĻ¨ Âģ āĻāĻāĻ¨ 4āĻāĻŋ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻĒāĻ°ā§āĻā§āĻˇ āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŦāĻ āĻāĻ°āĻ āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤ - C, C++ āĻāĻŦāĻ Fortran āĻāĻžāĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
OpenACC 2.6 , āĻ¯āĻž GPU āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻˇāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻ¯ā§āĻŽāĻ¨ NVIDIA PTX-āĻ āĻ āĻĢāĻ˛ā§āĻĄāĻŋāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ā§ˇ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻāĻĒā§āĻ¨āĻāĻŽāĻĒāĻŋ 5.0 (āĻāĻĒā§āĻ¨ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻŋāĻ), āĻ¯āĻž āĻāĻžāĻ āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋ āĻāĻŦāĻ āĻā§āĻā§āĻāĻ°āĻžāĻāĻā§āĻļāĻ¨ āĻāĻāĻ¨āĻŋāĻ (SIMD) āĻ¸āĻš āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻā§āĻ° āĻāĻŦāĻ āĻšāĻžāĻāĻŦā§āĻ°āĻŋāĻĄ (CPU+GPU/DSP) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° API āĻāĻŦāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻļāĻ°ā§āĻ¤āĻžāĻŦāĻ˛ā§, āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ āĻāĻŦāĻ āĻ˛ā§āĻĒ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž, āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻŦāĻ use_device_addr āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ā§āĻ° āĻŽāĻ¤ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ OpenMP āĻāĻŦāĻ OpenACC-āĻāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ¤ā§āĻ°ā§āĻĨ-āĻĒā§āĻ°āĻāĻ¨ā§āĻŽ (āĻĢāĻŋāĻāĻŋ) āĻāĻŦāĻ āĻĒāĻā§āĻāĻŽ-āĻĒā§āĻ°āĻāĻ¨ā§āĻŽā§āĻ° AMD Radeon (GCN) GPUs (VEGA 10/VEGA 20) āĻ¤ā§ āĻ āĻĢāĻ˛ā§āĻĄāĻŋāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ - C āĻĒāĻ°āĻŋāĻŦāĻžāĻ°ā§āĻ° āĻāĻžāĻˇāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻŦāĻž āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻāĻāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ§āĻžāĻ°āĻŖāĻāĻžāĻ°ā§ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ "āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸" āĻĢāĻžāĻāĻļāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ "āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸" āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°ā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻĨā§āĻā§ āĻā§āĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ "āĻāĻžāĻāĻĒ" āĻ ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻāĻ¨ āĻ ā§āĻ¯āĻžāĻ°ā§āĻ° āĻ¸ā§āĻŽāĻžāĻ° āĻŦāĻžāĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻ˛āĻžāĻāĻžāĻ¯āĻŧ āĻŽāĻžāĻ¨ āĻ˛ā§āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¨āĻŽā§āĻŦāĻ° āĻ¸āĻš āĻāĻāĻāĻŋ ELF āĻĢāĻžāĻāĻ˛ā§ āĻāĻŋāĻšā§āĻ¨ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ "symver" āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋāĻ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
- "-Wstring-āĻ¤ā§āĻ˛āĻ¨āĻž" ("-Wextra" āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻā§āĻˇāĻŽ) - āĻāĻŽāĻ¨ āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻ¤āĻ°ā§āĻ āĻāĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻļā§āĻ¨ā§āĻ¯āĻā§ strcmp āĻāĻŦāĻ strncmp āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻāĻāĻāĻŋ āĻ§ā§āĻ°ā§āĻŦāĻā§āĻ° āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻāĻžāĻ°āĻŖ āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ ā§āĻ¯āĻžāĻ°ā§āĻ° āĻāĻāĻžāĻ°ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻŦāĻĄāĻŧāĨ¤
- "-Wzero-length-bounds" ("-Warray-bounds" āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻā§āĻˇāĻŽ) - āĻļā§āĻ¨ā§āĻ¯ āĻĻā§āĻ°ā§āĻā§āĻ¯ā§āĻ° āĻ ā§āĻ¯āĻžāĻ°ā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻ¸āĻ¤āĻ°ā§āĻ āĻāĻ°ā§, āĻ¯āĻž āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
- â-āĻāĻ¯āĻŧāĻžāĻ°ā§-āĻŦāĻžāĻāĻ¨ā§āĻĄāĻ¸â, â-Wformat-āĻāĻāĻžāĻ°āĻĢā§āĻ˛ā§â, â-Wrestrictâ, â-Wreturn-local-addrâ āĻāĻŦāĻ â-Wstringop-overflowâ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻžāĻā§āĻ˛āĻŋ āĻ¸ā§āĻŽāĻžāĻ° āĻŦāĻžāĻāĻ°ā§āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻā§āĻ˛ā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- UCN āĻ¸ā§āĻŦāĻ°āĻ˛āĻŋāĻĒāĻŋ (\uNNNN āĻŦāĻž \UNNNNNNNN) āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻāĻ¨āĻā§āĻĄāĻŋāĻ (āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ UTF-8) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĒā§āĻ°āĻļāĻ¸ā§āĻ¤ āĻ
āĻā§āĻˇāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ:
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ const int Ī = 3;
int get_naïve_pi() {
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ Ī;
} - āĻ¸āĻŋ āĻāĻžāĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯, C2X āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¨ā§āĻ¨āĻ¤ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ
āĻāĻļ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (-std=c2x āĻāĻŦāĻ -std=gnu2x āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§): āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ "[[]]" āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ C++ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, [[gnu ::const]], [[āĻ
āĻĒā§āĻ°āĻāĻ˛āĻŋāĻ¤]], [[fallthrough]] āĻāĻŦāĻ [[maybe_unused]]āĨ¤ UTF-8 āĻ
āĻā§āĻˇāĻ° āĻ¸āĻš āĻ§ā§āĻ°ā§āĻŦāĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ "u8" āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ¨āĻ¤ā§āĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ . strftime-āĻ "%OB" āĻāĻŦāĻ "%Ob" āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ - C-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽā§āĻĄ āĻšāĻ˛ "-fno-common", āĻ¯āĻž āĻāĻŋāĻā§ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§ āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻāĻ°āĻ āĻĻāĻā§āĻˇ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
- C++ āĻāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻžāĻ¯āĻŧ 16āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŦāĻ āĻāĻĻā§āĻāĻžāĻŦāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž C++20 āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄā§ āĻŦāĻŋāĻāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¯ā§āĻ āĻāĻ°āĻž āĻā§āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ "constinit" āĻ¸āĻš
āĻāĻŦāĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ "āĻ§āĻžāĻ°āĻŖāĻž " āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯āĻž āĻāĻŽā§āĻĒāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŽāĻ¨ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ¸ā§āĻāĻā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻāĻ°ā§āĨ¤ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ āĻāĻ¨āĻĒā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻ āĻ¸āĻā§āĻāĻ¤āĻŋ āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ - G++ āĻāĻ¨āĻ¸ā§āĻā§āĻā§āĻ¸āĻĒā§āĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ§ā§āĻ°ā§āĻŦāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻĢāĻ˛ā§ āĻ¸ā§āĻˇā§āĻ āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻāĻ°āĻŖā§āĻ° āĻ¸āĻ¨āĻžāĻā§āĻ¤āĻāĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ constexpr āĻāĻŖāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋ āĻāĻ°āĻ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ "-Wmismatched-tags" āĻāĻŦāĻ "-Wredundant-tags"āĨ¤
- āĻ¨āĻ¤ā§āĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
- "-fallocation-dce" āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻĄāĻŧāĻž "āĻ¨āĻ¤ā§āĻ¨" āĻāĻŦāĻ "āĻŽā§āĻā§āĻ¨" āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§āĨ¤
- "-fprofile-partial-training" āĻā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻāĻ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻ¯ā§āĻāĻŋāĻ¤ā§ āĻĒā§āĻ°āĻļāĻŋāĻā§āĻˇāĻŖ āĻ¨ā§āĻāĨ¤
- "-āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛-āĻĒā§āĻ°āĻāĻ¨āĻ¨āĻ¯ā§āĻā§āĻ¯ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻĒā§āĻ°āĻāĻ¨āĻ¨āĻ¯ā§āĻā§āĻ¯āĻ¤āĻžāĻ° āĻ¸ā§āĻ¤āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§āĨ¤
- "-fprofile-prefix-path" āĻĒā§āĻĨāĻ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻŦā§āĻ¸ āĻ¸ā§āĻ°ā§āĻ¸ āĻŦāĻŋāĻ˛ā§āĻĄ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ ("-fprofile-generate=profile_dir" āĻāĻŦāĻ "-fprofile-use=profile_dir" āĻāĻ° āĻāĻ¨ā§āĻ¯)āĨ¤
- āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ¤āĻ°ā§āĻā§āĻāĻ°āĻŖ āĻĒāĻžāĻ ā§āĻ¯ā§, āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ URL āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ "-fdiagnostics-urls" āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
- āĻĒā§āĻ°āĻŋāĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻ
āĻĒāĻžāĻ°ā§āĻāĻ° āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ "
__has_builtin ", āĻ¯āĻž āĻŦāĻŋāĻ˛ā§āĻ-āĻāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ - ISO/IEC TS 18661 āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ°āĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻ˛ā§āĻ-āĻāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ "__builtin_roundeven" āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž "āĻ°āĻžāĻāĻ¨ā§āĻĄ" āĻāĻ° āĻŽāĻ¤ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ°āĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻ āĻāĻļ 0.5 āĻāĻ° āĻŦā§āĻļāĻŋ (āĻŦāĻĄāĻŧ āĻŽāĻžāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤), 0.5 āĻāĻ° āĻāĻŽ - āĻ¨āĻŋāĻā§ (āĻļā§āĻ¨ā§āĻ¯ āĻĨā§āĻā§), āĻāĻŦāĻ 0.5 āĻāĻ° āĻ¸āĻŽāĻžāĻ¨ - āĻāĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ āĻā§āĻā§āĻ° āĻ¸āĻŽāĻ¤āĻž āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĨ¤
- AArch64 āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯, SVE2 āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ SVE (āĻ¸ā§āĻā§āĻ˛ā§āĻŦāĻ˛ āĻā§āĻā§āĻāĻ° āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨) āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ SVE ACLE āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻŦāĻ āĻā§āĻā§āĻāĻ°āĻžāĻāĻā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ LSE (āĻŦāĻĄāĻŧ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨) āĻāĻŦāĻ TME (āĻā§āĻ°āĻžāĻ¨āĻā§āĻ¯āĻžāĻāĻļāĻ¨āĻžāĻ˛ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨) āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ Armv8.5-A āĻāĻŦāĻ Armv8.6-A āĻ¤ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ, āĻ°āĻžāĻāĻ¨ā§āĻĄāĻŋāĻ, āĻŽā§āĻŽāĻ°āĻŋ āĻā§āĻ¯āĻžāĻ āĻŦāĻžāĻāĻ¨ā§āĻĄāĻŋāĻ āĻāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ°āĻ¯āĻŧā§āĻā§,
bfloat16 āĻāĻŦāĻ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ āĻā§āĻŖāĨ¤ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻāĻ°ā§āĻŽ āĻāĻ°ā§āĻā§āĻā§āĻ¸-A77,
āĻāĻ°ā§āĻŽ āĻāĻ°ā§āĻā§āĻā§āĻ¸-A76AE,
āĻāĻ°ā§āĻŽ āĻāĻ°ā§āĻā§āĻā§āĻ¸-A65,
āĻāĻ°ā§āĻŽ āĻāĻ°ā§āĻā§āĻā§āĻ¸-A65AE,
āĻāĻ°ā§āĻŽ āĻāĻ°ā§āĻā§āĻā§āĻ¸-A34 āĻāĻŦāĻ
Marvell ThunderX3. - ARM32 āĻāĻ° āĻāĻ¨ā§āĻ¯ ABI FDPIC (64-āĻŦāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°) āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ 64-āĻŦāĻŋāĻ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻŦāĻ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖāĨ¤ CPU āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻāĻ°ā§āĻŽ āĻāĻ°ā§āĻā§āĻā§āĻ¸-A77,
āĻāĻ°ā§āĻŽ āĻāĻ°ā§āĻā§āĻā§āĻ¸-A76AE āĻāĻŦāĻ
āĻāĻ°ā§āĻŽ āĻāĻ°ā§āĻā§āĻā§āĻ¸-M35PāĨ¤ ACLE āĻĄā§āĻāĻž āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻŋāĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨, 32-āĻŦāĻŋāĻ SIMD, 16-āĻŦāĻŋāĻ āĻā§āĻŖāĻ¨, āĻ˛ā§āĻ¯āĻžāĻ āĻāĻžāĻŖāĻŋāĻ¤āĻŋāĻ, āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ DSP āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ āĻ¸āĻšāĨ¤ ACLE CDE (āĻāĻžāĻ¸ā§āĻāĻŽ āĻĄā§āĻāĻžāĻĒāĻĨ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨) āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ - GCN āĻŽāĻžāĻāĻā§āĻ°ā§āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ AMD GPU-āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻ¨ā§āĻ¨āĻ¤ āĻā§āĻĄ āĻā§āĻ¨āĻžāĻ°ā§āĻļāĻ¨ āĻāĻŦāĻ āĻā§āĻā§āĻāĻ°āĻžāĻāĻā§āĻļāĻ¨āĨ¤
- AVR āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ XMEGA-āĻāĻ° āĻŽāĻ¤ā§ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
ATtiny202, ATtiny204, ATtiny402, ATtiny404, ATtiny406, ATtiny804, ATtiny806, ATtiny807, ATtiny1604, ATtiny1606, ATtiny1607, ATmega808, ATmega809,ATmega1608 1609, ATmega3208, ATmega3209 4808, ATmega4809 āĻāĻŦāĻ ATmegaXNUMXāĨ¤ - IA-32/x86-64 āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ Intel ENQCMD āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻž āĻ¸ā§āĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ (-menqcmd) āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ Intel Cooperlake (-march=cooperlake, AVX512BF16 ISA āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤) āĻāĻŦāĻ Tigerlake (-march=tigerlake, MOVDIRI, MOVDIR64B āĻāĻŦāĻ AVX512VP2INTERSECT ISA āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤) CPU-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- HSA āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻŋāĻ¨ā§āĻ¨āĻ§āĻ°ā§āĻŽā§ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ HSAIL (Heterogeneous System Architecture Intermediate Language) āĻāĻ° āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĻā§ āĻ āĻŦāĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻĒā§āĻ°āĻāĻžāĻļā§ āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru