<< 8/22 >>
First Last

XLA

HLO が LLVM の bitcode 的な感じの立ち位置
実際見た目も似ている。違いは操作単位がデカい(テンソル)こと

 ENTRY %cluster_0__XlaCompiledKernel_true__XlaNumConstantArgs_0__XlaNumResourceArgs_0_.v6 (arg0: f32[1024,1024], arg1: f32[1024,1024]) -> (f32[1024,1024]) {
   %arg1 = f32[1024,1024]{1,0} parameter(1)
   %arg0 = f32[1024,1024]{1,0} parameter(0)
   %dot = f32[1024,1024]{1,0} dot(f32[1024,1024]{1,0} %arg1, f32[1024,1024]{1,0} %arg0), lhs_contracting_dims={1}, rhs_contracting_dims={0}, metadata={op_type="MatMul" op_name="result"}
 
   %tuple = (f32[1024,1024]{1,0}) tuple(f32[1024,1024]{1,0} %dot), metadata={op_type="_Retval" op_name="result_0_retval_RetVal"}
   %get-tuple-element = f32[1024,1024]{1,0} get-tuple-element((f32[1024,1024]{1,0}) %tuple), index=0, metadata={op_type="_Retval" op_name="result_0_retval_RetVal"}
   ROOT %tuple.1 = (f32[1024,1024]{1,0}) tuple(f32[1024,1024]{1,0} %get-tuple-element)
 }