Development setup¶
This section is a complement to the Advanced installation guide section, with the goal of setting up a development environment and a development version of the package.
For convenience, we suggest creating a virtual environment as a way to isolate your development environment:
$ python3 -m venv aihwkit_env
$ cd aihwkit_env
$ source bin/activate
(aihwkit_env) $
Downloading the source¶
The first step is downloading the source of the library:
(aihwkit_env) $ git clone https://github.com/IBM/aihwkit.git
(aihwkit_env) $ cd aihwkit
Note
The following sections assume that the command line examples are executed
in the activated aihwkit_env environment, and from the folder where the
sources have been cloned.
Compiling the library for development¶
After installing the requirements listed in the Advanced installation guide section, the shared library can be compiled using the following convenience command:
$ python setup.py build_ext --inplace
This will produce a shared library under the src/aihwkit/simulator
directory, without installing the package.
As an alternative, you can use cmake directly for
finer control over the compilation and for easier debugging potential issues:
$ mkdir build
$ cd build
build$ cmake ..
build$ make
Compilation flags¶
There are several cmake options that can be used for customizing the
compilation process:
Flag |
Description |
Default |
|---|---|---|
|
Build with CUDA support |
|
|
Build the C++ test binaries |
|
|
BLAS backend of choice ( |
|
|
Use fast mod |
|
|
Use fastrand |
|
|
Target CUDA architectures |
|
The options can be passed both to setuptools or to cmake directly. For
example, for compiling with CUDA support:
$ python setup.py install -DUSE_CUDA=ON -DRPU_CUDA_ARCHITECTURES="60;70"
or if using cmake directly:
build$ cmake -DUSE_CUDA=ON -DRPU_CUDA_ARCHITECTURES="60;70" ..
Note
If you are installing the package in editable mode for development (via.
pip install -e .), please be aware that under most circumstances the
actual package sources will not be appended to the Python path. You might
need to add the src/ folder to your PYTHONPATH accordingly (for
example, via export PYTHONPATH=src/).