Modified: incubator/singa/site/trunk/en/docs/install_win.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/en/docs/install_win.html?rev=1857911&r1=1857910&r2=1857911&view=diff ============================================================================== --- incubator/singa/site/trunk/en/docs/install_win.html (original) +++ incubator/singa/site/trunk/en/docs/install_win.html Sun Apr 21 13:56:42 2019 @@ -18,15 +18,21 @@ - - + <script type="text/javascript" src="../_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + <script type="text/javascript" src="../_static/jquery.js"></script> + <script type="text/javascript" src="../_static/underscore.js"></script> + <script type="text/javascript" src="../_static/doctools.js"></script> + <script type="text/javascript" src="../_static/language_data.js"></script> + + <script type="text/javascript" src="../_static/js/theme.js"></script> - + - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> + <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> @@ -42,21 +48,16 @@ } </style> - - - <script src="../_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -186,71 +187,65 @@ <p>You may create a folder for building the dependencies.</p> <p>The dependencies are:</p> <ul> -<li><dl class="first docutils"> -<dt>Compiler and IDE</dt> -<dd><ul class="first last simple"> -<li>Visual Studio. The community edition is free and can be used to build SINGA. <a class="reference external" href="https://www.visualstudio.com/">https://www.visualstudio.com/</a></li> +<li><dl class="simple"> +<dt>Compiler and IDE</dt><dd><ul class="simple"> +<li><p>Visual Studio. The community edition is free and can be used to build SINGA. <a class="reference external" href="https://www.visualstudio.com/">https://www.visualstudio.com/</a></p></li> </ul> </dd> </dl> </li> -<li><dl class="first docutils"> -<dt>CMake</dt> -<dd><ul class="first last simple"> -<li>Can be downloaded from <a class="reference external" href="http://cmake.org/">http://cmake.org/</a></li> -<li>Make sure the path to cmake executable is in the system path, or use full path when calling cmake.</li> +<li><dl class="simple"> +<dt>CMake</dt><dd><ul class="simple"> +<li><p>Can be downloaded from <a class="reference external" href="http://cmake.org/">http://cmake.org/</a></p></li> +<li><p>Make sure the path to cmake executable is in the system path, or use full path when calling cmake.</p></li> </ul> </dd> </dl> </li> -<li><dl class="first docutils"> -<dt>SWIG</dt> -<dd><ul class="first last simple"> -<li>Can be downloaded from <a class="reference external" href="http://swig.org/">http://swig.org/</a></li> -<li>Make sure the path to swig executable is in the system path, or use full path when calling swig. Use a recent version such as 3.0.12.</li> +<li><dl class="simple"> +<dt>SWIG</dt><dd><ul class="simple"> +<li><p>Can be downloaded from <a class="reference external" href="http://swig.org/">http://swig.org/</a></p></li> +<li><p>Make sure the path to swig executable is in the system path, or use full path when calling swig. Use a recent version such as 3.0.12.</p></li> </ul> </dd> </dl> </li> -<li><dl class="first docutils"> -<dt>Protocol Buffers</dt> -<dd><ul class="first last simple"> -<li>Download a suitable version such as 2.6.1: <a class="reference external" href="https://github.com/google/protobuf/releases/tag/v2.6.1">https://github.com/google/protobuf/releases/tag/v2.6.1</a> .</li> -<li>Download both protobuf-2.6.1.zip and protoc-2.6.1-win32.zip .</li> -<li>Extract both of them in dependencies folder. Add the path to protoc executable to the system path, or use full path when calling it.</li> -<li>Open the Visual Studio solution which can be found in vsproject folder.</li> -<li>Change the build settings to Release and x64.</li> -<li>build libprotobuf project.</li> +<li><dl class="simple"> +<dt>Protocol Buffers</dt><dd><ul class="simple"> +<li><p>Download a suitable version such as 2.6.1: <a class="reference external" href="https://github.com/google/protobuf/releases/tag/v2.6.1">https://github.com/google/protobuf/releases/tag/v2.6.1</a> .</p></li> +<li><p>Download both protobuf-2.6.1.zip and protoc-2.6.1-win32.zip .</p></li> +<li><p>Extract both of them in dependencies folder. Add the path to protoc executable to the system path, or use full path when calling it.</p></li> +<li><p>Open the Visual Studio solution which can be found in vsproject folder.</p></li> +<li><p>Change the build settings to Release and x64.</p></li> +<li><p>build libprotobuf project.</p></li> </ul> </dd> </dl> </li> -<li><dl class="first docutils"> -<dt>Openblas</dt> -<dd><ul class="first simple"> -<li>Download a suitable source version such as 0.2.20 from <a class="reference external" href="http://www.openblas.net">http://www.openblas.net</a></li> -<li>Extract the source in the dependencies folder.</li> -<li>If you donât have Perl installed, download a perl environment such as Strawberry Perl (<a class="reference external" href="http://strawberryperl.com/">http://strawberryperl.com/</a>)</li> -<li>Build the Visual Studio solution by running this command in the source folder:</li> +<li><dl> +<dt>Openblas</dt><dd><ul class="simple"> +<li><p>Download a suitable source version such as 0.2.20 from <a class="reference external" href="http://www.openblas.net">http://www.openblas.net</a></p></li> +<li><p>Extract the source in the dependencies folder.</p></li> +<li><p>If you donât have Perl installed, download a perl environment such as Strawberry Perl (<a class="reference external" href="http://strawberryperl.com/">http://strawberryperl.com/</a>)</p></li> +<li><p>Build the Visual Studio solution by running this command in the source folder:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> </pre></div> </div> -<ul class="last simple"> -<li>Open the Visual Studio solution and change the build settings to Release and x64.</li> -<li>Build libopenblas project</li> +<ul class="simple"> +<li><p>Open the Visual Studio solution and change the build settings to Release and x64.</p></li> +<li><p>Build libopenblas project</p></li> </ul> </dd> </dl> </li> -<li><dl class="first docutils"> -<dt>Google glog</dt> -<dd><ul class="first last simple"> -<li>Download a suitable version such as 0.3.5 from <a class="reference external" href="https://github.com/google/glog/releases">https://github.com/google/glog/releases</a></li> -<li>Extract the source in the dependencies folder.</li> -<li>Open the Visual Studio solution.</li> -<li>Change the build settings to Release and x64.</li> -<li>Build libglog project</li> +<li><dl class="simple"> +<dt>Google glog</dt><dd><ul class="simple"> +<li><p>Download a suitable version such as 0.3.5 from <a class="reference external" href="https://github.com/google/glog/releases">https://github.com/google/glog/releases</a></p></li> +<li><p>Extract the source in the dependencies folder.</p></li> +<li><p>Open the Visual Studio solution.</p></li> +<li><p>Change the build settings to Release and x64.</p></li> +<li><p>Build libglog project</p></li> </ul> </dd> </dl> @@ -260,11 +255,10 @@ <div class="section" id="build-singa-source"> <h2>2. Build SINGA source<a class="headerlink" href="#build-singa-source" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>Download SINGA source code</li> -<li><dl class="first docutils"> -<dt>Compile the protobuf files:</dt> -<dd><ul class="first last"> -<li>Goto src/proto folder</li> +<li><p>Download SINGA source code</p></li> +<li><dl class="simple"> +<dt>Compile the protobuf files:</dt><dd><ul> +<li><p>Goto src/proto folder</p></li> </ul> </dd> </dl> @@ -275,9 +269,9 @@ protoc.exe *.proto --python_out python_o </pre></div> </div> <ul class="simple"> -<li><dl class="first docutils"> -<dt>Generate swig interfaces for C++ and Python:</dt> -<dd>Goto src/api</dd> +<li><dl class="simple"> +<dt>Generate swig interfaces for C++ and Python:</dt><dd><p>Goto src/api</p> +</dd> </dl> </li> </ul> @@ -285,9 +279,9 @@ protoc.exe *.proto --python_out python_o </pre></div> </div> <ul class="simple"> -<li><dl class="first docutils"> -<dt>generate Visual Studio solution for SINGA:</dt> -<dd>Goto SINGA source code root folder</dd> +<li><dl class="simple"> +<dt>generate Visual Studio solution for SINGA:</dt><dd><p>Goto SINGA source code root folder</p> +</dd> </dl> </li> </ul> @@ -296,7 +290,7 @@ protoc.exe *.proto --python_out python_o </pre></div> </div> <ul class="simple"> -<li>Call cmake and add the paths in your system similar to the following example:</li> +<li><p>Call cmake and add the paths in your system similar to the following example:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> ^ -DGLOG_INCLUDE_DIR<span class="o">=</span><span class="s2">"D:/WinSinga/dependencies/glog-0.3.5/src/windows"</span> ^ @@ -310,37 +304,36 @@ protoc.exe *.proto --python_out python_o </pre></div> </div> <ul class="simple"> -<li>Open the generated solution in Visual Studio</li> -<li>Change the build settings to Release and x64</li> -<li>Add the singa_wrap.cxx file from src/api to the singa_objects project</li> -<li>In the singa_objects project, open Additional Include Directories.</li> -<li>Add Python include path</li> -<li>Add numpy include path</li> -<li>Add protobuf include path</li> -<li>In the preprocessor definitions of the singa_objects project, add USE_GLOG</li> -<li>Build singa_objects project</li> -<li><dl class="first docutils"> -<dt>In singa project:</dt> -<dd><ul class="first last"> -<li>add singa_wrap.obj to Object Libraries</li> -<li>change target name to _singa_wrap</li> -<li>change target extension to .pyd</li> -<li>change configuration type to Dynamic Library (.dll)</li> -<li>goto Additional Library Directories and add the path to python, openblas, protobuf and glog libraries</li> -<li>goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib</li> +<li><p>Open the generated solution in Visual Studio</p></li> +<li><p>Change the build settings to Release and x64</p></li> +<li><p>Add the singa_wrap.cxx file from src/api to the singa_objects project</p></li> +<li><p>In the singa_objects project, open Additional Include Directories.</p></li> +<li><p>Add Python include path</p></li> +<li><p>Add numpy include path</p></li> +<li><p>Add protobuf include path</p></li> +<li><p>In the preprocessor definitions of the singa_objects project, add USE_GLOG</p></li> +<li><p>Build singa_objects project</p></li> +<li><dl class="simple"> +<dt>In singa project:</dt><dd><ul> +<li><p>add singa_wrap.obj to Object Libraries</p></li> +<li><p>change target name to _singa_wrap</p></li> +<li><p>change target extension to .pyd</p></li> +<li><p>change configuration type to Dynamic Library (.dll)</p></li> +<li><p>goto Additional Library Directories and add the path to python, openblas, protobuf and glog libraries</p></li> +<li><p>goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib</p></li> </ul> </dd> </dl> </li> -<li>build singa project</li> +<li><p>build singa project</p></li> </ul> </div> <div class="section" id="install-python-module"> <h2>3. Install Python module<a class="headerlink" href="#install-python-module" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>Change _singa_wrap.so to _singa_wrap.pyd in build/python/setup.py</li> -<li>Copy the files in src/proto/python_out to build/python/singa/proto</li> -<li>Optionally create and activate a virtual environment:</li> +<li><p>Change _singa_wrap.so to _singa_wrap.pyd in build/python/setup.py</p></li> +<li><p>Copy the files in src/proto/python_out to build/python/singa/proto</p></li> +<li><p>Optionally create and activate a virtual environment:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mkdir SingaEnv virtualenv SingaEnv @@ -348,25 +341,25 @@ SingaEnv<span class="se">\S</span>cripts </pre></div> </div> <ul class="simple"> -<li>goto build/python folder and run:</li> +<li><p>goto build/python folder and run:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python setup.py install </pre></div> </div> <ul class="simple"> -<li>Make _singa_wrap.pyd, libglog.dll and libopenblas.dll available by adding them to the path or by copying them to singa package folder in the python site-packages</li> -<li>Verify that SINGA is installed by running:</li> +<li><p>Make _singa_wrap.pyd, libglog.dll and libopenblas.dll available by adding them to the path or by copying them to singa package folder in the python site-packages</p></li> +<li><p>Verify that SINGA is installed by running:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python -c <span class="s2">"from singa import tensor"</span> </pre></div> </div> <p>A video tutorial for the build process can be found here:</p> -<table border="1" class="docutils"> +<table class="docutils align-center"> <colgroup> -<col width="100%" /> +<col style="width: 100%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></td> +<tbody> +<tr class="row-odd"><td><p><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></p></td> </tr> </tbody> </table> @@ -374,47 +367,41 @@ SingaEnv<span class="se">\S</span>cripts <div class="section" id="run-unit-tests"> <h2>4. Run Unit Tests<a class="headerlink" href="#run-unit-tests" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>In the test folder, generate the Visual Studio solution:</li> +<li><p>In the test folder, generate the Visual Studio solution:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> </pre></div> </div> <ul> -<li><p class="first">Open the generated solution in Visual Studio.</p> -</li> -<li><p class="first">Change the build settings to Release and x64.</p> -</li> -<li><p class="first">Build glog project.</p> -</li> -<li><p class="first">In test_singa project:</p> +<li><p>Open the generated solution in Visual Studio.</p></li> +<li><p>Change the build settings to Release and x64.</p></li> +<li><p>Build glog project.</p></li> +<li><p>In test_singa project:</p> <blockquote> <div><ul class="simple"> -<li>Add USE_GLOG to the Preprocessor Definitions.</li> -<li>In Additional Include Directories, add path of GLOG_INCLUDE_DIR, CBLAS_INCLUDE_DIR and Protobuf_INCLUDE_DIR which were used in step 2 above. Add also build and build/include folders.</li> -<li>Goto Additional Library Directories and add the path to openblas, protobuf and glog libraries. Add also build/src/singa_objects.dir/Release.</li> -<li>Goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib. Fix the names of the two libraries: gtest.lib and singa_objects.lib.</li> +<li><p>Add USE_GLOG to the Preprocessor Definitions.</p></li> +<li><p>In Additional Include Directories, add path of GLOG_INCLUDE_DIR, CBLAS_INCLUDE_DIR and Protobuf_INCLUDE_DIR which were used in step 2 above. Add also build and build/include folders.</p></li> +<li><p>Goto Additional Library Directories and add the path to openblas, protobuf and glog libraries. Add also build/src/singa_objects.dir/Release.</p></li> +<li><p>Goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib. Fix the names of the two libraries: gtest.lib and singa_objects.lib.</p></li> </ul> </div></blockquote> </li> -<li><p class="first">Build test_singa project.</p> -</li> -<li><p class="first">Make libglog.dll and libopenblas.dll available by adding them to the path or by copying them to test/release folder</p> -</li> -<li><p class="first">The unit tests can be executed</p> +<li><p>Build test_singa project.</p></li> +<li><p>Make libglog.dll and libopenblas.dll available by adding them to the path or by copying them to test/release folder</p></li> +<li><p>The unit tests can be executed</p> <blockquote> <div><ul> -<li><p class="first">From the command line:</p> +<li><p>From the command line:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>test_singa.exe </pre></div> </div> </div></blockquote> </li> -<li><dl class="first docutils"> -<dt>From Visual Studio:</dt> -<dd><ul class="first last simple"> -<li>right click on the test_singa project and choose âSet as StartUp Projectâ.</li> -<li>from the Debug menu, choose âStart Without Debuggingâ</li> +<li><dl class="simple"> +<dt>From Visual Studio:</dt><dd><ul class="simple"> +<li><p>right click on the test_singa project and choose âSet as StartUp Projectâ.</p></li> +<li><p>from the Debug menu, choose âStart Without Debuggingâ</p></li> </ul> </dd> </dl> @@ -424,12 +411,12 @@ SingaEnv<span class="se">\S</span>cripts </li> </ul> <p>A video tutorial for running the unit tests can be found here:</p> -<table border="1" class="docutils"> +<table class="docutils align-center"> <colgroup> -<col width="100%" /> +<col style="width: 100%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></td> +<tbody> +<tr class="row-odd"><td><p><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></p></td> </tr> </tbody> </table> @@ -442,34 +429,30 @@ SingaEnv<span class="se">\S</span>cripts <h2>5.1 Install Dependencies<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2> <p>In addition to the dependencies in section 1 above, we will need the following:</p> <ul> -<li><p class="first">CUDA</p> +<li><p>CUDA</p> <blockquote> <div><p>Download a suitable version such as 9.1 from <a class="reference external" href="https://developer.nvidia.com/cuda-downloads">https://developer.nvidia.com/cuda-downloads</a> . Make sure to install the Visual Studio integration module.</p> </div></blockquote> </li> -<li><p class="first">cuDNN</p> +<li><p>cuDNN</p> <blockquote> <div><p>Download a suitable version such as 7.1 from <a class="reference external" href="https://developer.nvidia.com/cudnn">https://developer.nvidia.com/cudnn</a></p> </div></blockquote> </li> -<li><p class="first">cnmem:</p> +<li><p>cnmem:</p> <blockquote> <div><ul> -<li><p class="first">Download the latest version from <a class="reference external" href="https://github.com/NVIDIA/cnmem">https://github.com/NVIDIA/cnmem</a></p> -</li> -<li><p class="first">Build the Visual Studio solution:</p> +<li><p>Download the latest version from <a class="reference external" href="https://github.com/NVIDIA/cnmem">https://github.com/NVIDIA/cnmem</a></p></li> +<li><p>Build the Visual Studio solution:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> </pre></div> </div> </div></blockquote> </li> -<li><p class="first">Open the generated solution in Visual Studio.</p> -</li> -<li><p class="first">Change the build settings to Release and x64.</p> -</li> -<li><p class="first">Build the cnmem project.</p> -</li> +<li><p>Open the generated solution in Visual Studio.</p></li> +<li><p>Change the build settings to Release and x64.</p></li> +<li><p>Build the cnmem project.</p></li> </ul> </div></blockquote> </li> @@ -478,7 +461,7 @@ SingaEnv<span class="se">\S</span>cripts <div class="section" id="id2"> <h2>5.2 Build SINGA source<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h2> <ul> -<li><p class="first">Call cmake and add the paths in your system similar to the following example:</p> +<li><p>Call cmake and add the paths in your system similar to the following example:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> ^ -DGLOG_INCLUDE_DIR<span class="o">=</span><span class="s2">"D:/WinSinga/dependencies/glog-0.3.5/src/windows"</span> ^ @@ -499,83 +482,75 @@ SingaEnv<span class="se">\S</span>cripts </div> </div></blockquote> </li> -<li><dl class="first docutils"> -<dt>Generate swig interfaces for C++ and Python:</dt> -<dd><p class="first">Goto src/api</p> -<div class="last highlight-bash notranslate"><div class="highlight"><pre><span></span>swig -python -c++ singa.i +<li><dl> +<dt>Generate swig interfaces for C++ and Python:</dt><dd><p>Goto src/api</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>swig -python -c++ singa.i </pre></div> </div> </dd> </dl> </li> -<li><p class="first">Open the generated solution in Visual Studio</p> -</li> -<li><p class="first">Change the build settings to Release and x64</p> -</li> +<li><p>Open the generated solution in Visual Studio</p></li> +<li><p>Change the build settings to Release and x64</p></li> </ul> </div> <div class="section" id="building-singa-objects"> <h2>5.2.1 Building singa_objects<a class="headerlink" href="#building-singa-objects" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>Add the singa_wrap.cxx file from src/api to the singa_objects project</li> -<li>In the singa_objects project, open Additional Include Directories.</li> -<li>Add Python include path</li> -<li>Add numpy include path</li> -<li>Add protobuf include path</li> -<li>Add include path for CUDA, cuDNN and cnmem</li> -<li>In the preprocessor definitions of the singa_objects project, add USE_GLOG, USE_CUDA and USE_CUDNN. Remove DISABLE_WARNINGS.</li> -<li>Build singa_objects project</li> +<li><p>Add the singa_wrap.cxx file from src/api to the singa_objects project</p></li> +<li><p>In the singa_objects project, open Additional Include Directories.</p></li> +<li><p>Add Python include path</p></li> +<li><p>Add numpy include path</p></li> +<li><p>Add protobuf include path</p></li> +<li><p>Add include path for CUDA, cuDNN and cnmem</p></li> +<li><p>In the preprocessor definitions of the singa_objects project, add USE_GLOG, USE_CUDA and USE_CUDNN. Remove DISABLE_WARNINGS.</p></li> +<li><p>Build singa_objects project</p></li> </ul> </div> <div class="section" id="building-singa-kernel"> <h2>5.2.2 Building singa-kernel<a class="headerlink" href="#building-singa-kernel" title="Permalink to this headline">¶</a></h2> <ul> -<li><p class="first">Create a new Visual Studio project of type âCUDA 9.1 Runtimeâ. Give it a name such as singa-kernel.</p> -</li> -<li><p class="first">The project comes with an initial file called kernel.cu. Remove this file from the project.</p> -</li> -<li><p class="first">Add this file: src/core/tensor/math_kernel.cu</p> -</li> -<li><p class="first">In the project settings:</p> +<li><p>Create a new Visual Studio project of type âCUDA 9.1 Runtimeâ. Give it a name such as singa-kernel.</p></li> +<li><p>The project comes with an initial file called kernel.cu. Remove this file from the project.</p></li> +<li><p>Add this file: src/core/tensor/math_kernel.cu</p></li> +<li><p>In the project settings:</p> <blockquote> <div><ul class="simple"> -<li>Set Platform Toolset to âVisual Studio 2015 (v140)â</li> -<li>Set Configuration Type to â Static Library (.lib)â</li> -<li>In the Include Directories, add build/include.</li> +<li><p>Set Platform Toolset to âVisual Studio 2015 (v140)â</p></li> +<li><p>Set Configuration Type to â Static Library (.lib)â</p></li> +<li><p>In the Include Directories, add build/include.</p></li> </ul> </div></blockquote> </li> -<li><p class="first">Build singa-kernel project</p> -</li> +<li><p>Build singa-kernel project</p></li> </ul> </div> <div class="section" id="building-singa"> <h2>5.2.3 Building singa<a class="headerlink" href="#building-singa" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li><dl class="first docutils"> -<dt>In singa project:</dt> -<dd><ul class="first last"> -<li>add singa_wrap.obj to Object Libraries</li> -<li>change target name to _singa_wrap</li> -<li>change target extension to .pyd</li> -<li>change configuration type to Dynamic Library (.dll)</li> -<li>goto Additional Library Directories and add the path to python, openblas, protobuf and glog libraries</li> -<li>Add also the library path to singa-kernel, cnmem, cuda and cudnn.</li> -<li>goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib.</li> -<li>Add also: singa-kernel.lib, cnmem.lib, cudnn.lib, cuda.lib , cublas.lib, curand.lib and cudart.lib.</li> +<li><dl class="simple"> +<dt>In singa project:</dt><dd><ul> +<li><p>add singa_wrap.obj to Object Libraries</p></li> +<li><p>change target name to _singa_wrap</p></li> +<li><p>change target extension to .pyd</p></li> +<li><p>change configuration type to Dynamic Library (.dll)</p></li> +<li><p>goto Additional Library Directories and add the path to python, openblas, protobuf and glog libraries</p></li> +<li><p>Add also the library path to singa-kernel, cnmem, cuda and cudnn.</p></li> +<li><p>goto Additional Dependencies and add libopenblas.lib, libglog.lib and libprotobuf.lib.</p></li> +<li><p>Add also: singa-kernel.lib, cnmem.lib, cudnn.lib, cuda.lib , cublas.lib, curand.lib and cudart.lib.</p></li> </ul> </dd> </dl> </li> -<li>build singa project</li> +<li><p>build singa project</p></li> </ul> </div> <div class="section" id="id3"> <h2>5.3. Install Python module<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>Change _singa_wrap.so to _singa_wrap.pyd in build/python/setup.py</li> -<li>Copy the files in src/proto/python_out to build/python/singa/proto</li> -<li>Optionally create and activate a virtual environment:</li> +<li><p>Change _singa_wrap.so to _singa_wrap.pyd in build/python/setup.py</p></li> +<li><p>Copy the files in src/proto/python_out to build/python/singa/proto</p></li> +<li><p>Optionally create and activate a virtual environment:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mkdir SingaEnv virtualenv SingaEnv @@ -583,25 +558,25 @@ SingaEnv<span class="se">\S</span>cripts </pre></div> </div> <ul class="simple"> -<li>goto build/python folder and run:</li> +<li><p>goto build/python folder and run:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python setup.py install </pre></div> </div> <ul class="simple"> -<li>Make _singa_wrap.pyd, libglog.dll, libopenblas.dll, cnmem.dll, CUDA Runtime (e.g. cudart64_91.dll) and cuDNN (e.g. cudnn64_7.dll) available by adding them to the path or by copying them to singa package folder in the python site-packages</li> -<li>Verify that SINGA is installed by running:</li> +<li><p>Make _singa_wrap.pyd, libglog.dll, libopenblas.dll, cnmem.dll, CUDA Runtime (e.g. cudart64_91.dll) and cuDNN (e.g. cudnn64_7.dll) available by adding them to the path or by copying them to singa package folder in the python site-packages</p></li> +<li><p>Verify that SINGA is installed by running:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python -c <span class="s2">"from singa import device; dev = device.create_cuda_gpu()"</span> </pre></div> </div> <p>A video tutorial for this part can be found here:</p> -<table border="1" class="docutils"> +<table class="docutils align-center"> <colgroup> -<col width="100%" /> +<col style="width: 100%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></td> +<tbody> +<tr class="row-odd"><td><p><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></p></td> </tr> </tbody> </table> @@ -609,47 +584,41 @@ SingaEnv<span class="se">\S</span>cripts <div class="section" id="id4"> <h2>5.4. Run Unit Tests<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h2> <ul class="simple"> -<li>In the test folder, generate the Visual Studio solution:</li> +<li><p>In the test folder, generate the Visual Studio solution:</p></li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"Visual Studio 15 2017 Win64"</span> </pre></div> </div> <ul> -<li><p class="first">Open the generated solution in Visual Studio, or add the project to the singa solution that was created in step 5.2</p> -</li> -<li><p class="first">Change the build settings to Release and x64.</p> -</li> -<li><p class="first">Build glog project.</p> -</li> -<li><p class="first">In test_singa project:</p> +<li><p>Open the generated solution in Visual Studio, or add the project to the singa solution that was created in step 5.2</p></li> +<li><p>Change the build settings to Release and x64.</p></li> +<li><p>Build glog project.</p></li> +<li><p>In test_singa project:</p> <blockquote> <div><ul class="simple"> -<li>Add USE_GLOG; USE_CUDA; USE_CUDNN to the Preprocessor Definitions.</li> -<li>In Additional Include Directories, add path of GLOG_INCLUDE_DIR, CBLAS_INCLUDE_DIR and Protobuf_INCLUDE_DIR which were used in step 5.2 above. Add also build, build/include, CUDA and cuDNN include folders.</li> -<li>Goto Additional Library Directories and add the path to openblas, protobuf and glog libraries. Add also build/src/singa_objects.dir/Release, singa-kernel, cnmem, CUDA and cuDNN library paths.</li> -<li>Goto Additional Dependencies and add libopenblas.lib; libglog.lib; libprotobuf.lib; cnmem.lib; cudnn.lib; cuda.lib; cublas.lib; curand.lib; cudart.lib; singa-kernel.lib. Fix the names of the two libraries: gtest.lib and singa_objects.lib.</li> +<li><p>Add USE_GLOG; USE_CUDA; USE_CUDNN to the Preprocessor Definitions.</p></li> +<li><p>In Additional Include Directories, add path of GLOG_INCLUDE_DIR, CBLAS_INCLUDE_DIR and Protobuf_INCLUDE_DIR which were used in step 5.2 above. Add also build, build/include, CUDA and cuDNN include folders.</p></li> +<li><p>Goto Additional Library Directories and add the path to openblas, protobuf and glog libraries. Add also build/src/singa_objects.dir/Release, singa-kernel, cnmem, CUDA and cuDNN library paths.</p></li> +<li><p>Goto Additional Dependencies and add libopenblas.lib; libglog.lib; libprotobuf.lib; cnmem.lib; cudnn.lib; cuda.lib; cublas.lib; curand.lib; cudart.lib; singa-kernel.lib. Fix the names of the two libraries: gtest.lib and singa_objects.lib.</p></li> </ul> </div></blockquote> </li> -<li><p class="first">Build test_singa project.</p> -</li> -<li><p class="first">Make libglog.dll, libopenblas.dll, cnmem.dll, cudart64_91.dll and cudnn64_7.dll available by adding them to the path or by copying them to test/release folder</p> -</li> -<li><p class="first">The unit tests can be executed</p> +<li><p>Build test_singa project.</p></li> +<li><p>Make libglog.dll, libopenblas.dll, cnmem.dll, cudart64_91.dll and cudnn64_7.dll available by adding them to the path or by copying them to test/release folder</p></li> +<li><p>The unit tests can be executed</p> <blockquote> <div><ul> -<li><p class="first">From the command line:</p> +<li><p>From the command line:</p> <blockquote> <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>test_singa.exe </pre></div> </div> </div></blockquote> </li> -<li><dl class="first docutils"> -<dt>From Visual Studio:</dt> -<dd><ul class="first last simple"> -<li>right click on the test_singa project and choose âSet as StartUp Projectâ.</li> -<li>from the Debug menu, choose âStart Without Debuggingâ</li> +<li><dl class="simple"> +<dt>From Visual Studio:</dt><dd><ul class="simple"> +<li><p>right click on the test_singa project and choose âSet as StartUp Projectâ.</p></li> +<li><p>from the Debug menu, choose âStart Without Debuggingâ</p></li> </ul> </dd> </dl> @@ -659,12 +628,12 @@ SingaEnv<span class="se">\S</span>cripts </li> </ul> <p>A video tutorial for running the unit tests can be found here:</p> -<table border="1" class="docutils"> +<table class="docutils align-center"> <colgroup> -<col width="100%" /> +<col style="width: 100%" /> </colgroup> -<tbody valign="top"> -<tr class="row-odd"><td><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></td> +<tbody> +<tr class="row-odd"><td><p><a class="reference external" href="https://www.youtube.com/watch?v=YOjwtrvTPn4"><img alt="video" class="align-middle" src="https://img.youtube.com/vi/YOjwtrvTPn4/0.jpg" /></a></p></td> </tr> </tbody> </table> @@ -682,7 +651,7 @@ SingaEnv<span class="se">\S</span>cripts <div role="contentinfo"> <p> - © Copyright 2019 The Apache Software Foundation. All rights reserved. Apache SINGA, Apache, the Apache feather logo, and the Apache SINGA project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.. + © Copyright 2019 The Apache Software Foundation. All rights reserved. Apache SINGA, Apache, the Apache feather logo, and the Apache SINGA project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p> </div> @@ -699,36 +668,17 @@ SingaEnv<span class="se">\S</span>cripts - - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT:'../', - VERSION:'1.1.0', - LANGUAGE:'None', - COLLAPSE_INDEX:false, - FILE_SUFFIX:'.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt' - }; - </script> - <script type="text/javascript" src="../_static/jquery.js"></script> - <script type="text/javascript" src="../_static/underscore.js"></script> - <script type="text/javascript" src="../_static/doctools.js"></script> - - - - - - <script type="text/javascript" src="../_static/js/theme.js"></script> - - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> + + + + + <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions"> <span class="rst-current-version" data-toggle="rst-current-version"> <span class="fa fa-book"> incubator-singa </span>
Modified: incubator/singa/site/trunk/en/docs/installation.html URL: http://svn.apache.org/viewvc/incubator/singa/site/trunk/en/docs/installation.html?rev=1857911&r1=1857910&r2=1857911&view=diff ============================================================================== --- incubator/singa/site/trunk/en/docs/installation.html (original) +++ incubator/singa/site/trunk/en/docs/installation.html Sun Apr 21 13:56:42 2019 @@ -18,15 +18,21 @@ - - + <script type="text/javascript" src="../_static/js/modernizr.min.js"></script> + <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> + <script type="text/javascript" src="../_static/jquery.js"></script> + <script type="text/javascript" src="../_static/underscore.js"></script> + <script type="text/javascript" src="../_static/doctools.js"></script> + <script type="text/javascript" src="../_static/language_data.js"></script> + + <script type="text/javascript" src="../_static/js/theme.js"></script> - + - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> + <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> @@ -44,21 +50,16 @@ } </style> - - - <script src="../_static/js/modernizr.min.js"></script> - </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> + <div class="wy-side-nav-search" > @@ -221,45 +222,43 @@ regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">licenses</span><span class="o">/</span><span class="n">LICENSE</span><span class="o">-</span><span class="mf">2.0</span> + with the License. You may obtain a copy of the License at -<span class="n">Unless</span> <span class="n">required</span> <span class="n">by</span> <span class="n">applicable</span> <span class="n">law</span> <span class="ow">or</span> <span class="n">agreed</span> <span class="n">to</span> <span class="ow">in</span> <span class="n">writing</span><span class="p">,</span> -<span class="n">software</span> <span class="n">distributed</span> <span class="n">under</span> <span class="n">the</span> <span class="n">License</span> <span class="ow">is</span> <span class="n">distributed</span> <span class="n">on</span> <span class="n">an</span> -<span class="s2">"AS IS"</span> <span class="n">BASIS</span><span class="p">,</span> <span class="n">WITHOUT</span> <span class="n">WARRANTIES</span> <span class="n">OR</span> <span class="n">CONDITIONS</span> <span class="n">OF</span> <span class="n">ANY</span> -<span class="n">KIND</span><span class="p">,</span> <span class="n">either</span> <span class="n">express</span> <span class="ow">or</span> <span class="n">implied</span><span class="o">.</span> <span class="n">See</span> <span class="n">the</span> <span class="n">License</span> <span class="k">for</span> <span class="n">the</span> -<span class="n">specific</span> <span class="n">language</span> <span class="n">governing</span> <span class="n">permissions</span> <span class="ow">and</span> <span class="n">limitations</span> -<span class="n">under</span> <span class="n">the</span> <span class="n">License</span><span class="o">.</span> -</pre></div> -</div> -<p>â></p> -<div class="section" id="installation"> -<span id="installation"></span><h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1> + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--><div class="section" id="installation"> +<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1> <div class="section" id="from-conda"> -<span id="from-conda"></span><h2>From Conda<a class="headerlink" href="#from-conda" title="Permalink to this headline">¶</a></h2> +<h2>From Conda<a class="headerlink" href="#from-conda" title="Permalink to this headline">¶</a></h2> <p>Conda is a package manager for Python, CPP and other packages.</p> <p>Currently, SINGA has conda packages (Python 2.7 and Python 3.6) for Linux and MacOSX. <a class="reference external" href="https://conda.io/miniconda.html">Miniconda3</a> is recommended to use with SINGA. After installing miniconda, execute the one of the following commands to install SINGA.</p> <ol> -<li><p class="first">CPU only</p> +<li><p>CPU only</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">conda</span> <span class="n">install</span> <span class="o">-</span><span class="n">c</span> <span class="n">nusdbsystem</span> <span class="n">singa</span><span class="o">-</span><span class="n">cpu</span> </pre></div> </div> </li> -<li><p class="first">GPU with CUDA and cuDNN</p> +<li><p>GPU with CUDA and cuDNN</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">conda</span> <span class="n">install</span> <span class="o">-</span><span class="n">c</span> <span class="n">nusdbsystem</span> <span class="n">singa</span><span class="o">-</span><span class="n">gpu</span> </pre></div> </div> -</li> -</ol> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">CUDA</span> <span class="n">driver</span> <span class="p">(</span><span class="k">for</span> <span class="n">CUDA</span> <span class="o">>=</span><span class="mf">9.0</span><span class="p">)</span> <span class="n">must</span> <span class="n">be</span> <span class="n">installed</span> <span class="n">before</span> <span class="n">executing</span> <span class="n">the</span> <span class="n">above</span> <span class="n">command</span><span class="o">.</span> <span class="n">Singa</span> - <span class="n">packages</span> <span class="k">for</span> <span class="n">other</span> <span class="n">CUDA</span> <span class="n">versions</span> <span class="n">are</span> <span class="n">also</span> <span class="n">available</span><span class="o">.</span> <span class="n">The</span> <span class="n">following</span> <span class="n">instruction</span> - <span class="n">lists</span> <span class="nb">all</span> <span class="n">the</span> <span class="n">available</span> <span class="n">Singa</span> <span class="n">packages</span><span class="o">.</span> - - <span class="n">conda</span> <span class="n">search</span> <span class="o">-</span><span class="n">c</span> <span class="n">nusdbsystem</span> <span class="n">singa</span> +<p>CUDA driver (for CUDA >=9.0) must be installed before executing the above command. Singa +packages for other CUDA versions are also available. The following instruction +lists all the available Singa packages.</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">conda</span> <span class="n">search</span> <span class="o">-</span><span class="n">c</span> <span class="n">nusdbsystem</span> <span class="n">singa</span> </pre></div> </div> +</li> +</ol> <p>If there is no error message from</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="o">-</span><span class="n">c</span> <span class="s2">"from singa import tensor"</span> </pre></div> @@ -267,7 +266,7 @@ SINGA.</p> <p>then SINGA is installed successfully.</p> </div> <div class="section" id="from-source"> -<span id="from-source"></span><h2>From source<a class="headerlink" href="#from-source" title="Permalink to this headline">¶</a></h2> +<h2>From source<a class="headerlink" href="#from-source" title="Permalink to this headline">¶</a></h2> <p>The source files could be downloaded either as a <a class="reference external" href="https://dist.apache.org/repos/dist/dev/incubator/singa/">tar.gz file</a>, or as a git repo</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ git clone https://github.com/apache/incubator-singa.git @@ -275,7 +274,7 @@ $ cd incubator-singa/ </pre></div> </div> <div class="section" id="use-conda-to-build-singa"> -<span id="use-conda-to-build-singa"></span><h3>Use Conda to build SINGA<a class="headerlink" href="#use-conda-to-build-singa" title="Permalink to this headline">¶</a></h3> +<h3>Use Conda to build SINGA<a class="headerlink" href="#use-conda-to-build-singa" title="Permalink to this headline">¶</a></h3> <p>Conda-build is a building tool that installs the dependent libraries from anaconda cloud and executes the building scripts. The generated package can be uploaded to anaconda cloud for others to download and install.</p> @@ -302,34 +301,35 @@ Refer to <a class="reference external" h the instructions of installing the package from the local file.</p> </div> <div class="section" id="use-native-tools-to-build-singa-on-ubuntu"> -<span id="use-native-tools-to-build-singa-on-ubuntu"></span><h3>Use native tools to build SINGA on Ubuntu<a class="headerlink" href="#use-native-tools-to-build-singa-on-ubuntu" title="Permalink to this headline">¶</a></h3> +<h3>Use native tools to build SINGA on Ubuntu<a class="headerlink" href="#use-native-tools-to-build-singa-on-ubuntu" title="Permalink to this headline">¶</a></h3> <p>The following libraries are required to compile and run SINGA. Refer to SINGA <a class="reference external" href="https://github.com/apache/incubator-singa/blob/master/tool/docker/">Dockerfiles</a> for the instructions of installing them on Ubuntu 16.04.</p> <ul class="simple"> -<li>cmake (>=2.8)</li> -<li>gcc (>=4.8.1)</li> -<li>google protobuf (>=2.5)</li> -<li>blas (tested with openblas >=0.2.10)</li> -<li>swig(>=3.0.10) for compiling PySINGA</li> -<li>numpy(>=1.11.0) for compiling PySINGA</li> +<li><p>cmake (>=2.8)</p></li> +<li><p>gcc (>=4.8.1)</p></li> +<li><p>google protobuf (>=2.5)</p></li> +<li><p>blas (tested with openblas >=0.2.10)</p></li> +<li><p>swig(>=3.0.10) for compiling PySINGA</p></li> +<li><p>numpy(>=1.11.0) for compiling PySINGA</p></li> </ul> <ol class="simple"> -<li>create a <code class="docutils literal notranslate"><span class="pre">build</span></code> folder inside incubator-singa and go into that folder</li> -<li>run <code class="docutils literal notranslate"><span class="pre">cmake</span> <span class="pre">[options]</span> <span class="pre">..</span></code> -by default all options are OFF except <code class="docutils literal notranslate"><span class="pre">USE_PYTHON</span></code><ul> -<li><code class="docutils literal notranslate"><span class="pre">USE_MODULES=ON</span></code>, used if protobuf and blas are not installed a prior</li> -<li><code class="docutils literal notranslate"><span class="pre">USE_CUDA=ON</span></code>, used if CUDA and cuDNN is available</li> -<li><code class="docutils literal notranslate"><span class="pre">USE_PYTHON3=ON</span></code>, used for compiling with Python 3 support. (The default is Python 2)</li> -<li><code class="docutils literal notranslate"><span class="pre">USE_OPENCL=ON</span></code>, used for compiling with OpenCL support</li> -<li><code class="docutils literal notranslate"><span class="pre">USE_MKLDNN=ON</span></code>, used for compiling with Intel MKL-dnn support</li> -<li><code class="docutils literal notranslate"><span class="pre">PACKAGE=ON</span></code>, used for building the Debian package</li> -<li><code class="docutils literal notranslate"><span class="pre">ENABLE_TEST</span></code>, used for compiling unit test cases</li> +<li><p>create a <code class="docutils literal notranslate"><span class="pre">build</span></code> folder inside incubator-singa and go into that folder</p></li> +<li><p>run <code class="docutils literal notranslate"><span class="pre">cmake</span> <span class="pre">[options]</span> <span class="pre">..</span></code> +by default all options are OFF except <code class="docutils literal notranslate"><span class="pre">USE_PYTHON</span></code></p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">USE_MODULES=ON</span></code>, used if protobuf and blas are not installed a prior</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">USE_CUDA=ON</span></code>, used if CUDA and cuDNN is available</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">USE_PYTHON3=ON</span></code>, used for compiling with Python 3 support. (The default is Python 2)</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">USE_OPENCL=ON</span></code>, used for compiling with OpenCL support</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">USE_MKLDNN=ON</span></code>, used for compiling with Intel MKL-dnn support</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">PACKAGE=ON</span></code>, used for building the Debian package</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">ENABLE_TEST</span></code>, used for compiling unit test cases</p></li> </ul> </li> -<li>compile the code, <code class="docutils literal notranslate"><span class="pre">make</span></code></li> -<li>goto python folder</li> -<li>run <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">.</span></code> or <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">-e</span> <span class="pre">.</span></code> The second command creates symlinks instead of copying files into python site-package folder.</li> +<li><p>compile the code, <code class="docutils literal notranslate"><span class="pre">make</span></code></p></li> +<li><p>goto python folder</p></li> +<li><p>run <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">.</span></code> or <code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">-e</span> <span class="pre">.</span></code> The second command creates symlinks instead of copying files into python site-package folder.</p></li> </ol> <p>Execute step 4 and 5 are to install PySINGA when USE_PYTHON=ON.</p> <p>After compiling SINGA with ENABLE_TEST=ON, you can run the unit tests by</p> @@ -340,14 +340,14 @@ by default all options are OFF except <c tests, then you have successfully installed SINGA.</p> </div> <div class="section" id="compile-singa-on-windows"> -<span id="compile-singa-on-windows"></span><h3>Compile SINGA on Windows<a class="headerlink" href="#compile-singa-on-windows" title="Permalink to this headline">¶</a></h3> +<h3>Compile SINGA on Windows<a class="headerlink" href="#compile-singa-on-windows" title="Permalink to this headline">¶</a></h3> <p>Instructions for building on Windows with Python support can be found <a class="reference external" href="install_win.html">here</a>.</p> </div> <div class="section" id="more-details-about-the-compilation-options"> -<span id="more-details-about-the-compilation-options"></span><h3>More details about the compilation options<a class="headerlink" href="#more-details-about-the-compilation-options" title="Permalink to this headline">¶</a></h3> +<h3>More details about the compilation options<a class="headerlink" href="#more-details-about-the-compilation-options" title="Permalink to this headline">¶</a></h3> </div> <div class="section" id="use-modules"> -<span id="use-modules"></span><h3>USE_MODULES<a class="headerlink" href="#use-modules" title="Permalink to this headline">¶</a></h3> +<h3>USE_MODULES<a class="headerlink" href="#use-modules" title="Permalink to this headline">¶</a></h3> <p>If protobuf and openblas are not installed, you can compile SINGA together with them</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ In SINGA ROOT folder $ mkdir build @@ -366,7 +366,7 @@ the following environment variables</p> </pre></div> </div> <div class="section" id="use-python"> -<span id="use-python"></span><h4>USE_PYTHON<a class="headerlink" href="#use-python" title="Permalink to this headline">¶</a></h4> +<h4>USE_PYTHON<a class="headerlink" href="#use-python" title="Permalink to this headline">¶</a></h4> <p>Similar to compile CPP code, PySINGA is compiled by</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cmake -DUSE_PYTHON=ON .. $ make @@ -376,7 +376,7 @@ $ pip install . </div> </div> <div class="section" id="use-cuda"> -<span id="use-cuda"></span><h4>USE_CUDA<a class="headerlink" href="#use-cuda" title="Permalink to this headline">¶</a></h4> +<h4>USE_CUDA<a class="headerlink" href="#use-cuda" title="Permalink to this headline">¶</a></h4> <p>Users are encouraged to install the CUDA and <a class="reference external" href="https://developer.nvidia.com/cudnn">cuDNN</a> for running SINGA on GPUs to get better performance.</p> @@ -396,7 +396,7 @@ $ make </div> </div> <div class="section" id="use-opencl"> -<span id="use-opencl"></span><h4>USE_OPENCL<a class="headerlink" href="#use-opencl" title="Permalink to this headline">¶</a></h4> +<h4>USE_OPENCL<a class="headerlink" href="#use-opencl" title="Permalink to this headline">¶</a></h4> <p>SINGA uses opencl-headers and viennacl (version 1.7.1 or newer) for OpenCL support, which can be installed using via</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span># On Ubuntu 16.04 @@ -407,9 +407,9 @@ $ sudo yum install opencl-headers, vienn </div> <p>Additionally, you will need the OpenCL Installable Client Driver (ICD) for the platforms that you want to run OpenCL on.</p> <ul class="simple"> -<li>For AMD and nVidia GPUs, the driver package should also install the correct OpenCL ICD.</li> -<li>For Intel CPUs and/or GPUs, get the driver from the <a class="reference external" href="https://software.intel.com/en-us/articles/opencl-drivers">Intel website.</a> Note that the drivers provided on that website only supports recent CPUs and Iris GPUs.</li> -<li>For older Intel CPUs, you can use the <code class="docutils literal notranslate"><span class="pre">beignet-opencl-icd</span></code> package.</li> +<li><p>For AMD and nVidia GPUs, the driver package should also install the correct OpenCL ICD.</p></li> +<li><p>For Intel CPUs and/or GPUs, get the driver from the <a class="reference external" href="https://software.intel.com/en-us/articles/opencl-drivers">Intel website.</a> Note that the drivers provided on that website only supports recent CPUs and Iris GPUs.</p></li> +<li><p>For older Intel CPUs, you can use the <code class="docutils literal notranslate"><span class="pre">beignet-opencl-icd</span></code> package.</p></li> </ul> <p>Note that running OpenCL on CPUs is not currently recommended because it is slow. Memory transfer is on the order of whole seconds (1000âs of ms on CPUs as compared to 1âs of ms on GPUs).</p> @@ -424,7 +424,7 @@ $ make </div> </div> <div class="section" id="use-mkldnn"> -<span id="use-mkldnn"></span><h4>USE_MKLDNN<a class="headerlink" href="#use-mkldnn" title="Permalink to this headline">¶</a></h4> +<h4>USE_MKLDNN<a class="headerlink" href="#use-mkldnn" title="Permalink to this headline">¶</a></h4> <p>User can enable MKL-DNN to enhance the performance of CPU computation.</p> <p>Installation guide of MKL-DNN could be found <a class="reference external" href="https://github.com/intel/mkl-dnn#installation">here</a>.</p> <p>SINGA has been tested over MKL-DNN v0.17.2.</p> @@ -436,7 +436,7 @@ $ make </div> </div> <div class="section" id="package"> -<span id="package"></span><h4>PACKAGE<a class="headerlink" href="#package" title="Permalink to this headline">¶</a></h4> +<h4>PACKAGE<a class="headerlink" href="#package" title="Permalink to this headline">¶</a></h4> <p>This setting is used to build the Debian package. Set PACKAGE=ON and build the package with make command like this:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cmake -DPACKAGE=ON $ make package @@ -446,20 +446,20 @@ $ make package </div> </div> <div class="section" id="faq"> -<span id="faq"></span><h2>FAQ<a class="headerlink" href="#faq" title="Permalink to this headline">¶</a></h2> +<h2>FAQ<a class="headerlink" href="#faq" title="Permalink to this headline">¶</a></h2> <ul> -<li><p class="first">Q: Error from âimport singaâ using PySINGA installed from wheel.</p> +<li><p>Q: Error from âimport singaâ using PySINGA installed from wheel.</p> <p>A: Please check the detailed error from <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-c</span> <span class="pre">"from</span> <span class="pre">singa</span> <span class="pre">import</span> <span class="pre">_singa_wrap"</span></code>. Sometimes it is caused by the dependent libraries, e.g. there are multiple versions of protobuf, missing of cudnn, numpy version mismatch. Following steps show the solutions for different cases</p> <ol> -<li><p class="first">Check the cudnn and cuda and gcc versions, cudnn5 and cuda7.5 and gcc4.8/4.9 are preferred. if gcc is 5.0, then downgrade it. +<li><p>Check the cudnn and cuda and gcc versions, cudnn5 and cuda7.5 and gcc4.8/4.9 are preferred. if gcc is 5.0, then downgrade it. If cudnn is missing or not match with the wheel version, you can download the correct version of cudnn into ~/local/cudnn/ and</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> $ echo "export LD_LIBRARY_PATH=/home/<yourname>/local/cudnn/lib64:$LD_LIBRARY_PATH" >> ~/.bashrc </pre></div> </div> </li> -<li><p class="first">If it is the problem related to protobuf, then download the newest whl files which have <a class="reference external" href="https://issues.apache.org/jira/browse/SINGA-255">compiled protobuf and openblas into the whl</a> file of PySINGA. +<li><p>If it is the problem related to protobuf, then download the newest whl files which have <a class="reference external" href="https://issues.apache.org/jira/browse/SINGA-255">compiled protobuf and openblas into the whl</a> file of PySINGA. Or you can install protobuf from source into a local folder, say ~/local/; Decompress the tar file, and then</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> $ ./configure --prefix=/home/<yourname>local @@ -469,9 +469,8 @@ Decompress the tar file, and then</p> </pre></div> </div> </li> -<li><p class="first">If it cannot find other libs including python, then create virtual env using pip or conda;</p> -</li> -<li><p class="first">If it is not caused by the above reasons, go to the folder of <code class="docutils literal notranslate"><span class="pre">_singa_wrap.so</span></code>,</p> +<li><p>If it cannot find other libs including python, then create virtual env using pip or conda;</p></li> +<li><p>If it is not caused by the above reasons, go to the folder of <code class="docutils literal notranslate"><span class="pre">_singa_wrap.so</span></code>,</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> $ python >> import importlib >> importlib.import_module('_singa_wrap') @@ -487,9 +486,7 @@ Decompress the tar file, and then</p> </pre></div> </div> </li> -</ul> -<ul> -<li><p class="first">Q: Error from running <code class="docutils literal notranslate"><span class="pre">cmake</span> <span class="pre">..</span></code>, which cannot find the dependent libraries.</p> +<li><p>Q: Error from running <code class="docutils literal notranslate"><span class="pre">cmake</span> <span class="pre">..</span></code>, which cannot find the dependent libraries.</p> <p>A: If you havenât installed the libraries, install them. If you installed the libraries in a folder that is outside of the system folder, e.g. /usr/local, you need to export the following variables</p> @@ -498,9 +495,7 @@ you need to export the following variabl </pre></div> </div> </li> -</ul> -<ul> -<li><p class="first">Q: Error from <code class="docutils literal notranslate"><span class="pre">make</span></code>, e.g. the linking phase</p> +<li><p>Q: Error from <code class="docutils literal notranslate"><span class="pre">make</span></code>, e.g. the linking phase</p> <p>A: If your libraries are in other folders than system default paths, you need to export the following varaibles</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> $ export LIBRARY_PATH=<path to your lib file folder> @@ -508,22 +503,20 @@ to export the following varaibles</p> </pre></div> </div> </li> -</ul> -<ul> -<li><p class="first">Q: Error from header files, e.g. âcblas.h no such file or directory existsâ</p> +<li><p>Q: Error from header files, e.g. âcblas.h no such file or directory existsâ</p> <p>A: You need to include the folder of the cblas.h into CPLUS_INCLUDE_PATH, e.g.,</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> $ export CPLUS_INCLUDE_PATH=/opt/OpenBLAS/include:$CPLUS_INCLUDE_PATH </pre></div> </div> </li> -<li><p class="first">Q:While compiling SINGA, I get error <code class="docutils literal notranslate"><span class="pre">SSE2</span> <span class="pre">instruction</span> <span class="pre">set</span> <span class="pre">not</span> <span class="pre">enabled</span></code></p> +<li><p>Q:While compiling SINGA, I get error <code class="docutils literal notranslate"><span class="pre">SSE2</span> <span class="pre">instruction</span> <span class="pre">set</span> <span class="pre">not</span> <span class="pre">enabled</span></code></p> <p>A:You can try following command:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> $ make CFLAGS='-msse2' CXXFLAGS='-msse2' </pre></div> </div> </li> -<li><p class="first">Q:I get <code class="docutils literal notranslate"><span class="pre">ImportError:</span> <span class="pre">cannot</span> <span class="pre">import</span> <span class="pre">name</span> <span class="pre">enum_type_wrapper</span></code> from google.protobuf.internal when I try to import .py files.</p> +<li><p>Q:I get <code class="docutils literal notranslate"><span class="pre">ImportError:</span> <span class="pre">cannot</span> <span class="pre">import</span> <span class="pre">name</span> <span class="pre">enum_type_wrapper</span></code> from google.protobuf.internal when I try to import .py files.</p> <p>A: You need to install the python binding of protobuf, which could be installed via</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> $ sudo apt-get install protobuf </pre></div> @@ -536,7 +529,7 @@ e.g.,</p> </pre></div> </div> </li> -<li><p class="first">Q: When I build OpenBLAS from source, I am told that I need a Fortran compiler.</p> +<li><p>Q: When I build OpenBLAS from source, I am told that I need a Fortran compiler.</p> <p>A: You can compile OpenBLAS by</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> $ make ONLY_CBLAS=1 </pre></div> @@ -546,7 +539,7 @@ e.g.,</p> </pre></div> </div> </li> -<li><p class="first">Q: When I build protocol buffer, it reports that GLIBC++_3.4.20 not found in /usr/lib64/libstdc++.so.6.</p> +<li><p>Q: When I build protocol buffer, it reports that GLIBC++_3.4.20 not found in /usr/lib64/libstdc++.so.6.</p> <p>A: This means the linker found libstdc++.so.6 but that library belongs to an older version of GCC than was used to compile and link the program. The program depends on code defined in @@ -563,7 +556,7 @@ following command,</p> </pre></div> </div> </li> -<li><p class="first">Q: When I build glog, it reports that âsrc/logging_unittest.cc:83:20: error: âgflagsâ is not a namespace-nameâ</p> +<li><p>Q: When I build glog, it reports that âsrc/logging_unittest.cc:83:20: error: âgflagsâ is not a namespace-nameâ</p> <p>A: It maybe that you have installed gflags with a different namespace such as âgoogleâ. so glog canât find âgflagsâ namespace. Because it is not necessary to have gflags to build glog. So you can change the configure.ac file to ignore gflags.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="mf">1.</span> <span class="n">cd</span> <span class="n">to</span> <span class="n">glog</span> <span class="n">src</span> <span class="n">directory</span> @@ -573,17 +566,17 @@ Because it is not necessary to have gfla </div> <p>After this, you can build glog again.</p> </li> -<li><p class="first">Q: When using virtual environment, everytime I run pip install, it would reinstall numpy. However, the numpy would not be used when I <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">numpy</span></code></p> +<li><p>Q: When using virtual environment, everytime I run pip install, it would reinstall numpy. However, the numpy would not be used when I <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">numpy</span></code></p> <p>A: It could be caused by the <code class="docutils literal notranslate"><span class="pre">PYTHONPATH</span></code> which should be set to empty when you are using virtual environment to avoid the conflicts with the path of the virtual environment.</p> </li> -<li><p class="first">Q: When compiling PySINGA from source, there is a compilation error due to the missing of <numpy/objectarray.h></p> +<li><p>Q: When compiling PySINGA from source, there is a compilation error due to the missing of <numpy/objectarray.h></p> <p>A: Please install numpy and export the path of numpy header files as</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span> $ export CPLUS_INCLUDE_PATH=`python -c "import numpy; print numpy.get_include()"`:$CPLUS_INCLUDE_PATH </pre></div> </div> </li> -<li><p class="first">Q: When I run PySINGA in Mac OS X, I got the error âFatal Python error: PyThreadState_Get: no current thread Abort trap: 6â</p> +<li><p>Q: When I run PySINGA in Mac OS X, I got the error âFatal Python error: PyThreadState_Get: no current thread Abort trap: 6â</p> <p>A: This error happens typically when you have multiple version of Python on your system and you installed SINGA via pip (this problem is resolved for installation via conda), e.g, the one comes with the OS and the one installed by Homebrew. The Python linked by PySINGA must be the same as the Python interpreter. You can check your interpreter by <code class="docutils literal notranslate"><span class="pre">which</span> <span class="pre">python</span></code> and check the Python linked by PySINGA via <code class="docutils literal notranslate"><span class="pre">otool</span> <span class="pre">-L</span> <span class="pre"><path</span> <span class="pre">to</span> <span class="pre">_singa_wrap.so></span></code>. @@ -609,7 +602,7 @@ In particular, if you build PySINGA from <a href="software_stack.html" class="btn btn-neutral float-right" title="Software Stack" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> - <a href="index.html" class="btn btn-neutral" title="Documentation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> + <a href="index.html" class="btn btn-neutral float-left" title="Documentation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> </div> @@ -618,7 +611,7 @@ In particular, if you build PySINGA from <div role="contentinfo"> <p> - © Copyright 2019 The Apache Software Foundation. All rights reserved. Apache SINGA, Apache, the Apache feather logo, and the Apache SINGA project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.. + © Copyright 2019 The Apache Software Foundation. All rights reserved. Apache SINGA, Apache, the Apache feather logo, and the Apache SINGA project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p> </div> @@ -635,36 +628,17 @@ In particular, if you build PySINGA from - - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT:'../', - VERSION:'1.1.0', - LANGUAGE:'None', - COLLAPSE_INDEX:false, - FILE_SUFFIX:'.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt' - }; - </script> - <script type="text/javascript" src="../_static/jquery.js"></script> - <script type="text/javascript" src="../_static/underscore.js"></script> - <script type="text/javascript" src="../_static/doctools.js"></script> - - - - - - <script type="text/javascript" src="../_static/js/theme.js"></script> - - <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> + + + + + <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions"> <span class="rst-current-version" data-toggle="rst-current-version"> <span class="fa fa-book"> incubator-singa </span>
