Mac OS Installation Instructions

There are various ways to install Aesara dependencies on a Mac. Here we describe the process in detail with Anaconda, Homebrew or MacPorts but if you did it differently and it worked, please let us know the details so that we can add alternative instructions.

Requirements

Note

We only support the installation of the requirements through conda.

Python == >= 3.7
The conda distribution is highly recommended. Python 2.4 was supported up to and including the release 0.6. Python 2.6 was supported up to and including the release 0.8.2. Python 3.3 was supported up to and including release 0.9. Python 3.6 was supported up to and including release 2.3.4.
NumPy >= 1.9.1
Earlier versions could work, but we don’t test it.
SciPy >= 0.14
Only currently required for sparse matrix and special functions support, but highly recommended. SciPy >=0.8 could work, but earlier versions have known bugs with sparse matrices.
BLAS installation (with Level 3 functionality)
  • Recommended: MKL, which is free through Conda with mkl-service package.
  • Alternatively, we suggest to install OpenBLAS, with the development headers (-dev, -devel, depending on your Linux distribution).

Optional requirements

clang (the system version)
Highly recommended. Aesara can fall back on a NumPy-based Python execution model, but a C compiler allows for vastly faster execution.
Sphinx >= 0.5.1, pygments
For building the documentation. LaTeX and dvipng are also necessary for math to show up as images.
pydot-ng
To handle large picture for gif/images.
NVIDIA CUDA drivers and SDK
Highly recommended Required for GPU code generation/execution on NVIDIA gpus. See instruction below.
libgpuarray
Required for GPU/CPU code generation on CUDA and OpenCL devices (see: GpuArray Backend).
pycuda and skcuda
Required for some extra operations on the GPU like fft and solvers. We use them to wrap cufft and cusolver. Quick install pip install pycuda scikit-cuda. For cuda 8, the dev version of skcuda (will be released as 0.5.2) is needed for cusolver: pip install pycuda; pip install git+https://github.com/lebedov/scikit-cuda.git#egg=scikit-cuda.
warp-ctc
Required for Aesara CTC implementation. It is faster then using an equivalent graph of Aesara ops.

Installation

Stable Installation

With conda

If you use conda, you can directly install both aesara and pygpu. Libgpuarray will be automatically installed as a dependency of pygpu.

conda install aesara pygpu

Warning

The Aesara developers do not maintain pygpu, so compatibility isn’t guaranteed.

With pip

If you use pip, you have to install Aesara and libgpuarray separately.

aesara

Install the latest stable version of Aesara with:

<sudo> pip install <--user> Aesara[test, doc]
  • Any argument between <…> is optional.
  • Use sudo for a root installation.
  • Use user for a user installation without admin rights. It will install Aesara in your local site-packages.
  • Use pip install -r requirements.txt to install the requirements for testing.
  • Use pip install -r requirements-rtd.txt install the requirements for generating the documentation.

If you encountered any trouble, head to the Troubleshooting page.

libgpuarray

Download it with:

git clone https://github.com/Theano/libgpuarray.git
cd libgpuarray

and then follow the Step-by-step instructions.

Developer Installation

Install the developer version of Aesara with:

git clone git://github.com/aesara-devs/aesara.git
cd aesara
<sudo> pip install <--user> <--no-deps> -e .
  • Any argument between <…> is optional.
  • Use sudo for a root installation.
  • Use user for a user installation without admin rights. It will install Aesara in your local site-packages.
  • Use no-deps when you don’t want the dependencies of Aesara to be installed through pip. This is important when they have already been installed as system packages.
  • -e makes your installation editable, i.e., it links it to your source directory.

If you encountered any trouble, head to the Troubleshooting page.

libgpuarray

See instructions for bleeding-edge installation about libgpuarray.