C ++ AMP рдХреА рдШреЛрд╖рдгрд╛ - рд╡рд┐рд╖рдо (GPU + CPU) C ++ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рдордВрдЪ

рдЫрд╡рд┐

рд╣реИрд▓реЛ, рд╣рд╛рдмрд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ! рдЕрдм рдореИрдВ AMD рдлреНрдпреВрдЬрди 11 рдбреЗрд╡рд▓рдкрд░ рд╕рдорд┐рдЯ рд╕рдореНрдореЗрд▓рди рдореЗрдВ, рдЕрдореЗрд░рд┐рдХрд╛, рдмреЗрд▓рд╡реНрдпреВ рдореЗрдВ рд╣реВрдВред рдореИрдВ рд╢рд╣рд░ рдФрд░ рд╕рдореНрдореЗрд▓рди рдХреЗ рдЕрдкрдиреЗ рдЫрд╛рдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдЬрдм рдореИрдВ рд╕рднреА рд╕рдВрдЪрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред рдЗрд╕ рдмреАрдЪ, рдореИрдВ рдЖрдкрдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдкреНрд▓реЗрдирд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рджреМрд░рд╛рди рдЖрдЬ рдХреА рдЧрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

Microsoft рдиреЗ рдорд▓реНрдЯреА-рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ GPU рдХреА рд╕рднреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╡рд┐рд╖рдо рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдЕрдкрдиреА рджреГрд╖реНрдЯрд┐ рдкреНрд░рд╕реНрддреБрдд рдХреАред рдПрдХ рдирдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ред

рдирдП рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ C ++ Accelerated Massive Parallelism рдпрд╛ C ++ AMP рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдордВрдЪ рдХреЗ рд▓рдХреНрд╖реНрдп рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ: C ++ рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдФрд░ GPU рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рдЖрдЬ рдЗрди рд▓рд╛рднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ C (рдпрд╛ рдЗрд╕рдХреА рд╕рдорд╛рдирддрд╛) рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд╛рд╕ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: OpenCL, CUDA, DirectComputeред

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

Microsoft рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреНрд▓рд╛рдЙрдб рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдордВрдЪ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рдЗрд╕ рдЙрдореНрдореАрдж рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЬрд▓реНрдж рд╣реА рд╣рдо рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХрд░реЛрдбрд╝реЛрдВ GPU рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рд╕реА ++ рдПрдПрдордкреА рдЖрдкрдХреЛ рдЖрдЬ рдРрд╕рд╛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рдХрд▓ рд╕рдорд╛рди рдХреНрд╖рдорддрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░реЗред

C ++ AMP рдШреЛрд╖рдгрд╛ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ Microsoft рдХреА рдШреЛрд╖рдгрд╛ рдереА рдХрд┐ рдирдпрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдХ рдЦреБрд▓реЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рддрд╣рдд рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдХрдВрдкрдиреА рдпрд╛ рдбреЗрд╡рд▓рдкрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрдирд╛ рд╕рдХреЗ! рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдиреЗ рдпрд╣ рднреА рдШреЛрд╖рдгрд╛ рдХреА рдХрд┐ рд╡рд╣ рдирдП рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдПрдордбреА рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджрд┐рдпрд╛ред

рдирдП рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдЕрднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмреНрд▓реЙрдЧ рдореЗрдВ www.danielmoth.com/Blog/C-Accelerated-Massive-Parallelism.aspx рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Microsoft рдиреЗ рдЖрдЬ рдШреЛрд╖рдгрд╛ рдХреА рдХрд┐ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, C ++ AMP рд╕рдкреЛрд░реНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛, GPU рдкрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛!

рдЖрдЬ рдпрд╣ рдПрдПрдордбреА рдлреНрдпреВрдЬрди 11 рд╕рдореНрдореЗрд▓рди рдХреА рд╕рднреА рдЦрдмрд░реЗрдВ рд╣реИрдВ, рдмрд╛рдж рдореЗрдВ рдореИрдВ рдХрдВрдкрдиреА рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдФрд░ рдЕрдкрдиреЗ рдЫрд╛рдкреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рдШрдЯрдирд╛ рдХреА рд╡рд┐рд╕реНрддреГрдд рд╕рдореАрдХреНрд╖рд╛ рд▓рд┐рдЦреВрдВрдЧрд╛ред

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


All Articles