@genai-fi/nanogpt 0.19.0 → 0.20.0
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/package.json +9 -10
- package/dist/Generator.d.ts +0 -82
- package/dist/Generator.js +0 -11941
- package/dist/RealDiv-CGwv0liw.js +0 -365
- package/dist/Reshape-BW__R4mZ.js +0 -79
- package/dist/Reshape-CPBkTIH2.js +0 -14
- package/dist/TeachableLLM.d.ts +0 -70
- package/dist/TeachableLLM.js +0 -273
- package/dist/Trainer.d.ts +0 -43
- package/dist/Trainer.js +0 -244
- package/dist/_commonjsHelpers-ByX85dGu.js +0 -33
- package/dist/axis_util-GTVlo58H.js +0 -55
- package/dist/backend.d.ts +0 -2
- package/dist/backend.js +0 -13
- package/dist/backend_util-GaFarB78.js +0 -425
- package/dist/backend_webgpu-BqASlsbV.js +0 -545
- package/dist/binary_op_util-pKXltfxI.js +0 -192
- package/dist/broadcast_to-eS93CCN_.js +0 -28
- package/dist/checks/appendCache.d.ts +0 -1
- package/dist/checks/appendCache.js +0 -22
- package/dist/checks/attentionMask.d.ts +0 -1
- package/dist/checks/attentionMask.js +0 -37
- package/dist/checks/check.d.ts +0 -9
- package/dist/checks/check.js +0 -20
- package/dist/checks/gelu.d.ts +0 -1
- package/dist/checks/gelu.js +0 -18
- package/dist/checks/index.d.ts +0 -26
- package/dist/checks/index.js +0 -28
- package/dist/checks/matMulGelu.d.ts +0 -1
- package/dist/checks/matMulGelu.js +0 -28
- package/dist/checks/normRMS.d.ts +0 -1
- package/dist/checks/normRMS.js +0 -16
- package/dist/checks/normRMSGrad.d.ts +0 -1
- package/dist/checks/normRMSGrad.js +0 -12
- package/dist/checks/packUnpack.d.ts +0 -1
- package/dist/checks/packUnpack.js +0 -18
- package/dist/checks/qkv.d.ts +0 -1
- package/dist/checks/qkv.js +0 -34
- package/dist/checks/rope.d.ts +0 -1
- package/dist/checks/rope.js +0 -36
- package/dist/checks/weights.d.ts +0 -14
- package/dist/checks/weights.js +0 -31
- package/dist/clip_by_value-DDA7rrcT.js +0 -12
- package/dist/complex-DI35Q-gW.js +0 -11
- package/dist/complex_util-Yc1A_gV1.js +0 -55
- package/dist/concat-CAQpCret.js +0 -17
- package/dist/concat_util-D18dJ4fD.js +0 -22
- package/dist/data/docx.d.ts +0 -2
- package/dist/data/docx.js +0 -15
- package/dist/data/parquet.d.ts +0 -2
- package/dist/data/parquet.js +0 -17
- package/dist/data/pdf.d.ts +0 -2
- package/dist/data/pdf.js +0 -14
- package/dist/data/textLoader.d.ts +0 -7
- package/dist/data/textLoader.js +0 -108
- package/dist/dataset-CGGp1z9P.js +0 -1124
- package/dist/dropout_util--NxWuYg2.js +0 -27
- package/dist/expand_dims-Bkd1YD5x.js +0 -11
- package/dist/exports_initializers-CYzKLjN7.js +0 -7
- package/dist/floor-BQtb-Azg.js +0 -9
- package/dist/gather-qIqEqaGn.js +0 -9
- package/dist/gelu-B220X1Go.js +0 -26
- package/dist/gpgpu_math-BwvV12df.js +0 -2022
- package/dist/index-CUXkjxiT.js +0 -3516
- package/dist/index-CieiGp4Y.js +0 -349
- package/dist/index-CjOWnMXP.js +0 -7308
- package/dist/index-Cp39cXWe.js +0 -1016
- package/dist/index-D5v913EJ.js +0 -4
- package/dist/index-DmeWGGmS.js +0 -1074
- package/dist/index-DvYrXKkX.js +0 -113
- package/dist/index-Ksja3su6.js +0 -151
- package/dist/index-xuotMAFm.js +0 -118
- package/dist/inference/types.d.ts +0 -16
- package/dist/inference/types.js +0 -1
- package/dist/jszip.min-BZhlzntC.js +0 -2313
- package/dist/kernel_funcs_utils-pq0CK9co.js +0 -306
- package/dist/layers/BaseLayer.d.ts +0 -44
- package/dist/layers/BaseLayer.js +0 -74
- package/dist/layers/CausalSelfAttention.d.ts +0 -39
- package/dist/layers/CausalSelfAttention.js +0 -86
- package/dist/layers/LoRA.d.ts +0 -14
- package/dist/layers/LoRA.js +0 -58
- package/dist/layers/MLP.d.ts +0 -17
- package/dist/layers/MLP.js +0 -44
- package/dist/layers/PositionEmbedding.d.ts +0 -8
- package/dist/layers/PositionEmbedding.js +0 -31
- package/dist/layers/RMSNorm.d.ts +0 -12
- package/dist/layers/RMSNorm.js +0 -22
- package/dist/layers/RoPECache.d.ts +0 -18
- package/dist/layers/RoPECache.js +0 -50
- package/dist/layers/TiedEmbedding.d.ts +0 -13
- package/dist/layers/TiedEmbedding.js +0 -36
- package/dist/layers/TransformerBlock.d.ts +0 -27
- package/dist/layers/TransformerBlock.js +0 -40
- package/dist/layers/WeightStore.d.ts +0 -20
- package/dist/layers/WeightStore.js +0 -76
- package/dist/loader/load.d.ts +0 -6
- package/dist/loader/load.js +0 -68
- package/dist/loader/loadHF.d.ts +0 -8
- package/dist/loader/loadHF.js +0 -22
- package/dist/loader/loadTransformers.d.ts +0 -4
- package/dist/loader/loadTransformers.js +0 -44
- package/dist/loader/loadZipMeta.d.ts +0 -3
- package/dist/loader/loadZipMeta.js +0 -16
- package/dist/loader/newZipLoad.d.ts +0 -3
- package/dist/loader/newZipLoad.js +0 -31
- package/dist/loader/oldZipLoad.d.ts +0 -9
- package/dist/loader/oldZipLoad.js +0 -80
- package/dist/loader/save.d.ts +0 -16
- package/dist/loader/save.js +0 -90
- package/dist/loader/types.d.ts +0 -67
- package/dist/loader/types.js +0 -1
- package/dist/main.d.ts +0 -50
- package/dist/main.js +0 -109
- package/dist/matMul16-BcVC_E62.js +0 -80
- package/dist/matMulGelu-JNLZqKQp.js +0 -163
- package/dist/mat_mul-DhG0Newp.js +0 -11
- package/dist/mod-CSdCpRjf.js +0 -11
- package/dist/models/NanoGPTV1.d.ts +0 -16
- package/dist/models/NanoGPTV1.js +0 -99
- package/dist/models/NanoGPTV2.d.ts +0 -16
- package/dist/models/NanoGPTV2.js +0 -90
- package/dist/models/config.d.ts +0 -27
- package/dist/models/config.js +0 -50
- package/dist/models/factory.d.ts +0 -3
- package/dist/models/factory.js +0 -16
- package/dist/models/model.d.ts +0 -44
- package/dist/models/model.js +0 -134
- package/dist/non_max_suppression_impl-B2W7YjZB.js +0 -102
- package/dist/not_equal-hurPF26l.js +0 -64
- package/dist/ones-BytntneX.js +0 -14
- package/dist/ops/adamAdjust.d.ts +0 -2
- package/dist/ops/adamAdjust.js +0 -9
- package/dist/ops/adamMoments.d.ts +0 -2
- package/dist/ops/adamMoments.js +0 -9
- package/dist/ops/add16.d.ts +0 -2
- package/dist/ops/add16.js +0 -9
- package/dist/ops/appendCache.d.ts +0 -2
- package/dist/ops/appendCache.js +0 -22
- package/dist/ops/attentionMask.d.ts +0 -2
- package/dist/ops/attentionMask.js +0 -10
- package/dist/ops/concat16.d.ts +0 -2
- package/dist/ops/concat16.js +0 -9
- package/dist/ops/cpu/adamAdjust.d.ts +0 -1
- package/dist/ops/cpu/adamAdjust.js +0 -18
- package/dist/ops/cpu/adamMoments.d.ts +0 -1
- package/dist/ops/cpu/adamMoments.js +0 -16
- package/dist/ops/cpu/appendCache.d.ts +0 -1
- package/dist/ops/cpu/appendCache.js +0 -23
- package/dist/ops/cpu/attentionMask.d.ts +0 -1
- package/dist/ops/cpu/attentionMask.js +0 -22
- package/dist/ops/cpu/fusedSoftmax.d.ts +0 -9
- package/dist/ops/cpu/fusedSoftmax.js +0 -29
- package/dist/ops/cpu/gatherSub.d.ts +0 -1
- package/dist/ops/cpu/gatherSub.js +0 -18
- package/dist/ops/cpu/gelu.d.ts +0 -1
- package/dist/ops/cpu/gelu.js +0 -40
- package/dist/ops/cpu/matMul16.d.ts +0 -1
- package/dist/ops/cpu/matMul16.js +0 -15
- package/dist/ops/cpu/matMulGelu.d.ts +0 -1
- package/dist/ops/cpu/matMulGelu.js +0 -53
- package/dist/ops/cpu/matMulMul.d.ts +0 -1
- package/dist/ops/cpu/matMulMul.js +0 -23
- package/dist/ops/cpu/mulDropout.d.ts +0 -1
- package/dist/ops/cpu/mulDropout.js +0 -23
- package/dist/ops/cpu/normRMS.d.ts +0 -1
- package/dist/ops/cpu/normRMS.js +0 -39
- package/dist/ops/cpu/qkv.d.ts +0 -5
- package/dist/ops/cpu/qkv.js +0 -41
- package/dist/ops/cpu/rope.d.ts +0 -6
- package/dist/ops/cpu/rope.js +0 -38
- package/dist/ops/cpu/scatterSub.d.ts +0 -1
- package/dist/ops/cpu/scatterSub.js +0 -23
- package/dist/ops/dot16.d.ts +0 -2
- package/dist/ops/dot16.js +0 -42
- package/dist/ops/dropout.d.ts +0 -2
- package/dist/ops/dropout.js +0 -14
- package/dist/ops/dropout16.d.ts +0 -2
- package/dist/ops/dropout16.js +0 -25
- package/dist/ops/gatherSub.d.ts +0 -2
- package/dist/ops/gatherSub.js +0 -9
- package/dist/ops/gelu.d.ts +0 -3
- package/dist/ops/gelu.js +0 -8
- package/dist/ops/globalNorm.d.ts +0 -2
- package/dist/ops/globalNorm.js +0 -13
- package/dist/ops/grads/add16.d.ts +0 -1
- package/dist/ops/grads/add16.js +0 -26
- package/dist/ops/grads/attentionMask.d.ts +0 -1
- package/dist/ops/grads/attentionMask.js +0 -21
- package/dist/ops/grads/dropout16.d.ts +0 -1
- package/dist/ops/grads/dropout16.js +0 -2
- package/dist/ops/grads/gelu.d.ts +0 -2
- package/dist/ops/grads/gelu.js +0 -5
- package/dist/ops/grads/matMul16.d.ts +0 -2
- package/dist/ops/grads/matMul16.js +0 -9
- package/dist/ops/grads/matMulGelu.d.ts +0 -1
- package/dist/ops/grads/matMulGelu.js +0 -17
- package/dist/ops/grads/mul16.d.ts +0 -1
- package/dist/ops/grads/mul16.js +0 -4
- package/dist/ops/grads/normRMS.d.ts +0 -3
- package/dist/ops/grads/normRMS.js +0 -33
- package/dist/ops/grads/pack16.d.ts +0 -2
- package/dist/ops/grads/pack16.js +0 -6
- package/dist/ops/grads/qkv.d.ts +0 -3
- package/dist/ops/grads/qkv.js +0 -34
- package/dist/ops/grads/rope.d.ts +0 -2
- package/dist/ops/grads/rope.js +0 -5
- package/dist/ops/grads/softmax16.d.ts +0 -2
- package/dist/ops/grads/softmax16.js +0 -25
- package/dist/ops/grads/unpack16.d.ts +0 -2
- package/dist/ops/grads/unpack16.js +0 -5
- package/dist/ops/grads/utils.d.ts +0 -4
- package/dist/ops/grads/utils.js +0 -14
- package/dist/ops/log.d.ts +0 -0
- package/dist/ops/log.js +0 -1
- package/dist/ops/matMul16.d.ts +0 -15
- package/dist/ops/matMul16.js +0 -13
- package/dist/ops/matMulGelu.d.ts +0 -3
- package/dist/ops/matMulGelu.js +0 -14
- package/dist/ops/matMulMul.d.ts +0 -2
- package/dist/ops/matMulMul.js +0 -9
- package/dist/ops/mul16.d.ts +0 -2
- package/dist/ops/mul16.js +0 -39
- package/dist/ops/mulDrop.d.ts +0 -2
- package/dist/ops/mulDrop.js +0 -9
- package/dist/ops/normRMS.d.ts +0 -2
- package/dist/ops/normRMS.js +0 -19
- package/dist/ops/pack16.d.ts +0 -2
- package/dist/ops/pack16.js +0 -5
- package/dist/ops/qkv.d.ts +0 -2
- package/dist/ops/qkv.js +0 -10
- package/dist/ops/reshape16.d.ts +0 -2
- package/dist/ops/reshape16.js +0 -41
- package/dist/ops/rope.d.ts +0 -3
- package/dist/ops/rope.js +0 -7
- package/dist/ops/scatterSub.d.ts +0 -2
- package/dist/ops/scatterSub.js +0 -9
- package/dist/ops/slice16.d.ts +0 -2
- package/dist/ops/slice16.js +0 -9
- package/dist/ops/softmax16.d.ts +0 -2
- package/dist/ops/softmax16.js +0 -9
- package/dist/ops/sub16.d.ts +0 -2
- package/dist/ops/sub16.js +0 -8
- package/dist/ops/sum16.d.ts +0 -2
- package/dist/ops/sum16.js +0 -13
- package/dist/ops/transpose16.d.ts +0 -3
- package/dist/ops/transpose16.js +0 -40
- package/dist/ops/unpack16.d.ts +0 -2
- package/dist/ops/unpack16.js +0 -6
- package/dist/ops/webgl/adamAdjust.d.ts +0 -1
- package/dist/ops/webgl/adamAdjust.js +0 -49
- package/dist/ops/webgl/adamMoments.d.ts +0 -1
- package/dist/ops/webgl/adamMoments.js +0 -40
- package/dist/ops/webgl/appendCache.d.ts +0 -1
- package/dist/ops/webgl/appendCache.js +0 -44
- package/dist/ops/webgl/attentionMask.d.ts +0 -1
- package/dist/ops/webgl/attentionMask.js +0 -45
- package/dist/ops/webgl/dropout16.d.ts +0 -1
- package/dist/ops/webgl/dropout16.js +0 -11
- package/dist/ops/webgl/fusedSoftmax.d.ts +0 -11
- package/dist/ops/webgl/fusedSoftmax.js +0 -80
- package/dist/ops/webgl/gatherSub.d.ts +0 -1
- package/dist/ops/webgl/gatherSub.js +0 -27
- package/dist/ops/webgl/gelu.d.ts +0 -2
- package/dist/ops/webgl/gelu.js +0 -50
- package/dist/ops/webgl/log.d.ts +0 -17
- package/dist/ops/webgl/log.js +0 -23
- package/dist/ops/webgl/matMul16.d.ts +0 -1
- package/dist/ops/webgl/matMul16.js +0 -45
- package/dist/ops/webgl/matMulGelu.d.ts +0 -21
- package/dist/ops/webgl/matMulGelu.js +0 -9
- package/dist/ops/webgl/matMulMul.d.ts +0 -14
- package/dist/ops/webgl/matMulMul.js +0 -28
- package/dist/ops/webgl/mulDropout.d.ts +0 -1
- package/dist/ops/webgl/mulDropout.js +0 -41
- package/dist/ops/webgl/normRMS.d.ts +0 -1
- package/dist/ops/webgl/normRMS.js +0 -93
- package/dist/ops/webgl/qkv.d.ts +0 -1
- package/dist/ops/webgl/qkv.js +0 -46
- package/dist/ops/webgl/rope.d.ts +0 -1
- package/dist/ops/webgl/rope.js +0 -56
- package/dist/ops/webgl/scatterSub.d.ts +0 -1
- package/dist/ops/webgl/scatterSub.js +0 -27
- package/dist/ops/webgpu/adamAdjust.d.ts +0 -1
- package/dist/ops/webgpu/adamAdjust.js +0 -57
- package/dist/ops/webgpu/adamMoments.d.ts +0 -1
- package/dist/ops/webgpu/adamMoments.js +0 -60
- package/dist/ops/webgpu/add16.d.ts +0 -1
- package/dist/ops/webgpu/add16.js +0 -13
- package/dist/ops/webgpu/appendCache.d.ts +0 -1
- package/dist/ops/webgpu/appendCache.js +0 -105
- package/dist/ops/webgpu/attentionMask.d.ts +0 -1
- package/dist/ops/webgpu/attentionMask.js +0 -26
- package/dist/ops/webgpu/attentionMask32_program.d.ts +0 -19
- package/dist/ops/webgpu/attentionMask32_program.js +0 -54
- package/dist/ops/webgpu/clipScale.d.ts +0 -1
- package/dist/ops/webgpu/clipScale.js +0 -58
- package/dist/ops/webgpu/concat16.d.ts +0 -19
- package/dist/ops/webgpu/concat16.js +0 -126
- package/dist/ops/webgpu/dropout16.d.ts +0 -1
- package/dist/ops/webgpu/dropout16.js +0 -51
- package/dist/ops/webgpu/gatherSub.d.ts +0 -1
- package/dist/ops/webgpu/gatherSub.js +0 -39
- package/dist/ops/webgpu/gelu.d.ts +0 -14
- package/dist/ops/webgpu/gelu.js +0 -141
- package/dist/ops/webgpu/index.d.ts +0 -0
- package/dist/ops/webgpu/index.js +0 -26
- package/dist/ops/webgpu/matMul16.d.ts +0 -1
- package/dist/ops/webgpu/matMul16.js +0 -65
- package/dist/ops/webgpu/matMul16_program.d.ts +0 -42
- package/dist/ops/webgpu/matMul16_program.js +0 -343
- package/dist/ops/webgpu/mul16.d.ts +0 -1
- package/dist/ops/webgpu/mul16.js +0 -13
- package/dist/ops/webgpu/norm2.d.ts +0 -1
- package/dist/ops/webgpu/norm2.js +0 -76
- package/dist/ops/webgpu/normRMS.d.ts +0 -1
- package/dist/ops/webgpu/normRMS.js +0 -34
- package/dist/ops/webgpu/normRMS16_program.d.ts +0 -10
- package/dist/ops/webgpu/normRMS16_program.js +0 -25
- package/dist/ops/webgpu/normRMS32_program.d.ts +0 -10
- package/dist/ops/webgpu/normRMS32_program.js +0 -25
- package/dist/ops/webgpu/normRMSGrad.d.ts +0 -1
- package/dist/ops/webgpu/normRMSGrad.js +0 -284
- package/dist/ops/webgpu/pack16.d.ts +0 -1
- package/dist/ops/webgpu/pack16.js +0 -18
- package/dist/ops/webgpu/pack16_program.d.ts +0 -19
- package/dist/ops/webgpu/pack16_program.js +0 -92
- package/dist/ops/webgpu/qkv.d.ts +0 -1
- package/dist/ops/webgpu/qkv.js +0 -24
- package/dist/ops/webgpu/rope.d.ts +0 -1
- package/dist/ops/webgpu/rope.js +0 -135
- package/dist/ops/webgpu/scatterSub.d.ts +0 -1
- package/dist/ops/webgpu/scatterSub.js +0 -40
- package/dist/ops/webgpu/slice16.d.ts +0 -7
- package/dist/ops/webgpu/slice16.js +0 -69
- package/dist/ops/webgpu/softmax16.d.ts +0 -17
- package/dist/ops/webgpu/softmax16.js +0 -21
- package/dist/ops/webgpu/softmax16_program.d.ts +0 -13
- package/dist/ops/webgpu/softmax16_program.js +0 -73
- package/dist/ops/webgpu/softmax16_subgroup_program.d.ts +0 -17
- package/dist/ops/webgpu/softmax16_subgroup_program.js +0 -75
- package/dist/ops/webgpu/softmax16grad.d.ts +0 -1
- package/dist/ops/webgpu/softmax16grad.js +0 -37
- package/dist/ops/webgpu/sub16.d.ts +0 -1
- package/dist/ops/webgpu/sub16.js +0 -13
- package/dist/ops/webgpu/sum16.d.ts +0 -1
- package/dist/ops/webgpu/sum16.js +0 -38
- package/dist/ops/webgpu/transpose16.d.ts +0 -1
- package/dist/ops/webgpu/transpose16.js +0 -34
- package/dist/ops/webgpu/transpose16_program.d.ts +0 -16
- package/dist/ops/webgpu/transpose16_program.js +0 -50
- package/dist/ops/webgpu/transpose16_shared_program.d.ts +0 -15
- package/dist/ops/webgpu/transpose16_shared_program.js +0 -70
- package/dist/ops/webgpu/unpack16.d.ts +0 -1
- package/dist/ops/webgpu/unpack16.js +0 -48
- package/dist/ops/webgpu/utils/binary_op.d.ts +0 -35
- package/dist/ops/webgpu/utils/binary_op.js +0 -139
- package/dist/ops/webgpu/utils/deviceInfo.d.ts +0 -7
- package/dist/ops/webgpu/utils/deviceInfo.js +0 -11
- package/dist/ops/webgpu/utils/reductions.d.ts +0 -43
- package/dist/ops/webgpu/utils/reductions.js +0 -275
- package/dist/ops-CsXeTq1P.js +0 -476
- package/dist/pack16-bqltoUlR.js +0 -39
- package/dist/papaparse.min-C0cScC2i.js +0 -418
- package/dist/parquet-Bqjmp2vo.js +0 -44231
- package/dist/patches/webgpu_backend.d.ts +0 -18
- package/dist/patches/webgpu_backend.js +0 -56
- package/dist/patches/webgpu_base.d.ts +0 -21
- package/dist/patches/webgpu_base.js +0 -34
- package/dist/patches/webgpu_program.d.ts +0 -36
- package/dist/patches/webgpu_program.js +0 -400
- package/dist/pdf-NIhmP3sq.js +0 -19477
- package/dist/rand_util-CZ7yLoUm.js +0 -50
- package/dist/random_normal-IBRrha8a.js +0 -14
- package/dist/random_width-DN5ZtQkM.js +0 -9796
- package/dist/range-C-CjF-LI.js +0 -10
- package/dist/relu-J_X6MUzx.js +0 -9
- package/dist/reshape-BDOuCSNW.js +0 -9
- package/dist/resize_nearest_neighbor-BojqlfRe.js +0 -150
- package/dist/rope-DcrZM_e6.js +0 -24
- package/dist/scatter_nd_util-ByNJaL6I.js +0 -46
- package/dist/segment_util-Dasb2Zaf.js +0 -43
- package/dist/selu_util-BLhIqRkw.js +0 -44
- package/dist/shared-3agzAqQ_.js +0 -53
- package/dist/shared-CagdqkLh.js +0 -2143
- package/dist/slice-BzS11Qh0.js +0 -12
- package/dist/slice_util-CC35pLmT.js +0 -153
- package/dist/softmax-D4q1LJN7.js +0 -12
- package/dist/split-C2Sj255c.js +0 -9
- package/dist/squeeze-ho4wLUek.js +0 -10
- package/dist/stack-DudVrtmG.js +0 -11
- package/dist/step-BTxPtq1r.js +0 -261
- package/dist/sum-BpiwSWvg.js +0 -11
- package/dist/tensor-BWFldCso.js +0 -8
- package/dist/tensor1d-LMGMIUlr.js +0 -11
- package/dist/tensor2d-BnXMKScO.js +0 -14
- package/dist/tensor4d-C6UCG_u8.js +0 -14
- package/dist/tfjs_backend-BGnG-ppu.js +0 -654
- package/dist/tile-CFy-xTO6.js +0 -11
- package/dist/tokeniser/BaseTokeniser.d.ts +0 -33
- package/dist/tokeniser/BaseTokeniser.js +0 -124
- package/dist/tokeniser/CharTokeniser.d.ts +0 -24
- package/dist/tokeniser/CharTokeniser.js +0 -107
- package/dist/tokeniser/bpe.d.ts +0 -28
- package/dist/tokeniser/bpe.js +0 -173
- package/dist/tokeniser/messages.d.ts +0 -61
- package/dist/tokeniser/messages.js +0 -1
- package/dist/tokeniser/type.d.ts +0 -34
- package/dist/tokeniser/type.js +0 -1
- package/dist/training/AdamW.d.ts +0 -36
- package/dist/training/AdamW.js +0 -138
- package/dist/training/BasicTrainer.d.ts +0 -63
- package/dist/training/BasicTrainer.js +0 -265
- package/dist/training/DatasetBuilder.d.ts +0 -26
- package/dist/training/DatasetBuilder.js +0 -86
- package/dist/training/Evaluator.d.ts +0 -19
- package/dist/training/Evaluator.js +0 -39
- package/dist/training/LRScheduler.d.ts +0 -12
- package/dist/training/LRScheduler.js +0 -34
- package/dist/training/PreTrainer.d.ts +0 -11
- package/dist/training/PreTrainer.js +0 -20
- package/dist/training/SFTTrainer.d.ts +0 -12
- package/dist/training/SFTTrainer.js +0 -22
- package/dist/training/loss.d.ts +0 -3
- package/dist/training/loss.js +0 -24
- package/dist/training/orthoGrad.d.ts +0 -2
- package/dist/training/orthoGrad.js +0 -10
- package/dist/training/sparseCrossEntropy.d.ts +0 -7
- package/dist/training/sparseCrossEntropy.js +0 -69
- package/dist/training/tasks/ConversationTask.d.ts +0 -18
- package/dist/training/tasks/ConversationTask.js +0 -40
- package/dist/training/tasks/PretrainingTask.d.ts +0 -17
- package/dist/training/tasks/PretrainingTask.js +0 -47
- package/dist/training/tasks/StartSentenceTask.d.ts +0 -18
- package/dist/training/tasks/StartSentenceTask.js +0 -49
- package/dist/training/tasks/Task.d.ts +0 -22
- package/dist/training/tasks/Task.js +0 -68
- package/dist/training/tasks/splitter.d.ts +0 -5
- package/dist/training/tasks/splitter.js +0 -21
- package/dist/training/types.d.ts +0 -78
- package/dist/training/types.js +0 -1
- package/dist/training/validation.d.ts +0 -17
- package/dist/training/validation.js +0 -84
- package/dist/transpose-9kRxIXWR.js +0 -36
- package/dist/unsorted_segment_sum-DJvk5xnh.js +0 -277
- package/dist/utilities/arrayClose.d.ts +0 -1
- package/dist/utilities/arrayClose.js +0 -20
- package/dist/utilities/datasetID.d.ts +0 -2
- package/dist/utilities/datasetID.js +0 -21
- package/dist/utilities/dummy.d.ts +0 -9
- package/dist/utilities/dummy.js +0 -43
- package/dist/utilities/multinomialCPU.d.ts +0 -2
- package/dist/utilities/multinomialCPU.js +0 -13
- package/dist/utilities/naming.d.ts +0 -4
- package/dist/utilities/naming.js +0 -1
- package/dist/utilities/packed.d.ts +0 -4
- package/dist/utilities/packed.js +0 -15
- package/dist/utilities/parameters.d.ts +0 -11
- package/dist/utilities/parameters.js +0 -57
- package/dist/utilities/performance.d.ts +0 -2
- package/dist/utilities/performance.js +0 -16
- package/dist/utilities/profile.d.ts +0 -17
- package/dist/utilities/profile.js +0 -38
- package/dist/utilities/safetensors.d.ts +0 -3
- package/dist/utilities/safetensors.js +0 -83
- package/dist/utilities/sentences.d.ts +0 -5
- package/dist/utilities/sentences.js +0 -41
- package/dist/utilities/tokenParse.d.ts +0 -1
- package/dist/utilities/tokenParse.js +0 -21
- package/dist/utilities/topP.d.ts +0 -1
- package/dist/utilities/topP.js +0 -13
- package/dist/utilities/waitForModel.d.ts +0 -2
- package/dist/utilities/waitForModel.js +0 -12
- package/dist/utilities/weights.d.ts +0 -12
- package/dist/utilities/weights.js +0 -45
- package/dist/utilities/yielder.d.ts +0 -1
- package/dist/utilities/yielder.js +0 -7
- package/dist/variable-Ck482e3n.js +0 -7
- package/dist/webgpu_program-B4HmApL1.js +0 -525
- package/dist/webgpu_util-DYlGSwOJ.js +0 -64
- package/dist/zeros-DvZpK8s6.js +0 -13
- package/dist/zeros_like-CWjDdwr-.js +0 -721
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { f as r, c as n } from "../../../webgpu_util-DYlGSwOJ.js";
|
|
2
|
-
import { g as p } from "../../../binary_op_util-pKXltfxI.js";
|
|
3
|
-
import { B as k } from "../../../binary_op_util-pKXltfxI.js";
|
|
4
|
-
import { _ as c, ai as s } from "../../../index-CUXkjxiT.js";
|
|
5
|
-
import { e as u } from "../../../webgpu_program-B4HmApL1.js";
|
|
6
|
-
class x {
|
|
7
|
-
dispatch;
|
|
8
|
-
dispatchLayout;
|
|
9
|
-
outputComponent;
|
|
10
|
-
op;
|
|
11
|
-
outputShape;
|
|
12
|
-
shaderKey;
|
|
13
|
-
size = !0;
|
|
14
|
-
variableNames = ["A", "B"];
|
|
15
|
-
workgroupSize;
|
|
16
|
-
variableComponents;
|
|
17
|
-
constructor(e, t, o) {
|
|
18
|
-
this.outputShape = c(t, o), this.dispatchLayout = r(this.outputShape), this.op = e;
|
|
19
|
-
const i = t.length > 0 && t[t.length - 1] % 4 === 0, a = o.length > 0 && o[o.length - 1] % 4 === 0;
|
|
20
|
-
if (i && a)
|
|
21
|
-
this.outputComponent = 4, this.variableComponents = [4, 4];
|
|
22
|
-
else throw i && (s(o) || o[o.length - 1] === 1) || a && (s(t) || t[t.length - 1] === 1) ? new Error("Cannot broadcast 16-bit float binary ops with mixed vector sizes") : new Error("16-bit float binary ops require inner dimension to be multiple of 4");
|
|
23
|
-
this.shaderKey = `binary_${e}_${this.variableComponents}`, this.workgroupSize = [128, 1, 1], this.dispatch = n(this.dispatchLayout, this.outputShape, this.workgroupSize, [
|
|
24
|
-
this.outputComponent,
|
|
25
|
-
1,
|
|
26
|
-
1
|
|
27
|
-
]);
|
|
28
|
-
}
|
|
29
|
-
getUserCode() {
|
|
30
|
-
const e = this.outputComponent === 4 ? "vec4<f32>" : "f32";
|
|
31
|
-
return `
|
|
32
|
-
${`
|
|
33
|
-
fn binaryOperation(a : ${e}, b : ${e}) -> ${e} {
|
|
34
|
-
${p(this.op, this.outputComponent === 4)}
|
|
35
|
-
};
|
|
36
|
-
`}
|
|
37
|
-
${u("index")} {
|
|
38
|
-
if (index < uniforms.size) {
|
|
39
|
-
let a = A[index];
|
|
40
|
-
let b = B[index];
|
|
41
|
-
|
|
42
|
-
let v4a1 = vec4<f32>(
|
|
43
|
-
unpack2x16float(u32(a.x)),
|
|
44
|
-
unpack2x16float(u32(a.y))
|
|
45
|
-
);
|
|
46
|
-
let v4a2 = vec4<f32>(
|
|
47
|
-
unpack2x16float(u32(a.z)),
|
|
48
|
-
unpack2x16float(u32(a.w))
|
|
49
|
-
);
|
|
50
|
-
let v4b1 = vec4<f32>(
|
|
51
|
-
unpack2x16float(u32(b.x)),
|
|
52
|
-
unpack2x16float(u32(b.y))
|
|
53
|
-
);
|
|
54
|
-
let v4b2 = vec4<f32>(
|
|
55
|
-
unpack2x16float(u32(b.z)),
|
|
56
|
-
unpack2x16float(u32(b.w))
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
let v4res1 = binaryOperation(v4a1, v4b1);
|
|
60
|
-
let v4res2 = binaryOperation(v4a2, v4b2);
|
|
61
|
-
|
|
62
|
-
let res = vec4<i32>(
|
|
63
|
-
i32(pack2x16float(v4res1.xy)),
|
|
64
|
-
i32(pack2x16float(v4res1.zw)),
|
|
65
|
-
i32(pack2x16float(v4res2.xy)),
|
|
66
|
-
i32(pack2x16float(v4res2.zw))
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
result[index] = res;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
`;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
class b {
|
|
76
|
-
dispatch;
|
|
77
|
-
dispatchLayout;
|
|
78
|
-
outputComponent;
|
|
79
|
-
op;
|
|
80
|
-
outputShape;
|
|
81
|
-
shaderKey;
|
|
82
|
-
size = !0;
|
|
83
|
-
variableNames = ["A", "B"];
|
|
84
|
-
workgroupSize;
|
|
85
|
-
variableComponents;
|
|
86
|
-
constructor(e, t) {
|
|
87
|
-
if (this.outputShape = t, this.dispatchLayout = r(this.outputShape), this.op = e, t.length > 0 && t[t.length - 1] % 4 === 0)
|
|
88
|
-
this.outputComponent = 4, this.variableComponents = [4, 1];
|
|
89
|
-
else
|
|
90
|
-
throw new Error("16-bit float binary ops require inner dimension to be multiple of 4");
|
|
91
|
-
this.shaderKey = `binary_scal_${e}_${this.variableComponents}`, this.workgroupSize = [128, 1, 1], this.dispatch = n(this.dispatchLayout, this.outputShape, this.workgroupSize, [
|
|
92
|
-
this.outputComponent,
|
|
93
|
-
1,
|
|
94
|
-
1
|
|
95
|
-
]);
|
|
96
|
-
}
|
|
97
|
-
getUserCode() {
|
|
98
|
-
const e = this.outputComponent === 4 ? "vec4<f32>" : "f32";
|
|
99
|
-
return `
|
|
100
|
-
${`
|
|
101
|
-
fn binaryOperation(a : ${e}, b : ${e}) -> ${e} {
|
|
102
|
-
${p(this.op, this.outputComponent === 4)}
|
|
103
|
-
};
|
|
104
|
-
`}
|
|
105
|
-
${u("index")} {
|
|
106
|
-
if (index < uniforms.size) {
|
|
107
|
-
let a = A[index];
|
|
108
|
-
let b = B[0];
|
|
109
|
-
|
|
110
|
-
let v4a1 = vec4<f32>(
|
|
111
|
-
unpack2x16float(u32(a.x)),
|
|
112
|
-
unpack2x16float(u32(a.y))
|
|
113
|
-
);
|
|
114
|
-
let v4a2 = vec4<f32>(
|
|
115
|
-
unpack2x16float(u32(a.z)),
|
|
116
|
-
unpack2x16float(u32(a.w))
|
|
117
|
-
);
|
|
118
|
-
|
|
119
|
-
let v4res1 = binaryOperation(v4a1, vec4<f32>(b));
|
|
120
|
-
let v4res2 = binaryOperation(v4a2, vec4<f32>(b));
|
|
121
|
-
|
|
122
|
-
let res = vec4<i32>(
|
|
123
|
-
i32(pack2x16float(v4res1.xy)),
|
|
124
|
-
i32(pack2x16float(v4res1.zw)),
|
|
125
|
-
i32(pack2x16float(v4res2.xy)),
|
|
126
|
-
i32(pack2x16float(v4res2.zw))
|
|
127
|
-
);
|
|
128
|
-
|
|
129
|
-
result[index] = res;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
`;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
export {
|
|
136
|
-
x as BinaryOpProgram,
|
|
137
|
-
b as BinaryOpScalarProgram,
|
|
138
|
-
k as BinaryOpType
|
|
139
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { default as WebGPUBackendPatch } from '../../../patches/webgpu_backend';
|
|
2
|
-
export interface DeviceInformation {
|
|
3
|
-
subgroupsSupported: boolean;
|
|
4
|
-
subgroupMaxSize: number;
|
|
5
|
-
variableSubgroups: boolean;
|
|
6
|
-
}
|
|
7
|
-
export default function createDeviceInformation(backend: WebGPUBackendPatch): DeviceInformation;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { backend_util, TensorInfo } from '@tensorflow/tfjs-core';
|
|
2
|
-
import { WebGPUProgram } from '@tensorflow/tfjs-backend-webgpu/dist/webgpu_program';
|
|
3
|
-
import { WebGPUBackend } from '@tensorflow/tfjs-backend-webgpu';
|
|
4
|
-
import { DeviceInformation } from './deviceInfo';
|
|
5
|
-
export interface ReduceParams {
|
|
6
|
-
reductionOp: 'mean' | 'sum';
|
|
7
|
-
elementwise?: boolean;
|
|
8
|
-
forceWorkgroupSize?: number;
|
|
9
|
-
}
|
|
10
|
-
export declare function createReduceInfo(inputs: TensorInfo[], axis: number | number[]): backend_util.ReduceInfo;
|
|
11
|
-
export declare class ReduceProgram implements WebGPUProgram {
|
|
12
|
-
atomic: boolean;
|
|
13
|
-
outputShape: number[];
|
|
14
|
-
shaderKey: string;
|
|
15
|
-
dispatchLayout: {
|
|
16
|
-
x: number[];
|
|
17
|
-
};
|
|
18
|
-
dispatch: [number, number, number];
|
|
19
|
-
workgroupSize: [number, number, number];
|
|
20
|
-
variableNames: string[];
|
|
21
|
-
uniforms: string;
|
|
22
|
-
inputShape: number[];
|
|
23
|
-
size: boolean;
|
|
24
|
-
packed: boolean;
|
|
25
|
-
outputComponent: number;
|
|
26
|
-
variableComponents?: number[];
|
|
27
|
-
elementwise: boolean;
|
|
28
|
-
subgroups: boolean;
|
|
29
|
-
subgroupBuiltins: boolean;
|
|
30
|
-
deviceInfo: DeviceInformation;
|
|
31
|
-
params: ReduceParams;
|
|
32
|
-
utilityFunctions?: string;
|
|
33
|
-
constructor(deviceInfo: DeviceInformation, reduceInfo: backend_util.ReduceInfo, params: ReduceParams, packed: boolean);
|
|
34
|
-
protected getWriteSnippet(): string;
|
|
35
|
-
protected getPreprocessSnippet(): string;
|
|
36
|
-
protected getPostprocessSnippet(): string;
|
|
37
|
-
protected getReadSnippet(): string;
|
|
38
|
-
getUserCode(): string;
|
|
39
|
-
}
|
|
40
|
-
export declare function reduce(program: ReduceProgram, inputs: TensorInfo[], backend: WebGPUBackend, extraUniforms?: {
|
|
41
|
-
type: string;
|
|
42
|
-
data: number[];
|
|
43
|
-
}[], output?: TensorInfo): TensorInfo;
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
import { ah as h, U as S, h as f } from "../../../index-CUXkjxiT.js";
|
|
2
|
-
import { e as d } from "../../../webgpu_program-B4HmApL1.js";
|
|
3
|
-
import { reshape16 as g } from "../../reshape16.js";
|
|
4
|
-
import { f as z } from "../../../webgpu_util-DYlGSwOJ.js";
|
|
5
|
-
import { c as k } from "../../../axis_util-GTVlo58H.js";
|
|
6
|
-
import { z as x } from "../../../zeros-DvZpK8s6.js";
|
|
7
|
-
function c(e, u, t, i) {
|
|
8
|
-
return e && !u ? `
|
|
9
|
-
bestValue = subgroupAdd(bestValue);
|
|
10
|
-
` : e ? `
|
|
11
|
-
bestValue = subgroupAdd(bestValue);
|
|
12
|
-
let lane = localId.x % subgroupSize;
|
|
13
|
-
if (lane == 0) {
|
|
14
|
-
bestValues[localId.x / subgroupSize] = bestValue;
|
|
15
|
-
}
|
|
16
|
-
workgroupBarrier();
|
|
17
|
-
let numSubgroups = ${t} / subgroupSize;
|
|
18
|
-
bestValue = select(${i ? "vec2<f32>(0.0f)" : "0.0f"}, bestValues[lane], lane < numSubgroups);
|
|
19
|
-
bestValue = subgroupAdd(bestValue);
|
|
20
|
-
` : `
|
|
21
|
-
bestValues[localId.x] = bestValue;
|
|
22
|
-
workgroupBarrier();
|
|
23
|
-
|
|
24
|
-
var reduceSize = min(u32(Length), ${t}u);
|
|
25
|
-
for (var currentSize = reduceSize / 2u; reduceSize > 1u;
|
|
26
|
-
currentSize = reduceSize / 2u) {
|
|
27
|
-
let interval = DIV_CEIL(reduceSize, 2u);
|
|
28
|
-
if (localId.x < currentSize) {
|
|
29
|
-
let candidate = bestValues[localId.x + interval];
|
|
30
|
-
bestValue = bestValue + candidate;
|
|
31
|
-
bestValues[localId.x] = bestValue;
|
|
32
|
-
}
|
|
33
|
-
reduceSize = interval;
|
|
34
|
-
workgroupBarrier();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
bestValue = bestValues[0];
|
|
38
|
-
`;
|
|
39
|
-
}
|
|
40
|
-
function $(e) {
|
|
41
|
-
const u = `${e.workgroupSizeX}`, t = e.subgroups && !e.variableSubgroups ? "" : `
|
|
42
|
-
var<workgroup> bestValues : array<f32, ${e.workgroupSizeX}>;
|
|
43
|
-
`, i = c(e.subgroups, e.variableSubgroups, e.workgroupSizeX, !1);
|
|
44
|
-
return `
|
|
45
|
-
fn DIV_CEIL(a : u32, b : u32) -> u32 {
|
|
46
|
-
return ((a - 1u) / b + 1u);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
fn readInput(index: i32) -> vec2<f32> {
|
|
50
|
-
${e.inputReadSnippet ? e.inputReadSnippet : `
|
|
51
|
-
let packed = u32(x[index]);
|
|
52
|
-
return unpack2x16float(packed);
|
|
53
|
-
`}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
${t}
|
|
57
|
-
${e.utilityFunctions ?? ""}
|
|
58
|
-
|
|
59
|
-
${d("index")} {
|
|
60
|
-
let outputIndex = index / ${u};
|
|
61
|
-
let offset = outputIndex * uniforms.reduceSize;
|
|
62
|
-
var bestValue = 0.0f;
|
|
63
|
-
let Length = uniforms.reduceSize;
|
|
64
|
-
let tid = i32(localId.x);
|
|
65
|
-
|
|
66
|
-
for (var k = tid; k < Length;
|
|
67
|
-
k = k + ${u}) {
|
|
68
|
-
var candidate = readInput(offset + k);
|
|
69
|
-
${e.inputSnippet}
|
|
70
|
-
bestValue = bestValue + candidate.x + candidate.y;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
${i}
|
|
74
|
-
bestValue = bestValue ${e.reductionOp === "mean" ? "/ f32(uniforms.reduceSize * 2i)" : ""};
|
|
75
|
-
|
|
76
|
-
${e.reducedSnippet ? e.reducedSnippet : ""}
|
|
77
|
-
|
|
78
|
-
for (var k = tid; k < Length;
|
|
79
|
-
k = k + ${u}) {
|
|
80
|
-
${e.outputSnippet}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
`;
|
|
84
|
-
}
|
|
85
|
-
function v(e) {
|
|
86
|
-
const u = `${e.workgroupSizeX}`, t = e.subgroups && !e.variableSubgroups ? "" : `
|
|
87
|
-
var<workgroup> bestValues : array<vec2<f32>, ${e.workgroupSizeX}>;
|
|
88
|
-
`, i = c(e.subgroups, e.variableSubgroups, e.workgroupSizeX, !0);
|
|
89
|
-
return `
|
|
90
|
-
fn DIV_CEIL(a : u32, b : u32) -> u32 {
|
|
91
|
-
return ((a - 1u) / b + 1u);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
fn readInput(index: i32) -> vec2<f32> {
|
|
95
|
-
${e.inputReadSnippet ? e.inputReadSnippet : `
|
|
96
|
-
let packed = u32(x[index]);
|
|
97
|
-
return unpack2x16float(packed);
|
|
98
|
-
`}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
${t}
|
|
102
|
-
${e.utilityFunctions ?? ""}
|
|
103
|
-
|
|
104
|
-
${d("index")} {
|
|
105
|
-
let outputIndex = index / ${u};
|
|
106
|
-
let offset1 = outputIndex * 2 * uniforms.reduceSize;
|
|
107
|
-
let offset2 = offset1 + uniforms.reduceSize;
|
|
108
|
-
var bestValue = vec2<f32>(0.0f, 0.0f);
|
|
109
|
-
let Length = uniforms.reduceSize;
|
|
110
|
-
let tid = i32(localId.x);
|
|
111
|
-
|
|
112
|
-
for (var k = tid; k < Length;
|
|
113
|
-
k = k + ${u}) {
|
|
114
|
-
var candidate = readInput(offset1 + k);
|
|
115
|
-
${e.inputSnippet}
|
|
116
|
-
let bv1 = candidate.x + candidate.y;
|
|
117
|
-
|
|
118
|
-
candidate = readInput(offset2 + k);
|
|
119
|
-
${e.inputSnippet}
|
|
120
|
-
let bv2 = candidate.x + candidate.y;
|
|
121
|
-
|
|
122
|
-
bestValue = bestValue + vec2<f32>(bv1, bv2);
|
|
123
|
-
}
|
|
124
|
-
${i}
|
|
125
|
-
bestValue = bestValue ${e.reductionOp === "mean" ? "/ f32(uniforms.reduceSize * 2i)" : ""};
|
|
126
|
-
|
|
127
|
-
${e.reducedSnippet ?? ""}
|
|
128
|
-
${e.outputSnippet}
|
|
129
|
-
}
|
|
130
|
-
`;
|
|
131
|
-
}
|
|
132
|
-
function V(e) {
|
|
133
|
-
return e.elementwise ? $(e) : v(e);
|
|
134
|
-
}
|
|
135
|
-
function w(e) {
|
|
136
|
-
const u = `${e.workgroupSizeX}`, t = e.subgroups && !e.variableSubgroups ? "" : `
|
|
137
|
-
var<workgroup> bestValues : array<f32, ${e.workgroupSizeX}>;
|
|
138
|
-
`, i = c(e.subgroups, e.variableSubgroups, e.workgroupSizeX, !1);
|
|
139
|
-
return `
|
|
140
|
-
fn DIV_CEIL(a : u32, b : u32) -> u32 {
|
|
141
|
-
return ((a - 1u) / b + 1u);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
fn readInput(index: i32) -> f32 {
|
|
145
|
-
${e.inputReadSnippet ? e.inputReadSnippet : `
|
|
146
|
-
return x[index];
|
|
147
|
-
`}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
${t}
|
|
151
|
-
${e.utilityFunctions ?? ""}
|
|
152
|
-
|
|
153
|
-
${d("index")} {
|
|
154
|
-
let outputIndex = index / ${e.workgroupSizeX};
|
|
155
|
-
let offset = outputIndex * uniforms.reduceSize;
|
|
156
|
-
var bestValue = 0.0f;
|
|
157
|
-
let Length = uniforms.reduceSize;
|
|
158
|
-
let tid = i32(localId.x);
|
|
159
|
-
|
|
160
|
-
for (var k = tid; k < Length;
|
|
161
|
-
k = k + ${e.workgroupSizeX}) {
|
|
162
|
-
var candidate = readInput(offset + k);
|
|
163
|
-
${e.inputSnippet}
|
|
164
|
-
bestValue = bestValue + candidate;
|
|
165
|
-
}
|
|
166
|
-
${i}
|
|
167
|
-
|
|
168
|
-
bestValue = bestValue ${e.reductionOp === "mean" ? "/ f32(uniforms.reduceSize)" : ""};
|
|
169
|
-
|
|
170
|
-
${e.reducedSnippet}
|
|
171
|
-
|
|
172
|
-
${e.elementwise ? `for (var k = tid; k < Length;
|
|
173
|
-
k = k + ${u}) {
|
|
174
|
-
${e.outputSnippet}
|
|
175
|
-
}` : `${e.outputSnippet}`}
|
|
176
|
-
}
|
|
177
|
-
`;
|
|
178
|
-
}
|
|
179
|
-
function X(e, u) {
|
|
180
|
-
const t = e[0], o = h(u, t.shape), [, n] = k(t.shape, o), s = S(n), r = S(t.shape) / s;
|
|
181
|
-
return { windowSize: s, inSize: s, batchSize: r, outSize: r };
|
|
182
|
-
}
|
|
183
|
-
class P {
|
|
184
|
-
atomic = !1;
|
|
185
|
-
outputShape;
|
|
186
|
-
shaderKey = "reduce16";
|
|
187
|
-
dispatchLayout;
|
|
188
|
-
dispatch;
|
|
189
|
-
workgroupSize = [64, 1, 1];
|
|
190
|
-
variableNames = ["x"];
|
|
191
|
-
uniforms = "reduceSize : i32,";
|
|
192
|
-
inputShape;
|
|
193
|
-
size = !1;
|
|
194
|
-
packed = !0;
|
|
195
|
-
outputComponent;
|
|
196
|
-
variableComponents;
|
|
197
|
-
elementwise;
|
|
198
|
-
subgroups = !1;
|
|
199
|
-
subgroupBuiltins = !1;
|
|
200
|
-
deviceInfo;
|
|
201
|
-
params;
|
|
202
|
-
utilityFunctions;
|
|
203
|
-
constructor(u, t, i, o) {
|
|
204
|
-
this.params = i, this.inputShape = [t.batchSize, t.inSize], this.deviceInfo = u, this.packed = o;
|
|
205
|
-
const n = i.forceWorkgroupSize ? i.forceWorkgroupSize : t.inSize % 64 === 0 ? 64 : 32;
|
|
206
|
-
u.subgroupsSupported && !i.forceWorkgroupSize ? (this.workgroupSize = [Math.min(n, u.subgroupMaxSize), 1, 1], this.subgroups = !0, u.variableSubgroups && (this.subgroupBuiltins = !0)) : this.workgroupSize[0] = n, this.outputShape = i.elementwise ? [t.batchSize, t.inSize] : o ? [t.outSize / 2] : [t.outSize], this.dispatchLayout = z(this.outputShape), this.dispatch = [
|
|
207
|
-
i.elementwise ? t.batchSize : o ? t.batchSize / 2 : t.batchSize,
|
|
208
|
-
1,
|
|
209
|
-
1
|
|
210
|
-
], this.outputComponent = 1, this.variableComponents = [1], this.elementwise = i.elementwise === !0;
|
|
211
|
-
}
|
|
212
|
-
getWriteSnippet() {
|
|
213
|
-
return this.packed ? "result[outputIndex] = i32(pack2x16float(bestValue));" : "result[outputIndex] = bestValue;";
|
|
214
|
-
}
|
|
215
|
-
getPreprocessSnippet() {
|
|
216
|
-
return "";
|
|
217
|
-
}
|
|
218
|
-
getPostprocessSnippet() {
|
|
219
|
-
return "";
|
|
220
|
-
}
|
|
221
|
-
getReadSnippet() {
|
|
222
|
-
return this.packed ? `
|
|
223
|
-
let packed = u32(x[index]);
|
|
224
|
-
return unpack2x16float(packed);
|
|
225
|
-
` : "return f32(x[index]);";
|
|
226
|
-
}
|
|
227
|
-
getUserCode() {
|
|
228
|
-
const u = this.workgroupSize[0];
|
|
229
|
-
return this.packed ? V({
|
|
230
|
-
...this.params,
|
|
231
|
-
workgroupSizeX: u,
|
|
232
|
-
subgroups: this.subgroups,
|
|
233
|
-
variableSubgroups: this.deviceInfo.variableSubgroups,
|
|
234
|
-
inputReadSnippet: this.getReadSnippet(),
|
|
235
|
-
inputSnippet: this.getPreprocessSnippet(),
|
|
236
|
-
outputSnippet: this.getWriteSnippet(),
|
|
237
|
-
reducedSnippet: this.getPostprocessSnippet(),
|
|
238
|
-
utilityFunctions: this.utilityFunctions
|
|
239
|
-
}) : w({
|
|
240
|
-
...this.params,
|
|
241
|
-
workgroupSizeX: u,
|
|
242
|
-
subgroups: this.subgroups,
|
|
243
|
-
variableSubgroups: this.deviceInfo.variableSubgroups,
|
|
244
|
-
inputReadSnippet: this.getReadSnippet(),
|
|
245
|
-
inputSnippet: this.getPreprocessSnippet(),
|
|
246
|
-
outputSnippet: this.getWriteSnippet(),
|
|
247
|
-
reducedSnippet: this.getPostprocessSnippet(),
|
|
248
|
-
utilityFunctions: this.utilityFunctions
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
function A(e, u, t, i, o) {
|
|
253
|
-
const n = u[0], a = [{ type: "int32", data: [e.inputShape[e.inputShape.length - 1]] }, ...i ?? []];
|
|
254
|
-
let r = o;
|
|
255
|
-
!o && e.atomic && (r = x(e.outputShape, "int32"));
|
|
256
|
-
const l = t.runWebGPUProgram(
|
|
257
|
-
e,
|
|
258
|
-
u,
|
|
259
|
-
e.packed ? "packedF16" : e.atomic ? "int32" : "float32",
|
|
260
|
-
a,
|
|
261
|
-
r
|
|
262
|
-
), p = f().makeTensorFromTensorInfo(l);
|
|
263
|
-
if (e.outputShape.length === 1 && e.outputShape[0] <= 2)
|
|
264
|
-
return p;
|
|
265
|
-
const b = g(
|
|
266
|
-
p,
|
|
267
|
-
e.elementwise ? n.shape : e.packed ? [...n.shape.slice(0, -2), n.shape[n.shape.length - 2] / 2] : [...n.shape.slice(0, -2), n.shape[n.shape.length - 2]]
|
|
268
|
-
);
|
|
269
|
-
return p.dispose(), b;
|
|
270
|
-
}
|
|
271
|
-
export {
|
|
272
|
-
P as ReduceProgram,
|
|
273
|
-
X as createReduceInfo,
|
|
274
|
-
A as reduce
|
|
275
|
-
};
|