UNPKG

onnxruntime-web

Version:

A Javascript library for running ONNX models on browsers

1 lines 118 kB
{"version":3,"sources":["../lib/wasm/wasm-utils-env.ts","../lib/wasm/wasm-utils-import.ts","../lib/wasm/wasm-factory.ts","../lib/wasm/wasm-utils.ts","../lib/wasm/run-options.ts","../lib/wasm/session-options.ts","../lib/wasm/wasm-common.ts","../lib/wasm/wasm-utils-load-file.ts","../lib/wasm/wasm-core-impl.ts","../lib/wasm/proxy-wrapper.ts","../lib/wasm/session-handler-inference.ts","../lib/backend-wasm.ts","../lib/index.ts","../lib/version.ts"],"names":["isNode","init_wasm_utils_env","__esmMin","scriptSrc","origin","isSameOrigin","normalizeUrl","fallbackUrl","preload","dynamicImportDefault","importWasmModule","init_wasm_utils_import","filename","prefixOverride","baseUrl","absoluteUrl","blob","url","urlOverride","isMultiThreaded","wasmModuleFilename","wasmModuleUrl","needPreload","wasm","initialized","initializing","aborted","isMultiThreadSupported","isSimdSupported","initializeWebAssembly","getInstance","init_wasm_factory","flags","timeout","numThreads","multiThreadSupported","wasmPaths","wasmPrefixOverride","mjsPathOverrideFlag","mjsPathOverride","wasmPathOverrideFlag","wasmPathOverride","wasmBinaryOverride","objectUrl","ortWasmFactory","isTimeout","tasks","resolve","reject","config","fileName","scriptDirectory","module","what","allocWasmString","iterateExtraOptions","checkLastError","init_wasm_utils","data","allocs","dataLength","dataOffset","options","prefix","seen","handler","key","value","name","message","stack","paramsOffset","errorCode","errorMessagePointer","errorMessage","setRunOptions","init_run_options","runOptionsHandle","runOptions","tagDataOffset","keyDataOffset","valueDataOffset","e","alloc","getGraphOptimzationLevel","getExecutionMode","appendDefaultOptions","setExecutionProviders","setSessionOptions","init_session_options","graphOptimizationLevel","executionMode","session","ep","sessionOptionsHandle","executionProviders","epName","deviceType","webgpuOptions","epNameDataOffset","sessionOptions","logIdDataOffset","logSeverityLevel","logVerbosityLevel","optimizedModelFilePathOffset","nameOffset","tensorDataTypeStringToEnum","tensorDataTypeEnumToString","calculateTensorSizeInBytes","tensorTypeToTypedArrayConstructor","logLevelStringToEnum","isGpuBufferSupportedType","dataLocationStringToEnum","init_wasm_common","type","typeProto","dateType","dimsOrSize","elementSize","size","a","b","logLevel","location","loadFile","init_wasm_utils_load_file","file","readFile","createReadStream","stream","chunks","chunk","response","contentLengthHeader","fileSize","reader","buffer","pages","offset","done","chunkSize","initOrt","initRuntime","initEp","activeSessions","getSessionInputOutputCount","copyFromExternalBuffer","createSession","releaseSession","prepareInputOutputTensor","run","endProfiling","init_wasm_core_impl","loggingLevel","env","sessionHandle","model","modelDataOffset","modelData","modelDataLength","ioBindingHandle","inputNamesUTF8Encoded","outputNamesUTF8Encoded","loadingPromises","path","provider","webnnOptions","context","gpuDevice","powerPreference","inputCount","outputCount","enableGraphCapture","inputNames","outputNames","outputPreferredLocations","i","nameString","bindingState","buf","sessionId","ioBindingState","tensor","tensorHandles","index","dataType","dims","rawData","dataByteLength","gpuBuffer","registerBuffer","dataIndex","dimsOffset","dimIndex","d","inputIndices","inputTensors","outputIndices","outputTensors","inputOutputBound","runOptionsAllocs","inputTensorHandles","outputTensorHandles","inputOutputAllocs","beforeRunStack","inputValuesOffset","inputNamesOffset","outputValuesOffset","outputNamesOffset","inputValuesIndex","inputNamesIndex","outputValuesIndex","outputNamesIndex","output","beforeGetTensorDataStack","tensorDataOffset","keepOutputTensor","tensorDataIndex","dimsLength","preferredLocation","stringData","maxBytesToRead","getBuffer","bufferSize","typedArrayConstructor","v","p","profileFileName","initializeWebAssemblyAndOrtRuntime","initializeOrtEp","init_proxy_wrapper","inputs","outputs","Tensor","TRACE_FUNC_BEGIN","TRACE_FUNC_END","encodeTensorMetadata","decodeTensorMetadata","OnnxruntimeWebAssemblySessionHandler","init_session_handler_inference","getName","download","dispose","pathOrBuffer","feeds","fetches","inputArray","kvp","outputArray","t","results","resultMap","backend_wasm_exports","__export","OnnxruntimeWebAssemblyBackend","initializeFlags","wasmBackend","init_backend_wasm","numCpuLogicalCores","backendName","ort","registerBackend","version","lib_default"],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nexport const isNode = !!(typeof process !== 'undefined' && process.versions && process.versions.node);\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport type { OrtWasmModule } from './wasm-types';\nimport { isNode } from './wasm-utils-env';\n\n/**\n * The classic script source URL. This is not always available in non ESModule environments.\n *\n * In Node.js, this is undefined.\n */\nexport const scriptSrc =\n // if Nodejs, return undefined\n isNode\n ? undefined\n : // if It's ESM, use import.meta.url\n (BUILD_DEFS.ESM_IMPORT_META_URL ??\n // use `document.currentScript.src` if available\n (typeof document !== 'undefined'\n ? (document.currentScript as HTMLScriptElement)?.src\n : // use `self.location.href` if available\n typeof self !== 'undefined'\n ? self.location?.href\n : undefined));\n\n/**\n * The origin of the current location.\n *\n * In Node.js, this is undefined.\n */\nconst origin = isNode || typeof location === 'undefined' ? undefined : location.origin;\n\n/**\n * Check if the given filename with prefix is from the same origin.\n */\nconst isSameOrigin = (filename: string, prefixOverride?: string) => {\n try {\n const baseUrl = prefixOverride ?? scriptSrc;\n const url = baseUrl ? new URL(filename, baseUrl) : new URL(filename);\n return url.origin === origin;\n } catch {\n return false;\n }\n};\n\n/**\n * Normalize the inputs to an absolute URL with the given prefix override. If failed, return undefined.\n */\nconst normalizeUrl = (filename: string, prefixOverride?: string) => {\n const baseUrl = prefixOverride ?? scriptSrc;\n try {\n const url = baseUrl ? new URL(filename, baseUrl) : new URL(filename);\n return url.href;\n } catch {\n return undefined;\n }\n};\n\n/**\n * Create a fallback URL if an absolute URL cannot be created by the normalizeUrl function.\n */\nconst fallbackUrl = (filename: string, prefixOverride?: string) => `${prefixOverride ?? './'}${filename}`;\n\n/**\n * This helper function is used to preload a module from a URL.\n *\n * If the origin of the worker URL is different from the current origin, the worker cannot be loaded directly.\n * See discussions in https://github.com/webpack-contrib/worker-loader/issues/154\n *\n * In this case, we will fetch the worker URL and create a new Blob URL with the same origin as a workaround.\n *\n * @param absoluteUrl - The absolute URL to preload.\n *\n * @returns - A promise that resolves to a new Blob URL\n */\nconst preload = async (absoluteUrl: string): Promise<string> => {\n const response = await fetch(absoluteUrl, { credentials: 'same-origin' });\n const blob = await response.blob();\n return URL.createObjectURL(blob);\n};\n\n/**\n * This helper function is used to dynamically import a module from a URL.\n *\n * The build script has special handling for this function to ensure that the URL is not bundled into the final output.\n *\n * @param url - The URL to import.\n *\n * @returns - A promise that resolves to the default export of the module.\n */\nconst dynamicImportDefault = async <T>(url: string): Promise<T> =>\n (await import(/* webpackIgnore: true */ url)).default;\n\n/**\n * The proxy worker factory imported from the proxy worker module.\n *\n * This is only available when the WebAssembly proxy is not disabled.\n */\nconst createProxyWorker: ((urlOverride?: string) => Worker) | undefined =\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n BUILD_DEFS.DISABLE_WASM_PROXY ? undefined : require('./proxy-worker/main').default;\n\n/**\n * Import the proxy worker.\n *\n * This function will perform the following steps:\n * 1. If a preload is needed, it will preload the module and return the object URL.\n * 2. Use the proxy worker factory to create the proxy worker.\n *\n * @returns - A promise that resolves to a tuple of 2 elements:\n * - The object URL of the preloaded module, or undefined if no preload is needed.\n * - The proxy worker.\n */\nexport const importProxyWorker = async (): Promise<[undefined | string, Worker]> => {\n if (!scriptSrc) {\n throw new Error('Failed to load proxy worker: cannot determine the script source URL.');\n }\n\n // If the script source is from the same origin, we can use the embedded proxy module directly.\n if (isSameOrigin(scriptSrc)) {\n return [undefined, createProxyWorker!()];\n }\n\n // Otherwise, need to preload\n const url = await preload(scriptSrc);\n return [url, createProxyWorker!(url)];\n};\n\n/**\n * The embedded WebAssembly module.\n *\n * This is only available in ESM and when embedding is not disabled.\n */\nconst embeddedWasmModule: EmscriptenModuleFactory<OrtWasmModule> | undefined =\n BUILD_DEFS.IS_ESM && BUILD_DEFS.DISABLE_DYNAMIC_IMPORT\n ? // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires\n require(\n !BUILD_DEFS.DISABLE_JSEP\n ? '../../dist/ort-wasm-simd-threaded.jsep.mjs'\n : '../../dist/ort-wasm-simd-threaded.mjs',\n ).default\n : undefined;\n\n/**\n * Import the WebAssembly module.\n *\n * This function will perform the following steps:\n * 1. If BUILD_DEFS.DISABLE_DYNAMIC_IMPORT is true, use the embedded module.\n * 2. If a preload is needed, it will preload the module and return the object URL.\n * 3. Otherwise, it will perform a dynamic import of the module.\n *\n * @returns - A promise that resolves to a tuple of 2 elements:\n * - The object URL of the preloaded module, or undefined if no preload is needed.\n * - The default export of the module, which is a factory function to create the WebAssembly module.\n */\nexport const importWasmModule = async (\n urlOverride: string | undefined,\n prefixOverride: string | undefined,\n isMultiThreaded: boolean,\n): Promise<[undefined | string, EmscriptenModuleFactory<OrtWasmModule>]> => {\n if (BUILD_DEFS.DISABLE_DYNAMIC_IMPORT) {\n return [undefined, embeddedWasmModule!];\n } else {\n const wasmModuleFilename = !BUILD_DEFS.DISABLE_JSEP\n ? 'ort-wasm-simd-threaded.jsep.mjs'\n : 'ort-wasm-simd-threaded.mjs';\n const wasmModuleUrl = urlOverride ?? normalizeUrl(wasmModuleFilename, prefixOverride);\n // need to preload if all of the following conditions are met:\n // 1. not in Node.js.\n // - Node.js does not have the same origin policy for creating workers.\n // 2. multi-threaded is enabled.\n // - If multi-threaded is disabled, no worker will be created. So we don't need to preload the module.\n // 3. the absolute URL is available.\n // - If the absolute URL is failed to be created, the origin cannot be determined. In this case, we will not\n // preload the module.\n // 4. the worker URL is not from the same origin.\n // - If the worker URL is from the same origin, we can create the worker directly.\n const needPreload = !isNode && isMultiThreaded && wasmModuleUrl && !isSameOrigin(wasmModuleUrl, prefixOverride);\n const url = needPreload\n ? await preload(wasmModuleUrl)\n : (wasmModuleUrl ?? fallbackUrl(wasmModuleFilename, prefixOverride));\n return [needPreload ? url : undefined, await dynamicImportDefault<EmscriptenModuleFactory<OrtWasmModule>>(url)];\n }\n};\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { Env } from 'onnxruntime-common';\n\nimport type { OrtWasmModule } from './wasm-types';\nimport { importWasmModule } from './wasm-utils-import';\n\nlet wasm: OrtWasmModule | undefined;\nlet initialized = false;\nlet initializing = false;\nlet aborted = false;\n\nconst isMultiThreadSupported = (): boolean => {\n // If 'SharedArrayBuffer' is not available, WebAssembly threads will not work.\n if (typeof SharedArrayBuffer === 'undefined') {\n return false;\n }\n\n try {\n // Test for transferability of SABs (for browsers. needed for Firefox)\n // https://groups.google.com/forum/#!msg/mozilla.dev.platform/IHkBZlHETpA/dwsMNchWEQAJ\n if (typeof MessageChannel !== 'undefined') {\n new MessageChannel().port1.postMessage(new SharedArrayBuffer(1));\n }\n\n // Test for WebAssembly threads capability (for both browsers and Node.js)\n // This typed array is a WebAssembly program containing threaded instructions.\n return WebAssembly.validate(\n new Uint8Array([\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 5, 4, 1, 3, 1, 1, 10, 11, 1, 9, 0, 65, 0, 254, 16,\n 2, 0, 26, 11,\n ]),\n );\n } catch (e) {\n return false;\n }\n};\n\nconst isSimdSupported = (): boolean => {\n try {\n // Test for WebAssembly SIMD capability (for both browsers and Node.js)\n // This typed array is a WebAssembly program containing SIMD instructions.\n\n // The binary data is generated from the following code by wat2wasm:\n //\n // (module\n // (type $t0 (func))\n // (func $f0 (type $t0)\n // (drop\n // (i32x4.dot_i16x8_s\n // (i8x16.splat\n // (i32.const 0))\n // (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)))))\n\n return WebAssembly.validate(\n new Uint8Array([\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 30, 1, 28, 0, 65, 0, 253, 15, 253, 12, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 186, 1, 26, 11,\n ]),\n );\n } catch (e) {\n return false;\n }\n};\n\nexport const initializeWebAssembly = async (flags: Env.WebAssemblyFlags): Promise<void> => {\n if (initialized) {\n return Promise.resolve();\n }\n if (initializing) {\n throw new Error(\"multiple calls to 'initializeWebAssembly()' detected.\");\n }\n if (aborted) {\n throw new Error(\"previous call to 'initializeWebAssembly()' failed.\");\n }\n\n initializing = true;\n\n // wasm flags are already initialized\n const timeout = flags.initTimeout!;\n let numThreads = flags.numThreads!;\n\n // ensure SIMD is supported\n if (!isSimdSupported()) {\n throw new Error('WebAssembly SIMD is not supported in the current environment.');\n }\n\n // check if multi-threading is supported\n const multiThreadSupported = isMultiThreadSupported();\n if (numThreads > 1 && !multiThreadSupported) {\n if (typeof self !== 'undefined' && !self.crossOriginIsolated) {\n // eslint-disable-next-line no-console\n console.warn(\n 'env.wasm.numThreads is set to ' +\n numThreads +\n ', but this will not work unless you enable crossOriginIsolated mode. ' +\n 'See https://web.dev/cross-origin-isolation-guide/ for more info.',\n );\n }\n\n // eslint-disable-next-line no-console\n console.warn(\n 'WebAssembly multi-threading is not supported in the current environment. ' + 'Falling back to single-threading.',\n );\n\n // set flags.numThreads to 1 so that OrtInit() will not create a global thread pool.\n flags.numThreads = numThreads = 1;\n }\n\n const wasmPaths = flags.wasmPaths;\n const wasmPrefixOverride = typeof wasmPaths === 'string' ? wasmPaths : undefined;\n const mjsPathOverrideFlag = (wasmPaths as Env.WasmFilePaths)?.mjs;\n const mjsPathOverride = (mjsPathOverrideFlag as URL)?.href ?? mjsPathOverrideFlag;\n const wasmPathOverrideFlag = (wasmPaths as Env.WasmFilePaths)?.wasm;\n const wasmPathOverride = (wasmPathOverrideFlag as URL)?.href ?? wasmPathOverrideFlag;\n const wasmBinaryOverride = flags.wasmBinary;\n\n const [objectUrl, ortWasmFactory] = await importWasmModule(mjsPathOverride, wasmPrefixOverride, numThreads > 1);\n\n let isTimeout = false;\n\n const tasks: Array<Promise<void>> = [];\n\n // promise for timeout\n if (timeout > 0) {\n tasks.push(\n new Promise((resolve) => {\n setTimeout(() => {\n isTimeout = true;\n resolve();\n }, timeout);\n }),\n );\n }\n\n // promise for module initialization\n tasks.push(\n new Promise((resolve, reject) => {\n const config: Partial<OrtWasmModule> = {\n /**\n * The number of threads. WebAssembly will create (Module.numThreads - 1) workers. If it is 1, no worker will be\n * created.\n */\n numThreads,\n };\n\n if (wasmBinaryOverride) {\n /**\n * Set a custom buffer which contains the WebAssembly binary. This will skip the wasm file fetching.\n */\n config.wasmBinary = wasmBinaryOverride;\n } else if (wasmPathOverride || wasmPrefixOverride) {\n /**\n * A callback function to locate the WebAssembly file. The function should return the full path of the file.\n *\n * Since Emscripten 3.1.58, this function is only called for the .wasm file.\n */\n config.locateFile = (fileName, scriptDirectory) =>\n wasmPathOverride ?? (wasmPrefixOverride ?? scriptDirectory) + fileName;\n }\n\n ortWasmFactory(config).then(\n // wasm module initialized successfully\n (module) => {\n initializing = false;\n initialized = true;\n wasm = module;\n resolve();\n if (objectUrl) {\n URL.revokeObjectURL(objectUrl);\n }\n },\n // wasm module failed to initialize\n (what) => {\n initializing = false;\n aborted = true;\n reject(what);\n },\n );\n }),\n );\n\n await Promise.race(tasks);\n\n if (isTimeout) {\n throw new Error(`WebAssembly backend initializing failed due to timeout: ${timeout}ms`);\n }\n};\n\nexport const getInstance = (): OrtWasmModule => {\n if (initialized && wasm) {\n return wasm;\n }\n\n throw new Error('WebAssembly is not initialized yet.');\n};\n\nexport const dispose = (): void => {\n if (initialized && !initializing && !aborted) {\n // TODO: currently \"PThread.terminateAllThreads()\" is not exposed in the wasm module.\n // And this function is not yet called by any code.\n // If it is needed in the future, we should expose it in the wasm module and uncomment the following line.\n\n // wasm?.PThread?.terminateAllThreads();\n wasm = undefined;\n\n initializing = false;\n initialized = false;\n aborted = true;\n }\n};\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { getInstance } from './wasm-factory';\n\nexport const allocWasmString = (data: string, allocs: number[]): number => {\n const wasm = getInstance();\n\n const dataLength = wasm.lengthBytesUTF8(data) + 1;\n const dataOffset = wasm._malloc(dataLength);\n wasm.stringToUTF8(data, dataOffset, dataLength);\n allocs.push(dataOffset);\n\n return dataOffset;\n};\n\ninterface ExtraOptionsHandler {\n (name: string, value: string): void;\n}\n\nexport const iterateExtraOptions = (\n options: Record<string, unknown>,\n prefix: string,\n seen: WeakSet<Record<string, unknown>>,\n handler: ExtraOptionsHandler,\n): void => {\n if (typeof options == 'object' && options !== null) {\n if (seen.has(options)) {\n throw new Error('Circular reference in options');\n } else {\n seen.add(options);\n }\n }\n\n Object.entries(options).forEach(([key, value]) => {\n const name = prefix ? prefix + key : key;\n if (typeof value === 'object') {\n iterateExtraOptions(value as Record<string, unknown>, name + '.', seen, handler);\n } else if (typeof value === 'string' || typeof value === 'number') {\n handler(name, value.toString());\n } else if (typeof value === 'boolean') {\n handler(name, value ? '1' : '0');\n } else {\n throw new Error(`Can't handle extra config type: ${typeof value}`);\n }\n });\n};\n\n/**\n * check web assembly API's last error and throw error if any error occurred.\n * @param message a message used when an error occurred.\n */\nexport const checkLastError = (message: string): void => {\n const wasm = getInstance();\n\n const stack = wasm.stackSave();\n try {\n const paramsOffset = wasm.stackAlloc(8);\n wasm._OrtGetLastError(paramsOffset, paramsOffset + 4);\n const errorCode = wasm.HEAP32[paramsOffset / 4];\n const errorMessagePointer = wasm.HEAPU32[paramsOffset / 4 + 1];\n const errorMessage = errorMessagePointer ? wasm.UTF8ToString(errorMessagePointer) : '';\n throw new Error(`${message} ERROR_CODE: ${errorCode}, ERROR_MESSAGE: ${errorMessage}`);\n } finally {\n wasm.stackRestore(stack);\n }\n};\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nimport { InferenceSession } from 'onnxruntime-common';\n\nimport { getInstance } from './wasm-factory';\nimport { allocWasmString, checkLastError, iterateExtraOptions } from './wasm-utils';\n\nexport const setRunOptions = (options: InferenceSession.RunOptions): [number, number[]] => {\n const wasm = getInstance();\n let runOptionsHandle = 0;\n const allocs: number[] = [];\n\n const runOptions: InferenceSession.RunOptions = options || {};\n\n try {\n if (options?.logSeverityLevel === undefined) {\n runOptions.logSeverityLevel = 2; // Default to warning\n } else if (\n typeof options.logSeverityLevel !== 'number' ||\n !Number.isInteger(options.logSeverityLevel) ||\n options.logSeverityLevel < 0 ||\n options.logSeverityLevel > 4\n ) {\n throw new Error(`log serverity level is not valid: ${options.logSeverityLevel}`);\n }\n\n if (options?.logVerbosityLevel === undefined) {\n runOptions.logVerbosityLevel = 0; // Default to 0\n } else if (typeof options.logVerbosityLevel !== 'number' || !Number.isInteger(options.logVerbosityLevel)) {\n throw new Error(`log verbosity level is not valid: ${options.logVerbosityLevel}`);\n }\n\n if (options?.terminate === undefined) {\n runOptions.terminate = false;\n }\n\n let tagDataOffset = 0;\n if (options?.tag !== undefined) {\n tagDataOffset = allocWasmString(options.tag, allocs);\n }\n\n runOptionsHandle = wasm._OrtCreateRunOptions(\n runOptions.logSeverityLevel!,\n runOptions.logVerbosityLevel!,\n !!runOptions.terminate!,\n tagDataOffset,\n );\n if (runOptionsHandle === 0) {\n checkLastError(\"Can't create run options.\");\n }\n\n if (options?.extra !== undefined) {\n iterateExtraOptions(options.extra, '', new WeakSet<Record<string, unknown>>(), (key, value) => {\n const keyDataOffset = allocWasmString(key, allocs);\n const valueDataOffset = allocWasmString(value, allocs);\n\n if (wasm._OrtAddRunConfigEntry(runOptionsHandle, keyDataOffset, valueDataOffset) !== 0) {\n checkLastError(`Can't set a run config entry: ${key} - ${value}.`);\n }\n });\n }\n\n return [runOptionsHandle, allocs];\n } catch (e) {\n if (runOptionsHandle !==