@genai-fi/nanogpt 0.10.1 → 0.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Generator.js +11761 -171
- package/dist/{RealDiv-DgA3z9oO.js → RealDiv-KAPDe8zB.js} +28 -30
- package/dist/Reshape-BYkmUnAv.js +14 -0
- package/dist/{Reshape-_kILl6tK.js → Reshape-Zt6eb7yh.js} +18 -20
- package/dist/TeachableLLM.js +10 -11
- package/dist/{axis_util-BvHEw88j.js → axis_util-BaG7mf5A.js} +3 -3
- package/dist/backend.js +2 -2
- package/dist/{backend_util-D-rUb2ty.js → backend_util-RCe-rHaj.js} +59 -60
- package/dist/{backend_webgpu-B0u2ndUn.js → backend_webgpu-DE3ACOLx.js} +45 -47
- package/dist/broadcast_to-B3eYlZm7.js +28 -0
- package/dist/checks/appendCache.js +2 -2
- package/dist/checks/attentionMask.js +3 -3
- package/dist/checks/gelu.js +2 -2
- package/dist/checks/matMulGelu.js +7 -11
- package/dist/checks/normRMS.js +9 -9
- package/dist/checks/normRMSGrad.js +3 -3
- package/dist/checks/packUnpack.js +2 -2
- package/dist/checks/qkv.js +12 -13
- package/dist/checks/rope.js +2 -2
- package/dist/clip_by_value-BnO7-a88.js +12 -0
- package/dist/complex-DjxcVmoX.js +11 -0
- package/dist/concat-BV8bt5H-.js +17 -0
- package/dist/{concat_util-DcJk7YHS.js → concat_util-DpW8mL_l.js} +1 -1
- package/dist/{dataset-0xP8GjwI.js → dataset-BcwmTGYc.js} +137 -139
- package/dist/dropout-BcvN9JYi.js +92 -0
- package/dist/expand_dims-DT4tEPwA.js +11 -0
- package/dist/{exports_initializers-xuidcwI4.js → exports_initializers-Hta_rEnm.js} +1 -1
- package/dist/floor-D5QdR_le.js +9 -0
- package/dist/gather-D3JcZUaI.js +9 -0
- package/dist/{gelu-CNLFZWea.js → gelu-CjNPL4OH.js} +10 -11
- package/dist/{gpgpu_math-DDVJCn6-.js → gpgpu_math-DAOmgtXR.js} +841 -1015
- package/dist/{index-CjOj7j-u.js → index-BwexR4lA.js} +262 -263
- package/dist/index-DOvlwCh-.js +3520 -0
- package/dist/{kernel_funcs_utils-Dg_-E44D.js → kernel_funcs_utils-CCzYdUZg.js} +129 -131
- package/dist/layers/BaseLayer.js +14 -15
- package/dist/layers/CausalSelfAttention.js +6 -6
- package/dist/layers/MLP.js +4 -4
- package/dist/layers/PositionEmbedding.js +7 -7
- package/dist/layers/RMSNorm.js +3 -3
- package/dist/layers/RoPECache.js +9 -9
- package/dist/layers/TiedEmbedding.js +6 -6
- package/dist/layers/TransformerBlock.js +1 -1
- package/dist/loader/loadTransformers.js +1 -1
- package/dist/loader/oldZipLoad.js +13 -14
- package/dist/log_sum_exp-ngO0-4pK.js +39 -0
- package/dist/main.js +49 -50
- package/dist/{matMul16--R5hOwDG.js → matMul16-BWRSOCWB.js} +14 -15
- package/dist/matMulGelu-CzfgT6Wq.js +163 -0
- package/dist/mat_mul-SjpJRLyL.js +11 -0
- package/dist/mod-AnXEvvpo.js +11 -0
- package/dist/models/NanoGPTV1.js +2 -2
- package/dist/models/model.js +13 -14
- package/dist/ones-D2rT0xk2.js +14 -0
- package/dist/ops/adamAdjust.js +1 -1
- package/dist/ops/adamMoments.js +1 -1
- package/dist/ops/add16.js +1 -1
- package/dist/ops/appendCache.js +3 -3
- package/dist/ops/attentionMask.js +1 -1
- package/dist/ops/concat16.js +2 -2
- package/dist/ops/cpu/adamAdjust.js +13 -14
- package/dist/ops/cpu/adamMoments.js +6 -7
- package/dist/ops/cpu/appendCache.js +7 -8
- package/dist/ops/cpu/attentionMask.js +7 -7
- package/dist/ops/cpu/fusedSoftmax.js +10 -11
- package/dist/ops/cpu/gatherSub.js +9 -10
- package/dist/ops/cpu/gelu.js +9 -10
- package/dist/ops/cpu/matMul16.js +6 -7
- package/dist/ops/cpu/matMulGelu.js +5 -6
- package/dist/ops/cpu/matMulMul.js +3 -4
- package/dist/ops/cpu/mulDropout.js +3 -4
- package/dist/ops/cpu/normRMS.js +10 -11
- package/dist/ops/cpu/qkv.js +8 -9
- package/dist/ops/cpu/rope.js +5 -6
- package/dist/ops/cpu/scatterSub.js +17 -19
- package/dist/ops/dot16.js +2 -2
- package/dist/ops/gatherSub.js +1 -1
- package/dist/ops/gelu.js +2 -2
- package/dist/ops/grads/add16.js +11 -12
- package/dist/ops/grads/attentionMask.js +5 -6
- package/dist/ops/grads/gelu.js +3 -4
- package/dist/ops/grads/matMul16.js +4 -5
- package/dist/ops/grads/matMulGelu.js +9 -10
- package/dist/ops/grads/normRMS.js +7 -8
- package/dist/ops/grads/pack16.js +4 -5
- package/dist/ops/grads/qkv.js +17 -19
- package/dist/ops/grads/rope.js +3 -5
- package/dist/ops/grads/softmax16.js +3 -4
- package/dist/ops/grads/unpack16.js +3 -4
- package/dist/ops/grads/utils.d.ts +1 -0
- package/dist/ops/grads/utils.js +8 -4
- package/dist/ops/matMul16.js +3 -3
- package/dist/ops/matMulGelu.js +2 -2
- package/dist/ops/matMulMul.js +1 -1
- package/dist/ops/mul16.js +1 -1
- package/dist/ops/mulDrop.js +1 -1
- package/dist/ops/normRMS.js +1 -1
- package/dist/ops/pack16.js +3 -4
- package/dist/ops/qkv.js +4 -8
- package/dist/ops/reshape16.js +14 -16
- package/dist/ops/rope.d.ts +1 -1
- package/dist/ops/rope.js +3 -8
- package/dist/ops/scatterSub.js +1 -1
- package/dist/ops/slice16.js +2 -2
- package/dist/ops/softmax16.js +5 -8
- package/dist/ops/sub16.js +1 -1
- package/dist/ops/sum16.js +2 -2
- package/dist/ops/transpose16.js +23 -24
- package/dist/ops/unpack16.js +2 -2
- package/dist/ops/webgl/adamAdjust.js +2 -3
- package/dist/ops/webgl/adamMoments.js +1 -2
- package/dist/ops/webgl/appendCache.js +1 -2
- package/dist/ops/webgl/attentionMask.js +4 -5
- package/dist/ops/webgl/fusedSoftmax.js +4 -6
- package/dist/ops/webgl/gatherSub.js +6 -7
- package/dist/ops/webgl/gelu.js +2 -3
- package/dist/ops/webgl/log.js +11 -12
- package/dist/ops/webgl/matMul16.js +10 -11
- package/dist/ops/webgl/matMulGelu.js +7 -111
- package/dist/ops/webgl/matMulMul.js +9 -10
- package/dist/ops/webgl/mulDropout.js +8 -9
- package/dist/ops/webgl/normRMS.js +2 -3
- package/dist/ops/webgl/qkv.js +5 -6
- package/dist/ops/webgl/rope.js +7 -8
- package/dist/ops/webgl/scatterSub.js +5 -6
- package/dist/ops/webgpu/adamAdjust.js +10 -12
- package/dist/ops/webgpu/adamMoments.js +8 -10
- package/dist/ops/webgpu/add16.js +8 -9
- package/dist/ops/webgpu/appendCache.js +23 -25
- package/dist/ops/webgpu/attentionMask.js +8 -10
- package/dist/ops/webgpu/attentionMask32_program.js +2 -2
- package/dist/ops/webgpu/concat16.js +12 -14
- package/dist/ops/webgpu/gatherSub.js +11 -13
- package/dist/ops/webgpu/gelu.js +28 -29
- package/dist/ops/webgpu/matMul16.js +26 -28
- package/dist/ops/webgpu/matMul16_program.js +4 -5
- package/dist/ops/webgpu/mul16.js +9 -10
- package/dist/ops/webgpu/normRMS.js +15 -17
- package/dist/ops/webgpu/normRMSGrad.js +21 -28
- package/dist/ops/webgpu/pack16.js +12 -13
- package/dist/ops/webgpu/pack16_program.js +2 -2
- package/dist/ops/webgpu/qkv.js +16 -18
- package/dist/ops/webgpu/rope.js +25 -27
- package/dist/ops/webgpu/scatterSub.js +7 -9
- package/dist/ops/webgpu/slice16.js +21 -23
- package/dist/ops/webgpu/softmax16.js +17 -19
- package/dist/ops/webgpu/softmax16_program.js +2 -2
- package/dist/ops/webgpu/softmax16_subgroup_program.js +2 -2
- package/dist/ops/webgpu/softmax16grad.js +7 -8
- package/dist/ops/webgpu/sub16.js +7 -8
- package/dist/ops/webgpu/sum16.js +18 -20
- package/dist/ops/webgpu/transpose16.js +19 -20
- package/dist/ops/webgpu/transpose16_program.js +2 -2
- package/dist/ops/webgpu/transpose16_shared_program.js +11 -12
- package/dist/ops/webgpu/unpack16.js +3 -4
- package/dist/ops/webgpu/utils/binary_op.js +7 -8
- package/dist/ops/webgpu/utils/reductions.js +14 -22
- package/dist/ops-B5yanEdW.js +476 -0
- package/dist/pack16-nQ6JaLo-.js +39 -0
- package/dist/patches/webgpu_backend.js +19 -20
- package/dist/patches/webgpu_base.js +1 -1
- package/dist/patches/webgpu_program.js +21 -22
- package/dist/{random_width-DY6Kk2Dl.js → random_width-or-CEftb.js} +2506 -2761
- package/dist/range-BklejeeW.js +10 -0
- package/dist/relu-CP0ZcxWO.js +9 -0
- package/dist/reshape-ByE68wS9.js +9 -0
- package/dist/resize_nearest_neighbor-B19mCEg2.js +175 -0
- package/dist/rope-Ir4mTyD1.js +24 -0
- package/dist/{scatter_nd_util-5EL-8VAQ.js → scatter_nd_util-lvSiX8q4.js} +1 -1
- package/dist/selu_util-kbhpTdYD.js +44 -0
- package/dist/{shared-BRksrJb3.js → shared-DT1TkE6w.js} +1 -1
- package/dist/{shared-BuAXb4CI.js → shared-dntlHIDQ.js} +343 -345
- package/dist/slice-BfEGSH82.js +12 -0
- package/dist/{slice_util-DtEldBfK.js → slice_util-uTKwiEpW.js} +1 -1
- package/dist/{softmax-ZHVebtR1.js → softmax-CA5jFsLR.js} +4 -5
- package/dist/split-CVLc0w--.js +9 -0
- package/dist/squeeze-C7Z2srUo.js +10 -0
- package/dist/stack-Cf4n9h0N.js +11 -0
- package/dist/step-CINUs5QB.js +261 -0
- package/dist/sum-DWAtNGez.js +11 -0
- package/dist/tensor-DJoc7gJU.js +8 -0
- package/dist/tensor1d-D11P_7Dp.js +11 -0
- package/dist/{tensor2d-G4Ys2GxX.js → tensor2d-Bs9wZRc7.js} +6 -7
- package/dist/{tensor4d-B8roDgtc.js → tensor4d-BARPdTaS.js} +6 -7
- package/dist/{tfjs_backend-kNyO5L2d.js → tfjs_backend-y1cvNhLA.js} +244 -253
- package/dist/tile-mbfagpsB.js +11 -0
- package/dist/training/Adam.js +2 -2
- package/dist/training/AdamExt.js +1 -1
- package/dist/training/DatasetBuilder.js +2 -2
- package/dist/training/FullTrainer.js +1 -1
- package/dist/training/Trainer.js +2 -2
- package/dist/training/sparseCrossEntropy.js +5 -5
- package/dist/transpose-ClWiBS_b.js +36 -0
- package/dist/unsorted_segment_sum-BDDhB_E6.js +277 -0
- package/dist/utilities/dummy.js +3 -3
- package/dist/utilities/multinomialCPU.js +2 -2
- package/dist/utilities/packed.d.ts +1 -4
- package/dist/utilities/packed.js +10 -711
- package/dist/utilities/performance.js +1 -1
- package/dist/utilities/profile.js +1 -1
- package/dist/utilities/safetensors.js +2 -2
- package/dist/utilities/sentences.js +5 -5
- package/dist/utilities/weights.js +2 -2
- package/dist/{variable-Bhn5bHYv.js → variable-WawDEaAb.js} +1 -1
- package/dist/{webgpu_program-Cigz-7RF.js → webgpu_program-DuOXPQol.js} +178 -172
- package/dist/{webgpu_util-BBCnKm2X.js → webgpu_util-RxEF33Rj.js} +34 -35
- package/dist/zeros-KnWaWf-X.js +13 -0
- package/dist/zeros_like-DvE73F4e.js +721 -0
- package/package.json +4 -2
- package/dist/Reshape-CF6odzV4.js +0 -16
- package/dist/broadcast_to-CwF7XIeu.js +0 -30
- package/dist/complex-CSlYz-2T.js +0 -13
- package/dist/concat-BHlIJeyT.js +0 -19
- package/dist/dropout-C1pM3f11.js +0 -99
- package/dist/expand_dims-BPG4fwBP.js +0 -13
- package/dist/gather-DykLGqmW.js +0 -10
- package/dist/index-ZyQhjEPo.js +0 -2157
- package/dist/log_sum_exp-DWI-76TI.js +0 -41
- package/dist/mat_mul-DeAh4uTH.js +0 -12
- package/dist/mod-Gt1rMB4n.js +0 -12
- package/dist/mulmat_packed_gpu-BMFhLwta.js +0 -55
- package/dist/ones-CAMiP4I2.js +0 -15
- package/dist/ops-CNI3TwqM.js +0 -645
- package/dist/pack16-CFUqumar.js +0 -41
- package/dist/patches/PackedTensor.d.ts +0 -12
- package/dist/patches/PackedTensor.js +0 -11
- package/dist/patches/engine.d.ts +0 -261
- package/dist/patches/engine.js +0 -10
- package/dist/patches/tape.d.ts +0 -12
- package/dist/patches/tape.js +0 -5
- package/dist/range-BMS52eQi.js +0 -11
- package/dist/reciprocal-CTmshQ9J.js +0 -10
- package/dist/register_all_kernels-Bwu1PTuU.js +0 -12307
- package/dist/relu-yZ2-7WxU.js +0 -10
- package/dist/reshape-DevtBWtf.js +0 -10
- package/dist/rope-B5UUMsPi.js +0 -32
- package/dist/selu_util-D1w6yyTO.js +0 -303
- package/dist/sin-BGfy2HZo.js +0 -16
- package/dist/slice-D_gkkqZK.js +0 -13
- package/dist/split-DrfihRpZ.js +0 -10
- package/dist/squeeze-DZEpeblb.js +0 -11
- package/dist/stack-yOIAalTq.js +0 -13
- package/dist/sum-_fzj5ZTB.js +0 -12
- package/dist/tensor-DdQUJZlz.js +0 -909
- package/dist/tensor-f35l8Odg.js +0 -8
- package/dist/tensor1d-CeZuc-Rv.js +0 -12
- package/dist/tensor_util-DV-FP5Q3.js +0 -523
- package/dist/tile-BzyEiF-F.js +0 -13
- package/dist/transpose-DKELTqhe.js +0 -38
- package/dist/zeros-2gldETuK.js +0 -14
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { b as
|
|
2
|
-
import { f
|
|
3
|
-
import "../../index-
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
import { s as x } from "../../tensor-DdQUJZlz.js";
|
|
7
|
-
function b(o) {
|
|
1
|
+
import { b as u, c as m, e as l } from "../../webgpu_program-DuOXPQol.js";
|
|
2
|
+
import { f, c as g } from "../../webgpu_util-RxEF33Rj.js";
|
|
3
|
+
import { p as S, h as k } from "../../index-DOvlwCh-.js";
|
|
4
|
+
import { p as y, a as $ } from "../../slice_util-uTKwiEpW.js";
|
|
5
|
+
function x(o) {
|
|
8
6
|
switch (o) {
|
|
9
7
|
case 1:
|
|
10
8
|
return "1D";
|
|
@@ -17,7 +15,7 @@ function b(o) {
|
|
|
17
15
|
}
|
|
18
16
|
return "";
|
|
19
17
|
}
|
|
20
|
-
class
|
|
18
|
+
class b {
|
|
21
19
|
variableNames = ["source"];
|
|
22
20
|
uniforms;
|
|
23
21
|
outputShape;
|
|
@@ -30,42 +28,42 @@ class w {
|
|
|
30
28
|
start;
|
|
31
29
|
size = !0;
|
|
32
30
|
constructor(e, t) {
|
|
33
|
-
this.outputShape = t, this.rank = t.length, this.dispatchLayout =
|
|
31
|
+
this.outputShape = t, this.rank = t.length, this.dispatchLayout = f(this.outputShape), this.dispatch = g(this.dispatchLayout, this.outputShape, this.workgroupSize, [
|
|
34
32
|
this.workPerThread,
|
|
35
33
|
1,
|
|
36
34
|
1
|
|
37
|
-
]), this.start = e, this.uniforms = `start : ${
|
|
35
|
+
]), this.start = e, this.uniforms = `start : ${u(e.length)}, `, this.shaderKey = "slice";
|
|
38
36
|
}
|
|
39
37
|
getUserCode() {
|
|
40
|
-
const e =
|
|
38
|
+
const e = u(this.rank);
|
|
41
39
|
let t;
|
|
42
|
-
return this.start.length === 1 ? t = this.outputShape.map(() => "sourceLoc = uniforms.start + coords;") : t = this.outputShape.map((r, s) => `sourceLoc.${
|
|
40
|
+
return this.start.length === 1 ? t = this.outputShape.map(() => "sourceLoc = uniforms.start + coords;") : t = this.outputShape.map((r, s) => `sourceLoc.${c[s]} = uniforms.start.${m(s)} + coords.${c[s]};`), `
|
|
43
41
|
${l("index")} {
|
|
44
42
|
if (index < uniforms.size) {
|
|
45
43
|
var sourceLoc : ${e};
|
|
46
44
|
let coords = getCoordsFromIndex(index);
|
|
47
45
|
${t.join(`
|
|
48
46
|
`)}
|
|
49
|
-
result[index] = source[getIndexFromCoords${
|
|
47
|
+
result[index] = source[getIndexFromCoords${x(this.rank)}(sourceLoc, uniforms.sourceShape)];
|
|
50
48
|
}
|
|
51
49
|
}
|
|
52
50
|
`;
|
|
53
51
|
}
|
|
54
52
|
}
|
|
55
|
-
const
|
|
56
|
-
function
|
|
57
|
-
const { inputs: e, backend: t, attrs: n } = o, { x: r } = e, { begin: s, size:
|
|
58
|
-
if ($(r, i, a),
|
|
53
|
+
const c = ["x", "y", "z", "w", "u", "v"];
|
|
54
|
+
function w(o) {
|
|
55
|
+
const { inputs: e, backend: t, attrs: n } = o, { x: r } = e, { begin: s, size: p } = n, [i, a] = y(r, s, p);
|
|
56
|
+
if ($(r, i, a), k(a) === 0)
|
|
59
57
|
return t.makeTensorInfo(a, r.dtype, []);
|
|
60
|
-
const
|
|
61
|
-
return
|
|
58
|
+
const h = new b(i, a), d = [{ type: "int32", data: i }];
|
|
59
|
+
return t.runWebGPUProgram(h, [r], r.dtype, d);
|
|
62
60
|
}
|
|
63
|
-
const
|
|
61
|
+
const C = {
|
|
64
62
|
kernelName: "Slice16",
|
|
65
63
|
backendName: "webgpu",
|
|
66
|
-
kernelFunc:
|
|
64
|
+
kernelFunc: w
|
|
67
65
|
};
|
|
68
|
-
|
|
66
|
+
S(C);
|
|
69
67
|
export {
|
|
70
|
-
|
|
68
|
+
w as slice
|
|
71
69
|
};
|
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { reshape16 as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import { r as
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
n.
|
|
15
|
-
const t = S().makeTensorFromTensorInfo(n), g = h(t, o.shape);
|
|
16
|
-
return t.dispose(), g;
|
|
1
|
+
import { p as h, h as S, e as b } from "../../index-DOvlwCh-.js";
|
|
2
|
+
import { reshape16 as d } from "../reshape16.js";
|
|
3
|
+
import x from "./softmax16_program.js";
|
|
4
|
+
import k from "./softmax16_subgroup_program.js";
|
|
5
|
+
import l from "./utils/deviceInfo.js";
|
|
6
|
+
import { r as z } from "../../reshape-ByE68wS9.js";
|
|
7
|
+
function F(a) {
|
|
8
|
+
const { inputs: t, backend: o, attrs: p } = a, { logits: e } = t, { dim: r } = p, m = o.subgroupMinSize, i = o.subgroupMaxSize, c = l(o).subgroupsSupported, s = z(e, [
|
|
9
|
+
S(e.shape) / e.shape[r],
|
|
10
|
+
e.shape[r]
|
|
11
|
+
]), u = c ? new k(s.shape, m, i) : new x(s.shape), f = o.runWebGPUProgram(u, [s], "packedF16");
|
|
12
|
+
s.dispose();
|
|
13
|
+
const n = b().makeTensorFromTensorInfo(f), g = d(n, e.shape);
|
|
14
|
+
return n.dispose(), g;
|
|
17
15
|
}
|
|
18
|
-
const
|
|
16
|
+
const I = {
|
|
19
17
|
kernelName: "Softmax16",
|
|
20
18
|
backendName: "webgpu",
|
|
21
|
-
kernelFunc:
|
|
19
|
+
kernelFunc: F
|
|
22
20
|
};
|
|
23
|
-
|
|
21
|
+
h(I);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e } from "../../webgpu_program-
|
|
2
|
-
import { f as o } from "../../webgpu_util-
|
|
1
|
+
import { e } from "../../webgpu_program-DuOXPQol.js";
|
|
2
|
+
import { f as o } from "../../webgpu_util-RxEF33Rj.js";
|
|
3
3
|
class i {
|
|
4
4
|
variableNames = ["logits"];
|
|
5
5
|
outputShape;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e as o } from "../../webgpu_program-
|
|
2
|
-
import { f as u } from "../../webgpu_util-
|
|
1
|
+
import { e as o } from "../../webgpu_program-DuOXPQol.js";
|
|
2
|
+
import { f as u } from "../../webgpu_util-RxEF33Rj.js";
|
|
3
3
|
class i {
|
|
4
4
|
variableNames = ["logits"];
|
|
5
5
|
outputShape;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import "../../index-
|
|
2
|
-
import { createReduceInfo as
|
|
1
|
+
import { p } from "../../index-DOvlwCh-.js";
|
|
2
|
+
import { createReduceInfo as m, reduce as l, ReduceProgram as i } from "./utils/reductions.js";
|
|
3
3
|
import { isPackedTensor as n } from "../../utilities/packed.js";
|
|
4
|
-
import
|
|
5
|
-
import { r as k } from "../../tensor_util-DV-FP5Q3.js";
|
|
4
|
+
import k from "./utils/deviceInfo.js";
|
|
6
5
|
class x extends i {
|
|
7
6
|
constructor(e, t) {
|
|
8
7
|
super(e, t, { reductionOp: "sum", elementwise: !0 }, !0), this.shaderKey = "SoftmaxGrad16", this.variableNames = ["dy", "softmaxOutput"], this.variableComponents = [1, 1];
|
|
@@ -24,15 +23,15 @@ class x extends i {
|
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
function b(o) {
|
|
27
|
-
const { dy: e, softmaxOutput: t } = o.inputs, r = o.backend, s =
|
|
26
|
+
const { dy: e, softmaxOutput: t } = o.inputs, r = o.backend, s = k(r), u = n(e), c = n(t);
|
|
28
27
|
if (!(u && c))
|
|
29
28
|
throw new Error("softmaxGradGPU: dy and softmaxOutput must be packed tensors");
|
|
30
|
-
const a = [e, t], f =
|
|
31
|
-
return
|
|
29
|
+
const a = [e, t], f = m(a, -1), d = new x(s, f);
|
|
30
|
+
return l(d, a, r);
|
|
32
31
|
}
|
|
33
32
|
const v = {
|
|
34
33
|
kernelName: "Softmax16Grad",
|
|
35
34
|
backendName: "webgpu",
|
|
36
35
|
kernelFunc: b
|
|
37
36
|
};
|
|
38
|
-
|
|
37
|
+
p(v);
|
package/dist/ops/webgpu/sub16.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import "../../index-
|
|
1
|
+
import { p as t } from "../../index-DOvlwCh-.js";
|
|
2
2
|
import { BinaryOpProgram as p } from "./utils/binary_op.js";
|
|
3
|
-
import { B as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return o.packed = !0, o;
|
|
3
|
+
import { B as s } from "../../binary_op_util-pKXltfxI.js";
|
|
4
|
+
function c(e) {
|
|
5
|
+
const { a: r, b: n } = e.inputs, o = e.backend, a = new p(s.SUB, r.shape, n.shape);
|
|
6
|
+
return o.runWebGPUProgram(a, [r, n], "packedF16");
|
|
8
7
|
}
|
|
9
|
-
const
|
|
8
|
+
const m = {
|
|
10
9
|
kernelName: "Sub16",
|
|
11
10
|
backendName: "webgpu",
|
|
12
11
|
kernelFunc: c
|
|
13
12
|
};
|
|
14
|
-
|
|
13
|
+
t(m);
|
package/dist/ops/webgpu/sum16.js
CHANGED
|
@@ -1,40 +1,38 @@
|
|
|
1
1
|
import { createReduceInfo as g, reduce as h, ReduceProgram as x } from "./utils/reductions.js";
|
|
2
|
-
import "../../index-
|
|
3
|
-
import { isPackedTensor as
|
|
4
|
-
import { transpose16 as
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { p as w } from "../../tensor-DdQUJZlz.js";
|
|
9
|
-
import { a as D, b as K } from "../../axis_util-BvHEw88j.js";
|
|
2
|
+
import { p as k, af as A } from "../../index-DOvlwCh-.js";
|
|
3
|
+
import { isPackedTensor as P } from "../../utilities/packed.js";
|
|
4
|
+
import { transpose16 as b } from "../transpose16.js";
|
|
5
|
+
import I from "./utils/deviceInfo.js";
|
|
6
|
+
import { s as w } from "../../sum-DWAtNGez.js";
|
|
7
|
+
import { a as D, b as K } from "../../axis_util-BaG7mf5A.js";
|
|
10
8
|
class v extends x {
|
|
11
9
|
shaderKey = "sum16";
|
|
12
|
-
constructor(e,
|
|
10
|
+
constructor(e, t, o) {
|
|
13
11
|
super(
|
|
14
12
|
e,
|
|
15
|
-
|
|
13
|
+
t,
|
|
16
14
|
{
|
|
17
15
|
reductionOp: "sum",
|
|
18
16
|
elementwise: !1
|
|
19
17
|
},
|
|
20
|
-
|
|
21
|
-
),
|
|
18
|
+
o
|
|
19
|
+
), o && (this.shaderKey += "_packed");
|
|
22
20
|
}
|
|
23
21
|
}
|
|
24
22
|
function y(r) {
|
|
25
|
-
const { x: e } = r.inputs, { axis:
|
|
26
|
-
if (!
|
|
27
|
-
return
|
|
28
|
-
let n =
|
|
23
|
+
const { x: e } = r.inputs, { axis: t, keepDims: o } = r.attrs, a = r.backend, c = [], p = I(a), m = P(e);
|
|
24
|
+
if (!m)
|
|
25
|
+
return w(e, t, o);
|
|
26
|
+
let n = A(t ?? -1, e.shape);
|
|
29
27
|
const i = D(n, e.shape.length);
|
|
30
28
|
let s = e;
|
|
31
|
-
i != null && (s =
|
|
32
|
-
const u = g([s], -1), f = new v(p, u,
|
|
33
|
-
return
|
|
29
|
+
i != null && (s = b(e, i), n = K(n.length, s.shape.length), c.push(s));
|
|
30
|
+
const u = g([s], -1), f = new v(p, u, m), d = h(f, [s], a);
|
|
31
|
+
return c.forEach((l) => l.dispose()), d;
|
|
34
32
|
}
|
|
35
33
|
const N = {
|
|
36
34
|
kernelName: "Sum16",
|
|
37
35
|
backendName: "webgpu",
|
|
38
36
|
kernelFunc: y
|
|
39
37
|
};
|
|
40
|
-
|
|
38
|
+
k(N);
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
import { isPackedTensor as d } from "../../utilities/packed.js";
|
|
2
|
-
import {
|
|
3
|
-
import { reshape16 as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const s = k().makeTensorFromTensorInfo(o), g = i(s, [
|
|
2
|
+
import { p as k, e as l } from "../../index-DOvlwCh-.js";
|
|
3
|
+
import { reshape16 as u } from "../reshape16.js";
|
|
4
|
+
import P from "./transpose16_shared_program.js";
|
|
5
|
+
import b from "./transpose16_program.js";
|
|
6
|
+
import { t as T } from "../../transpose-ClWiBS_b.js";
|
|
7
|
+
function w(p) {
|
|
8
|
+
const { inputs: h, attrs: i } = p, { x: e } = h, { perm: r } = i, a = p.backend, m = d(e);
|
|
9
|
+
if (m && r[r.length - 1] !== e.shape.length - 1) {
|
|
10
|
+
const o = e.shape.length, c = o === 4 ? r.map((s) => s - 1).filter((s) => s >= 0) : r, t = o === 4 ? u(e, [e.shape[0] * e.shape[1], e.shape[2], e.shape[3]]) : e, f = new P(t.shape, c), n = a.runWebGPUProgram(f, [t], "packedF16");
|
|
11
|
+
if (o === 4) {
|
|
12
|
+
t.dispose();
|
|
13
|
+
const s = l().makeTensorFromTensorInfo(n), g = u(s, [
|
|
15
14
|
e.shape[0],
|
|
16
15
|
e.shape[1],
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
n.shape[1],
|
|
17
|
+
n.shape[2]
|
|
19
18
|
]);
|
|
20
19
|
return s.dispose(), g;
|
|
21
20
|
}
|
|
22
|
-
return
|
|
21
|
+
return n;
|
|
23
22
|
}
|
|
24
|
-
if (
|
|
25
|
-
const
|
|
26
|
-
return
|
|
23
|
+
if (m) {
|
|
24
|
+
const o = new b(e.shape, r);
|
|
25
|
+
return a.runWebGPUProgram(o, [e], "packedF16");
|
|
27
26
|
} else
|
|
28
27
|
return T(e, r);
|
|
29
28
|
}
|
|
@@ -32,4 +31,4 @@ const F = {
|
|
|
32
31
|
backendName: "webgpu",
|
|
33
32
|
kernelFunc: w
|
|
34
33
|
};
|
|
35
|
-
|
|
34
|
+
k(F);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { f as a, c as i } from "../../webgpu_util-
|
|
2
|
-
import { b as h, e as d, c as n } from "../../webgpu_program-
|
|
1
|
+
import { f as a, c as i } from "../../webgpu_util-RxEF33Rj.js";
|
|
2
|
+
import { b as h, e as d, c as n } from "../../webgpu_program-DuOXPQol.js";
|
|
3
3
|
function p(r) {
|
|
4
4
|
const e = r.length;
|
|
5
5
|
if (e > 6)
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { c as a } from "../../webgpu_util-
|
|
2
|
-
import { e as
|
|
3
|
-
import "../../index-
|
|
4
|
-
|
|
5
|
-
class y {
|
|
1
|
+
import { c as a } from "../../webgpu_util-RxEF33Rj.js";
|
|
2
|
+
import { e as l } from "../../webgpu_program-DuOXPQol.js";
|
|
3
|
+
import { l as p } from "../../index-DOvlwCh-.js";
|
|
4
|
+
class n {
|
|
6
5
|
variableNames = ["A"];
|
|
7
6
|
outputShape;
|
|
8
7
|
shaderKey;
|
|
@@ -12,22 +11,22 @@ class y {
|
|
|
12
11
|
// Nick: Reduce to 8x8
|
|
13
12
|
workgroupSize = [8, 8, 1];
|
|
14
13
|
constructor(t, o) {
|
|
15
|
-
const i = t.length, e = new Array(i),
|
|
16
|
-
|
|
17
|
-
for (let
|
|
18
|
-
e[
|
|
14
|
+
const i = t.length, e = new Array(i), r = t.slice();
|
|
15
|
+
r[r.length - 1] *= 2;
|
|
16
|
+
for (let u = 0; u < e.length; u++)
|
|
17
|
+
e[u] = r[o[u]];
|
|
19
18
|
e[e.length - 1] /= 2, this.outputShape = e, this.dispatchLayout = i === 2 ? { x: [0], y: [1] } : { x: [1], y: [2], z: [0] }, this.dispatch = a(this.dispatchLayout, this.outputShape, this.workgroupSize, [2, 1, 1]), this.shaderKey = `transposeShared16_${i}`;
|
|
20
19
|
}
|
|
21
20
|
getUserCode() {
|
|
22
21
|
const t = this.outputShape.length;
|
|
23
|
-
|
|
22
|
+
p(
|
|
24
23
|
this.workgroupSize[0] === this.workgroupSize[1],
|
|
25
24
|
() => `Must be a square tile, current tile shape is ${this.workgroupSize[0]} x ${this.workgroupSize[1]}`
|
|
26
25
|
);
|
|
27
26
|
const o = this.workgroupSize[0] * 2;
|
|
28
27
|
return `
|
|
29
28
|
var<workgroup> tile : array<array<f32, ${o + 1}>, ${o}>;
|
|
30
|
-
${
|
|
29
|
+
${l()} {
|
|
31
30
|
var x = i32(workgroupId.x) * ${o / 2} + i32(localId.x);
|
|
32
31
|
var y = i32(workgroupId.y) * ${o} + i32(localId.y);
|
|
33
32
|
let batch = ${t === 3 ? "i32(workgroupId.z)" : "0"};
|
|
@@ -67,5 +66,5 @@ class y {
|
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
export {
|
|
70
|
-
|
|
69
|
+
n as default
|
|
71
70
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { f as c, c as r } from "../../webgpu_util-
|
|
2
|
-
import { e as u } from "../../webgpu_program-
|
|
3
|
-
import "../../index-
|
|
4
|
-
import { r as p } from "../../tensor_util-DV-FP5Q3.js";
|
|
1
|
+
import { f as c, c as r } from "../../webgpu_util-RxEF33Rj.js";
|
|
2
|
+
import { e as u } from "../../webgpu_program-DuOXPQol.js";
|
|
3
|
+
import { p } from "../../index-DOvlwCh-.js";
|
|
5
4
|
class l {
|
|
6
5
|
outputShape;
|
|
7
6
|
shaderKey = "Unpack16";
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { f as s, c as n } from "../../../webgpu_util-
|
|
1
|
+
import { f as s, c as n } from "../../../webgpu_util-RxEF33Rj.js";
|
|
2
2
|
import { g as p } from "../../../binary_op_util-pKXltfxI.js";
|
|
3
|
-
import { B as
|
|
4
|
-
import {
|
|
5
|
-
import { e as l } from "../../../webgpu_program-
|
|
6
|
-
|
|
7
|
-
class y {
|
|
3
|
+
import { B as b } from "../../../binary_op_util-pKXltfxI.js";
|
|
4
|
+
import { a3 as u, ag as r } from "../../../index-DOvlwCh-.js";
|
|
5
|
+
import { e as l } from "../../../webgpu_program-DuOXPQol.js";
|
|
6
|
+
class x {
|
|
8
7
|
dispatch;
|
|
9
8
|
dispatchLayout;
|
|
10
9
|
outputComponent;
|
|
@@ -74,6 +73,6 @@ class y {
|
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
75
|
export {
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
x as BinaryOpProgram,
|
|
77
|
+
b as BinaryOpType
|
|
79
78
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { e as a } from "../../../webgpu_program-
|
|
3
|
-
import { reshape16 as
|
|
4
|
-
import { f
|
|
5
|
-
import {
|
|
6
|
-
import { c as h } from "../../../axis_util-BvHEw88j.js";
|
|
1
|
+
import { af as l, h as c, e as S } from "../../../index-DOvlwCh-.js";
|
|
2
|
+
import { e as a } from "../../../webgpu_program-DuOXPQol.js";
|
|
3
|
+
import { reshape16 as b } from "../../reshape16.js";
|
|
4
|
+
import { f } from "../../../webgpu_util-RxEF33Rj.js";
|
|
5
|
+
import { c as h } from "../../../axis_util-BaG7mf5A.js";
|
|
7
6
|
function d(e, u, t, i) {
|
|
8
7
|
return e && !u ? `
|
|
9
8
|
bestValue = subgroupAdd(bestValue);
|
|
@@ -173,11 +172,11 @@ function x(e) {
|
|
|
173
172
|
}
|
|
174
173
|
`;
|
|
175
174
|
}
|
|
176
|
-
function
|
|
177
|
-
const t = e[0], n =
|
|
175
|
+
function L(e, u) {
|
|
176
|
+
const t = e[0], n = l(u, t.shape), [, r] = h(t.shape, n), o = c(r), p = c(t.shape) / o;
|
|
178
177
|
return { windowSize: o, inSize: o, batchSize: p, outSize: 1 };
|
|
179
178
|
}
|
|
180
|
-
class
|
|
179
|
+
class C {
|
|
181
180
|
outputShape;
|
|
182
181
|
shaderKey = "reduce16";
|
|
183
182
|
dispatchLayout;
|
|
@@ -198,7 +197,7 @@ class y {
|
|
|
198
197
|
constructor(u, t, i, n) {
|
|
199
198
|
this.params = i, this.inputShape = [t.batchSize, t.inSize], this.deviceInfo = u, this.packed = n;
|
|
200
199
|
const r = t.inSize % 64 === 0 ? 64 : 32;
|
|
201
|
-
u.subgroupsSupported ? (this.workgroupSize = [Math.min(r, u.subgroupMaxSize), 1, 1], this.subgroups = !0, u.variableSubgroups && (this.subgroupBuiltins = !0)) : this.workgroupSize[0] = r, this.outputShape = i.elementwise ? [t.batchSize, t.inSize] : [t.batchSize / 2], this.dispatchLayout =
|
|
200
|
+
u.subgroupsSupported ? (this.workgroupSize = [Math.min(r, u.subgroupMaxSize), 1, 1], this.subgroups = !0, u.variableSubgroups && (this.subgroupBuiltins = !0)) : this.workgroupSize[0] = r, this.outputShape = i.elementwise ? [t.batchSize, t.inSize] : [t.batchSize / 2], this.dispatchLayout = f(this.outputShape), this.dispatch = [i.elementwise ? t.batchSize : t.batchSize / 2, 1, 1], this.outputComponent = 1, this.variableComponents = [1], this.elementwise = i.elementwise === !0;
|
|
202
201
|
}
|
|
203
202
|
getWriteSnippet() {
|
|
204
203
|
return this.packed ? "result[outputIndex] = i32(pack2x16float(bestValue));" : "result[outputIndex] = bestValue;";
|
|
@@ -238,22 +237,15 @@ class y {
|
|
|
238
237
|
});
|
|
239
238
|
}
|
|
240
239
|
}
|
|
241
|
-
function
|
|
242
|
-
const i = u[0], r = [{ type: "int32", data: [e.inputShape[e.inputShape.length - 1]] }], o = t.runWebGPUProgram(
|
|
243
|
-
e,
|
|
244
|
-
u,
|
|
245
|
-
e.packed ? "int32" : "float32",
|
|
246
|
-
r
|
|
247
|
-
);
|
|
248
|
-
o.packed = e.packed ?? !1;
|
|
249
|
-
const s = l().makeTensorFromTensorInfo(o), p = S(
|
|
240
|
+
function y(e, u, t) {
|
|
241
|
+
const i = u[0], r = [{ type: "int32", data: [e.inputShape[e.inputShape.length - 1]] }], o = t.runWebGPUProgram(e, u, e.packed ? "packedF16" : "float32", r), s = S().makeTensorFromTensorInfo(o), p = b(
|
|
250
242
|
s,
|
|
251
243
|
e.elementwise ? i.shape : e.packed ? [...i.shape.slice(0, -2), i.shape[i.shape.length - 2] / 2] : [...i.shape.slice(0, -2), i.shape[i.shape.length - 2]]
|
|
252
244
|
);
|
|
253
245
|
return s.dispose(), p;
|
|
254
246
|
}
|
|
255
247
|
export {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
248
|
+
C as ReduceProgram,
|
|
249
|
+
L as createReduceInfo,
|
|
250
|
+
y as reduce
|
|
259
251
|
};
|