#loc = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":40:1) #loc4 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":75:16) #loc5 = loc(unknown) #loc50 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":19:32) #loc57 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":22:16) #loc78 = loc("Q"(#loc)) #loc79 = loc("K"(#loc)) #loc80 = loc("V"(#loc)) #loc81 = loc("Q_scale"(#loc)) #loc82 = loc("K_scale"(#loc)) #loc83 = loc("Out"(#loc)) #loc84 = loc("stride_qz"(#loc)) #loc85 = loc("stride_qh"(#loc)) #loc86 = loc("stride_qn"(#loc)) #loc87 = loc("stride_kz"(#loc)) #loc88 = loc("stride_kh"(#loc)) #loc89 = loc("stride_kn"(#loc)) #loc90 = loc("stride_vz"(#loc)) #loc91 = loc("stride_vh"(#loc)) #loc92 = loc("stride_vn"(#loc)) #loc93 = loc("stride_oz"(#loc)) #loc94 = loc("stride_oh"(#loc)) #loc95 = loc("stride_on"(#loc)) #loc96 = loc("qo_len"(#loc)) #loc97 = loc("kv_len"(#loc)) #loc143 = loc("m_ij"(#loc50)) #loc148 = loc("l_ij"(#loc57)) #loc179 = loc(callsite(#loc143 at #loc4)) #loc184 = loc(callsite(#loc148 at #loc4)) #loc202 = loc(callsite(#loc5 at #loc179)) #loc204 = loc(callsite(#loc5 at #loc184)) module { tt.func public @_attn_fwd(%Q: !tt.ptr {tt.divisibility = 16 : i32} loc("Q"(#loc)), %K: !tt.ptr {tt.divisibility = 16 : i32} loc("K"(#loc)), %V: !tt.ptr {tt.divisibility = 16 : i32} loc("V"(#loc)), %Q_scale: !tt.ptr {tt.divisibility = 16 : i32} loc("Q_scale"(#loc)), %K_scale: !tt.ptr {tt.divisibility = 16 : i32} loc("K_scale"(#loc)), %Out: !tt.ptr {tt.divisibility = 16 : i32} loc("Out"(#loc)), %stride_qz: i32 {tt.divisibility = 16 : i32} loc("stride_qz"(#loc)), %stride_qh: i32 {tt.divisibility = 16 : i32} loc("stride_qh"(#loc)), %stride_qn: i32 {tt.divisibility = 16 : i32} loc("stride_qn"(#loc)), %stride_kz: i32 {tt.divisibility = 16 : i32} loc("stride_kz"(#loc)), %stride_kh: i32 {tt.divisibility = 16 : i32} loc("stride_kh"(#loc)), %stride_kn: i32 {tt.divisibility = 16 : i32} loc("stride_kn"(#loc)), %stride_vz: i32 {tt.divisibility = 16 : i32} loc("stride_vz"(#loc)), %stride_vh: i32 {tt.divisibility = 16 : i32} loc("stride_vh"(#loc)), %stride_vn: i32 {tt.divisibility = 16 : i32} loc("stride_vn"(#loc)), %stride_oz: i32 {tt.divisibility = 16 : i32} loc("stride_oz"(#loc)), %stride_oh: i32 {tt.divisibility = 16 : i32} loc("stride_oh"(#loc)), %stride_on: i32 {tt.divisibility = 16 : i32} loc("stride_on"(#loc)), %qo_len: i32 loc("qo_len"(#loc)), %kv_len: i32 loc("kv_len"(#loc))) attributes {noinline = false} { %l_i = arith.constant dense<1.000000e+00> : tensor<128xf32> loc(#loc98) %m_i = arith.constant dense<0xFF800000> : tensor<128xf32> loc(#loc99) %c0_i32 = arith.constant 0 : i32 loc(#loc100) %cst = arith.constant dense<0> : tensor<128x64xi32> loc(#loc101) %cst_0 = arith.constant dense<0.000000e+00> : tensor<128x128xf16> loc(#loc101) %c1_i32 = arith.constant 1 : i32 loc(#loc101) %acc = arith.constant dense<0.000000e+00> : tensor<128x128xf32> loc(#loc166) %k_scale_offset = arith.constant 63 : i32 loc(#loc167) %c64_i32 = arith.constant 64 : i32 loc(#loc5) %q_scale_offset = arith.constant 127 : i32 loc(#loc168) %c128_i32 = arith.constant 128 : i32 loc(#loc5) %c32_i64 = arith.constant 32 : i64 loc(#loc5) %start_m = tt.get_program_id x : i32 loc(#loc105) %off_z = tt.get_program_id z : i32 loc(#loc106) %off_z_1 = arith.extsi %off_z : i32 to i64 loc(#loc106) %off_h = tt.get_program_id y : i32 loc(#loc107) %off_h_2 = arith.extsi %off_h : i32 to i64 loc(#loc107) %q_scale_offset_3 = arith.muli %off_z_1, %c32_i64 : i64 loc(#loc108) %q_scale_offset_4 = arith.addi %q_scale_offset_3, %off_h_2 : i64 loc(#loc108) %q_scale_offset_5 = arith.addi %qo_len, %q_scale_offset : i32 loc(#loc169) %q_scale_offset_6 = arith.divsi %q_scale_offset_5, %c128_i32 : i32 loc(#loc170) %q_scale_offset_7 = arith.extsi %q_scale_offset_6 : i32 to i64 loc(#loc109) %q_scale_offset_8 = arith.muli %q_scale_offset_4, %q_scale_offset_7 : i64 loc(#loc109) %k_scale_offset_9 = arith.addi %kv_len, %k_scale_offset : i32 loc(#loc171) %k_scale_offset_10 = arith.divsi %k_scale_offset_9, %c64_i32 : i32 loc(#loc172) %k_scale_offset_11 = arith.extsi %k_scale_offset_10 : i32 to i64 loc(#loc110) %k_scale_offset_12 = arith.muli %q_scale_offset_4, %k_scale_offset_11 : i64 loc(#loc110) %offs_m = arith.muli %start_m, %c128_i32 : i32 loc(#loc111) %offs_m_13 = tt.make_range {end = 128 : i32, start = 0 : i32} : tensor<128xi32> loc(#loc112) %offs_m_14 = tt.splat %offs_m : i32 -> tensor<128xi32> loc(#loc111) %offs_m_15 = arith.addi %offs_m_14, %offs_m_13 : tensor<128xi32> loc(#loc111) %offs_n = tt.make_range {end = 64 : i32, start = 0 : i32} : tensor<64xi32> loc(#loc113) %Q_ptrs = arith.extsi %stride_qz : i32 to i64 loc(#loc114) %Q_ptrs_16 = arith.muli %off_z_1, %Q_ptrs : i64 loc(#loc114) %Q_ptrs_17 = arith.extsi %stride_qh : i32 to i64 loc(#loc115) %Q_ptrs_18 = arith.muli %off_h_2, %Q_ptrs_17 : i64 loc(#loc115) %Q_ptrs_19 = arith.addi %Q_ptrs_16, %Q_ptrs_18 : i64 loc(#loc114) %Q_ptrs_20 = tt.addptr %Q, %Q_ptrs_19 : !tt.ptr, i64 loc(#loc116) %Q_ptrs_21 = tt.expand_dims %offs_m_15 {axis = 1 : i32} : tensor<128xi32> -> tensor<128x1xi32> loc(#loc117) %Q_ptrs_22 = tt.splat %stride_qn : i32 -> tensor<128x1xi32> loc(#loc117) %Q_ptrs_23 = arith.muli %Q_ptrs_21, %Q_ptrs_22 : tensor<128x1xi32> loc(#loc117) %Q_ptrs_24 = tt.splat %Q_ptrs_20 : !tt.ptr -> tensor<128x1x!tt.ptr> loc(#loc116) %Q_ptrs_25 = tt.addptr %Q_ptrs_24, %Q_ptrs_23 : tensor<128x1x!tt.ptr>, tensor<128x1xi32> loc(#loc116) %Q_ptrs_26 = tt.expand_dims %offs_m_13 {axis = 0 : i32} : tensor<128xi32> -> tensor<1x128xi32> loc(#loc118) %Q_ptrs_27 = tt.broadcast %Q_ptrs_25 : tensor<128x1x!tt.ptr> -> tensor<128x128x!tt.ptr> loc(#loc116) %Q_ptrs_28 = tt.broadcast %Q_ptrs_26 : tensor<1x128xi32> -> tensor<128x128xi32> loc(#loc116) %Q_ptrs_29 = tt.addptr %Q_ptrs_27, %Q_ptrs_28 : tensor<128x128x!tt.ptr>, tensor<128x128xi32> loc(#loc116) %Q_scale_ptr = tt.addptr %Q_scale, %q_scale_offset_8 : !tt.ptr, i64 loc(#loc119) %Q_scale_ptr_30 = tt.addptr %Q_scale_ptr, %start_m : !tt.ptr, i32 loc(#loc119) %K_ptrs = arith.extsi %stride_kz : i32 to i64 loc(#loc120) %K_ptrs_31 = arith.muli %off_z_1, %K_ptrs : i64 loc(#loc120) %K_ptrs_32 = arith.extsi %stride_kh : i32 to i64 loc(#loc121) %K_ptrs_33 = arith.muli %off_h_2, %K_ptrs_32 : i64 loc(#loc121) %K_ptrs_34 = arith.addi %K_ptrs_31, %K_ptrs_33 : i64 loc(#loc120) %K_ptrs_35 = tt.addptr %K, %K_ptrs_34 : !tt.ptr, i64 loc(#loc122) %K_ptrs_36 = tt.expand_dims %offs_n {axis = 0 : i32} : tensor<64xi32> -> tensor<1x64xi32> loc(#loc123) %K_ptrs_37 = tt.splat %stride_kn : i32 -> tensor<1x64xi32> loc(#loc123) %K_ptrs_38 = arith.muli %K_ptrs_36, %K_ptrs_37 : tensor<1x64xi32> loc(#loc123) %K_ptrs_39 = tt.splat %K_ptrs_35 : !tt.ptr -> tensor<1x64x!tt.ptr> loc(#loc122) %K_ptrs_40 = tt.addptr %K_ptrs_39, %K_ptrs_38 : tensor<1x64x!tt.ptr>, tensor<1x64xi32> loc(#loc122) %K_ptrs_41 = tt.expand_dims %offs_m_13 {axis = 1 : i32} : tensor<128xi32> -> tensor<128x1xi32> loc(#loc124) %K_ptrs_42 = tt.broadcast %K_ptrs_40 : tensor<1x64x!tt.ptr> -> tensor<128x64x!tt.ptr> loc(#loc122) %K_ptrs_43 = tt.broadcast %K_ptrs_41 : tensor<128x1xi32> -> tensor<128x64xi32> loc(#loc122) %K_ptrs_44 = tt.addptr %K_ptrs_42, %K_ptrs_43 : tensor<128x64x!tt.ptr>, tensor<128x64xi32> loc(#loc122) %K_scale_ptr = tt.addptr %K_scale, %k_scale_offset_12 : !tt.ptr, i64 loc(#loc125) %V_ptrs = arith.extsi %stride_vz : i32 to i64 loc(#loc126) %V_ptrs_45 = arith.muli %off_z_1, %V_ptrs : i64 loc(#loc126) %V_ptrs_46 = arith.extsi %stride_vh : i32 to i64 loc(#loc127) %V_ptrs_47 = arith.muli %off_h_2, %V_ptrs_46 : i64 loc(#loc127) %V_ptrs_48 = arith.addi %V_ptrs_45, %V_ptrs_47 : i64 loc(#loc126) %V_ptrs_49 = tt.addptr %V, %V_ptrs_48 : !tt.ptr, i64 loc(#loc128) %V_ptrs_50 = tt.expand_dims %offs_n {axis = 1 : i32} : tensor<64xi32> -> tensor<64x1xi32> loc(#loc129) %V_ptrs_51 = tt.splat %stride_vn : i32 -> tensor<64x1xi32> loc(#loc129) %V_ptrs_52 = arith.muli %V_ptrs_50, %V_ptrs_51 : tensor<64x1xi32> loc(#loc129) %V_ptrs_53 = tt.splat %V_ptrs_49 : !tt.ptr -> tensor<64x1x!tt.ptr> loc(#loc128) %V_ptrs_54 = tt.addptr %V_ptrs_53, %V_ptrs_52 : tensor<64x1x!tt.ptr>, tensor<64x1xi32> loc(#loc128) %V_ptrs_55 = tt.broadcast %V_ptrs_54 : tensor<64x1x!tt.ptr> -> tensor<64x128x!tt.ptr> loc(#loc128) %V_ptrs_56 = tt.broadcast %Q_ptrs_26 : tensor<1x128xi32> -> tensor<64x128xi32> loc(#loc128) %V_ptrs_57 = tt.addptr %V_ptrs_55, %V_ptrs_56 : tensor<64x128x!tt.ptr>, tensor<64x128xi32> loc(#loc128) %O_block_ptr = arith.extsi %stride_oz : i32 to i64 loc(#loc130) %O_block_ptr_58 = arith.muli %off_z_1, %O_block_ptr : i64 loc(#loc130) %O_block_ptr_59 = arith.extsi %stride_oh : i32 to i64 loc(#loc131) %O_block_ptr_60 = arith.muli %off_h_2, %O_block_ptr_59 : i64 loc(#loc131) %O_block_ptr_61 = arith.addi %O_block_ptr_58, %O_block_ptr_60 : i64 loc(#loc130) %O_block_ptr_62 = tt.addptr %Out, %O_block_ptr_61 : !tt.ptr, i64 loc(#loc132) %O_block_ptr_63 = tt.splat %stride_on : i32 -> tensor<128x1xi32> loc(#loc133) %O_block_ptr_64 = arith.muli %Q_ptrs_21, %O_block_ptr_63 : tensor<128x1xi32> loc(#loc133) %O_block_ptr_65 = tt.splat %O_block_ptr_62 : !tt.ptr -> tensor<128x1x!tt.ptr> loc(#loc132) %O_block_ptr_66 = tt.addptr %O_block_ptr_65, %O_block_ptr_64 : tensor<128x1x!tt.ptr>, tensor<128x1xi32> loc(#loc132) %O_block_ptr_67 = tt.broadcast %O_block_ptr_66 : tensor<128x1x!tt.ptr> -> tensor<128x128x!tt.ptr> loc(#loc132) %O_block_ptr_68 = tt.addptr %O_block_ptr_67, %Q_ptrs_28 : tensor<128x128x!tt.ptr>, tensor<128x128xi32> loc(#loc132) %q = tt.splat %qo_len : i32 -> tensor<128x1xi32> loc(#loc134) %q_69 = arith.cmpi slt, %Q_ptrs_21, %q : tensor<128x1xi32> loc(#loc134) %q_70 = tt.broadcast %q_69 : tensor<128x1xi1> -> tensor<128x128xi1> loc(#loc135) %q_71 = tt.load %Q_ptrs_29, %q_70 : tensor<128x128x!tt.ptr> loc(#loc135) %q_scale = tt.load %Q_scale_ptr_30 : !tt.ptr loc(#loc136) %V_ptrs_72:6 = scf.for %start_n = %c0_i32 to %kv_len step %c64_i32 iter_args(%acc_76 = %acc, %l_i_77 = %l_i, %m_i_78 = %m_i, %K_ptrs_79 = %K_ptrs_44, %K_scale_ptr_80 = %K_scale_ptr, %V_ptrs_81 = %V_ptrs_57) -> (tensor<128x128xf32>, tensor<128xf32>, tensor<128xf32>, tensor<128x64x!tt.ptr>, !tt.ptr, tensor<64x128x!tt.ptr>) : i32 { %k_mask = arith.subi %kv_len, %start_n : i32 loc(#loc174) %k_mask_82 = tt.splat %k_mask : i32 -> tensor<1x64xi32> loc(#loc175) %k_mask_83 = arith.cmpi slt, %K_ptrs_36, %k_mask_82 : tensor<1x64xi32> loc(#loc175) %k = tt.broadcast %k_mask_83 : tensor<1x64xi1> -> tensor<128x64xi1> loc(#loc176) %k_84 = tt.load %K_ptrs_79, %k : tensor<128x64x!tt.ptr> loc(#loc176) %k_scale = tt.load %K_scale_ptr_80 : !tt.ptr loc(#loc177) %qk = tt.dot %q_71, %k_84, %cst, inputPrecision = tf32 : tensor<128x128xi8> * tensor<128x64xi8> -> tensor<128x64xi32> loc(#loc178) %qk_85 = arith.sitofp %qk : tensor<128x64xi32> to tensor<128x64xf32> loc(#loc178) %qk_86 = tt.splat %q_scale : f32 -> tensor<128x64xf32> loc(#loc178) %qk_87 = arith.mulf %qk_85, %qk_86 : tensor<128x64xf32> loc(#loc178) %qk_88 = tt.splat %k_scale : f32 -> tensor<128x64xf32> loc(#loc178) %qk_89 = arith.mulf %qk_87, %qk_88 : tensor<128x64xf32> loc(#loc178) %m_ij = "tt.reduce"(%qk_89) <{axis = 1 : i32}> ({ ^bb0(%m_ij_114: f32 loc(callsite(#loc5 at #loc179)), %m_ij_115: f32 loc(callsite(#loc5 at #loc179))): %m_ij_116 = arith.maxnumf %m_ij_114, %m_ij_115 : f32 loc(#loc206) tt.reduce.return %m_ij_116 : f32 loc(#loc201) }) : (tensor<128x64xf32>) -> tensor<128xf32> loc(#loc201) %m_ij_90 = arith.maxnumf %m_i_78, %m_ij : tensor<128xf32> loc(#loc180) %qk_91 = tt.expand_dims %m_ij_90 {axis = 1 : i32} : tensor<128xf32> -> tensor<128x1xf32> loc(#loc181) %qk_92 = tt.broadcast %qk_91 : tensor<128x1xf32> -> tensor<128x64xf32> loc(#loc182) %qk_93 = arith.subf %qk_89, %qk_92 : tensor<128x64xf32> loc(#loc182) %p = math.exp2 %qk_93 : tensor<128x64xf32> loc(#loc183) %l_ij = "tt.reduce"(%p) <{axis = 1 : i32}> ({ ^bb0(%l_ij_114: f32 loc(callsite(#loc5 at #loc184)), %l_ij_115: f32 loc(callsite(#loc5 at #loc184))): %l_ij_116 = arith.addf %l_ij_114, %l_ij_115 : f32 loc(#loc207) tt.reduce.return %l_ij_116 : f32 loc(#loc203) }) : (tensor<128x64xf32>) -> tensor<128xf32> loc(#loc203) %alpha = arith.subf %m_i_78, %m_ij_90 : tensor<128xf32> loc(#loc185) %alpha_94 = math.exp2 %alpha : tensor<128xf32> loc(#loc186) %l_i_95 = arith.mulf %l_i_77, %alpha_94 : tensor<128xf32> loc(#loc187) %l_i_96 = arith.addf %l_i_95, %l_ij : tensor<128xf32> loc(#loc187) %acc_97 = tt.expand_dims %alpha_94 {axis = 1 : i32} : tensor<128xf32> -> tensor<128x1xf32> loc(#loc188) %acc_98 = tt.broadcast %acc_97 : tensor<128x1xf32> -> tensor<128x128xf32> loc(#loc189) %acc_99 = arith.mulf %acc_76, %acc_98 : tensor<128x128xf32> loc(#loc189) %v = tt.splat %k_mask : i32 -> tensor<64x1xi32> loc(#loc190) %v_100 = arith.cmpi slt, %V_ptrs_50, %v : tensor<64x1xi32> loc(#loc190) %v_101 = tt.broadcast %v_100 : tensor<64x1xi1> -> tensor<64x128xi1> loc(#loc191) %v_102 = tt.load %V_ptrs_81, %v_101 : tensor<64x128x!tt.ptr> loc(#loc191) %p_103 = arith.truncf %p : tensor<128x64xf32> to tensor<128x64xf16> loc(#loc192) %acc_104 = tt.dot %p_103, %v_102, %cst_0, inputPrecision = tf32 : tensor<128x64xf16> * tensor<64x128xf16> -> tensor<128x128xf16> loc(#loc193) %acc_105 = arith.extf %acc_104 : tensor<128x128xf16> to tensor<128x128xf32> loc(#loc194) %acc_106 = arith.addf %acc_99, %acc_105 : tensor<128x128xf32> loc(#loc194) %K_ptrs_107 = arith.muli %stride_kn, %c64_i32 : i32 loc(#loc195) %K_ptrs_108 = tt.splat %K_ptrs_107 : i32 -> tensor<128x64xi32> loc(#loc196) %K_ptrs_109 = tt.addptr %K_ptrs_79, %K_ptrs_108 : tensor<128x64x!tt.ptr>, tensor<128x64xi32> loc(#loc196) %K_scale_ptr_110 = tt.addptr %K_scale_ptr_80, %c1_i32 : !tt.ptr, i32 loc(#loc197) %V_ptrs_111 = arith.muli %stride_vn, %c64_i32 : i32 loc(#loc198) %V_ptrs_112 = tt.splat %V_ptrs_111 : i32 -> tensor<64x128xi32> loc(#loc199) %V_ptrs_113 = tt.addptr %V_ptrs_81, %V_ptrs_112 : tensor<64x128x!tt.ptr>, tensor<64x128xi32> loc(#loc199) scf.yield %acc_106, %l_i_96, %m_ij_90, %K_ptrs_109, %K_scale_ptr_110, %V_ptrs_113 : tensor<128x128xf32>, tensor<128xf32>, tensor<128xf32>, tensor<128x64x!tt.ptr>, !tt.ptr, tensor<64x128x!tt.ptr> loc(#loc100) } loc(#loc210) %acc_73 = tt.expand_dims %V_ptrs_72#1 {axis = 1 : i32} : tensor<128xf32> -> tensor<128x1xf32> loc(#loc164) %acc_74 = tt.broadcast %acc_73 : tensor<128x1xf32> -> tensor<128x128xf32> loc(#loc165) %acc_75 = arith.divf %V_ptrs_72#0, %acc_74 : tensor<128x128xf32> loc(#loc165) %0 = arith.truncf %acc_75 : tensor<128x128xf32> to tensor<128x128xbf16> loc(#loc76) tt.store %O_block_ptr_68, %0, %q_70 : tensor<128x128x!tt.ptr> loc(#loc77) tt.return loc(#loc) } loc(#loc) } loc(#loc) #loc1 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":70:11) #loc2 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":69:11) #loc3 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":13:5) #loc6 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\language\\standard.py":129:12) #loc7 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":71:11) #loc8 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":57:80) #loc9 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":56:44) #loc10 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":51:15) #loc11 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":53:13) #loc12 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":54:13) #loc13 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":56:23) #loc14 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\language\\standard.py":43:13) #loc15 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\language\\standard.py":43:12) #loc16 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":56:22) #loc17 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":57:22) #loc18 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":59:14) #loc19 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":59:34) #loc20 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":60:14) #loc21 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":62:19) #loc22 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":62:39) #loc23 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":62:14) #loc24 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":62:60) #loc25 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":62:90) #loc26 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":63:19) #loc27 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":64:19) #loc28 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":64:39) #loc29 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":64:14) #loc30 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":64:79) #loc31 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":64:109) #loc32 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":65:19) #loc33 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":66:19) #loc34 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":66:39) #loc35 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":66:14) #loc36 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":66:79) #loc37 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":67:26) #loc38 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":67:46) #loc39 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":67:19) #loc40 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":67:67) #loc41 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":73:32) #loc42 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":73:9) #loc43 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":74:15) #loc44 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":15:37) #loc45 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":15:18) #loc46 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":16:13) #loc47 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":17:19) #loc48 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":18:14) #loc49 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\language\\standard.py":191:16) #loc51 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\language\\standard.py":170:12) #loc52 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":19:16) #loc53 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":20:19) #loc54 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":20:14) #loc55 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":21:13) #loc56 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\language\\standard.py":293:12) #loc58 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\language\\standard.py":263:12) #loc59 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":24:30) #loc60 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":24:17) #loc61 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":25:15) #loc62 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":27:21) #loc63 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":27:15) #loc64 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":29:36) #loc65 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":29:13) #loc66 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":30:13) #loc67 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":32:16) #loc68 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":32:9) #loc69 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":34:19) #loc70 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":34:9) #loc71 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":35:9) #loc72 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":36:19) #loc73 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":36:9) #loc74 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":80:17) #loc75 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":80:11) #loc76 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":81:27) #loc77 = loc("D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\sageattention\\attn_qk_int8_per_block.py":81:5) #loc98 = loc("l_i"(#loc1)) #loc99 = loc("m_i"(#loc2)) #loc100 = loc(callsite(#loc3 at #loc4)) #loc101 = loc(callsite(#loc5 at #loc4)) #loc102 = loc("acc"(#loc7)) #loc103 = loc("k_scale_offset"(#loc8)) #loc104 = loc("q_scale_offset"(#loc9)) #loc105 = loc("start_m"(#loc10)) #loc106 = loc("off_z"(#loc11)) #loc107 = loc("off_h"(#loc12)) #loc108 = loc("q_scale_offset"(#loc13)) #loc109 = loc("q_scale_offset"(#loc16)) #loc110 = loc("k_scale_offset"(#loc17)) #loc111 = loc("offs_m"(#loc18)) #loc112 = loc("offs_m"(#loc19)) #loc113 = loc("offs_n"(#loc20)) #loc114 = loc("Q_ptrs"(#loc21)) #loc115 = loc("Q_ptrs"(#loc22)) #loc116 = loc("Q_ptrs"(#loc23)) #loc117 = loc("Q_ptrs"(#loc24)) #loc118 = loc("Q_ptrs"(#loc25)) #loc119 = loc("Q_scale_ptr"(#loc26)) #loc120 = loc("K_ptrs"(#loc27)) #loc121 = loc("K_ptrs"(#loc28)) #loc122 = loc("K_ptrs"(#loc29)) #loc123 = loc("K_ptrs"(#loc30)) #loc124 = loc("K_ptrs"(#loc31)) #loc125 = loc("K_scale_ptr"(#loc32)) #loc126 = loc("V_ptrs"(#loc33)) #loc127 = loc("V_ptrs"(#loc34)) #loc128 = loc("V_ptrs"(#loc35)) #loc129 = loc("V_ptrs"(#loc36)) #loc130 = loc("O_block_ptr"(#loc37)) #loc131 = loc("O_block_ptr"(#loc38)) #loc132 = loc("O_block_ptr"(#loc39)) #loc133 = loc("O_block_ptr"(#loc40)) #loc134 = loc("q"(#loc41)) #loc135 = loc("q"(#loc42)) #loc136 = loc("q_scale"(#loc43)) #loc137 = loc("acc"(#loc3)) #loc138 = loc("k_mask"(#loc44)) #loc139 = loc("k_mask"(#loc45)) #loc140 = loc("k"(#loc46)) #loc141 = loc("k_scale"(#loc47)) #loc142 = loc("qk"(#loc48)) #loc144 = loc("m_ij"(#loc52)) #loc145 = loc("qk"(#loc53)) #loc146 = loc("qk"(#loc54)) #loc147 = loc("p"(#loc55)) #loc149 = loc("alpha"(#loc59)) #loc150 = loc("alpha"(#loc60)) #loc151 = loc("l_i"(#loc61)) #loc152 = loc("acc"(#loc62)) #loc153 = loc("acc"(#loc63)) #loc154 = loc("v"(#loc64)) #loc155 = loc("v"(#loc65)) #loc156 = loc("p"(#loc66)) #loc157 = loc("acc"(#loc67)) #loc158 = loc("acc"(#loc68)) #loc159 = loc("K_ptrs"(#loc69)) #loc160 = loc("K_ptrs"(#loc70)) #loc161 = loc("K_scale_ptr"(#loc71)) #loc162 = loc("V_ptrs"(#loc72)) #loc163 = loc("V_ptrs"(#loc73)) #loc164 = loc("acc"(#loc74)) #loc165 = loc("acc"(#loc75)) #loc166 = loc(callsite(#loc6 at #loc102)) #loc167 = loc(callsite(#loc5 at #loc103)) #loc168 = loc(callsite(#loc5 at #loc104)) #loc169 = loc(callsite(#loc14 at #loc104)) #loc170 = loc(callsite(#loc15 at #loc104)) #loc171 = loc(callsite(#loc14 at #loc103)) #loc172 = loc(callsite(#loc15 at #loc103)) #loc173 = loc("l_i"(#loc137)) #loc174 = loc(callsite(#loc138 at #loc4)) #loc175 = loc(callsite(#loc139 at #loc4)) #loc176 = loc(callsite(#loc140 at #loc4)) #loc177 = loc(callsite(#loc141 at #loc4)) #loc178 = loc(callsite(#loc142 at #loc4)) #loc180 = loc(callsite(#loc144 at #loc4)) #loc181 = loc(callsite(#loc145 at #loc4)) #loc182 = loc(callsite(#loc146 at #loc4)) #loc183 = loc(callsite(#loc147 at #loc4)) #loc185 = loc(callsite(#loc149 at #loc4)) #loc186 = loc(callsite(#loc150 at #loc4)) #loc187 = loc(callsite(#loc151 at #loc4)) #loc188 = loc(callsite(#loc152 at #loc4)) #loc189 = loc(callsite(#loc153 at #loc4)) #loc190 = loc(callsite(#loc154 at #loc4)) #loc191 = loc(callsite(#loc155 at #loc4)) #loc192 = loc(callsite(#loc156 at #loc4)) #loc193 = loc(callsite(#loc157 at #loc4)) #loc194 = loc(callsite(#loc158 at #loc4)) #loc195 = loc(callsite(#loc159 at #loc4)) #loc196 = loc(callsite(#loc160 at #loc4)) #loc197 = loc(callsite(#loc161 at #loc4)) #loc198 = loc(callsite(#loc162 at #loc4)) #loc199 = loc(callsite(#loc163 at #loc4)) #loc200 = loc("m_i"(#loc173)) #loc201 = loc(callsite(#loc49 at #loc179)) #loc203 = loc(callsite(#loc56 at #loc184)) #loc205 = loc("K_ptrs"(#loc200)) #loc206 = loc(callsite(#loc51 at #loc201)) #loc207 = loc(callsite(#loc58 at #loc203)) #loc208 = loc("K_scale_ptr"(#loc205)) #loc209 = loc("V_ptrs"(#loc208)) #loc210 = loc(callsite(#loc209 at #loc4))