Installation

If you are upgrading from a pre v0.4 release you need to first run pip3 uninstall sol as the package name has changed!

Requirements

SOL has rather small number of requirements:

Requirement Version Comment
Linux any
Python ≥ 3.7
GCC ≥ 8.3
CUDA ≥ 11.0 if using CUDA
VEOS ≥ 2.7 if using VE
GraphViz any if using debug features

SOL Closed Beta User Account

Before you can install SOL, you need to have a SOL Closed Beta User Account. If you don’t have one, please contact your NEC sales representative or use our application form.

How can I change my password?
Login to portal.neclab.eu and follow the instructions for password change.

My account got disabled/deleted. What can I do?
In this case you need to contact us, and we need to reenable your account manually.

Why does my account not work for the Bug Tracker?
For technical reasons, the login to the Bug Tracker uses _ instead of @ in your username. So something@your-domain.eu needs to be something_your-domain.eu.

Installing SOL installer

First you need to install the SOL installer using:

pip3 install --upgrade nec-sol

The SOL installer allow you to manage your installation. The installer automatically detects which frameworks you have installed, and only installs necessary SOL extensions. This means you need to install all frameworks you want to use prior installing SOL.

Installing SOL

For installing SOL modules, just run:

nec-sol install

The installer will prompt you to enter your login credentials and accept the user license agreement. Since v0.5.1 the installer automatically installs all SOL extensions that are supported on your system and that you have access to.

How can I automate the SOL installation?
Since v0.5.1 the installer has a non-interactive mode. Please check out nec-sol --help to get all available options.

How can I install/download specific devices/frameworks?
By default, the installer installs devices and frameworks detected in your OS. If you want to specify them manully, just use the --devices x86 ve nvidia and --framework orch numpy onnx tensorflow attributes for nec-sol.

I get -bash: !...: event not found or __main__.py: error: unrecognized arguments: ...
If your password contains special characters such as ! or *, you need to put your entire password into single quotes --password 'my!passw*rd', otherwise your shell will try to interpret these.

Uninstalling SOL

Just run:

nec-sol uninstall

Alternatively you can run:

pip3 freeze | grep nec-sol | xargs pip3 uninstall -y

Installing SOL on a remote system without direct internet connectivity

To install SOL on a server without internet connectivity run the following commands on a machine with internet access:

pip3 install nec-sol
pip3 download nec-sol
nec-sol download
scp *.whl target_machine:/some/path

Then switch to your target machine and execute:

cd /some/path
pip3 install nec_sol-*.whl
nec-sol install -f .

How can I install SOL on the remote system without using the installer?
Since v0.5.2 you can use pip3 install nec-sol-core[FEATURES] -f . where FEATURES can be: torch, tensorflow, onnx, numpy, x86, nvidia, ve, tests and sdk. In setuptools you can similarly use nec-sol-core[FEATURES] as a dependency.

F.A.Q:

How can I upgrade/change the version of SOL?
For upgrading run:
nec-sol uninstall
pip3 install nec-sol==YOUR_VERSION
nec-sol install
Be aware that previous versions of SOL used a different installer and might need different steps to be installed.

I totally messed up everything, how can I reset SOL?
  1. Don't Panic!
  2. run pip3 install --upgrade nec-sol. This should upgrade the SOL package manager to the newest version.
  3. run nec-sol uninstall
  4. run nec-sol install
  5. Done!

PIP does not trust dav.neclab.eu OR I get following error: SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)
Solution #1 (not recommended) Add --trust when running nec-sol.
Solution #2 On CentOS pip does not trusts not the systems certificates. As user you can fix this problem with: pip3 config set cert /etc/pki/tls/certs/ca-bundle.crt. As root you can fix this for all users using:
sudo sh -c 'echo [global] > /etc/pip.conf'
sudo sh -c 'echo cert = /etc/pki/tls/certs/ca-bundle.crt >> /etc/pip.conf'
How can I decide to install into user or global site-packages?
By default the installer uses pip's default. Usually this is to install globally if run as root, otherwise to install to user. Using nec-sol install --user you can enforce installation into the user folder.