Separation of 1-Bit SGD from main CNTK code

Coordinator
Jan 16, 2016 at 3:15 AM
In preparation of our move to GitHub, the 1-Bit SGD parallel training implementation in CNTK is being separated out from the main CNTK source code. The main CNTK code will be available on GitHub under the permissive MIT license and will continue to offer data-parallel SGD training but without the 1-Bit SGD feature. The 1-Bit SGD code will be available in a separate GitHub repository under the restrictive Microsoft Academic license and can be optionally included in a CNTK build through some simple settings.

As the first step towards this, we have separated the 1-Bit feature from CNTK in the CodePlex git repository itself. By default CNTK will now build without the 1-Bit SGD feature. If you need, the 1-Bit feature can be explicitly included in your CNTK development build (see instructions below).

1) CNTK on Windows now requires MSMPI v7. If you are on older versions on MSMPI please upgrade to MSMPI v7. Note that this is required regardless of whether you are using the 1-Bit feature.
2) To include 1-Bit feature in your CNTK build:
a. Windows: Set the environment variable “CNTK_ENABLE_1BitSGD=true”
b. Linux: Pass the option “--1bitsgd=yes” to the “configure” command.
         Note that the 1-Bit sources are still part of the CNTK CodePlex git repository. When we move to GitHub next week, the 1-Bit sources will be available in a separate git repository which will be a submodule of the main CNTK git repository on GitHub. Just performing a recursive clone (git clone –recursive) will suffice to fetch the 1-Bit sources and can be included in your CNTK build using the instructions above.