Linux x86-64

Xnor Bundles will work on most typical workstations or laptops with an Intel or AMD processor running a recent Linux distribution (see distro support for more details). The computer’s CPU must support the AVX2 extensions. To check if this is the case for your CPU, run the following command:

grep avx2 /proc/cpuinfo

If the output from this command includes lines beginning with flags :        ..., then your CPU supports AVX2. If not, the linux binaries will not work on your computer.

Linux Distribution support

Xnor Bundles are officially supported on Ubuntu 16.04 and 18.04.

However, linux-x86_64 Xnor Bundles have also been found to work on the following Linux distributions:

  • Fedora 29

  • Arch Linux as of December 2018

  • Gentoo as of December 2018

linux-x86_64 Xnor Bundles have been found to NOT work out of the box on:

  • CentOS 7

Other Linux distributions may also work. In general, support for a Linux distribution is mostly determined by the available libstdc++ version. Xnor Bundles are currently compiled against libstdc++ version 6.0.21 (which corresponds to ABI version GLIBCXX_3.4.21). You can check if your Linux distribution supports this ABI version by locating libstdc++.so.6 (on Ubuntu, this is in /usr/lib/x86_64-linux-gnu/) and running:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

This will print out all supported ABI versions. If GLIBCXX_3.4.21 is not in the list, XnorNet will probably not work.

Language-independent setup

Xnor Bundles have no dependencies of their own and can be used in your C or Python application without any additional setup.

The Xnor developer SDK needs a few libraries and tools to be present in order to run the sample applications. If you’re on Ubuntu, you can run xnor-sdk-linux-x86_64/samples/install_dependencies_ubuntu.sh to install the dependencies of the SDK samples all at once.

Setting up for C development

You will need a C compiler and make to compile the basic C samples, which are provided by the build-essential package. The GStreamer samples will also require several GStreamer-related packages, which are installed by the install_dependencies_ubuntu.sh script mentioned above.

After these packages are installed, you should be able to build the samples in samples/c as follows:

cd ~/Downloads/xnor-sdk-linux-x86_64/samples/c
make

Next Steps for C development

Setting up for Python development

You will need Python 3.5 or higher as well as pip to install the libraries used by the Python samples. Ubuntu 16.04 and higher come with Python 3.5.2, so you may only need to install python3-pip. This installation is done by install_dependencies_ubuntu.sh, so if you performed this step already, you are ready to run the python samples.

If you skipped the language-independent setup, you can run:

sudo apt-get install python3-pip
cd ~/Downloads/xnor-sdk-linux-x86_64/samples/python
python3 -m pip install -r samples/python/requirements.txt
python3 setup.py install --user

This will install all the necessary dependencies to run the samples in samples/python.

Next Steps for Python development