Skip to main content

A package for building and training quantized and binary neural networks with Pytorch

Project description

Bitorch Engine

Readme will be extended soon. This package contains layer to provide fast(er) layer implementations for BITorch.

Installation

Currently, the supported installation method is using pip:

  • Without any special cuda requirements (to hide the build output remove -v):
pip install -e . -v
  • With higher CUDA versions you may need to install a torch pre-release and/or add an extra index URL:
pip install --upgrade --pre torch --extra-index-url https://download.pytorch.org/whl/nightly/cu113

For example, for Cuda 11.6.124 torch==1.12.0.dev20220324+cu113 should work.

Cuda Device Selection

To select a certain CUDA device, set the environment variable BIE_DEVICE, e.g.:

export BIE_DEVICE=1  # use 2nd cuda device

Development

If building fails, adapt the options in cpp_extension.py/ cuda_extension.py.

While developing, a specific cpp/cuda extension can be (re-)build, by using the environment variable BIE_BUILD_ONLY, like so:

BIE_BUILD_ONLY="bitorch_engine/layers/qconv/binary/cpp" pip install -e . -v

It needs to a relative path to one extension directory.

To build for a different CUDA Arch, use the environment variable BIE_CUDA_ARCH (e.g. use 'sm_75', 'sm_80', 'sm_86'):

BIE_CUDA_ARCH="sm_86" pip install -e . -v

MacOS

You should install OpenMP (brew install libomp) with homebrew and make sure to add the corresponding environment variables:

export LIBRARY_PATH=$LIBRARY_PATH:"$(brew --prefix)/lib"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$(brew --prefix)/lib"
export CPATH=$CPATH:"$(brew --prefix)/include"
# during libomp installation it should something like this:
export LDFLAGS="-L$(brew --prefix)/opt/libomp/lib"
export CPPFLAGS="-I$(brew --prefix)/opt/libomp/include"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bitorch_engine-0.1.0.tar.gz (37.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page