Fix fp16/q4f16 dtype test failures on Node.js 20+ #1481
+22
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Preparing a different PR I noticed that running tests locally on Node.js 20+ causes the Llama fp16/q4f16 dtype tests to fail:
Cause
onnxruntime-commondetectsFloat16Array(available in Node 20+) and uses it for float16 tensors. However,onnxruntime-node's native binding was written beforeFloat16Arrayexisted and only acceptsUint16Array.Fix
This PR adds a workaround that hides
Float16Arraybefore onnxruntime loads, forcing it to useUint16Arrayinstead.There's an upstream PR to add
Float16Arraysupport to onnxruntime-node (microsoft/onnxruntime#26742), but it hasn't merged yet (and onnxruntime PRs can take many months to merge). Once it does, this workaround can be removed.Test plan
npm testpasses locally on Node.js 20+