Porting/chaiNNer
Revision as of 17:16, 25 August 2023 by JeremyRand (talk | contribs) (→Finished: Use load_param_mem with ncnn CPU inference)
Contents
Installation on Debian Bookworm
- Install at least one of PyTorch, ONNX, or ncnn
- Install Electron
- Pin Debian's
python3
so that Electron will use Debian's PyTorch package (See Bedrock pinning instructions) sudo brl apply
- Download and extract a portable zip Linux x86_64 binary of chaiNNer.
- Rename
chainner
executable in chaiNNer directory tochainner.bak
(this is an Electron executable; we will replace it with the ppc64le Electron that we installed). - Rename
portable
file in chaiNNer directory toportable.bak
(skip this step if you want chaiNNer configuration to be stored in chaiNNer's directory instead of$HOME
) - In chaiNNer's directory, create the following shell script named
chainner
:
#!/usr/bin/env bash cd "$(dirname "$0")" electron ./resources/app "$@" --no-sandbox
- Give the
chainner
script executable permissions, and (if you like) add the chaiNNer directory to yourPATH
. - Run chaiNNer once, and quickly exit.
- Run the following commands to take care of some remaining dependencies:
echo true > ~/.config/chaiNNer/settings/use-system-python ln -s -T /bedrock/cross/bin/ffprobe ~/.config/chaiNNer/ffmpeg/ffprobe ln -s -T /bedrock/cross/bin/ffmpeg ~/.config/chaiNNer/ffmpeg/ffmpeg sudo apt install python3-requests libre2-dev pip install --user --break-system-packages sanic Sanic-Cors ffmpeg-python google-re2
- chaiNNer is installed!
Finished
- --no-sandbox Electron flag causes ChaiNNer to error
- Fix argument parsing to allow passthrough of extra args
- Fix backend script path detection with external Electron
- Add --devtools argument
- Support NCNN CPU inference
- Use load_param_mem with ncnn CPU inference
Merged, Awaiting Stable Tag
(None at the moment.)