@genai-fi/nanogpt 0.6.3 → 0.7.1
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 +17 -13
- package/dist/NanoGPTModel.d.ts +2 -2
- package/dist/NanoGPTModel.js +104 -136
- package/dist/{RealDiv-BYViZwhN.js → RealDiv-CVYNbZxu.js} +30 -29
- package/dist/{Reshape-t7Kcikjk.js → Reshape-CEsEp0AI.js} +5 -5
- package/dist/Reshape-Do18N3gO.js +30 -0
- package/dist/TeachableLLM.js +9 -5
- package/dist/{TiedEmbedding-9WeDwvjO.js → TiedEmbedding-ccLBFiZi.js} +4 -4
- package/dist/{axis_util-Bu4h7XWV.js → axis_util-5DTW2tFV.js} +3 -3
- package/dist/backend.d.ts +1 -0
- package/dist/backend.js +7 -0
- package/dist/backend_util-C9Ut8n0Q.js +749 -0
- package/dist/{broadcast_to-DARN-DBD.js → broadcast_to-Ba9h_8DO.js} +2 -2
- package/dist/{concat-5aPGqw3Z.js → concat-CbXTetof.js} +8 -8
- package/dist/{dataset-pgqp-YfL.js → dataset-U3PrjwgU.js} +7 -7
- package/dist/{dropout-Bciw46HT.js → dropout-DPfPgWWe.js} +8 -8
- package/dist/{gather-DjyCjmOD.js → gather-Bbh8DHhM.js} +1 -1
- package/dist/gelu-BFwVnd1r.js +26 -0
- package/dist/gpgpu_math-DffelNS-.js +2371 -0
- package/dist/index-DYD_yPa-.js +12076 -0
- package/dist/{index-BAzbokzv.js → index-UdZhlibC.js} +414 -398
- package/dist/{kernel_funcs_utils-CUxJCg0g.js → kernel_funcs_utils-CXDy3EN7.js} +31 -30
- package/dist/layers/BaseLayer.js +2 -2
- package/dist/layers/CausalSelfAttention.js +8 -8
- package/dist/layers/MLP.js +5 -5
- package/dist/layers/RMSNorm.js +3 -3
- package/dist/layers/RoPECache.js +4 -4
- package/dist/layers/TiedEmbedding.js +5 -5
- package/dist/layers/TransformerBlock.js +1 -1
- package/dist/loader/loadTransformers.js +1 -1
- package/dist/loader/oldZipLoad.js +11 -7
- package/dist/{log_sum_exp-YEo2h3gb.js → log_sum_exp-BnmCkHWl.js} +16 -16
- package/dist/main.d.ts +13 -0
- package/dist/main.js +44 -23
- package/dist/{mat_mul-7121rsJk.js → mat_mul-dwmZz69e.js} +4 -4
- package/dist/{max-DtlIuVeW.js → max-ByjEGoFx.js} +3 -3
- package/dist/{mulmat_packed_gpu-D4nKF7Je.js → mulmat_packed_gpu-IGPBp6h9.js} +1 -1
- package/dist/non_max_suppression_impl-CsEgBuMA.js +134 -0
- package/dist/{ones-BBlSRqn1.js → ones-C8Mfln6-.js} +2 -2
- package/dist/ops/adamAdjust.d.ts +2 -0
- package/dist/ops/adamAdjust.js +9 -0
- package/dist/ops/adamMoments.d.ts +2 -0
- package/dist/ops/adamMoments.js +9 -0
- package/dist/ops/appendCache.js +3 -3
- package/dist/ops/attentionMask.js +1 -1
- package/dist/ops/cpu/adamAdjust.d.ts +1 -0
- package/dist/ops/cpu/adamAdjust.js +18 -0
- package/dist/ops/cpu/adamMoments.d.ts +1 -0
- package/dist/ops/cpu/adamMoments.js +16 -0
- package/dist/ops/cpu/appendCache.js +8 -8
- package/dist/ops/cpu/attentionMask.js +9 -9
- package/dist/ops/cpu/fusedSoftmax.js +17 -11
- package/dist/ops/cpu/gatherSub.js +7 -7
- package/dist/ops/cpu/gelu.js +13 -13
- package/dist/ops/cpu/matMulGelu.js +36 -24
- package/dist/ops/cpu/matMulMul.js +14 -8
- package/dist/ops/cpu/mulDropout.js +9 -3
- package/dist/ops/cpu/normRMS.js +5 -5
- package/dist/ops/cpu/qkv.js +3 -3
- package/dist/ops/cpu/rope.js +5 -5
- package/dist/ops/cpu/scatterSub.js +11 -11
- package/dist/ops/fusedSoftmax.js +1 -1
- package/dist/ops/gatherSub.js +1 -1
- package/dist/ops/gelu.js +2 -2
- package/dist/ops/grads/attentionMask.js +1 -1
- package/dist/ops/grads/fusedSoftmax.js +2 -2
- package/dist/ops/grads/gelu.js +3 -24
- package/dist/ops/grads/matMulGelu.js +5 -5
- package/dist/ops/grads/normRMS.js +6 -6
- package/dist/ops/grads/qkv.js +1 -1
- package/dist/ops/grads/rope.js +3 -3
- package/dist/ops/matMulGelu.js +1 -1
- package/dist/ops/matMulMul.js +1 -1
- package/dist/ops/mulDrop.js +1 -1
- package/dist/ops/normRMS.js +1 -1
- package/dist/ops/qkv.js +1 -1
- package/dist/ops/rope.js +4 -4
- package/dist/ops/scatterSub.js +1 -1
- package/dist/ops/webgl/adamAdjust.d.ts +1 -0
- package/dist/ops/webgl/adamAdjust.js +50 -0
- package/dist/ops/webgl/adamMoments.d.ts +1 -0
- package/dist/ops/webgl/adamMoments.js +38 -0
- package/dist/ops/webgl/appendCache.js +1 -1
- package/dist/ops/webgl/attentionMask.js +1 -1
- package/dist/ops/webgl/fusedSoftmax.js +4 -4
- package/dist/ops/webgl/gatherSub.js +8 -8
- package/dist/ops/webgl/gelu.js +2 -2
- package/dist/ops/webgl/log.js +5 -5
- package/dist/ops/webgl/matMulGelu.js +17 -17
- package/dist/ops/webgl/matMulMul.js +1 -1
- package/dist/ops/webgl/mulDropout.js +4 -4
- package/dist/ops/webgl/normRMS.js +2 -2
- package/dist/ops/webgl/qkv.js +1 -1
- package/dist/ops/webgl/rope.js +1 -1
- package/dist/ops/webgl/scatterSub.js +1 -1
- package/dist/ops/webgpu/adamAdjust.d.ts +1 -0
- package/dist/ops/webgpu/adamAdjust.js +52 -0
- package/dist/ops/webgpu/adamMoments.d.ts +1 -0
- package/dist/ops/webgpu/adamMoments.js +51 -0
- package/dist/ops/webgpu/appendCache.d.ts +1 -0
- package/dist/ops/webgpu/appendCache.js +57 -0
- package/dist/ops/webgpu/attentionMask.d.ts +1 -0
- package/dist/ops/webgpu/attentionMask.js +65 -0
- package/dist/ops/webgpu/gatherSub.d.ts +1 -0
- package/dist/ops/webgpu/gatherSub.js +52 -0
- package/dist/ops/webgpu/gelu.d.ts +14 -0
- package/dist/ops/webgpu/gelu.js +87 -0
- package/dist/ops/webgpu/index.d.ts +0 -0
- package/dist/ops/webgpu/index.js +11 -0
- package/dist/ops/webgpu/normRMS.d.ts +1 -0
- package/dist/ops/webgpu/normRMS.js +41 -0
- package/dist/ops/webgpu/normRMSGrad.d.ts +1 -0
- package/dist/ops/webgpu/normRMSGrad.js +128 -0
- package/dist/ops/webgpu/qkv.d.ts +1 -0
- package/dist/ops/webgpu/qkv.js +57 -0
- package/dist/ops/webgpu/rope.d.ts +1 -0
- package/dist/ops/webgpu/rope.js +69 -0
- package/dist/ops/webgpu/scatterSub.d.ts +1 -0
- package/dist/ops/webgpu/scatterSub.js +38 -0
- package/dist/ops/webgpu/utils/reductions.d.ts +9 -0
- package/dist/ops/webgpu/utils/reductions.js +68 -0
- package/dist/{ops-C0sQEcPw.js → ops-aRTXR2Sr.js} +433 -508
- package/dist/{random_width-DWzaOgrn.js → random_width-DbSpgl4o.js} +144 -144
- package/dist/{range-DYsrnfiy.js → range-D9CZhVlR.js} +1 -1
- package/dist/{reciprocal-CJQeasVa.js → reciprocal-CGB48wZB.js} +1 -1
- package/dist/{register_all_kernels-BfFCQAqs.js → register_all_kernels-DnbAyBXt.js} +203 -200
- package/dist/{reshape-krWGKraP.js → reshape-BR0eoLYN.js} +1 -1
- package/dist/{scatter_nd_util-93ln7Hut.js → scatter_nd_util-OjyAxku2.js} +3 -3
- package/dist/{selu_util-sntGesxr.js → selu_util-Ce6pu9IM.js} +44 -44
- package/dist/{shared-Ca6iDobD.js → shared-Czipaeb6.js} +541 -606
- package/dist/shared-DS5waSIY.js +69 -0
- package/dist/{sin-D_h-qCSx.js → sin-CiBxrDqX.js} +1 -1
- package/dist/slice-BHbDHObE.js +28 -0
- package/dist/{softmax-fsdtf6JC.js → softmax-JMEIUo2J.js} +1 -1
- package/dist/{split-eiktj-6L.js → split-CRU0PjVV.js} +4 -4
- package/dist/{stack-dfEEz2OY.js → stack-ikk2Y8_P.js} +2 -2
- package/dist/{sum-BE_Irnim.js → sum-NLYbiDag.js} +3 -3
- package/dist/{tensor-Xyi595sG.js → tensor-Do9PKbIE.js} +1 -1
- package/dist/{tensor2d-CPEkynbH.js → tensor2d-CWHxHpLh.js} +1 -1
- package/dist/training/Adam.d.ts +22 -0
- package/dist/training/Adam.js +93 -0
- package/dist/training/AdamExt.d.ts +1 -1
- package/dist/training/AdamExt.js +13 -12
- package/dist/training/DatasetBuilder.js +2 -2
- package/dist/training/Evaluator.js +1 -1
- package/dist/training/FullTrainer.js +27 -27
- package/dist/training/Trainer.d.ts +5 -6
- package/dist/training/Trainer.js +54 -55
- package/dist/training/sparseCrossEntropy.d.ts +0 -4
- package/dist/training/sparseCrossEntropy.js +7 -7
- package/dist/utilities/arrayClose.d.ts +1 -0
- package/dist/utilities/arrayClose.js +11 -0
- package/dist/utilities/dummy.js +19 -19
- package/dist/utilities/generate.js +15 -16
- package/dist/utilities/multinomialCPU.d.ts +2 -0
- package/dist/utilities/multinomialCPU.js +13 -0
- package/dist/utilities/performance.d.ts +2 -0
- package/dist/utilities/performance.js +16 -0
- package/dist/utilities/profile.d.ts +1 -0
- package/dist/utilities/profile.js +9 -6
- package/dist/utilities/safetensors.js +2 -2
- package/dist/utilities/weights.js +2 -2
- package/dist/{variable-wSS22xj5.js → variable-BTBkayv_.js} +1 -1
- package/dist/webgpu_program-WaoMq-WD.js +548 -0
- package/dist/webgpu_util-DhSeP4b6.js +80 -0
- package/dist/{zeros-YJDE7oRb.js → zeros-DnPT2nD4.js} +10 -10
- package/package.json +2 -1
- package/dist/gpgpu_math-CNslybmD.js +0 -3115
- package/dist/norm-CzltS9Fz.js +0 -86
package/dist/ops/gelu.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as f, a as i, c as l } from "../../index-UdZhlibC.js";
|
|
2
2
|
import { mulDrop as g } from "../mulDrop.js";
|
|
3
|
-
import { s as T } from "../../sum-
|
|
3
|
+
import { s as T } from "../../sum-NLYbiDag.js";
|
|
4
4
|
const Y = {
|
|
5
5
|
kernelName: "FusedSoftmax",
|
|
6
6
|
outputsToSave: [!0],
|
package/dist/ops/grads/gelu.js
CHANGED
|
@@ -1,26 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "
|
|
3
|
-
import "../webgl/gelu.js";
|
|
4
|
-
const o = {
|
|
5
|
-
kernelName: "Gelu",
|
|
6
|
-
inputsToSave: ["x"],
|
|
7
|
-
outputsToSave: [],
|
|
8
|
-
gradFunc: (e, r) => {
|
|
9
|
-
const [u] = r;
|
|
10
|
-
return {
|
|
11
|
-
x: () => a(e, u)
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
t(o);
|
|
16
|
-
function g(e) {
|
|
17
|
-
return n().runKernel("Gelu", { x: e });
|
|
18
|
-
}
|
|
19
|
-
function a(e, r) {
|
|
20
|
-
return n().runKernel("GeluGrad", { dy: e, x: r });
|
|
21
|
-
}
|
|
1
|
+
import "../../index-UdZhlibC.js";
|
|
2
|
+
import { a as e } from "../../gelu-BFwVnd1r.js";
|
|
22
3
|
export {
|
|
23
|
-
|
|
24
|
-
g,
|
|
25
|
-
o as geluGradConfig
|
|
4
|
+
e as geluGradConfig
|
|
26
5
|
};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function
|
|
1
|
+
import { i as a, e as o } from "../../index-UdZhlibC.js";
|
|
2
|
+
function i(e, n, r) {
|
|
3
3
|
return o().runKernel("MatMulGeluGrad", { dy: e, x: n, kernel: r });
|
|
4
4
|
}
|
|
5
|
-
const
|
|
5
|
+
const s = {
|
|
6
6
|
kernelName: "MatMulGelu",
|
|
7
7
|
inputsToSave: ["x", "kernel"],
|
|
8
8
|
outputsToSave: [],
|
|
9
9
|
gradFunc: (e, n) => {
|
|
10
|
-
const [r, t] = n, [u, l] =
|
|
10
|
+
const [r, t] = n, [u, l] = i(e, r, t);
|
|
11
11
|
return {
|
|
12
12
|
x: () => u,
|
|
13
13
|
kernel: () => l
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
|
-
a(
|
|
17
|
+
a(s);
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function
|
|
1
|
+
import { i as t, e as g } from "../../index-UdZhlibC.js";
|
|
2
|
+
function i(r, a, n) {
|
|
3
3
|
return g().runKernel("RMSNormGrad", { dy: r, x: a, gamma: n });
|
|
4
4
|
}
|
|
5
|
-
const
|
|
5
|
+
const s = {
|
|
6
6
|
kernelName: "RMSNorm",
|
|
7
7
|
inputsToSave: ["x", "gamma"],
|
|
8
8
|
outputsToSave: [],
|
|
9
9
|
gradFunc: (r, a) => {
|
|
10
|
-
const [n, e] = a, [m, o] =
|
|
10
|
+
const [n, e] = a, [m, o] = i(r, n, e);
|
|
11
11
|
return {
|
|
12
12
|
x: () => m,
|
|
13
13
|
gamma: () => o
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
|
-
t(
|
|
17
|
+
t(s);
|
|
18
18
|
export {
|
|
19
|
-
|
|
19
|
+
s as normRMSGradConfig
|
|
20
20
|
};
|
package/dist/ops/grads/qkv.js
CHANGED
package/dist/ops/grads/rope.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i, e as a } from "../../index-UdZhlibC.js";
|
|
2
2
|
function p(n, e, s, o) {
|
|
3
|
-
return
|
|
3
|
+
return a().runKernel("Rope", { x: n, sin: e, cos: s }, { pastLen: o });
|
|
4
4
|
}
|
|
5
5
|
const c = {
|
|
6
6
|
kernelName: "Rope",
|
|
@@ -11,4 +11,4 @@ const c = {
|
|
|
11
11
|
return t.dispose(), { x: () => r };
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
i(c);
|
package/dist/ops/matMulGelu.js
CHANGED
package/dist/ops/matMulMul.js
CHANGED
package/dist/ops/mulDrop.js
CHANGED
package/dist/ops/normRMS.js
CHANGED
package/dist/ops/qkv.js
CHANGED
package/dist/ops/rope.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { e as p } from "../index-
|
|
2
|
-
import "../random_width-
|
|
3
|
-
import "../register_all_kernels-
|
|
1
|
+
import { e as p } from "../index-UdZhlibC.js";
|
|
2
|
+
import "../random_width-DbSpgl4o.js";
|
|
3
|
+
import "../register_all_kernels-DnbAyBXt.js";
|
|
4
4
|
import "../index-Tf7vU29b.js";
|
|
5
|
-
import "../dataset-
|
|
5
|
+
import "../dataset-U3PrjwgU.js";
|
|
6
6
|
import "./cpu/rope.js";
|
|
7
7
|
import "./webgl/rope.js";
|
|
8
8
|
import "./grads/rope.js";
|
package/dist/ops/scatterSub.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { r as n } from "../../Reshape-CEsEp0AI.js";
|
|
2
|
+
import { f } from "../../index-UdZhlibC.js";
|
|
3
|
+
class v {
|
|
4
|
+
variableNames = ["moments", "value"];
|
|
5
|
+
outputShape;
|
|
6
|
+
userCode;
|
|
7
|
+
customUniforms = [
|
|
8
|
+
{ name: "invBeta1", type: "float" },
|
|
9
|
+
{ name: "invBeta2", type: "float" },
|
|
10
|
+
{ name: "learningRate", type: "float" },
|
|
11
|
+
{ name: "epsilon", type: "float" }
|
|
12
|
+
];
|
|
13
|
+
constructor(a) {
|
|
14
|
+
this.outputShape = a, this.userCode = `
|
|
15
|
+
void main() {
|
|
16
|
+
float v = getValueAtOutCoords();
|
|
17
|
+
int coords = getOutputCoords();
|
|
18
|
+
coords *= 2;
|
|
19
|
+
float m1 = getMoments(coords);
|
|
20
|
+
float m2 = getMoments(coords + 1);
|
|
21
|
+
|
|
22
|
+
float m1Hat = m1 * invBeta1;
|
|
23
|
+
float m2Hat = m2 * invBeta2;
|
|
24
|
+
|
|
25
|
+
float invSqrt = inversesqrt(max(m2Hat, 1e-30));
|
|
26
|
+
float invDenom = invSqrt / (1.0 + epsilon * invSqrt);
|
|
27
|
+
float adjustedValue = -learningRate * m1Hat * invDenom + v;
|
|
28
|
+
|
|
29
|
+
setOutput(adjustedValue);
|
|
30
|
+
}
|
|
31
|
+
`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function h(t) {
|
|
35
|
+
const { moments: a, value: s } = t.inputs, { beta1: i, beta2: l, learningRate: u, epsilon: p } = t.attrs, e = t.backend, r = n({ inputs: { x: a }, backend: e, attrs: { shape: [-1] } }), o = n({ inputs: { x: s }, backend: e, attrs: { shape: [-1] } }), d = new v(o.shape), m = e.runWebGLProgram(d, [r, o], "float32", [
|
|
36
|
+
[1 / i],
|
|
37
|
+
[1 / l],
|
|
38
|
+
[u],
|
|
39
|
+
[p]
|
|
40
|
+
]);
|
|
41
|
+
e.disposeIntermediateTensorInfo(r), e.disposeIntermediateTensorInfo(o);
|
|
42
|
+
const c = n({ inputs: { x: m }, backend: e, attrs: { shape: s.shape } });
|
|
43
|
+
return e.disposeIntermediateTensorInfo(m), c;
|
|
44
|
+
}
|
|
45
|
+
const g = {
|
|
46
|
+
kernelName: "AdamAdjust",
|
|
47
|
+
backendName: "webgl",
|
|
48
|
+
kernelFunc: h
|
|
49
|
+
};
|
|
50
|
+
f(g);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { f as m } from "../../index-UdZhlibC.js";
|
|
2
|
+
class i {
|
|
3
|
+
variableNames = ["moments", "gradient"];
|
|
4
|
+
outputShape;
|
|
5
|
+
userCode;
|
|
6
|
+
customUniforms = [
|
|
7
|
+
{ name: "beta1", type: "float" },
|
|
8
|
+
{ name: "beta2", type: "float" }
|
|
9
|
+
];
|
|
10
|
+
constructor(e) {
|
|
11
|
+
this.outputShape = e;
|
|
12
|
+
const t = e.length, n = t === 1 ? "int" : `ivec${Math.min(t, 4)}`, a = t === 1 ? "coords" : `coords[${t - 1}]`, s = t === 1 ? "coords" : e.slice(0, -1).map((r, c) => `coords[${c}]`).join(", ");
|
|
13
|
+
this.userCode = `
|
|
14
|
+
void main() {
|
|
15
|
+
float m = getMomentsAtOutCoords();
|
|
16
|
+
${n} coords = getOutputCoords();
|
|
17
|
+
float g = getGradient(${s});
|
|
18
|
+
int which = ${a};
|
|
19
|
+
|
|
20
|
+
float beta = which == 0 ? beta1 : beta2;
|
|
21
|
+
float gg = which == 0 ? g : g * g;
|
|
22
|
+
|
|
23
|
+
float newM = m * beta + gg * (1.0 - beta);
|
|
24
|
+
setOutput(newM);
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function d(o) {
|
|
30
|
+
const { moments: e, gradient: t } = o.inputs, { beta1: n, beta2: a } = o.attrs, s = o.backend, r = new i(e.shape);
|
|
31
|
+
return s.runWebGLProgram(r, [e, t], "float32", [[n], [a]]);
|
|
32
|
+
}
|
|
33
|
+
const g = {
|
|
34
|
+
kernelName: "AdamMoments",
|
|
35
|
+
backendName: "webgl",
|
|
36
|
+
kernelFunc: d
|
|
37
|
+
};
|
|
38
|
+
m(g);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { m as b, s as I, r as k } from "../../RealDiv-
|
|
2
|
-
import { r as v } from "../../Reshape-
|
|
3
|
-
import {
|
|
4
|
-
import { e as S } from "../../axis_util-
|
|
1
|
+
import { m as b, s as I, r as k } from "../../RealDiv-CVYNbZxu.js";
|
|
2
|
+
import { r as v } from "../../Reshape-CEsEp0AI.js";
|
|
3
|
+
import { f as w, p as P } from "../../index-UdZhlibC.js";
|
|
4
|
+
import { e as S } from "../../axis_util-5DTW2tFV.js";
|
|
5
5
|
class T {
|
|
6
6
|
variableNames = ["logits", "maxLogits"];
|
|
7
7
|
outputShape;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { f as l } from "../../index-UdZhlibC.js";
|
|
2
2
|
class u {
|
|
3
3
|
variableNames = ["labels", "logits", "values"];
|
|
4
4
|
outputShape;
|
|
5
5
|
userCode;
|
|
6
6
|
constructor(e) {
|
|
7
7
|
this.outputShape = [e], this.userCode = `
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
void main() {
|
|
9
|
+
int coords = getOutputCoords();
|
|
10
|
+
int index = int(getLabelsAtOutCoords());
|
|
11
|
+
float val = getValuesAtOutCoords();
|
|
12
|
+
float logit = getLogits(coords, index);
|
|
13
|
+
setOutput(val - logit);
|
|
14
|
+
}
|
|
15
15
|
`;
|
|
16
16
|
}
|
|
17
17
|
}
|
package/dist/ops/webgl/gelu.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { u as s, C as x } from "../../kernel_funcs_utils-
|
|
1
|
+
import { f as a } from "../../index-UdZhlibC.js";
|
|
2
|
+
import { u as s, C as x } from "../../kernel_funcs_utils-CXDy3EN7.js";
|
|
3
3
|
const t = 0.7978845608028654, r = 0.044715, c = x + `
|
|
4
4
|
float x3 = x * x * x;
|
|
5
5
|
float inner = x + ${r} * x3;
|
package/dist/ops/webgl/log.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { u as s, l as N } from "../../kernel_funcs_utils-
|
|
3
|
-
import {
|
|
1
|
+
import { f as e, af as r } from "../../index-UdZhlibC.js";
|
|
2
|
+
import { u as s, l as N } from "../../kernel_funcs_utils-CXDy3EN7.js";
|
|
3
|
+
import { y as l } from "../../shared-DS5waSIY.js";
|
|
4
4
|
/**
|
|
5
5
|
* @license
|
|
6
6
|
* Copyright 2020 Google LLC. All Rights Reserved.
|
|
@@ -32,8 +32,8 @@ const a = N + `
|
|
|
32
32
|
packedOpSnippet: t,
|
|
33
33
|
cpuKernelImpl: l
|
|
34
34
|
}), o = {
|
|
35
|
-
kernelName:
|
|
35
|
+
kernelName: r,
|
|
36
36
|
backendName: "webgl",
|
|
37
37
|
kernelFunc: n
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
e(o);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as f } from "../../Reshape-
|
|
3
|
-
import { M as U } from "../../mulmat_packed_gpu-
|
|
4
|
-
import { m as E } from "../../mat_mul-
|
|
5
|
-
const M = 0.7978845608028654, x = 0.044715,
|
|
1
|
+
import { f as _, t as R, e as C, j as A, k as N, l as H, u as O } from "../../index-UdZhlibC.js";
|
|
2
|
+
import { r as f } from "../../Reshape-CEsEp0AI.js";
|
|
3
|
+
import { M as U } from "../../mulmat_packed_gpu-IGPBp6h9.js";
|
|
4
|
+
import { m as E } from "../../mat_mul-dwmZz69e.js";
|
|
5
|
+
const M = 0.7978845608028654, x = 0.044715, j = `
|
|
6
6
|
vec4 x3 = x * x * x;
|
|
7
7
|
vec4 inner = x + ${x} * x3;
|
|
8
8
|
inner = ${M} * inner;
|
|
@@ -10,7 +10,7 @@ const M = 0.7978845608028654, x = 0.044715, q = `
|
|
|
10
10
|
inner = 0.5 * (1.0 + inner);
|
|
11
11
|
vec4 result = x * inner;
|
|
12
12
|
return result;
|
|
13
|
-
`,
|
|
13
|
+
`, q = `
|
|
14
14
|
vec4 a2 = a * a;
|
|
15
15
|
vec4 a3 = a2 * a;
|
|
16
16
|
vec4 u = ${M} * (a + ${x} * a3);
|
|
@@ -34,7 +34,7 @@ function w({
|
|
|
34
34
|
i === p,
|
|
35
35
|
() => `Error in matMul: inner shapes (${i}) and (${p}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${s} and transposeB=${n} must match.`
|
|
36
36
|
);
|
|
37
|
-
const v = s ? [d, i, h] : [d, h, i], S = n ? [m, l, p] : [m, p, l],
|
|
37
|
+
const v = s ? [d, i, h] : [d, h, i], S = n ? [m, l, p] : [m, p, l], k = f({ inputs: { x: e }, backend: a, attrs: { shape: v } }), D = f({ inputs: { x: t }, backend: a, attrs: { shape: S } }), G = [k, D], y = Math.max(d, m), L = c, B = O(e.dtype, t.dtype), F = new U(
|
|
38
38
|
v,
|
|
39
39
|
S,
|
|
40
40
|
[y, h, l],
|
|
@@ -44,15 +44,15 @@ function w({
|
|
|
44
44
|
L,
|
|
45
45
|
!!o,
|
|
46
46
|
!1
|
|
47
|
-
),
|
|
48
|
-
o &&
|
|
49
|
-
const $ = a.runWebGLProgram(F,
|
|
47
|
+
), g = [k, D];
|
|
48
|
+
o && g.push(o);
|
|
49
|
+
const $ = a.runWebGLProgram(F, g, B), I = f({ inputs: { x: $ }, backend: a, attrs: { shape: b } });
|
|
50
50
|
G.push($);
|
|
51
51
|
for (const P of G)
|
|
52
52
|
a.disposeIntermediateTensorInfo(P);
|
|
53
53
|
return I;
|
|
54
54
|
}
|
|
55
|
-
function
|
|
55
|
+
function z(e) {
|
|
56
56
|
const { inputs: t, backend: s } = e, { x: n, kernel: a } = t;
|
|
57
57
|
if (n === void 0 || a === void 0)
|
|
58
58
|
throw new Error("BatchMatMul requires two input tensors.");
|
|
@@ -62,15 +62,15 @@ function W(e) {
|
|
|
62
62
|
transposeA: !1,
|
|
63
63
|
transposeB: !1,
|
|
64
64
|
backend: s,
|
|
65
|
-
activationSnippet:
|
|
65
|
+
activationSnippet: j
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
const
|
|
68
|
+
const W = {
|
|
69
69
|
kernelName: "MatMulGelu",
|
|
70
70
|
backendName: "webgl",
|
|
71
|
-
kernelFunc:
|
|
71
|
+
kernelFunc: z
|
|
72
72
|
};
|
|
73
|
-
_(
|
|
73
|
+
_(W);
|
|
74
74
|
function J(e) {
|
|
75
75
|
const { dy: t, x: s, kernel: n } = e.inputs, a = e.backend;
|
|
76
76
|
return R(() => {
|
|
@@ -81,7 +81,7 @@ function J(e) {
|
|
|
81
81
|
transposeA: !1,
|
|
82
82
|
transposeB: !1,
|
|
83
83
|
backend: a,
|
|
84
|
-
activationSnippet:
|
|
84
|
+
activationSnippet: q,
|
|
85
85
|
multiplier: t
|
|
86
86
|
})
|
|
87
87
|
), o = E(c, n, !1, !0), r = E(s, c, !0, !1);
|
|
@@ -97,5 +97,5 @@ _(Q);
|
|
|
97
97
|
export {
|
|
98
98
|
te as MATMUL_SHARED_DIM_THRESHOLD,
|
|
99
99
|
w as batchMatMulGeluImpl,
|
|
100
|
-
|
|
100
|
+
z as batchMatMulKernel
|
|
101
101
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { f as m } from "../../index-UdZhlibC.js";
|
|
2
2
|
class f {
|
|
3
3
|
variableNames = ["a", "b"];
|
|
4
4
|
outputShape;
|
|
@@ -7,8 +7,8 @@ class f {
|
|
|
7
7
|
{ name: "dropoutRate", type: "float" },
|
|
8
8
|
{ name: "seed", type: "float" }
|
|
9
9
|
];
|
|
10
|
-
constructor(
|
|
11
|
-
this.outputShape = [
|
|
10
|
+
constructor(t, r, o) {
|
|
11
|
+
this.outputShape = [t, r, o, o], this.userCode = `
|
|
12
12
|
float random(ivec4 coords) {
|
|
13
13
|
float x = float(coords.x * 4096 + coords.y * 256 + coords.z * 16 + coords.w);
|
|
14
14
|
return fract(sin(seed + x) * 43758.5453123);
|
|
@@ -27,7 +27,7 @@ class f {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
function b(e) {
|
|
30
|
-
const { inputs:
|
|
30
|
+
const { inputs: t, attrs: r } = e, { a: o, b: s } = t, { dropoutRate: a, seed: c } = r, n = e.backend, d = o.shape[0], u = o.shape[2], p = o.shape[1], l = new f(d, p, u);
|
|
31
31
|
return n.runWebGLProgram(l, [o, s], "float32", [
|
|
32
32
|
[a ?? 0],
|
|
33
33
|
[c ?? Math.random() * 1e4]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { s as x } from "../../sum-
|
|
1
|
+
import { f as p, e as G } from "../../index-UdZhlibC.js";
|
|
2
|
+
import { s as x } from "../../sum-NLYbiDag.js";
|
|
3
3
|
class y {
|
|
4
4
|
variableNames = ["x", "meanSquare", "gamma"];
|
|
5
5
|
outputShape;
|
package/dist/ops/webgl/qkv.js
CHANGED
package/dist/ops/webgl/rope.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { g as p } from "../../webgpu_program-WaoMq-WD.js";
|
|
2
|
+
import { f as d, c as l } from "../../webgpu_util-DhSeP4b6.js";
|
|
3
|
+
import { f } from "../../index-UdZhlibC.js";
|
|
4
|
+
class c {
|
|
5
|
+
variableNames = ["moments", "value"];
|
|
6
|
+
outputShape;
|
|
7
|
+
shaderKey = "AdamAdjust";
|
|
8
|
+
dispatchLayout;
|
|
9
|
+
dispatch;
|
|
10
|
+
workgroupSize = [64, 1, 1];
|
|
11
|
+
size = !0;
|
|
12
|
+
uniforms = "invbeta1: f32, invbeta2: f32, learningRate: f32, epsilon: f32";
|
|
13
|
+
outputComponent = 1;
|
|
14
|
+
variableComponents = [2, 1];
|
|
15
|
+
constructor(e) {
|
|
16
|
+
this.outputShape = e, this.dispatchLayout = d(this.outputShape), this.dispatch = l(this.dispatchLayout, this.outputShape, this.workgroupSize);
|
|
17
|
+
}
|
|
18
|
+
getUserCode() {
|
|
19
|
+
return `
|
|
20
|
+
${p("index")} {
|
|
21
|
+
if (index < uniforms.size) {
|
|
22
|
+
let moments: vec2<f32> = moments[index];
|
|
23
|
+
let value: f32 = value[index];
|
|
24
|
+
|
|
25
|
+
let m1Hat = moments.x * uniforms.invbeta1;
|
|
26
|
+
let m2Hat = moments.y * uniforms.invbeta2;
|
|
27
|
+
|
|
28
|
+
let invSqrt = inverseSqrt(max(m2Hat, 1e-30));
|
|
29
|
+
let invDenom = invSqrt / (1.0 + uniforms.epsilon * invSqrt);
|
|
30
|
+
let adjustedValue = fma(-uniforms.learningRate * m1Hat, invDenom, value);
|
|
31
|
+
|
|
32
|
+
setOutputAtIndex(index, adjustedValue);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function h(t) {
|
|
39
|
+
const { moments: e, value: a } = t.inputs, { beta1: n, beta2: o, learningRate: i, epsilon: s } = t.attrs, r = t.backend, u = new c(a.shape), m = [
|
|
40
|
+
{ type: "float32", data: [1 / n] },
|
|
41
|
+
{ type: "float32", data: [1 / o] },
|
|
42
|
+
{ type: "float32", data: [i] },
|
|
43
|
+
{ type: "float32", data: [s] }
|
|
44
|
+
];
|
|
45
|
+
return r.runWebGPUProgram(u, [e, a], "float32", m);
|
|
46
|
+
}
|
|
47
|
+
const v = {
|
|
48
|
+
kernelName: "AdamAdjust",
|
|
49
|
+
backendName: "webgpu",
|
|
50
|
+
kernelFunc: h
|
|
51
|
+
};
|
|
52
|
+
f(v);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { g as m } from "../../webgpu_program-WaoMq-WD.js";
|
|
2
|
+
import { f as u, c as p } from "../../webgpu_util-DhSeP4b6.js";
|
|
3
|
+
import { f as c } from "../../index-UdZhlibC.js";
|
|
4
|
+
class d {
|
|
5
|
+
variableNames = ["moments", "gradient"];
|
|
6
|
+
outputShape;
|
|
7
|
+
shaderKey = "AdamMoments";
|
|
8
|
+
dispatchLayout;
|
|
9
|
+
dispatch;
|
|
10
|
+
workgroupSize = [64, 1, 1];
|
|
11
|
+
size = !0;
|
|
12
|
+
uniforms = "beta1: f32, beta2: f32";
|
|
13
|
+
outputComponent = 2;
|
|
14
|
+
variableComponents = [2, 1];
|
|
15
|
+
constructor(e) {
|
|
16
|
+
this.outputShape = e, this.dispatchLayout = u(this.outputShape.slice(0, -1)), this.dispatch = p(
|
|
17
|
+
this.dispatchLayout,
|
|
18
|
+
this.outputShape.slice(0, -1),
|
|
19
|
+
this.workgroupSize,
|
|
20
|
+
[1, 1, 1]
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
getUserCode() {
|
|
24
|
+
return `
|
|
25
|
+
${m("index")} {
|
|
26
|
+
if (index < uniforms.size) {
|
|
27
|
+
let m: vec2<f32> = moments[index];
|
|
28
|
+
let g: f32 = gradient[index];
|
|
29
|
+
|
|
30
|
+
let newM1 = fma(m.x, uniforms.beta1, g * (1.0 - uniforms.beta1));
|
|
31
|
+
let newM2 = fma(m.y, uniforms.beta2, g * g * (1.0 - uniforms.beta2));
|
|
32
|
+
|
|
33
|
+
setOutputAtIndex(index, vec2<f32>(newM1, newM2));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function f(t) {
|
|
40
|
+
const { moments: e, gradient: a } = t.inputs, { beta1: n, beta2: o } = t.attrs, s = t.backend, i = new d(e.shape), r = [
|
|
41
|
+
{ type: "float32", data: [n] },
|
|
42
|
+
{ type: "float32", data: [o] }
|
|
43
|
+
];
|
|
44
|
+
return s.runWebGPUProgram(i, [e, a], "float32", r);
|
|
45
|
+
}
|
|
46
|
+
const h = {
|
|
47
|
+
kernelName: "AdamMoments",
|
|
48
|
+
backendName: "webgpu",
|
|
49
|
+
kernelFunc: f
|
|
50
|
+
};
|
|
51
|
+
c(h);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|