TensorFlow рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реНрдЯреИрдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЬреЛ рд▓реЛрдЧ рд░реЛрдЬрд╝ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБ-рд╕реНрддрд░реАрдп рд╕реНрдЯреИрдХ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ (GPU, TPU, рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдЖрджрд┐) рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╕рдВрдХрд▓рди рдФрд░ рд░рдирдЯрд╛рдЗрдо рджреЛрдиреЛрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдпреЗ рдШрдЯрдХ, рдЯреЗрдВрд╕рд░рдлреНрд▓реЛ рдЧреНрд░рд╛рдл рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрд░реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдард┐рди рд╣реИрдЗрд╕ рдЪрд┐рддреНрд░ рдореЗрдВ, рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Tensorflow рд░реЗрдЦрд╛рдВрдХрди рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдиреЛрдЯTensorFlow 2.0 рдореЗрдВ, рдЧреНрд░рд╛рдлрд╝ рдирд┐рд╣рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ; рд▓рд╛рд▓рдЪреА рдЕрдорд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдпрд╛ рдкреВрд░реНрдг рдЧреНрд░рд╛рдлрд╝ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдЧреНрд░рд╛рдлрд╝ рдпрд╛ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
- рд╣рдо рдЧреНрд░рд╛рдл рдХреЛ рдЯреЗрдВрд╕рд░рдлрд╝реНрд▓реЛ рдирд┐рд╖реНрдкрд╛рджрдХ рдХреЛ рднреЗрдЬрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд╣рд╛рде рд╕реЗ рд▓рд┐рдЦреА рдЧреБрдард▓реА рдХрд╣рддреЗ рд╣реИрдВ
- рдЙрдиреНрд╣реЗрдВ XLA HLO (XLA рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡) рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ - XLA рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХрд╛ рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, CPU рдпрд╛ GPU рдХреЗ рд▓рд┐рдП LLVM рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ TPU рдХреЗ рд▓рд┐рдП XLA рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред
- рд╣рдо рдЙрдиреНрд╣реЗрдВ TensorRT , nGraph , рдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рд▓рд╛рдЧреВ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрджреЗрд╢ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
- рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЯреЗрдиреНрд╕рд░рдлреНрд▓реЛ рд▓рд╛рдЗрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЯреЗрдирд╕реЛрд░рдлреНрд▓реЛ рд▓рд╛рдЗрдЯ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХреНрд╕ рдПрдкреАрдЖрдИ (рдПрдирдПрдирдПрдкреАрдЖрдИ) рдпрд╛ рдЗрд╕рдХреЗ рдЬреИрд╕реЗ рдЬреАрдкреАрдпреВ рдпрд╛ рдбреАрдПрд╕рдкреА рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд┐рдзрд┐рдпрд╛рдВ рднреА рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рдд рдкрд░ рдХрдИ рдЕрдиреБрдХреВрд▓рди рдкрд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреНрд░реЗрдкреНрд▓рд░ рдврд╛рдВрдЪреЗ рдореЗрдВ, рдЬреЛ рдЯреЗрдиреНрд╕рдлреНрд▓реЛ рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИред
рдпрджреНрдпрдкрд┐ рдпреЗ рд╕рдВрдХрд▓рдХ рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░рддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЗрди рдЙрдк-рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рднреНрд░рдорд┐рдд рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реНрдЯреИрдХ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдирдП рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рдФрд░ рд░реВрдкрд╛рдВрддрд░рдг рдорд╛рд░реНрдЧ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдФрд░ рдЗрд╕ рд╕рдм рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо MLIR, рдПрдХ рдмрд╣реБ-рд╕реНрддрд░реАрдп рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдХреЗ рдкреНрд░рд╕рдиреНрди рд╣реИрдВред рдпрд╣ рдореЙрдбрд▓ рджреГрд╢реНрдп рдФрд░ рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕рдВрдХрд▓рдХ рдХреЗ рдмреАрдЪ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рджреГрд╢реНрдп рдкреНрд░рд╛рд░реВрдк рдФрд░ рд╕рдВрдХрд▓рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░-рдирд┐рд░реНрднрд░ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред MLIR рдХрд╛ рдкрд░рд┐рдЪрдп, рд╣рдо рдФрджреНрдпреЛрдЧрд┐рдХ рдШрдЯрдХреЛрдВ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрдХрд▓рдХреЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдирдП рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЛ рд░рд╛рд╕реНрддрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ MLIR рдХрдИ рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐рдХрд░ рд╣реЛрдЧрд╛, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рд╕рдВрдХрд▓рдХ рд╢реЛрдзрдХрд░реНрддрд╛, рд╕рд╛рде рд╣реА рдЪрд┐рдХрд┐рддреНрд╕рдХ рдЬреЛ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ;
- рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдирд┐рд░реНрдорд╛рддрд╛ Tensorflow рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ TPUs, рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдиреНрдпреВрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░, рдФрд░ рдЕрдиреНрдп рдХрд╕реНрдЯрдо ASIC;
- рдЬреЛ рд▓реЛрдЧ рд╕рдВрдХрд▓рдХ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдХ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд▓рд╛рдн рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ;
MLIR рдХреНрдпрд╛ рд╣реИ?
MLIR рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдзреБрдирд┐рдХ рдЕрдиреБрдХреВрд▓рди рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдЪреАрд▓рд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ (IR) рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдФрд░ рдЗрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЬрдм рд╣рдо рд╕рдВрдХрд▓рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рджреГрд╢реНрдп рд╕реЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рджреГрд╢реНрдп рдореЗрдВ рдЬрд╛рдиреЗ рдХреЛ рдХрдо рдХрд░рдирд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
MLIR LLVM рдХреЗ рдкреНрд░рднрд╛рд╡ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдмреЗрд╢рд░реНрдореА рд╕реЗ рдХрдИ рдЕрдЪреНрдЫреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЙрдзрд╛рд░ рд▓реЗрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рд▓рдЪреАрд▓реА рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рдФрд░ рдПрдХ рд╕рдВрдХрд▓рди рд╕реНрддрд░ рдореЗрдВ рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рдХрдИ рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рдЧреНрд░рд╛рдл рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрди рдЕрдореВрд░реНрддрд┐рдпреЛрдВ рдореЗрдВ рдЯреЗрдиреНрд╕рд░рдлреНрд▓реЛ рдСрдкрд░реЗрд╢рди, рдиреЗрд╕реНрдЯреЗрдб рдкреЙрд▓реАрд╣реЗрдбреНрд░рд▓ рд▓реВрдк рд░реАрдЬрди, рдПрд▓рдПрд▓рд╡реАрдПрдо рдирд┐рд░реНрджреЗрд╢ рдФрд░ рдлрд┐рдХреНрд╕реНрдб рдкреЙрдЗрдВрдЯ рдСрдкрд░реЗрд╢рдВрд╕ рдФрд░ рдкреНрд░рдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
MLIR рдХреА рдмреЛрд▓рд┐рдпрд╛рдБ
рд╡рд┐рднрд┐рдиреНрди рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, MLIR рдореЗрдВ "рдмреЛрд▓рд┐рдпрд╛рдБ" рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- TensorFlow IR, рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ TensorFlow рд░реЗрдЦрд╛рдВрдХрди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- XLA HLO IR, XLA рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрддреНрдкрд╛рджрди рд╣рдо TPU рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рди рдХреЗрд╡рд▓ред
- рдмрд╣реБрдкрдХреНрд╖реАрдп рдЕрднреНрдпрд╛рд╡реЗрджрди рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХреА рдЧрдИ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЖрддреНрдореАрдпрддрд╛ рдмреЛрд▓реА
- LLVM IR, 1: 1 рджреЗрд╢реА LLVM рджреГрд╢реНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, MLIR рдХреЛ LLVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ GPU рдФрд░ CPU рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- TensorFlow Lite рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдкреНрд░рддреНрдпреЗрдХ рдмреЛрд▓реА рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдкрд░реЗрд╢рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЖрдХреНрд░рдордгрдХрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЬреИрд╕реЗ: "рдпрд╣ рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдСрдкрд░реЗрдЯрд░ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВред"
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд╛рдпрдХ
рдПрдордПрд▓рдЖрдИрдЖрд░ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рдЪрд╛рд▓рди рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИред рдмреЛрд▓рд┐рдпрд╛рдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рдЗрд╕ рддрд░рд╣ MLIR LLVM IR рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА (рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рд╕рдореБрдЪреНрдЪрдп рд╡рд╛рд▓реЗ), рдбреЛрдореЗрди рднрд╛рд╖рд╛ рд╕рд╛рд░, рдЬреИрд╕реЗ рдХрд┐ рдорд╛рддреНрд░рд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдкреНрд░рдХрд╛рд░, рдПрдордПрд▓ рдЕрдиреБрдХреВрд▓рд┐рдд рддреНрд╡рд░рдХ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдореЙрдбрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕реНрд╡рд┐рдлреНрдЯ рдпрд╛ рдХреНрд▓реИрдВрдЧ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реАред
рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдирдпрд╛ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕рдВрдХрд▓рдХ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдирдИ рдмреЛрд▓реА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдмреЛрд▓реА рдореЗрдВ TensorFlow рдЧреНрд░рд╛рдл рдХреА рдмреЛрд▓реА рд╕реЗ рдЙрддрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдПрдХ рд╣реА рдореЙрдбрд▓ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдкрд░ рдмреЛрд▓реА рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдЖрдИрдЖрд░ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдВрдЧреЗред
рдХрдВрдкрд╛рдЗрд▓рд░ рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП, рдПрдордПрд▓рдЖрдИрдЖрд░ рдЖрдкрдХреЛ рд╣рд░ рд╕реНрддрд░ рдкрд░ рд░реВрдкрд╛рдВрддрд░рдг рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рд╕рд╛рд░ рдХреЛ рдЖрдИрдЖрд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдореЙрдбрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, MLIR рдПрдХ рд╢реБрджреНрдз рд╕рдВрдХрд▓рдХ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдЬреЛ LLVM рд╣реИред
рдпрджреНрдпрдкрд┐ MLIR ML рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХрд▓рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ! рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдордПрд▓ рдореЙрдбрд▓ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрдордПрд▓рдЖрдИрдЖрд░ рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди рдЕрдореВрд░реНрддрди рдХреЗ рд╕реНрддрд░реЛрдВ рдХреЗ рдмреАрдЪ рдмрдврд╝рдиреЗ рдкрд░ рдХреЛрдб рд╡рдВрд╢ рдХреЗ рд▓рд┐рдП рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ
рд╣рдордиреЗ рдПрдХ
GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЦреЛрд▓реА
рд╣реИ рдФрд░ рд╕рднреА рдХреЛ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ (рд╣рдорд╛рд░реЗ рдЧрд╛рдЗрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ!)ред рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдЗрд╕ рдЯреВрд▓рдмреЙрдХреНрд╕ - рдЯреЗрдирд╕реЙрд░рдлреНрд▓реЛ рдФрд░ рдЯреАрдПрдл рд▓рд╛рдЗрдЯ рдХреА рдмреЛрд▓реА рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдЬрд╛рд░реА рдХрд░реЗрдВрдЧреЗред рд╣рдо рдЖрдкрдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдХреНрд░рд┐рд╕ рд▓реБрдЯреНрдирд░ рдФрд░
рдЧреАрдердм рдкрд░ рд╣рдорд╛рд░реА
README рдХреА
рдкреНрд░рд╕реНрддреБрддрд┐ рджреЗрдЦреЗрдВред
рдпрджрд┐ рдЖрдк MLIR рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реА
рдирдИ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ , рдЬреЛ рдЬрд▓реНрдж рд╣реА рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬ рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧреАред рд╣рдорд╛рд░реЗ рд╕рд╛рде рд░рд╣реЛ!