Install on Linux ARM64 (archived)
Note
Kwker 0.1.0 ships packages for Linux x86-64 and Windows x64 only. Packages for this platform come in 0.2.0; this page is kept for that release. Until then, build from source with the Rust crate.
Kwker runs on 64-bit ARM Linux: AWS Graviton, Ampere Altra, NVIDIA Grace and other Neoverse servers. In 0.1.0 this platform is experimental: every package builds and passes its tests here, and speed is measured but not promised.
Python
pip install kwker
python -m kwker doctor # prints the engine in use
The wheel is manylinux_2_34_aarch64 (glibc 2.34 or newer). Kwker picks SVE or SVE2 where the CPU has it (Graviton3
and 4, Neoverse V1, V2 and N2, Grace) and NEON elsewhere.
For the PyTorch extensions, the KwkCNN / KwkEncoder / KwkDecoder runners and the ONNX Runtime provider, install the
wheel built for your torch release, for example kwker==0.1.0+torch2.14. Their results match PyTorch within each
precision's tolerance; on ARM64 they are not tuned for speed yet.
C and C++
Use the kwker-c-0.1.0-linux-aarch64.tar.gz archive or the arm64 .deb / aarch64 .rpm packages. They hold the
same files as on x86-64: see Installation.
Rust
[dependencies]
kwker = "0.1"
The build compiles the NEON and SVE engines with your C++ compiler (GCC or Clang).
Known issues
- The model runners (KwkCNN, KwkEncoder, KwkDecoder and the ONNX Runtime provider) use the x86 kernels translated to NEON: their results match PyTorch and ONNX Runtime, but they are not tuned for speed on ARM64 yet and can be slower than PyTorch's and ONNX Runtime's own CPU kernels there. Time your model both ways before you switch.
Related
- Installation: every platform and package.
- Runtime controls: see and choose the engine.