(args: {
inputs: StringNGramsInputs,
backend: WebGPUBackend,
attrs: StringNGramsAttrs
})
| 21 | import {stringNGramsImplCPU} from '../kernel_utils/shared'; |
| 22 | |
| 23 | export function stringNGrams(args: { |
| 24 | inputs: StringNGramsInputs, |
| 25 | backend: WebGPUBackend, |
| 26 | attrs: StringNGramsAttrs |
| 27 | }): [TensorInfo, TensorInfo] { |
| 28 | const {inputs, backend, attrs} = args; |
| 29 | const { |
| 30 | separator, |
| 31 | nGramWidths, |
| 32 | leftPad, |
| 33 | rightPad, |
| 34 | padWidth, |
| 35 | preserveShortSequences |
| 36 | } = attrs; |
| 37 | const {data, dataSplits} = inputs; |
| 38 | const $data = backend.readSync(data.dataId) as Uint8Array[]; |
| 39 | const $dataSplits = backend.readSync(dataSplits.dataId) as Int32Array; |
| 40 | |
| 41 | const [nGrams, nGramsSplits] = stringNGramsImplCPU( |
| 42 | $data, $dataSplits, separator, nGramWidths, leftPad, rightPad, padWidth, |
| 43 | preserveShortSequences); |
| 44 | return [ |
| 45 | backend.makeTensorInfo([nGrams.length], 'string', nGrams), |
| 46 | backend.makeTensorInfo(dataSplits.shape, 'int32', nGramsSplits), |
| 47 | ]; |
| 48 | } |
| 49 | |
| 50 | export const stringNGramsConfig: KernelConfig = { |
| 51 | kernelName: StringNGrams, |
nothing calls this directly
no test coverage detected
searching dependent graphs…