Skip to content

Bug: node.js tensorflow binding does not compile on arm64 #1

@johnwalicki

Description

@johnwalicki

The Node-RED service container will run on arm64 but the COCO SSD node fails because the node.js tensorflow binding does not compile successfully. Object detection fails.

I've been down this rabbit hole before with node-gyp and libtensorflow on arm64.

To test manually, on a Raspberry Pi, run/exec into a container, copy in the package.json, install the gcc toolchains, install the npm dev dependencies, try to compile npm rebuild @tensorflow/tfjs-node --build-from-source

"/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" --verbose --module_name=tfjs_binding --module_path="./lib/napi-v{napi_build_version}"

will compile the .o objects but fails when linking.

SOLINK_MODULE(target) Release/obj.target/tfjs_binding.node
/usr/bin/ld: skipping incompatible /opt/app-root/data/node_modules/@tensorflow/tfjs-node/deps/lib/libtensorflow.so when searching for -ltensorflow
/usr/bin/ld: cannot find -ltensorflow

The /opt/app-root/data/node_modules/@tensorflow/tfjs-node/deps/lib/libtensorflow_framework.so.1.14.0 and libtensorflow.so.1.14.0 exist but don't link.

Over the past 5 years, I've dug deep here. Maybe one time I found success on a Jetson Nano by reusing a CUDA gpu lib.... (?)

Opening this ticket so others might not fall down the hole as deep as I have.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions