bend-ml-tensor-gpu Releases (9): 0.1.5.1 0xa7c27951cd583387fb9278576d1236e0 indexed https://jend.leeeet.dev/files.txt?path=bend-ml-tensor-gpu@0.1.5.1 0.1.5.0 0x6538b6a56d11b5a4d65ef7d8b18c1f9f unindexed https://jend.leeeet.dev/files.txt?path=bend-ml-tensor-gpu@0.1.5.0 0.1.4.0 0x6a4b8944ce74c49ba240bff44915995a unindexed https://jend.leeeet.dev/files.txt?path=bend-ml-tensor-gpu@0.1.4.0 0.1.3.0 0x44d4ef8d5e110dfdde14372a07d96ade unindexed https://jend.leeeet.dev/files.txt?path=bend-ml-tensor-gpu@0.1.3.0 0.1.2.1 0x454d8eb5320624d5b121fdc9d78ee0a6 unindexed https://jend.leeeet.dev/files.txt?path=bend-ml-tensor-gpu@0.1.2.1 0.1.2.0 0xb9e60d53a545944cea5862de7643d281 unindexed https://jend.leeeet.dev/files.txt?path=bend-ml-tensor-gpu@0.1.2.0 0.1.1.1 0xfd9365cb299b6e0c5ac82f822afabaee unindexed https://jend.leeeet.dev/files.txt?path=bend-ml-tensor-gpu@0.1.1.1 0.1.1.0 0x92c8fe8f8abfa0e0018d7f1c3ddd061c unindexed https://jend.leeeet.dev/files.txt?path=bend-ml-tensor-gpu@0.1.1.0 0.1.0.0 0xb00297062e21c56b88008f0c5387c0a0 unindexed https://jend.leeeet.dev/files.txt?path=bend-ml-tensor-gpu@0.1.0.0 Definitions (147, 1 to 100 shown): BendMlTensorGpu.E (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=E) # the sizes and strides of one product: C[i][j] = sum_p A[oa + i*arow + p*sa] * B[ob + p*sb + j*bcol], n x m, k steps # (oa, ob: 0 except for matmul_precise's blocks) type E is Data: E{n: U32, m: U32, k: U32, tcols: U32, tiles: U32, arow: U32, sa: U32, sb: U32, bcol: U32, kg: Nat, rot: Nat, rem: U32, ac: Bool, oa: U32, ob: U32} BendMlTensorGpu.pk (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=pk) # a product that counts only when its step is inside k (the last turn's steps past k add +0.0) def pk(ok: Bool, +x: F32) -> F32: BendMlTensorGpu.GR (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=GR) # the values of one turn: A's 4 rows and B's 4 columns at four consecutive steps, read through the arrays in order type GR is Type: GR{a: Array, b: Array, x0_0: F32, x0_1: F32, x0_2: F32, x0_3: F32, x1_0: F32, x1_1: F32, x1_2: F32, x1_3: F32, x2_0: F32, x2_1: F32, x2_2: F32, x2_3: F32, x3_0: F32, x3_1: F32, x3_2: F32, x3_3: F32, y0_0: F32, y0_1: F32, y0_2: F32, y0_3: F32, y1_0: F32, y1_1: F32, y1_2: F32, y1_3: F32, y2_0: F32, y2_1: F32, y2_2: F32, y2_3: F32, y3_0: F32, y3_1: F32, y3_2: F32, y3_3: F32} BendMlTensorGpu.gr_31 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_31) def gr_31(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, +y1_1: F32, +y1_2: F32, +y1_3: F32, +y2_0: F32, +y2_1: F32, +y2_2: F32, +y2_3: F32, +y3_0: F32, +y3_1: F32, +y3_2: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_30 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_30) def gr_30(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, +y1_1: F32, +y1_2: F32, +y1_3: F32, +y2_0: F32, +y2_1: F32, +y2_2: F32, +y2_3: F32, +y3_0: F32, +y3_1: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_29 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_29) def gr_29(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, +y1_1: F32, +y1_2: F32, +y1_3: F32, +y2_0: F32, +y2_1: F32, +y2_2: F32, +y2_3: F32, +y3_0: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_28 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_28) def gr_28(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, +y1_1: F32, +y1_2: F32, +y1_3: F32, +y2_0: F32, +y2_1: F32, +y2_2: F32, +y2_3: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_27 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_27) def gr_27(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, +y1_1: F32, +y1_2: F32, +y1_3: F32, +y2_0: F32, +y2_1: F32, +y2_2: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_26 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_26) def gr_26(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, +y1_1: F32, +y1_2: F32, +y1_3: F32, +y2_0: F32, +y2_1: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_25 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_25) def gr_25(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, +y1_1: F32, +y1_2: F32, +y1_3: F32, +y2_0: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_24 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_24) def gr_24(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, +y1_1: F32, +y1_2: F32, +y1_3: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_23 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_23) def gr_23(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, +y1_1: F32, +y1_2: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_22 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_22) def gr_22(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, +y1_1: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_21 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_21) def gr_21(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, +y1_0: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_20 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_20) def gr_20(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, +y0_3: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_19 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_19) def gr_19(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, +y0_2: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_18 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_18) def gr_18(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, +y0_1: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_17 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_17) def gr_17(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, +y0_0: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_16 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_16) def gr_16(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, +x3_3: F32, a: Array, rv: Array & F32) -> GR: BendMlTensorGpu.gr_15 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_15) def gr_15(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, +x3_2: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_14 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_14) def gr_14(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, +x3_1: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_13 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_13) def gr_13(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, +x3_0: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_12 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_12) def gr_12(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, +x2_3: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_11 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_11) def gr_11(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, +x2_2: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_10 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_10) def gr_10(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, +x2_1: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_9 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_9) def gr_9(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, +x2_0: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_8 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_8) def gr_8(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, +x1_3: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_7 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_7) def gr_7(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, +x1_2: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_6 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_6) def gr_6(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, +x1_1: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_5 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_5) def gr_5(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, +x1_0: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_4 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_4) def gr_4(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, +x0_3: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_3 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_3) def gr_3(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, +x0_2: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_2 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_2) def gr_2(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, +x0_1: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_1 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_1) def gr_1(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +x0_0: F32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.gr_0 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gr_0) def gr_0(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, rv: Array & F32, b: Array) -> GR: BendMlTensorGpu.turn (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=turn) # the turn whose A values start at ia and B values at ib def turn(+ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, a: Array, b: Array) -> GR: BendMlTensorGpu.T (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=T) # the tile's cells after the four sums are combined, row by row type T is Type: T{a: Array, b: Array, c0_0: F32, c0_1: F32, c0_2: F32, c0_3: F32, c1_0: F32, c1_1: F32, c1_2: F32, c1_3: F32, c2_0: F32, c2_1: F32, c2_2: F32, c2_3: F32, c3_0: F32, c3_1: F32, c3_2: F32, c3_3: F32} BendMlTensorGpu.mm (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=mm) def mm(kg: Nat, +ia: U32, +ib: U32, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +rem: U32, +rot: Nat, +s0_0_0: F32, +s1_0_0: F32, +s2_0_0: F32, +s3_0_0: F32, +s0_0_1: F32, +s1_0_1: F32, +s2_0_1: F32, +s3_0_1: F32, +s0_0_2: F32, +s1_0_2: F32, +s2_0_2: F32, +s3_0_2: F32, +s0_0_3: F32, +s1_0_3: F32, +s2_0_3: F32, +s3_0_3: F32, +s0_1_0: F32, +s1_1_0: F32, +s2_1_0: F32, +s3_1_0: F32, +s0_1_1: F32, +s1_1_1: F32, +s2_1_1: F32, +s3_1_1: F32, +s0_1_2: F32, +s1_1_2: F32, +s2_1_2: F32, +s3_1_2: F32, +s0_1_3: F32, +s1_1_3: F32, +s2_1_3: F32, +s3_1_3: F32, +s0_2_0: F32, +s1_2_0: F32, +s2_2_0: F32, +s3_2_0: F32, +s0_2_1: F32, +s1_2_1: F32, +s2_2_1: F32, +s3_2_1: F32, +s0_2_2: F32, +s1_2_2: F32, +s2_2_2: F32, +s3_2_2: F32, +s0_2_3: F32, +s1_2_3: F32, +s2_2_3: F32, +s3_2_3: F32, +s0_3_0: F32, +s1_3_0: F32, +s2_3_0: F32, +s3_3_0: F32, +s0_3_1: F32, +s1_3_1: F32, +s2_3_1: F32, +s3_3_1: F32, +s0_3_2: F32, +s1_3_2: F32, +s2_3_2: F32, +s3_3_2: F32, +s0_3_3: F32, +s1_3_3: F32, +s2_3_3: F32, +s3_3_3: F32, g: GR) -> T: BendMlTensorGpu.wr (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=wr) # writes cell (i, j) of C when it is inside n x m def wr(ok: Bool, +ac: Bool, +idx: U32, +x: F32, c: Array) -> Array: BendMlTensorGpu.put (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=put) def put(+ac: Bool, +n: U32, +m: U32, +i0: U32, +j0: U32, c: Array, t: T) -> Array: BendMlTensorGpu.tile (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=tile) def tile(+e: E, +i0: U32, +j0: U32, +a: Array, +b: Array, c: Array) -> Array: BendMlTensorGpu.leaf_if (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=leaf_if) def leaf_if(ok: Bool, +e: E, +t: U32, +tcols: U32, +a: Array, +b: Array, c: Array) -> Array: BendMlTensorGpu.leaf (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=leaf) def leaf(+e: E, +t: U32, +a: Array, +b: Array, c: Array) -> Array: BendMlTensorGpu.tree (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=tree) def tree(+e: E, d: Nat, +t: U32, +a: Array, +b: Array, +c: Array) -> Array: BendMlTensorGpu.tree_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=tree_new) def tree_new(+e: E, d: Nat, +a: Array, +b: Array, +cd: Nat) -> Array: BendMlTensorGpu.bang_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=bang_new) def bang_new(+e: E, d: Nat, +a: Array, +b: Array, +cd: Nat) -> Array: BendMlTensorGpu.bang (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=bang) def bang(+e: E, d: Nat, +a: Array, +b: Array, c: Array) -> Array: BendMlTensorGpu.ABC (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=ABC) type ABC is Type: ABC{a: Array, b: Array, c: Array} @unsafe BendMlTensorGpu.run_e (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=run_e) def run_e(+e: E, +tiles: U32, +a: Array, +b: Array, c: Array) -> ABC: BendMlTensorGpu.e_ofo (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=e_ofo) # the product's sizes and strides def e_ofo(+ac: Bool, +n: Nat, +m: Nat, +k: Nat, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +oa: U32, +ob: U32) -> E: BendMlTensorGpu.e_of (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=e_of) def e_of(+ac: Bool, +n: Nat, +m: Nat, +k: Nat, +arow: U32, +sa: U32, +sb: U32, +bcol: U32) -> E: BendMlTensorGpu.tiles (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=tiles) def tiles(+n: Nat, +m: Nat) -> Nat: BendMlTensorGpu.gemm_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gemm_new) def gemm_new(+n: Nat, +m: Nat, +k: Nat, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, +a: Array, +b: Array) -> ABC: BendMlTensorGpu.gemm (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=gemm) def gemm(+ac: Bool, +n: Nat, +m: Nat, +k: Nat, +arow: U32, +sa: U32, +sb: U32, +bcol: U32, a: Array, b: Array, c: Array) -> ABC: BendMlTensorGpu.mm_fin (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=mm_fin) def mm_fin(-n: Nat, -k: Nat, -m: Nat, g: ABC) -> TA.MMul: BendMlTensorGpu.mm_nt_fin (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=mm_nt_fin) def mm_nt_fin(-n: Nat, -k: Nat, -m: Nat, g: ABC) -> TA.MMulNT: BendMlTensorGpu.mm_tn_fin (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=mm_tn_fin) def mm_tn_fin(-n: Nat, -k: Nat, -m: Nat, g: ABC) -> TA.MMulTN: BendMlTensorGpu.matmul (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=matmul) def matmul(+n: Nat, +k: Nat, +m: Nat, par: Nat, a: TA.Mat, b: TA.Mat) -> TA.MMul: BendMlTensorGpu.matmul_acc (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=matmul_acc) def matmul_acc(+n: Nat, +k: Nat, +m: Nat, par: Nat, a: TA.Mat, b: TA.Mat, c: TA.Mat) -> TA.MMul: BendMlTensorGpu.matmul_nt (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=matmul_nt) def matmul_nt(+n: Nat, +k: Nat, +m: Nat, par: Nat, a: TA.Mat, b: TA.Mat) -> TA.MMulNT: BendMlTensorGpu.matmul_nt_acc (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=matmul_nt_acc) def matmul_nt_acc(+n: Nat, +k: Nat, +m: Nat, par: Nat, a: TA.Mat, b: TA.Mat, c: TA.Mat) -> TA.MMulNT: BendMlTensorGpu.matmul_tn (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=matmul_tn) def matmul_tn(+n: Nat, +k: Nat, +m: Nat, par: Nat, a: TA.Mat, b: TA.Mat) -> TA.MMulTN: BendMlTensorGpu.matmul_tn_acc (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=matmul_tn_acc) def matmul_tn_acc(+n: Nat, +k: Nat, +m: Nat, par: Nat, a: TA.Mat, b: TA.Mat, c: TA.Mat) -> TA.MMulTN: BendMlTensorGpu.depth2 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=depth2) def depth2(big: Bool, +n: Nat) -> Nat: BendMlTensorGpu.depth (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=depth) # leaves for n cells: 2^14 when there are that many, else the fewest powers of two that cover them def depth(+n: Nat) -> Nat: BendMlTensorGpu.share (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=share) # how many of the cells t, t + l, t + 2l, .. lie below n def share(+t: U32, +n: U32, +l: U32) -> Nat: BendMlTensorGpu.none (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=none) # an array of one cell, for an unused input def none(u: Unit) -> Array: BendMlTensorGpu.O2 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=O2) type O2 is Type: O2{a: Array, b: Array} BendMlTensorGpu.O3 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=O3) type O3 is Type: O3{a: Array, b: Array, c: Array} BendMlTensorGpu.O4 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=O4) type O4 is Type: O4{a: Array, b: Array, c: Array, d: Array} BendMlTensorGpu.R1 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=R1) type R1 is Type: R1{x1: Array, x2: Array, x3: Array, x4: Array, a: Array} BendMlTensorGpu.R2 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=R2) type R2 is Type: R2{x1: Array, x2: Array, x3: Array, x4: Array, o: O2} BendMlTensorGpu.R3 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=R3) type R3 is Type: R3{x1: Array, x2: Array, x3: Array, x4: Array, o: O3} BendMlTensorGpu.R4 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=R4) type R4 is Type: R4{x1: Array, x2: Array, x3: Array, x4: Array, o: O4} @unsafe BendMlTensorGpu.join2 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=join2) def join2(x: O2, y: O2) -> O2: BendMlTensorGpu.join3 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=join3) def join3(x: O3, y: O3) -> O3: BendMlTensorGpu.join4 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=join4) def join4(x: O4, y: O4) -> O4: BendMlTensorGpu.tree1 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=tree1) def tree1(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> Array -> Array, +d: Nat, +t: U32, +l: U32, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, +oa: Array) -> Array: BendMlTensorGpu.root1 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=root1) def root1(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> Array -> Array, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, oa: Array) -> Array: BendMlTensorGpu.root1_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=root1_new) def root1_new(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> Array -> Array, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, +ca: Nat) -> Array: BendMlTensorGpu.go1 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=go1) def go1(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> Array -> Array, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, oa: Array) -> R1: BendMlTensorGpu.go1_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=go1_new) def go1_new(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> Array -> Array, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, +ca: Nat) -> R1: BendMlTensorGpu.run1 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=run1) def run1(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> Array -> Array, +d: Nat, +e: E, x1: Array, x2: Array, x3: Array, x4: Array, oa: Array) -> R1: BendMlTensorGpu.run1_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=run1_new) def run1_new(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> Array -> Array, +d: Nat, +e: E, x1: Array, x2: Array, x3: Array, x4: Array, +ca: Nat) -> R1: BendMlTensorGpu.tree2 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=tree2) def tree2(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O2 -> O2, +d: Nat, +t: U32, +l: U32, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, +oa: Array, +ob: Array) -> O2: BendMlTensorGpu.root2 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=root2) def root2(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O2 -> O2, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, oa: Array, ob: Array) -> O2: BendMlTensorGpu.root2_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=root2_new) def root2_new(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O2 -> O2, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, +ca: Nat, +cb: Nat) -> O2: BendMlTensorGpu.go2 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=go2) def go2(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O2 -> O2, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, oa: Array, ob: Array) -> R2: BendMlTensorGpu.go2_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=go2_new) def go2_new(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O2 -> O2, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, +ca: Nat, +cb: Nat) -> R2: BendMlTensorGpu.run2 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=run2) def run2(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O2 -> O2, +d: Nat, +e: E, x1: Array, x2: Array, x3: Array, x4: Array, oa: Array, ob: Array) -> R2: BendMlTensorGpu.run2_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=run2_new) def run2_new(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O2 -> O2, +d: Nat, +e: E, x1: Array, x2: Array, x3: Array, x4: Array, +ca: Nat, +cb: Nat) -> R2: BendMlTensorGpu.tree3 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=tree3) def tree3(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O3 -> O3, +d: Nat, +t: U32, +l: U32, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, +oa: Array, +ob: Array, +oc: Array) -> O3: BendMlTensorGpu.root3 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=root3) def root3(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O3 -> O3, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, oa: Array, ob: Array, oc: Array) -> O3: BendMlTensorGpu.root3_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=root3_new) def root3_new(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O3 -> O3, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, +ca: Nat, +cb: Nat, +cc: Nat) -> O3: BendMlTensorGpu.go3 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=go3) def go3(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O3 -> O3, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, oa: Array, ob: Array, oc: Array) -> R3: BendMlTensorGpu.go3_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=go3_new) def go3_new(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O3 -> O3, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, +ca: Nat, +cb: Nat, +cc: Nat) -> R3: BendMlTensorGpu.run3 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=run3) def run3(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O3 -> O3, +d: Nat, +e: E, x1: Array, x2: Array, x3: Array, x4: Array, oa: Array, ob: Array, oc: Array) -> R3: BendMlTensorGpu.run3_new (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=run3_new) def run3_new(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O3 -> O3, +d: Nat, +e: E, x1: Array, x2: Array, x3: Array, x4: Array, +ca: Nat, +cb: Nat, +cc: Nat) -> R3: BendMlTensorGpu.tree4 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=tree4) def tree4(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O4 -> O4, +d: Nat, +t: U32, +l: U32, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, +oa: Array, +ob: Array, +oc: Array, +od: Array) -> O4: BendMlTensorGpu.root4 (https://jend.leeeet.dev/definition.txt?path=bend-ml-tensor-gpu@0.1.5.1/main.bend&name=root4) def root4(~E: Data, ~f: @+t: U32 -> @+l: U32 -> @+e: E -> Array -> Array -> Array -> Array -> O4 -> O4, +d: Nat, +e: E, +x1: Array, +x2: Array, +x3: Array, +x4: Array, oa: Array, ob: Array, oc: Array, od: Array) -> O4: More: https://jend.leeeet.dev/packages/bend-ml-tensor-gpu.txt?definitions_offset=100