t1ha = рдлрд╛рд╕реНрдЯ рдкреЙрдЬрд┐рдЯрд┐рд╡ рд╣реИрд╢

рд╕рднреНрдп рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдкреЛрд░реНрдЯреЗрдмрд▓ 64-рдмрд┐рдЯ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред


рдпрд╣ рд▓рд┐рдпреЛрдирд┐рдж рдпреВрд░реАрд╡ рдХреЗ рдореВрд▓ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред


рдПрдХ рдЕрд╕реНрд╡реАрдХрд░рдг рдХреЗ рдмрдЬрд╛рдп

рдореИрдВ рдЕрдкрдиреЗ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЧреБрдгреЛрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рд╡рд┐рд╕реНрддреГрдд рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛, рдФрд░ рдорд╛рди рд▓реВрдВрдЧрд╛ рдХрд┐ рдкрд╛рдардХ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рдЬреНрдЮрд╛рди рд╣реИ рдпрд╛ рд╡рд╣ рдЗрд╕ рдкрд░ рдкрдврд╝реЗрдЧрд╛ ред рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдЧреИрд░-рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ (рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ) рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреНрдпрдерд╛ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПред


Banalities

рд╣реИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ (рддреЗрдЬрд╝) рдбреЗрдЯрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдиреНрдпреВрдирддрдо рд╕реНрддрд░ рдХреА рд╣реИрд╢рд┐рдВрдЧ рдЧреБрдгрд╡рддреНрддрд╛ рднреА рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдБ рд╢рдмреНрдж "рдЧреБрдгрд╡рддреНрддрд╛" рдХрд╛ рдЕрд░реНрде рд╣реИ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛" (рд╕реНрдЯреЛрдЪреИрд╕реНрдЯрд┐рд╕рд┐рдЯреА) рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ред рдЯрдХрд░рд╛рд╡ рдпрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдХреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЙрддреНрдкрд╛рджрди рдХреЗ рдкреНрд░рддрд┐рд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рдХрдо рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдереЛрдбрд╝рд╛ рдФрд░ рдердХрд╛рдК рд╣реЛрдирд╛

рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреА "рдЧреБрдгрд╡рддреНрддрд╛" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдмрд╛рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ:
рдмреЗрд╕рд▓рд╛рдЗрди рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рд╣рд┐рдорд╕реНрдЦрд▓рди рдкреНрд░рднрд╛рд╡ : рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рдордирдорд╛рдиреЗ рд╕реЗрдЯ рдореЗрдВ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдмрд┐рдЯреНрд╕ рдмрджрд▓рдиреЗ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ ┬╜ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред


  • рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдпрд╛ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдЗрдореЗрдЬ рдкреНрд░рддрд┐рд░реЛрдз: рд╣реИрд╢ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдореВрд▓ рдбреЗрдЯрд╛ рдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмрд┐рдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ред
  • рдкрд╣рд▓реЗ-рдХреНрд░рдо рдХреЗ рдЯрдХрд░рд╛рд╡ рдФрд░ / рдпрд╛ рджреВрд╕рд░реЗ рдкреВрд░реНрд╡-рдЫрд╡рд┐ рдкреНрд░рддрд┐рд░реЛрдз рдХрд╛ рдкреНрд░рддрд┐рд░реЛрдз: рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд░рд┐рдгрд╛рдо рдпрд╛ рдЗрд╕рдХреЗ рднрд╛рдЧ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ рдЦреЛрдЬрдиреЗ / рдлрд┐рдЯрд┐рдВрдЧ рдХрд░рдиреЗ рдХреА рдХрдард┐рдирд╛рдИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдЬреНрдЮрд╛рдд рд╣реИред
  • рджреВрд╕рд░реЗ рдХреНрд░рдо рдХреЗ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкреНрд░рддрд┐рд░реЛрдз: рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛ рд╕реЗрдЯреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ / рдлрд┐рдЯрд┐рдВрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рдЬреЛ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдпрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧ рдХрд╛ рдПрдХ рдореИрдЪ рджреЗрдЧреАред

рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЧрдгрд┐рдд рдХреЗ рд▓рдВрдмреЗ рдЙрджреНрдзрд░рдгреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдЗрд╕реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


  • рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рд╣рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рдо рдЕрднреА рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
  • рдмреБрдирд┐рдпрд╛рджреА рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ ALU рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕реЗ рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рддреЛ рдЧреБрдгрд╡рддреНрддрд╛ рд╣рдореЗрд╢рд╛ рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд╕рдордЭреМрддрд╛ рдХрд░рддреА рд╣реИред
  • ALU рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреА рдереЛрдбрд╝реА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд╢реНрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрдИ рдЧреБрдирд╛ рд╡реГрджреНрдзрд┐ рдФрд░ рдЗрд╕рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА ALU рд╕рдВрдЪрд╛рд▓рди рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
  • рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рддреЗрдЬрд╝ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рдЧрддрд┐, рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдмрд┐рдЯрдиреЗрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рднрд╛рд░рд┐рдд рд╕рдордЭреМрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ ред

рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ t1ha рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдЧрддрд┐ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдордЭреМрддреЗ рдХреА рдЦреЛрдЬ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдкрд╛рдП рдЧрдП рддрд░реАрдХреЛрдВ (рдЕрдВрдХрдЧрдгрд┐рддреАрдп-рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдпреЛрдЬрдиреЛрдВ) рдХреЗ рдорд┐рд╢реНрд░рдг рдФрд░ рдкреНрд░рд╕рд╛рд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред рд╣рд┐рдорд╕реНрдЦрд▓рди рдкреНрд░рднрд╛рд╡)ред


T1ha рдХрд╛ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрд╢ рдЯреЗрдмрд▓ рдФрд░ рдЕрдиреНрдп рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рддреЗрдЬ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред T1ha рдХрд╛ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг 64-рдмрд┐рдЯ рдЫреЛрдЯреЗ-рдПрдВрдбрд┐рдпрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, 64-рдмрд┐рдЯ рдирдордХ рдореВрд▓реНрдп (рдмреАрдЬ) рд▓реЗрддрд╛ рд╣реИ рдФрд░ 64-рдмрд┐рдЯ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреБрдВрдЬреА-рд▓рдВрдмрд╛рдИ рдФрд░ рдмреАрдЬ рджреНрд╡рд╛рд░рд╛ рдордЬрдмреВрддреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ t1ha рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╢реВрдиреНрдп рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ (рд╢реВрдиреНрдп рдЖрдХрд╛рд░ рдФрд░ рд╢реВрдиреНрдп рдмреАрдЬ рдХреА рдХреБрдВрдЬреА) рдХреЗ рд▓рд┐рдП 0 рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм

64-рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди : рд╢рд╛рдпрдж рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ 64-рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди рд╣реИ рдЬреЛ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рдП рдмрд┐рдирд╛ рдЧрддрд┐ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЕрдВрдХреАрдп рдХреНрд╖рдорддрд╛ рдЬрд┐рддрдиреА рд╡реНрдпрд╛рдкрдХ рд╣реЛрддреА рд╣реИ, рд╡реЗ рдЙрддрдиреЗ рд╣реА рдЕрдзрд┐рдХ рд╣рд┐рдорд╕реНрдЦрд▓рди рдкреНрд░рднрд╛рд╡ рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВ рдФрд░ рд╡реЗ рдбреЗрдЯрд╛ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдорд┐рд▓рд╛рддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ, рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬреЗрдВ рд╕рдорд╛рди рд╣реЛ рд░рд╣реА рд╣реИрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 8 рдмрд╛рдЗрдЯреНрд╕ 4 рд╕реЗ рддреЗрдЬ рд╣реИред рджреВрд╕рд░реА рддрд░рдл, рдмрд┐рд▓реНрдХреБрд▓ 64-рдмрд┐рдЯ рдСрдкрд░реЗрд╢рди рдореВрд▓ рд░реВрдк рд╕реЗ рдХрдИ рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдФрд░ рдХрдо рд╕реЗ рдХрдо 32 рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд┐рдЯреНрд╕ред SIMD рд╕рдВрдЪрд╛рд▓рди рд╕рд╣рд┐рдд рдЕрдиреНрдп рд╕рднреА рд╡рд┐рдХрд▓реНрдк, рд╣рдореЗрдВ рдЧреИрд░-рджреЗрд╢реА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдФрд░ / рдпрд╛ рдЧрддрд┐ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВред


64-рдмрд┐рдЯ рдкрд░рд┐рдгрд╛рдо : рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдереЛрдбрд╝реА рдЪреМрдбрд╝рд╛рдИ рдЪреМрдбрд╝рд╛рдИ рдкрд░рд┐рдгрд╛рдо рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ 32 рдмрд┐рдЯреНрд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, 64-рдмрд┐рдЯ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, 64-рдмрд┐рдЯ рдкрд░рд┐рдгрд╛рдо рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЖрддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ 64-рдмрд┐рдЯ рд╣реИрд╢ рдкрд░рд┐рдгрд╛рдо рдЖрдкрдХреЛ рдЧреИрд░-рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдФрд░ рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рддреБрд▓рдирд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЙрдкрд░реЛрдХреНрдд "рдЬрд╛рджреВ" рдЕрд╕реНрдкрд╖реНрдЯ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдиреАрдпрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рдорд╛рдг рдХреЗ рдХреНрд░рдо рд╕реЗ рд╣реИрд╢рд┐рдВрдЧ рдХреА рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдХрдо рд╕реАрдкреАрдпреВ рдХреИрд╢ рдкреНрд░рджреВрд╖рдгред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рддреЛ рдХреЛрдИ рд╣реИрд╢ рдЯреЗрдмрд▓ рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдХрд▓рд┐рдд рд╣реИрд╢ рд╡реИрд▓реНрдпреВ рд╕рд╛рде-рд╕рд╛рде рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВ (рдХреИрд╢ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдкреИрдХ)ред рд╕реАрдкреАрдпреВ рддрдм рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рд╣рдбрд╝рдкрддрд╛ рд╣реИ рдпрджрд┐ рд╣реИрд╢ рдорд╛рди рдорд┐рд▓рд╛рди рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, t1ha рд╕реЗ 64-рдмрд┐рдЯреНрд╕ рд╕рд░реНрд╡реЛрддреНрддрдо рд╕рдВрднрд╡ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ ред рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, 128 рдмрд┐рдЯреНрд╕ рдЕрдм рдПрдХ рд▓рд╛рдн рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдЬрдмрдХрд┐ 64 рдмрд┐рдЯреНрд╕ рд╕реЗ рдХрдо рд▓реЗрдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рд╣реИред


рд╣рд╛рдЗрд╡реЗрд╣реИрд╢ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ : рдореБрдЭреЗ Google рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд┐рд╢реНрд░рд┐рдд рднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ ред


  1. рдПрдХ рдУрд░, рдЗрд╕рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдХреЛрдб рдФрд░ рдЙрддреНрдХреГрд╖реНрдЯ рддрдХрдиреАрдХреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рджреВрд╕рд░реА рдУрд░, рд╣рд╛рдЗрд╡рд╢ рдХреЛ рд╕рдВрднрд╡рддрдГ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд░реВрдк рд╕реЗ рдордЬрдмреВрдд (рдХрдо рд╕реЗ рдХрдо рд╕рд┐рдкрд╛рд╢ рдХреЗ рдмрд░рд╛рдмрд░) рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рдЗрд╡реЗрд╣реИрд╢ рдХреЗ рдЕрдВрджрд░ рдХрд╛рдлреА рдХреБрдЫ рд╣реЗрд░рдлреЗрд░ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕реЗ рдХреЛрдИ рдкреНрд░рдорд╛рдг рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдордЬрд╝рдмреВрддреА рд╕реЗ рдпрд╣ рдХрд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред "рд╢рдХреНрддрд┐" рдХрд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреНрд░рдорд╛рдг рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИ (рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рд╢рд╛рдирджрд╛рд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЕрдиреБрдорддрд┐ рджреА)ред
  2. рд╣рд╛рдЗрд╡реЗ рд╣рд╢ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ x86_64 рдкрд░ AVX2 рдпрд╛ SSE41 рдХреЗ рд╕рд╛рде рддреЗрдЬ рд╣реИред рдХреНрдпрд╛ рдПрдИрдПрд╕-рдПрдирдЖрдИ рдпрд╛ рдПрд╕рдПрдЪрдП рддреНрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ?

рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк t1ha рд╕реВрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдмрд┐рдЯрдиреЗрд╕ рдХреЗ рд▓рд┐рдП) рдФрд░ E2K рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рддред рдЗрд╕рдХреЗ рд╕рд╛рде рдореИрдВ рд╣рд╛рдЗрд╡реЗ рд╣рд╛рд╢ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред




рдЧреБрдгрд╡рддреНрддрд╛


рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рдПрдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдпрд╛ рддреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдЧрддрд┐ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдордЭреМрддрд╛ рдХреЗ рд╕рд╛рде рд╣реИрд╢ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рддреБрд▓рдирд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдореВрд▓реНрдпрд╛рдВрдХрди рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдкрд░реАрдХреНрд╖рдг рд╕реНрдкрд╖реНрдЯ рдорд╛рддреНрд░рд╛рддреНрдордХ рдЕрдиреБрдорд╛рди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рд┐рджреНрдз рдкрд░реАрдХреНрд╖рдг рдкреИрдХреЗрдЬ рд╣реИрдВ, рдЬреИрд╕реЗ рдПрд╕рдПрдордПрдЪрд╢рд░ ред T1ha рдХреЗ рд▓рд┐рдП , рдкрд░рд┐рдгрд╛рдо рд╕рд░рд▓ рд╣реИрдВ - рд╕рднреА t1ha рд╡рд┐рдХрд▓реНрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░реА рдУрд░, рдХрд┐рд╕реА рдХреЛ рдпрд╣ рдирд╣реАрдВ рдорд╛рди рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ t1ha рдореЗрдВ рдЙрди рдЧреБрдгреЛрдВ рдХреА рдЕрдзрд┐рдХрддрд╛ рд╣реИ рдЬреЛ рд▓рдХреНрд╖реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ (рд╣реИрд╢рд┐рдВрдЧ рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП)ред


T1ha рдХреЗ рд╕рднреА рд╕реНрддрд░реЛрдВ (рд╡реЗрд░рд┐рдПрдВрдЯ) рдкрд░ рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрдиреНрдорджрд┐рди рдХреЗ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдЗрд╕реЗ рд╕рдЦреНрддреА рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - t1ha рдореЗрдВ рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕рдВрдЧрдд рдмрд┐рдЯрдиреЗрд╕ рдХреЗ рд╕рд╛рде рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрд╕рддрдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред
рд╕рднреА рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЯрдХрд░рд╛рд╡ рдХреА рдПрдХ рд╕рдорд╛рди рд╕рдВрднрд╛рд╡рдирд╛ рджреЗрдЦреА рдЬрд╛рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХреЗрд╡рд▓ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЯрдХрд░рд╛рд╡реЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреА рд╣реИред


рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╡реЗрд╕ рдСрд░реНрдЯрди рдиреЗ рдкрд╛рдпрд╛ , рдХрд┐ рдкрд╣рд▓рд╛ t1ha1() рд╣рдореЗрд╢рд╛ рд╕рдЦреНрдд рд╣рд┐рдорд╕реНрдЦрд▓рди рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ ред рдпрд╣ рдЦрд╛рдореА t1ha1() рд▓рдХреНрд╖рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рд╣реАрди рд╣реИ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдиреБрдХрд╕рд╛рди рдЕрдЧрд▓реЗ t1ha2() рд╕реНрддрд░ / рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдереЛрдбрд╝рд╛ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред рдирдП рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░, рдЬреЛ рд╕рдВрдХрд▓рдХ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, t1ha2() рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдФрд╕рдд рдПрдХ рдЪрдХреНрд░ рддреЗрдЬ рд╣реИ, рдФрд░ рдмрд╛рдХреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдПрдХ рдЪрдХреНрд░ рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ t1ha2() рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░реАрдо рд╣реИрд╢рд┐рдВрдЧ рдореЛрдб рдФрд░ 128-рдмрд┐рдЯ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред


рдкрд╛рдардХ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ t1ha рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ / рдпрд╛ рд╢рдХреНрддрд┐ рдХреЗ рдЧрд╣рди рдФрд░ рдЧрд╣рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд▓рдХреНрд╖реНрдп t1ha рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдмреЗрдорд╛рдиреА рд▓рдЧрддрд╛ рд╣реИред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ рддреЛ рд╕реНрдкреАрдб рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЬреНрдпрд╛рджрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдереА, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╢реЙрд░реНрдЯ рдХреАрдЬ рдХреЗ рд▓рд┐рдП рднреАред рдЗрд╕рд▓рд┐рдП, рдмрд╣реБ-рдЧреЛрд▓ рдорд┐рд╢реНрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд░реНрддрдорд╛рди t1ha рд╕рдВрд╕реНрдХрд░рдг рд╕рд╛рдЗрдХрд┐рд▓ рдкрд░ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ 64-рдмрд┐рдЯ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ - рдпрд╣ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╕рдордЭреМрддрд╛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╡реНрдпрд░реНрде рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдмрд╕ рдЕрдЪреНрдЫреЗ рд╣реИрдВред


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ

рдореИрдВрдиреЗ рдмрд╕ Google рдХреЗ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ рдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдкреНрд░рдорд╛рдг рдХреИрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ




рдорд╛рдирдХ


" рд╕рдмрд╕реЗ рддреЗрдЬ " рд╣реЛрдиреЗ рдХреЗ рджрд╛рд╡реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ рдФрд░ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ / рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╣реИред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕реЗрдЯ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, " рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рддреЗрдЬ " рдлрд╝рдВрдХреНрд╢рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╢рдмреНрдж "рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рддреЗрдЬрд╝ ┬╗рдЬреЛ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рдмрд╕реЗ рддреЗрдЬрд╝, рдХрдо рд╕реЗ рдХрдо рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (x86_64) рдкрд░ рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рд╕рднреНрдп рдЕрдиреБрдХреВрд▓рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЦреЛрдиреЗ рдХрд╛ рдХрдо рдореМрдХрд╛ рд╣реИред


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдХреА рд╢реБрджреНрдзрддрд╛ рджреЛрдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЧрддрд┐ рдХреЛ рдорд╛рдкрддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, x86 рдкрд░, рдкреНрд░реЛрд╕реЗрд╕рд░ (рдФрд░ рд╕рдВрдХрд▓рдХ) рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реЗрд░рд┐рдПрдВрдЯ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЪрдХреНрд░ рдореЗрдВ рдорд╛рдк рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рд░реАрдиреА рдЕрд░реНрдмрди рдХреЗ SMHasher рдХреЗ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдорд╛рдк рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛рдПрдВ рд╣реИрдВред рдПрдХ рд╕рднреА рд╕рдВрдХрд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рд╕рднреА рдЖрдВрдХрдбрд╝реЗ рдФрд░ / рдпрд╛ рдкрд░рд┐рдгрд╛рдо рдХреЛ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред


рдпрд╣рд╛рдВ рдЖрдк рдЕрдкрдиреЗ рдХреБрдЫ рдирд┐рдХрдЯрддрдо рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде t1ha рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдЫреЛрдЯреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╣рд╛рд╢рд┐рд▓ рдХрд░рдирд╛ (рдФрд╕рдд 1..31 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП)ред
рд╕рд╣реА рдХреЙрд▓рдо "рдЪрдХреНрд░ / рд╣реИрд╢" рдХреЛ рджреЗрдЦреЗрдВ (рдЫреЛрдЯрд╛ рдмреЗрд╣рддрд░ рд╣реИ) :


рд╕рдорд╛рд░реЛрд╣MiB / рджреВрд╕рд░рд╛рдЪрдХреНрд░ / рд╣реИрд╢
t1ha12228.8035.55
FastHash645578.0643.42
CityHash6411041.7251.77
xxHash6411123.1556.17
MetroHash11808.9246.33

рд▓рдВрдмреА рдЪрд╛рдмрд┐рдпрд╛рдБ (256 Kb) рдХреЛ рд╣рд┐рдЯ рдХрд░рдирд╛ ред
рдордзреНрдп рд╕реНрддрдВрдн "рдорд┐рдм / рд╕реЗрдХрдВрдб" рдХреЛ рджреЗрдЦреЗрдВ (рдмрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реИ) :


рд╕рдорд╛рд░реЛрд╣MiB / рджреВрд╕рд░рд╛рдЪрдХреНрд░ / рд╣реИрд╢
t1ha12228.8035.55
FarmHash6412145.3660.12
CityHash6411041.7251.77
xxHash6411123.1556.17
Spooky6411820.2060.39



T1ha рдХреЗ рд╡реЗрд░рд┐рдПрдВрдЯ


T1ha рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рддреЗрдЬреА рд╕реЗ рдкреЛрд░реНрдЯреЗрдмрд▓ рдХрд╛рд░реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдерд╛ред


рддрдм рд╣рдо рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдЪрд╛рд╣рддреЗ рдереЗ рдЬреЛ рддреБрд▓рдиреАрдп рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ рд▓реЗрдХрд┐рди рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореВрд▓ t1ha рд╕рдВрд╕реНрдХрд░рдг рдЫреЛрдЯреЗ-рдПрдВрдбрд┐рдпрди рдмрд╛рдЗрдЯ рдСрд░реНрдбрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдиреБрдХрд╕рд╛рди рдХреЗ рд╕рд╛рде рдмрдбрд╝реЗ-рдПрдВрдбрд┐рдпрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд░реВрдкрд╛рдВрддрд░рдг рдЖрд╡рд╢реНрдпрдХ рд╣реИред рддреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдордВрдЪ рдкрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд▓рди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдЗрд╕ рддрд░рд╣, рдХрдИ рдФрд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗ рдЧрдП:


  • 32-рдмрд┐рдЯ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг, рджреЛрдиреЛрдВ рдЫреЛрдЯреЗ рдФрд░ рдмрдбрд╝реЗ-рдПрдВрдбрд┐рдпрдиред
  • рдПрдИрдПрд╕-рдПрдирдЖрдИ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╡реЗрд░рд┐рдПрдВрдЯ, рд▓реЗрдХрд┐рди рдПрд╡реАрдПрдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ред
  • рдПрдИрдПрд╕-рдПрдирдЖрдИ рдФрд░ рдПрд╡реАрдПрдХреНрд╕ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджреЛ рд╡реЗрд░рд┐рдПрдВрдЯред

рдмрд╛рдж рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдмрд┐рдЯ рдЪреМрдбрд╝рд╛рдИ рдкрд░рд┐рдгрд╛рдо, рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рд╕реНрдерд╛рдпрд┐рддреНрд╡ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЛ рдЙрдЪрд┐рдд рд╡реНрдпрд╡рд╕реНрдерд┐рддрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдпрд╣ рдирд╛рдордХрд░рдг рдпреЛрдЬрдирд╛ рдХреЛ рдмрджрд▓рдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рддреНрдпрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ "рд╕реНрддрд░" рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ:


  • t1ha0() - рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╡рд┐рдХрд▓реНрдк рд╣реИред
  • t1ha1() - t1ha1() рдХрд╛ рдореВрд▓ рдкреЛрд░реНрдЯреЗрдмрд▓ 64-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
  • t1ha2() - рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЪрд┐рдВрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреЛрд░реНрдЯреЗрдмрд▓ 64-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
  • t1ha3() - рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рддреЗрдЬрд╝ рдкреЛрд░реНрдЯреЗрдмрд▓ 128-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
  • рдЖрджрд┐

рдЗрд╕ рдпреЛрдЬрдирд╛ рдореЗрдВ, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ t1ha0() рдПрдХ рдбрд┐рд╕реНрдкреИрдЪрд░ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЫреЛрдЯреЗ-рдПрдВрдбрд┐рдпрди рдФрд░ рдмрдбрд╝реЗ-рдПрдВрдбрд┐рдпрди рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЗ рдмреАрдЪ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп "_le" рдФрд░ "_be" рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, "t1ha" рд╕рд╛рдЗрдирдмреЛрд░реНрдб рдХреЗ рддрд╣рдд рдЕрдм рдХрдИ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкрд░рд┐рд╡рд╛рд░ рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрдврд╝реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд░реВрд╕реА E2K "рдПрд▓реНрдмреНрд░рд╕" рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред


рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯ рдФрд░ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкрд░реАрдХреНрд╖рдг рдЖрдЙрдЯрдкреБрдЯ ( make check ) рдХреЛ рджреЗрдЦрдХрд░ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рд╕рднреА рдПрд╕рдПрдо рд╣реИрд╢рд░ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдИрдПрд╕-рдПрдирдЖрдИ рд╡реЗрд░рд┐рдПрдВрдЯ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ:


 Intel(R) Core(TM) i7-6700K CPU @ 3.00GHz Build by GNU C/C++ compiler 8.2 [...] - use RDPMC_40000001 as clock source - measure granularity and overhead: 53 cycles, 0.0188679 iteration/cycle Bench for tiny keys (7 bytes): t1ha0 : 13.14 cycle/hash, 1.877 cycle/byte, 1.598 Gb/s @3GHz t1ha1_64le : 15.14 cycle/hash, 2.163 cycle/byte, 1.387 Gb/s @3GHz t1ha2_atonce : 15.50 cycle/hash, 2.163 cycle/byte, 1.387 Gb/s @3GHz t1ha1_64be : 16.78 cycle/hash, 2.397 cycle/byte, 1.251 Gb/s @3GHz xxhash32 : 17.17 cycle/hash, 2.453 cycle/byte, 1.223 Gb/s @3GHz StadtX : 17.59 cycle/hash, 2.513 cycle/byte, 1.194 Gb/s @3GHz t1ha0_32le : 18.28 cycle/hash, 2.612 cycle/byte, 1.149 Gb/s @3GHz t1ha0_32be : 20.24 cycle/hash, 2.892 cycle/byte, 1.037 Gb/s @3GHz xxhash64 : 22.17 cycle/hash, 3.167 cycle/byte, 0.947 Gb/s @3GHz t1ha2_atonce128* : 29.93 cycle/hash, 4.277 cycle/byte, 0.701 Gb/s @3GHz t1ha2_stream* : 79.81 cycle/hash, 11.402 cycle/byte, 0.263 Gb/s @3GHz HighwayHash64_avx2 : 83.75 cycle/hash, 11.964 cycle/byte, 0.251 Gb/s @3GHz HighwayHash64_sse41 : 85.25 cycle/hash, 12.179 cycle/byte, 0.246 Gb/s @3GHz t1ha2_stream128* : 99.06 cycle/hash, 14.152 cycle/byte, 0.212 Gb/s @3GHz HighwayHash64_portable: 480.75 cycle/hash, 68.679 cycle/byte, 0.044 Gb/s @3GHz HighwayHash64_pure_c : 652.58 cycle/hash, 93.226 cycle/byte, 0.032 Gb/s @3GHz Bench for large keys (16384 bytes): t1ha0 : 1185.00 cycle/hash, 0.072 cycle/byte, 41.478 Gb/s @3GHz t1ha2_atonce : 3436.00 cycle/hash, 0.210 cycle/byte, 14.305 Gb/s @3GHz t1ha2_atonce128* : 3440.00 cycle/hash, 0.210 cycle/byte, 14.288 Gb/s @3GHz t1ha1_64le : 3449.00 cycle/hash, 0.211 cycle/byte, 14.251 Gb/s @3GHz t1ha2_stream* : 3479.00 cycle/hash, 0.212 cycle/byte, 14.128 Gb/s @3GHz t1ha2_stream128* : 3508.00 cycle/hash, 0.214 cycle/byte, 14.011 Gb/s @3GHz StadtX : 3550.00 cycle/hash, 0.217 cycle/byte, 13.846 Gb/s @3GHz xxhash64 : 4121.00 cycle/hash, 0.252 cycle/byte, 11.927 Gb/s @3GHz t1ha1_64be : 4567.00 cycle/hash, 0.279 cycle/byte, 10.762 Gb/s @3GHz HighwayHash64_avx2 : 4580.00 cycle/hash, 0.280 cycle/byte, 10.732 Gb/s @3GHz HighwayHash64_sse41 : 6412.00 cycle/hash, 0.391 cycle/byte, 7.666 Gb/s @3GHz t1ha0_32le : 7191.00 cycle/hash, 0.439 cycle/byte, 6.835 Gb/s @3GHz t1ha0_32be : 7928.00 cycle/hash, 0.484 cycle/byte, 6.200 Gb/s @3GHz xxhash32 : 8197.00 cycle/hash, 0.500 cycle/byte, 5.996 Gb/s @3GHz HighwayHash64_portable: 41895.27 cycle/hash, 2.557 cycle/byte, 1.173 Gb/s @3GHz HighwayHash64_pure_c : 53296.11 cycle/hash, 3.253 cycle/byte, 0.922 Gb/s @3GHz 



рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛

рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рддрдмреНрджреАрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, t1ha рдХреЛ рдбреЗрдЯрд╛ рдЖрдХрд╛рд░ рдФрд░ рдмреАрдЬ рдореВрд▓реНрдп рд╕реЗ рдордЬрдмреВрдд рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рдорд░реНрдХрд▓реЗ-рджрд╛рдордЧрд╛рд░реНрдб рдпреЛрдЬрдирд╛ ("рд╡рд╛рдЗрдк-рдкрд╛рдЗрдк" рд╕рдВрд╕реНрдХрд░рдг) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЦреНрдп рд╕рдВрдкреАрдбрд╝рди рд▓реВрдк рдХреЗ рдЕрдВрджрд░, рдПрдХ 256-рдмрд┐рдЯ рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрдирдкреБрдЯ рдмреНрд▓реЙрдХ рдХреЗ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рдеред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдСрдкрд░реЗрдВрдб рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕ рдкрд░рд╛рдЧрдг рдХреЗ рд╕рд╛рде рджреЛ рдЗрдВрдЬреЗрдХреНрд╢рди рдмрд┐рдВрджреБ рд╣реИрдВред рд╕рдВрдкреАрдбрд╝рди рдЪрдХреНрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, 256-рдмрд┐рдЯ рд╕реНрдерд┐рддрд┐ 128 рдмрд┐рдЯреНрд╕ рддрдХ рд╕рдВрдкреАрдбрд╝рд┐рдд рд╣реЛрддреА рд╣реИред


рдЙрдкрд░реЛрдХреНрдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддреЗ рд╕рдордп, рдорд┐рдХреНрд╕рд░ рдПрдЖрд░рдПрдХреНрд╕ (рдПрдб-рд░реЛрдЯреЗрдЯ-рдПрдХреНрд╕реЛрд░) рдФрд░ рдПрдордпреВрдПрдХреНрд╕ / рдПрдордЖрд░рдПрдХреНрд╕ (рдореВрд▓-рд░реЛрдЯреЗрдЯ-рдПрдХреНрд╕рдЖрд░) рдореЗрдВ рд╕рдВрдпреБрдХреНрдд 64-рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрди рд╕рднреА рдЧрдгрдирд╛рдУрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдФрд░ x86_64 рдирд┐рд╖реНрдкрд╛рджрди рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдпреВ-рдСрдкреНрд╕ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдпреВ-рдСрдкреНрд╕ рдХреА рддрдВрдЧ рдкреИрдХрд┐рдВрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреА рдЬрд╛ рд╕рдХреЗред рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рд▓рдВрдмреА рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдЕрдзрд┐рдХрддрдо рд╣реИрд╢ рджрд░ рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред


рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕рдВрдкреАрдбрд╝рди рд▓реВрдк рдХреЗрд╡рд▓ рдкрд░реНрдпрд╛рдкреНрдд рдЖрдХрд╛рд░ рдХреЗ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд▓рддрд╛ рд╣реИред рдпрджрд┐ рдХрдо рдбреЗрдЯрд╛ рд╣реИ, рддреЛ рдордзреНрдпрд╡рд░реНрддреА 128-рдмрд┐рдЯ рд░рд╛рдЬреНрдп рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдВрдЬреА рдЖрдХрд╛рд░ рдФрд░ рдирдордХ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред


рдлрд┐рд░, рдбреЗрдЯрд╛ рдХреА рд╢реЗрд╖ рдкреВрдВрдЫ рдХреЛ 128-рдмрд┐рдЯ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ 64 рдмрд┐рдЯ рдХреЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рд░рд╛рдЬреНрдп рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рде 64-рдмрд┐рдЯ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рдВрдХреБрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдБ t1ha рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡реНрдпрд╛рдкрдХ рдЧреБрдгрди (рджреЛ 64-рдмрд┐рдЯ рдЧреБрдгрдХ рдХреЗ 128-рдмрд┐рдЯ рдЙрддреНрдкрд╛рдж) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдорд┐рдХреНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╣рд┐рдорд╕реНрдЦрд▓рди рдкреНрд░рднрд╛рд╡ рдФрд░ рдХрдо рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдорд┐рд╢реНрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рд╡реНрдпрд╛рдкрдХ рдЧреБрдгрд╛ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдорд╣рдВрдЧрд╛ рдСрдкрд░реЗрд╢рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдо рдСрдкрд░реЗрд╢рдиреЛрдВ рд╕реЗ t1ha рдХреЛ рд░рд┐рдХреЙрд░реНрдб-рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЪрдХреНрд░реЛрдВ рдореЗрдВ рдХрдо рдХреБрдВрдЬреА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред


рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реНрдпрд╛рдкрдХ рдЧреБрдгрди рдФрд░ рдЕрдирдиреНрдп OR рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдорд┐рдХреНрд╕рд░ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдпрджреНрдпрдкрд┐ t1ha рд╕рднреА SMHasher рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдЦрдХ рдЧреИрд░-рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реИ)ред рдлрд┐рд░ рднреА, рдкрд░рд┐рдгрд╛рдореА рдЧреБрдгрд╡рддреНрддрд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд▓рдЧрддреА рд╣реИ, рдФрд░ t1ha рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдпреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдереЛрдбрд╝реЗ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдЗрд░рд╛рджреЗ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИред


рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред


рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/hi439156/


All Articles