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

рдкрд╣рд▓реЗ, рд╣рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдЗрдВрдЯреЗрд▓ рдЬреАрдкреАрдпреВ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рдХреНрдпреЛрдВ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдмреЗрд╢рдХ, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ CPU рдкреНрд░рджрд░реНрд╢рди рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ GPU рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЗрдВрджреНрд░реАрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рднреА рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдПрдХ рджрд╢рдХ рдореЗрдВ рдЗрдВрдЯреЗрд▓ рдПрдХреАрдХреГрдд рдЬреАрдкреАрдпреВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╕реАрдкреАрдпреВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрдврд╝рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкреНрд░рд╡реГрддреНрддрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирдП рдЕрд╕рддрдд рдЗрдВрдЯреЗрд▓ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рд╣реЗрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреАрдкреАрдпреВ, рдЗрд╕рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ (рдХрдИ рд╡реЗрдХреНрдЯрд░ рдирд┐рд╖реНрдкрд╛рджрди рдЙрдкрдХрд░рдгреЛрдВ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ - рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЬреАрдкреАрдпреВ рдкреВрд░реНрдг рдЖрдВрддрд░рд┐рдХ рд╕рдорд╛рдирд╛рдВрддрд░рдХрд░рдг рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рд╕реАрдкреАрдпреВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕ рдкрд░ рдХрдо рдКрд░реНрдЬрд╛ рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рднреА рдЗрд╕реЗ рдкреВрд░реА рдЧрддрд┐ рд╕реЗ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, GPU рдФрд░ CPU рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдкрд░, рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдФрд░ / рдпрд╛ рдиреНрдпреВрдирддрдо рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
- рдареАрдХ рд╣реИ, рдЗрдВрдЯреЗрд▓ред рд╣рдордиреЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреЗрд▓ рдЬреАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ?
- рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (Direct3D рдФрд░ OpenGL shaders) рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ OpenCLред
рдУрдкрдирд╕реАрдПрд▓ рдХрд░реНрдиреЗрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рднреА рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдЙрдкрдХрд░рдгреЛрдВ - рд╕реАрдкреАрдпреВ, рдЬреАрдкреАрдпреВ, рдПрдлрдкреАрдЬреАрдП, рдЖрджрд┐ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреА рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдХрд╛ рд╢реБрд▓реНрдХ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХреАрдХреГрдд рдЗрдВрдЯреЗрд▓ рдЬреАрдкреАрдпреВ рдкрд░ рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рджреВрд░ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ: 16x16 рдмрд╛рдЗрдЯ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЗрдВрдЯреЗрд▓ рдЬреАрдкреАрдпреВ рдкрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЗрдВрдЯреЗрд▓ рдЬреАрдкреАрдпреВ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рдУрдкрдирд╕реАрдПрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде 8 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛!
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╛рдорд╛рдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╡рд╛рдЗрдб рдлрд╝рд┐рд▓реНрдЯрд░" рдЬреЛ рдПрдХрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдореЗрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдмрдбрд╝реЗ рд╕рдореВрд╣ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ), рдУрдкрдирд╕реАрдПрд▓ рдмрд╕ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЕрдЧрд░ рдЖрдкрдХреЛ рдПрд░реЗ рдФрд░ рдЙрд╕рдХреЗ рдирд┐рдХрдЯрддрдо рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ GPU рдФрд░ \ рдпрд╛ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ Intel C for Metal (ICM), Intel рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреВрд▓, рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред ред
ICM - рдлреЛрд░реНрдЬ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, ICM рдХреЛ "рдЗрдВрдЯреЗрд▓ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдХреЛрдбрд╛рдВрддрд░рдХ" рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рд░реНрдХрд┐рдЯреНрд░реА рдФрд░ рдкреНрд░рдпреЛрдЬреНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ - "рдЗрдВрдЯреЗрд▓ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдУрдкрдирд╕реАрдПрд▓ рдХрд╛ рдПрдирд╛рд▓реЙрдЧред"
рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ, рдЗрдВрдЯреЗрд▓ GPU рдкрд░ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЗрдВрдЯреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ ICM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди 2018 рдореЗрдВ, ICM рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рднреА!
рдореЗрдЯрд▓ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреЗрд▓ рд╕реА рдХреЛ рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдЕрдкрдирд╛ рд╡рд░реНрддрдорд╛рди рдирд╛рдо рдорд┐рд▓рд╛, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдореАрдбрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреЗрд▓ рд╕реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ (рдПрдХ рд╣реА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рдЖрдИрд╕реАрдПрдо рдпрд╛ рд╕рд┐рд░реНрдл рд╕реАрдПрдо рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реЗрдореА), рдФрд░ рдЗрд╕рд╕реЗ рднреА рдкрд╣рд▓реЗ - рдореАрдбрд┐рдпрд╛ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ (рдПрдордбреАрдПрдл)ред рдЗрд╕рд▓рд┐рдП, рдЕрдЧрд░ рдХрд╣реАрдВ рдШрдЯрдХ рдХреЗ рдирд╛рдо рдкрд░, рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдпрд╛ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рдкреБрд░рд╛рдиреЗ рдирд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ - рддреЛ рдШрдмрд░рд╛рдПрдВ рдирд╣реАрдВ, рдпрд╣ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдореВрд▓реНрдп рд╣реИред
рддреЛ, ICCL рдПрдкреНрд▓реАрдХреЗрд╢рди рдХреЛрдб, рдЬреИрд╕реЗ OpenCL рдореЗрдВ, рджреЛ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ: "рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ" рдПрдХ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдФрд░ рдХрд░реНрдиреЗрд▓, GPU рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рддред рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рдХрд┐ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдореЗрдЬрдмрд╛рди рдХрд╣рд▓рд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдХрд░реНрдиреЗрд▓ рд╣реИред
рдЧреБрдард▓реА рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдПрдХ рджрд┐рдП рдЧрдП рдмреНрд▓реЙрдХ (рдпрд╛ рд╕рд┐рд░реНрдл рдбреЗрдЯрд╛) рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рд╣реИ, рдЬрд┐рд╕реЗ рдореЗрдЯрд▓ рд╕реА рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреЗрд▓ рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдИрд╕реАрдПрдо рд╕рдВрдХрд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯреЗрд▓ рдЬреАрдкреАрдпреВ рдЕрдиреБрджреЗрд╢ рд╕реЗрдЯ (рдЖрдИрдПрд╕рдП) рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣реЛрд╕реНрдЯ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ "рдХрд░реНрдиреЗрд▓ рдЯреАрдо рдореИрдиреЗрдЬрд░" рд╣реИ, рдпрд╣ рд╕реАрдкреАрдпреВ рдФрд░ рдЬреАрдкреАрдпреВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдИрд╕реАрдПрдо рд░рдирдЯрд╛рдЗрдо рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЗрдВрдЯреЗрд▓ рдЬреАрдкреАрдпреВ рдореАрдбрд┐рдпрд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреНрдп "рдкреНрд░рдмрдВрдзрдХреАрдп рдХрд╛рд░реНрдп" рдХрд░рддрд╛ рд╣реИред
рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЖрдИрд╕реАрдПрдо рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

- ICM рд╣реЛрд╕реНрдЯ рдХреЛрдб рдХрд┐рд╕реА рднреА x86 C / C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- ICM рдХрд░реНрдиреЗрд▓ рдХреЛрдб рдХреЛ ICM рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрджреЗрд╢ рд╕реЗрдЯ (Common ISA) рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рд░рдирдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди, рдЬреЗрдЖрдИрдЯреА рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдЯреЗрд▓ рдЬреАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ;
- ICM рд╣реЛрд╕реНрдЯ ICM рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ GPU рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдХреБрдЫ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рдЙрдкрдпреЛрдЧреА рдмрд┐рдВрджреБ:
- рдбреЗрдЯрд╛ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ / рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ICM рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕рддрд╣реЛрдВ рдХреЛ DirectX 11 рдФрд░ 9 (Linux рдкрд░ DXVA) рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рд╕реАрдкреАрдпреВ рд╕реАрдкреАрдпреВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рджреЛрдиреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рд▓реЗ рдФрд░ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИред ICM рдореЗрдВ рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╛рдЭрд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ - рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЖрдИрд╕реАрдПрдо рдореЗрдВ рддрдерд╛рдХрдерд┐рдд рд╢реВрдиреНрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред
рдЖрдИрд╕реАрдПрдо - рдЬреНрд╡рд╛рд▓рд╛рдореБрдЦреА рдХреЗ рд╡реЗрдВрдЯ рдореЗрдВ!
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рд╕реА рдлреЙрд░ рдЖрдпрд░рди" рдирд╛рдо рд╕реЗ, рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рднрд╛рд╖рд╛ рдЖрдВрддрд░рд┐рдХ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдЗрдВрдЯреЗрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб рдХреЗ рдХрдИ рджрд░реНрдЬрдиреЛрдВ рдирд┐рд╖реНрдкрд╛рджрди рдЗрдХрд╛рдЗрдпреЛрдВ (рдирд┐рд╖реНрдкрд╛рджрди рдЗрдХрд╛рдИ) рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реЗрдХреНрдЯрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рде рдХрдИ рдереНрд░реЗрдбреНрд╕ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред
рдХреБрдЫ рд╕реАрдорд╛рдУрдВ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреЛрдВ рдХреЗ рд╕рд╛рде ICM рднрд╛рд╖рд╛ рд╕реНрд╡рдпрдВ C ++ рд╣реИред рд╕реА ++ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЖрдИрд╕реАрдПрдо рдХреА рдХрдореА рд╣реИ ... рд╕рдВрдХреЗрдд, рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди, рдФрд░ рд╕реНрдерд┐рд░ рдЪрд░ред рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рддрд╣рдд рднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡реЗрдХреНрдЯрд░ рдореЙрдбрд▓ (SIMD) рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╣реИ: рд╡реЗрдХреНрдЯрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ - рд╡реЗрдХреНрдЯрд░, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рд╕рддрд╣; рдЗрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рд╡реЗрдХреНрдЯрд░ рдСрдкрд░реЗрд╢рди, рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ / рдЕрдЧрд░, рд╡реЗрдХреНрдЯрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╕рд╛рде рд╣реА рдЗрдВрдЯреЗрд▓ рдЬреАрдкреАрдпреВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдлрд┐рдХреНрд╕реНрдб рдлрдВрдХреНрд╢рдирд▓ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди рдлрдВрдХреНрд╢рди рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╡реИрдХреНрдЯрд░, рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдФрд░ рд╕рддрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ "рд╕рдмрд╕реЗрдЯ" рдХреА рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдорд┐рд▓рддреА рд╣реИ - рдЗрд╕реА рдореВрд▓ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдЖрдк рдХреЗрд╡рд▓ "рд╕рдВрджрд░реНрдн" рдХреЛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреА рд░реБрдЪрд┐ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИ рдпрд╛, рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЦреМрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП ICM рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рдПрдХ рд░реИрдЦрд┐рдХ рдлрд┐рд▓реНрдЯрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ - рдПрдХ рдорд╛рди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдЪрд┐рддреНрд░ рдХреЗ рдФрд╕рдд рдореВрд▓реНрдп рдФрд░ рдЪрд┐рддреНрд░ рдореЗрдВ 8 рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ RGB рд░рдВрдЧ:
рдпрджрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рд░рдВрдЧ (рдбреЗрдЯрд╛)
R8G8B8 рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рддреЛ 6x8 рдкрд┐рдХреНрд╕реЗрд▓ (6x24 рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рддрддреНрд╡реЛрдВ) рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдЗрдирдкреБрдЯ рдЫрд╡рд┐ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЧрдгрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧреА:
_GENX_MAIN_ void linear(SurfaceIndex inBuf, SurfaceIndex outBuf, uint h_pos, uint v_pos){
- рдореИрдЯреНрд░рд┐рд╕ рдХрд╛ рдЖрдХрд╛рд░ рдлреЙрд░реНрдо рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ <рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░, рдКрдВрдЪрд╛рдИ, рдЪреМрдбрд╝рд╛рдИ>;
- рдЪрдпрди рдХрд░реЗрдВ <v_size, v_stride, h_size, h_stride> рдСрдкрд░реЗрдЯрд░ (i, j) рддрддреНрд╡ (i, j) рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдмрдореЗрдЯреНрд░рд┐рдХреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ , v_size рдЪрдпрдирд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, vstride - рдЪрдпрдирд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА h_size - рдЪрдпрдирд┐рдд рд╕реНрддрдВрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, h_stride - рдЙрдирдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА ред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 8x32 рдЗрдирдкреБрдЯ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдЗрд╕рд▓рд┐рдП рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 8x30 рдмреНрд▓реЙрдХ 6x24 рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рднреА рдкрд┐рдХреНрд╕рд▓ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдердо рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреЛ ICM рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ 32-рдмрд┐рдЯ рдбреЙрд░реНрдб рддрддреНрд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдкреВрд░реНрдг ICM рдХрд░реНрдиреЗрд▓ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рджреЛ рдЪрд░рдгреЛрдВ (рдкреВрд░реНрд╡рд╡рд░реНрддреА рдФрд░ рдмрд╛рдж рдХреЗ рдЬреЗрдЖрдИрдЯреА рдЕрдиреБрд╡рд╛рдж) рдореЗрдВ рдЖрдИрд╕реАрдПрдо рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред ICM рд╕рдВрдХрд▓рдХ LLVM рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░, рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ,
рддреЛ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди ICM рд╣реЛрд╕реНрдЯ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ? ICM рд░рдирдЯрд╛рдЗрдо рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ:
- GPU рдбрд┐рд╡рд╛рдЗрд╕ (CmDevice), рд╕рд╛рде рд╣реА рд╕рд╛рде рдХрд░реНрдиреЗрд▓ (CmSurface) рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рд╡рд╛рд▓реЗ рд╕рддрд╣реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ, рд╣рдЯрд╛рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж;
- рдЧреБрдард▓реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ - рдЙрдиреНрд╣реЗрдВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд .isa рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЙрдирдХреЗ рддрд░реНрдХ рддреИрдпрд╛рд░ рдХрд░реЗрдВ, рдбреЗрдЯрд╛ рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛;
- рдХрд░реНрдиреЗрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХрддрд╛рд░ рдмрдирд╛рдПрдВ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ;
- рд╡реЗ GPU рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдХрд░реНрдиреЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ;
- рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ (CmEvent) - GPU рдФрд░ CPU рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ;
- GPU рдФрд░ CPU рдХреЗ рдмреАрдЪ рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░реЗрдВ;
- рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ, рдЧреБрдард▓реА рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рдордп рдХреЛ рдорд╛рдкреЗрдВред
рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реЛрд╕реНрдЯ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЧреБрдард▓реА рдФрд░ рдПрдХ рдореЗрдЬрдмрд╛рди рдмрдирд╛рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ!
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдХрдард┐рдирд╛рдИ: рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдИрд╕реАрдПрдо рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЧреБрдард▓реА рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдкреНрд░рд┐рдВрдЯрдл рд╕рдВрджреЗрд╢ рд╣реИред
рд╣реИрд▓реЛ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ
, рд╡рд┐рд╢реНрд╡ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдИрд╕реАрдПрдо - рднрд╛рд░реА рдзрд╛рддреБ рдирд╣реАрдВ!
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред ICM рдбреЗрд╡рд▓рдкрд░ рдХрд┐рдЯ
рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ , рдФрд░ рджреЛрдиреЛрдВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ ICM рдХрдВрдкрд╛рдЗрд▓рд░, рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг
рдЕрд▓рдЧ рд╕реЗ
рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред
рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП, рдкреИрдХреЗрдЬ рдореЗрдВ VAAPI рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд рдЖрдИрд╕реАрдПрдо рд░рдирдЯрд╛рдЗрдо рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдореЛрдб рдореАрдбрд┐рдпрд╛ рдбреНрд░рд╛рдЗрд╡рд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрдЯреЗрд▓ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдЖрдИрд╕реАрдПрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред ICM рд░рдирдЯрд╛рдЗрдо рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ dll рд╕реЗрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред ICM рдкреИрдХреЗрдЬ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд▓рд┐рдВрдХ .lib рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЧрд╛рдпрдм рд╣реИ, рддреЛ рдЗрд╕реЗ Intel рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдореЗрдВ ICM рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рд╕рдВрд╕реНрдХрд░рдг 15.60 - 2017 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ)ред
рдШрдЯрдХреЛрдВ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдЗрд╕ рдЦрдВрдб рдХреА рдЖрдЧреЗ рдХреА рд╕рд╛рдордЧреНрд░реА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдИрд╕реАрдПрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд рд▓рд┐рдирдХреНрд╕ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред
ICM рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде "рдирд┐рдпрдорд┐рдд" рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 2015 рдореЗрдВ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ Visual Studio рдФрд░ 3.2 рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ Cmake рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЙрд╕реА рд╕рдордп, рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡реАрдПрд╕ 2015 рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реАрдПрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡реАрдПрд╕ рдШрдЯрдХреЛрдВ рдХреЗ рдкрдереЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдФрд░ рд╕рдВрдкрд╛рджрди рдЦреБрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП ICM рдЬрд╛рдирдирд╛:
- рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ;
- рдЗрд╕реЗ рдЕрдирдкреИрдХ рдХрд░реЗрдВ;
- рд╣рдо рддреАрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде setupenv.bat рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЕрдзрд┐рдорд╛рдирддрдГ рд╡реАрдПрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░) рдЪрд▓рд╛рддреЗ рд╣реИрдВ - рдЗрдВрдЯреЗрд▓ рдЬреАрдкреАрдпреВ рдкреАрдврд╝реА (рдЙрд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЬреАрдкреАрдпреВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЬреАрди 9), рд╕рдВрдХрд▓рди рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо: x86 \ x64 рдФрд░ рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг ICM рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛: dx9 / dx11
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдмрд╕ рд╕рднреА рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ,
build_all.bat рд╕реНрдХреНрд░рд┐рдкреНрдЯ Microsoft Visual Studio рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЙрддреНрдкрдиреНрди рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ - рдпрд╣ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде
create_vs.bat рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдмрдирд╛рдПрдЧрд╛ ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, ICM рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЛрд╕реНрдЯ рднрд╛рдЧ рдХреЗ рд╕рд╛рде .exe рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд precompiled GPU рднрд╛рдЧ рдХреЗ рд╕рд╛рде .isa рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреАред
рдЖрдИрд╕реАрдПрдо рдкреИрдХреЗрдЬ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЙрджрд╛рд╣рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рд╕рд░рд▓рддрдо рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб рд╕реЗ, рдЬреЛ рдЖрдИрд╕реАрдПрдо рдСрдкрд░реЗрд╢рди рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЬрдЯрд┐рд▓ рд╕реЗ - рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрди рдФрд░ рд╕рд┐рд▓рд╛рдИ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдл (рдЕрдзрд┐рдХрддрдо-рдкреНрд░рд╡рд╛рд╣ рдиреНрдпреВрдирддрдо рдХрдЯ рд╕рдорд╕реНрдпрд╛) рдХреЗ "рдЕрдзрд┐рдХрддрдо рдкреНрд░рд╡рд╛рд╣ - рдиреНрдпреВрдирддрдо рдХрдЯ" рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред ред
рд╕рднреА рдЖрдИрд╕реАрдПрдо рдХреЗрд╕ рд╕реНрдЯрдбреАрдЬ рдХреЛрдб рдореЗрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╡рд░реНрдгрд┐рдд
рдЕрд▓рдЧ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИрдВред рдЗрд╕ рдкрд░ рдЖрдИрд╕реАрдПрдо рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ - рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрдзреНрдпрдпрди рдФрд░ рдЪрд▓ рд░рд╣реЗ рдЙрджрд╛рд╣рд░рдг, рдФрд░ рдлрд┐рд░ - рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ред
рд╕рднреА рдореМрдЬреВрджрд╛ ICM рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдпрд╣ рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдк "рд╡рд┐рдирд┐рд░реНрджреЗрд╢" рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВ - ICM рд╡рд┐рд╡рд░рдг
cmlangspec.html in the
document \ compiler \ html \ cmlangspec рдлрд╝реЛрд▓реНрдбрд░ ред
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдЖрдИрд╕реАрдПрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ - рддрдерд╛рдХрдерд┐рдд рдЯреЗрдХреНрд╕рдЪрд░ рд╕реИрдореНрдкрд▓рд░реНрд╕ (рд╕реИрдореНрдкрд▓рд░) рддрдХ рдкрд╣реБрдВрдЪ - рд╡рд┐рднрд┐рдиреНрди рд╕реНрд╡рд░реВрдкреЛрдВ рдХреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░, рд╕рд╛рде рд╣реА рд╡реАрдбрд┐рдпреЛ рдлреНрд░реЗрдо рдФрд░ рдХреБрдЫ рд╡реАрдбрд┐рдпреЛ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЖрдВрджреЛрд▓рди (рдореЛрд╢рди рдЖрдХрд▓рди) рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЖрдИрд╕реАрдПрдо - рдпрд╣ рдЧрд░реНрдо рд╣реИ, рдЬрдмрдХрд┐ рд╣рдбрд╝рддрд╛рд▓!
рдЖрдИрд╕реАрдПрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдорд╛рдорд▓реЗ рдХреЗ рдЕрдзреНрдпрдпрди рдореЗрдВ рдЙрдирдХреЗ рдХрд╛рдо рдХреЗ рд╕рдордп рдХреЛ рдорд╛рдкрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдЪрд▓рд╛рдХрд░ рдФрд░ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдХреЗ, рдЖрдк рдЙрдирдХреЗ рд▓рд┐рдП рдЖрдИрд╕реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХреЗрдВред
рдФрд░ рдЖрдИрд╕реАрдПрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИрдВ:
- рдЬрдм рдПрдХ GPU рдкрд░ рдЧрдгрдирд╛рдУрдВ рдХреЛ рдЙрддрд╛рд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ CPU <-> GPU рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдУрд╡рд░рд╣реЗрдб рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВред рдЗрд╕рд▓рд┐рдП, рд╣реИрд▓реЛ рдЬреИрд╕реЗ рдЙрджрд╛рд╣рд░рдг, ICM рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрд╝рди, рдПрдЖрдИ рдФрд░ рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдХрд┐рд╕реА рднреА рдЧреИрд░-рддреБрдЪреНрдЫ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдЗрди рдбреЗрдЯрд╛ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде, рдЖрдИрд╕реАрдПрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдИрд╕реАрдПрдо рдХреЛрдб рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╕рдордп, рдЖрдВрддрд░рд┐рдХ GPU рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрд░реНрдерд╛рдд, GPU рдереНрд░реЗрдбреНрд╕ рдХреА рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ (> 1000) рдмрдирд╛рдирд╛ рдФрд░ рдЙрди рд╕рднреА рдХреЛ рдХрд╛рдо рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЫреЛрдЯреЗ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рднрд╛рдЬрди рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХрд╛, рд╕рд╛рде рд╣реА рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рд╡рд┐рдХрд▓реНрдк, рдПрдХ рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдХрд┐рд╕реА рднреА GPU (рдФрд░ CPU) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХрд┐рд╕реА рднреА рддрд░реАрдХреЗ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ OpenCL рдХреЛрдб рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЖрдкрдХреЛ рдЦреБрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдпрд╛ рдХреЛрдбрд╛ рдХреЛрдб, рд▓реЗрдХрд┐рди рдЖрдк рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдлрд┐рд░ рдпрд╣ ICM рдкрд░ рдПрдХ рдирдЬрд░ рдбрд╛рд▓рдиреЗ рд▓рд╛рдпрдХ рд╣реИред
ICM рдПрдХ рдЬреАрд╡рд┐рдд рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдЙрддреНрдкрд╛рдж рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ - рдЬреАрдердм рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЖрдкрдХреЗ рдХрдорд┐рдЯ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рджреЛрдиреЛрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣реИ рдФрд░ рдЧрд┐рдЯрд╣рдм рдкрд░ рд░реАрдбрдореА рдлрд╛рдЗрд▓реЗрдВред рдФрд░ рдЕрдЧрд░ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред