mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-16 21:00:14 +00:00
### Description <!-- Describe your changes. --> Switch to setImmediate to avoid starving the Node.js event loop There should really be a true async version though, running computationally intensive things on the event loop will stop everything else from happening while it is running, e.g. a web server from answering requests. This can be done by wrapping `RunAsync` behind a [`napi::Promise`](https://github.com/nodejs/node-addon-api/blob/main/doc/promises.md) to run on the onnxruntime thread pool or [`AsyncWorker`]( https://github.com/nodejs/node-addon-api/blob/main/doc/async_worker.md) for the Node.js/libuv thread pool. ### Motivation and Context <!-- - Why is this change required? What problem does it solve? - If it fixes an open issue, please link to the issue here. --> Without this, if you run inference in a tight loop, without anything else in between that is async/deferred, `process.nextTick` will lead to starving the event loop and not letting anything else run, `setImmediate` at least lets the event loop spin between calls to `run`. See https://dev.to/ynmanware/setimmediate-settimeout-and-process-nexttick-3mfd Contributed on behalf of [Swimm](https://swimm.io/) |
||
|---|---|---|
| .. | ||
| lib | ||
| script | ||
| src | ||
| test | ||
| .gitignore | ||
| .npmignore | ||
| CMakeLists.txt | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
ONNX Runtime Node.js Binding
ONNX Runtime Node.js binding enables Node.js applications to run ONNX model inference.
Usage
Install the latest stable version:
npm install onnxruntime-node
Refer to ONNX Runtime JavaScript examples for samples and tutorials.
Requirements
ONNXRuntime works on Node.js v12.x+ or Electron v5.x+.
Following platforms are supported with pre-built binaries:
- Windows x64 CPU NAPI_v3
- Linux x64 CPU NAPI_v3
- MacOS x64 CPU NAPI_v3
To use on platforms without pre-built binaries, you can build Node.js binding from source and consume it by npm install <onnxruntime_repo_root>/js/node/. See also instructions for building ONNX Runtime Node.js binding locally.
GPU Support
Right now, the Windows version supports only the DML provider. Linux x64 can use CUDA and TensorRT.
License
License information can be found here.