ewfian / faiss-node

Node.js bindings for faiss
https://www.npmjs.com/package/faiss-node
MIT License
107 stars 10 forks source link

Support for arm64 #17

Closed HenryHengZJ closed 1 year ago

HenryHengZJ commented 1 year ago

An extenstion to this https://github.com/ewfian/faiss-node/issues/12

when I try to build docker image for arm64 the errors are shown as below:

#0 360.7 npm ERR! prebuild-install http request GET https://github.com/ewfian/faiss-node/releases/download/v0.2.1/faiss-node-v0.2.1-napi-v8-linuxmusl-arm64.tar.gz
#0 360.7 npm ERR! prebuild-install http request GET https://github.com/ewfian/faiss-node/releases/download/v0.2.1/faiss-#0 360.7 npm ERR! prebuild-install http request GET https://github.com/ewfian/faiss-node/releases/#0 360.7 npm ERR! prebuild-install http request GET https://github.com/ewfian/faiss-node/releases/download/v0.2.1/faiss-node-v0.2.1-napi-v8-linuxmusl-arm64.tar.gz
#0 360.7 npm ERR! prebuild-install http 404 https://github.com/ewfian/faiss-node/releases/download/v0.2.1/faiss-node-v0.2.1-napi-v8-linuxmusl-arm64.tar.gz
#0 360.7 npm ERR! prebuild-install warn install No prebuilt binaries found (target=8 runtime=napi arch=arm64 libc=musl platform=linux)
#0 360.7 npm ERR! sh: cmake-js: not found

Here's the command I use inside docker folder of Flowise:

  1. docker buildx use mybuilder
  2. docker buildx build --platform linux/amd64,linux/arm64 --no-cache -t flowiseai/flowise:latest --push .
ewfian commented 1 year ago

@HenryHengZJ Thank you for reporting, I am going to deal with it next.

ewfian commented 1 year ago

blocked by:

HenryHengZJ commented 1 year ago

hey @ewfian just wondering any progress on this? thanks!

michaelerobertsjr commented 1 year ago

I just got a macbook pro with an M2 MAX and I am having the same error:

#0 129.2 [5/5] Building fresh packages...
#0 131.3 error /usr/src/packages/node_modules/faiss-node: Command failed.
#0 131.3 Exit code: 127
#0 131.3 Command: prebuild-install --runtime napi --verbose || npm run build
#0 131.3 Arguments:
#0 131.3 Directory: /usr/src/packages/node_modules/faiss-node
#0 131.3 Output:
#0 131.3 prebuild-install info begin Prebuild-install version 7.1.1
#0 131.3 prebuild-install info looking for local prebuild @ prebuilds/faiss-node-v0.2.1-napi-v8-linuxmusl-arm64.tar.gz
#0 131.3 prebuild-install info looking for cached prebuild @ /root/.npm/_prebuilds/c598fd-faiss-node-v0.2.1-napi-v8-linuxmusl-arm64.tar.gz
#0 131.3 prebuild-install http request GET https://github.com/ewfian/faiss-node/releases/download/v0.2.1/faiss-node-v0.2.1-napi-v8-linuxmusl-arm64.tar.gz
#0 131.3 prebuild-install http 404 https://github.com/ewfian/faiss-node/releases/download/v0.2.1/faiss-node-v0.2.1-napi-v8-linuxmusl-arm64.tar.gz
#0 131.3 prebuild-install warn install No prebuilt binaries found (target=8 runtime=napi arch=arm64 libc=musl platform=linux)
#0 131.3
#0 131.3 > faiss-node@0.2.1 build
#0 131.3 > cmake-js compile
#0 131.3
#0 131.3 sh: cmake-js: not found
#0 131.3 info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
------
Dockerfile:27
--------------------
  25 |     COPY packages/server/package.json ./packages/server/package.json
  26 |
  27 | >>> RUN yarn install
  28 |
  29 |     # Copy app source
--------------------
ERROR: failed to solve: process "/bin/sh -c yarn install" did not complete successfully: exit code: 127
ewfian commented 1 year ago

Hi @HenryHengZJ Apologize for the delay in resolving this issue. Here are some updates:

The build for arm64 was fixed in CMakeList.txt and it is possible to build the package.

However, The part of uploading pre-built binaries to GitHub release still has something to do. The build for arm64 is very slow (about 4 hours), but the previously used tools prebuild failed easily, I need to replace it with GitHub Actions.

I'm currently facing some environment and configuration issues with GitHub Actions. Unfortunately, I have been occupied with work recently. and, I will be traveling for the next 6 days starting tomorrow. If things goes well, I expect to resolve this issue next week.

HenryHengZJ commented 1 year ago

thanks for looking into it @ewfian!

ewfian commented 1 year ago

@HenryHengZJ The new version was released.