hetong007 closed pull request #11805: [MXNET-641] fix R windows install docs
URL: https://github.com/apache/incubator-mxnet/pull/11805
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/docs/install/windows_setup.md b/docs/install/windows_setup.md
index 8a2b1c14170..9d03474b594 100755
--- a/docs/install/windows_setup.md
+++ b/docs/install/windows_setup.md
@@ -62,7 +62,7 @@ Next, we install ```graphviz``` library that we use for 
visualizing network grap
 
 We have installed MXNet core library. Next, we will install MXNet interface 
package for programming language of your choice:
 - [Python](#install-the-mxnet-package-for-python)
-- [R](#install-mxnet-for-r)
+- [R](#install-mxnet-package-for-r)
 - [Julia](#install-the-mxnet-package-for-julia)
 - **Scala** is not yet available for Windows
 
@@ -91,7 +91,7 @@ Done! We have installed MXNet with Python interface. Run 
below commands to verif
 ```
 We actually did a small tensor computation using MXNet! You are all set with 
MXNet on your Windows machine.
 
-## Install MXNet for R
+## Install MXNet Package for R
 MXNet for R is available for both CPUs and GPUs.
 
 ### Installing MXNet on a Computer with a CPU Processor
@@ -101,7 +101,7 @@ To install MXNet on a computer with a CPU processor, choose 
from two options:
 * Use the prebuilt binary package
 * Build the library from source code
 
-#### Installing MXNet with the Prebuilt Binary Package
+#### Installing MXNet with the Prebuilt Binary Package(CPU)
 For Windows users, MXNet provides prebuilt binary packages.
 You can install the package directly in the R console.
 
@@ -114,81 +114,173 @@ For CPU-only package:
   install.packages("mxnet")
 ```
 
-For GPU-enabled package:
+#### Building MXNet from Source Code(CPU)
+1. Clone the MXNet github repo.
 
-```r
-  cran <- getOption("repos")
-  cran["dmlc"] <- 
"https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/R/CRAN/GPU";
-  options(repos = cran)
-  install.packages("mxnet")
+```sh
+git clone --recursive https://github.com/apache/incubator-mxnet
 ```
 
-#### Building MXNet from Source Code
+The `--recursive` is to clone all the submodules used by MXNet. You will be 
editing the ```"/mxnet/R-package"``` folder.
+
+2. Download prebuilt GPU-enabled MXNet libraries for Windows from [Windows 
release](https://github.com/yajiedesign/mxnet/releases). You will need 
`mxnet_x64_vc14_cpu.7z` and `prebuildbase_win10_x64_vc14.7z` where X stands for 
your CUDA toolkit version
 
-Run the following commands to install the MXNet dependencies and build the 
MXNet R package.
+3. Create a folder called ```R-package/inst/libs/x64```. MXNet supports only 
64-bit operating systems, so you need the x64 folder.
 
-```r
-  Rscript -e "install.packages('devtools', repo = 
'https://cloud.r-project.org/')"
+4. Copy the following shared libraries (.dll files) into the 
```R-package/inst/libs/x64``` folder:
 ```
+libgcc_s_seh-1.dll
+libgfortran-3.dll
+libmxnet.dll
+libmxnet.lib
+libopenblas.dll
+libquadmath-0.dll
+mxnet.dll
+unzip.exe
+unzip32.dll
+vcomp140.dll
+wget.exe
+```
+These dlls can be found in `prebuildbase_win10_x64_vc14/3rdparty`, 
`mxnet_x64_vc14_cpu/build`, `mxnet_x64_vc14_cpu/lib`.
 
-```bash
-  cd R-package
-  Rscript -e "library(devtools); library(methods); 
options(repos=c(CRAN='https://cloud.r-project.org/')); 
install_deps(dependencies = TRUE)"
-  cd ..
-  make rpkg
+5. Copy the header files from `dmlc`, `mxnet`, `mxshadow` and `nnvm` from 
mxnet_x64_vc14_cpu/include and mxnet_x64_vc14_cpu/nvnm/include into 
`./R-package/inst/include`. It should look like:
+
+```
+./R-package/inst
+└── include
+    ├── dmlc
+    ├── mxnet
+    ├── mshadow
+    └── nnvm 
+    
+```
+6. Make sure that R executable is added to your ```PATH``` in the environment 
variables. Running the ```where R``` command at the command prompt should 
return the location.
+7. Also make sure that Rtools is installed and the executable is added to your 
```PATH``` in the environment variables.
+8. Temporary patch - im2rec currently results in crashes during the build. 
Remove the im2rec.h and im2rec.cc files in R-package/src/ from cloned 
repository and comment out the two im2rec lines in 
[R-package/src/mxnet.cc](https://github.com/apache/incubator-mxnet/blob/master/R-package/src/mxnet.cc)
 as shown below.
+```bat
+#include "./kvstore.h"
+#include "./export.h"
+//#include "./im2rec.h"
+......
+......
+  DataIterCreateFunction::InitRcppModule();
+  KVStore::InitRcppModule();
+  Exporter::InitRcppModule();
+//  IM2REC::InitRcppModule();
+}
+
+```
+
+9. Now open the Windows CMD with admin rights and change the directory to the 
`mxnet` folder(cloned repository). Then use the following commands
+to build R package:
+
+```bat
+echo import(Rcpp) > R-package\NAMESPACE
+echo import(methods) >> R-package\NAMESPACE
+Rscript -e "install.packages('devtools', repos = 
'https://cloud.r-project.org')"
+cd R-package
+Rscript -e "library(devtools); library(methods); 
options(repos=c(CRAN='https://cloud.r-project.org')); install_deps(dependencies 
= TRUE)"
+cd ..
+
+R CMD INSTALL --no-multiarch R-package
+
+Rscript -e "require(mxnet); mxnet:::mxnet.export('R-package')"
+rm R-package/NAMESPACE
+Rscript -e "require(devtools); install_version('roxygen2', version = '5.0.1', 
repos = 'https://cloud.r-project.org/', quiet = TRUE)"
+Rscript -e "require(roxygen2); roxygen2::roxygenise('R-package')"
+
+R CMD INSTALL --build --no-multiarch R-package
 ```
 
+
 ### Installing MXNet on a Computer with a GPU Processor
+To install MXNet on a computer with a GPU processor, choose from two options:
+
+* Use the prebuilt binary package
+* Build the library from source code
+
+However, a few dependencies remain for both options.  You will need the 
following:
+* Install 
[Nvidia-drivers](http://www.nvidia.com/Download/index.aspx?lang=en-us) if not 
installed. Latest driver based on your system configuration is recommended. 
 
-To install MXNet R package on a computer with a GPU processor, you need the 
following:
+* Install [Microsoft Visual 
Studio](https://visualstudio.microsoft.com/downloads/) (VS2015 or VS2017 is 
required by CUDA)
 
-* Microsoft Visual Studio 2013
+* Install  [NVidia CUDA 
Toolkit](https://developer.nvidia.com/cuda-toolkit)(cu92 is recommended though 
we support cu80, cu90, cu91 and cu92)
 
-* The NVidia CUDA Toolkit
+* Download and install [CuDNN](https://developer.nvidia.com/cudnn) (to provide 
a Deep Neural Network library). Latest version recommended.
 
-* The MXNet package
+Note: A pre-requisite to above softwares is 
[Nvidia-drivers](http://www.nvidia.com/Download/index.aspx?lang=en-us) which we 
assume is installed.
 
-* CuDNN (to provide a Deep Neural Network library)
+#### Installing MXNet with the Prebuilt Binary Package(GPU)
+For Windows users, MXNet provides prebuilt binary packages.
+You can install the package directly in the R console after you have the above 
software installed.
 
-To install the required dependencies and install MXNet for R:
+For GPU package:
 
-1. Install the [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit). The 
CUDA Toolkit depends on Visual Studio. To check whether your GPU is compatible 
with the CUDA Toolkit and for information on installing it, see NVidia's [CUDA 
Installation 
Guide](http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/).
-3. Clone the MXNet github repo.
+```r
+  cran <- getOption("repos")
+  cran["dmlc"] <- 
"https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/R/CRAN/GPU/cuX";
+  options(repos = cran)
+  install.packages("mxnet")
+```
+Change X to 80,90,91 or 92 based on your CUDA toolkit version. Currently, 
MXNet supports these versions of CUDA.
+#### Building MXNet from Source Code(GPU)
+After you have installed above software, continue with the following steps to 
build MXNet-R: 
+1. Clone the MXNet github repo.
 
 ```sh
-git clone --recursive https://github.com/dmlc/mxnet
+git clone --recursive https://github.com/apache/incubator-mxnet
 ```
 
 The `--recursive` is to clone all the submodules used by MXNet. You will be 
editing the ```"/mxnet/R-package"``` folder.
-4. Download prebuilt GPU-enabled MXNet libraries for Windows from 
https://github.com/yajiedesign/mxnet/releases. You will need 
`mxnet_x64_vc14_gpu.7z` and `prebuildbase_win10_x64_vc14.7z`.
-5. Download and install [CuDNN](https://developer.nvidia.com/cudnn).
-6. Create a folder called ```R-package/inst/libs/x64```. MXNet supports only 
64-bit operating systems, so you need the x64 folder.
-7. Copy the following shared libraries (.dll files) into the 
```R-package/inst/libs/x64``` folder:
-```
-cublas64_80.dll
-cudart64_80.dll
-cudnn64_5.dll
-curand64_80.dll
+
+2. Download prebuilt GPU-enabled MXNet libraries for Windows from 
https://github.com/yajiedesign/mxnet/releases. You will need 
`mxnet_x64_vc14_gpu_cuX.7z` and `prebuildbase_win10_x64_vc14.7z` where X stands 
for your CUDA toolkit version
+
+3. Create a folder called ```R-package/inst/libs/x64```. MXNet supports only 
64-bit operating systems, so you need the x64 folder.
+
+4. Copy the following shared libraries (.dll files) into the 
```R-package/inst/libs/x64``` folder:
+```
 libgcc_s_seh-1.dll
 libgfortran-3.dll
 libmxnet.dll
 libmxnet.lib
 libopenblas.dll
 libquadmath-0.dll
-nvrtc64_80.dll
+mxnet.dll
+unzip.exe
+unzip32.dll
+vcomp140.dll
+wget.exe
 ```
-These dlls can be found in `prebuildbase_win10_x64_vc14/3rdparty/cudart`, 
`prebuildbase_win10_x64_vc14/3rdparty/openblas/bin`, 
`mxnet_x64_vc14_gpu/build`, `mxnet_x64_vc14_gpu/lib` and the `cuDNN` downloaded 
from NVIDIA.
-8. Copy the header files from `dmlc`, `mxnet` and `nnvm` into 
`./R-package/inst/include`. It should look like:
+These dlls can be found in `prebuildbase_win10_x64_vc14/3rdparty`, 
`mxnet_x64_vc14_gpu_cuX/build`, `mxnet_x64_vc14_gpu_cuX/lib`.
+
+5. Copy the header files from `dmlc`, `mxnet`, `mxshadow` and `nnvm` from 
mxnet_x64_vc14_gpuX/include and mxnet_x64_vc14_gpuX/nvnm/include into 
`./R-package/inst/include`. It should look like:
 
 ```
 ./R-package/inst
 └── include
     ├── dmlc
     ├── mxnet
-    └── nnvm
+    ├── mshadow
+    └── nnvm 
+    
+```
+6. Make sure that R executable is added to your ```PATH``` in the environment 
variables. Running the ```where R``` command at the command prompt should 
return the location.
+7. Also make sure that Rtools is installed and the executable is added to your 
```PATH``` in the environment variables.
+8. Temporary patch - im2rec currently results in crashes during the build. 
Remove the im2rec.h and im2rec.cc files in R-package/src/ from cloned 
repository and comment out the two im2rec lines in 
[R-package/src/mxnet.cc](https://github.com/apache/incubator-mxnet/blob/master/R-package/src/mxnet.cc)
 as shown below.
+```bat
+#include "./kvstore.h"
+#include "./export.h"
+//#include "./im2rec.h"
+......
+......
+  DataIterCreateFunction::InitRcppModule();
+  KVStore::InitRcppModule();
+  Exporter::InitRcppModule();
+//  IM2REC::InitRcppModule();
+}
+
 ```
-9. Make sure that R is added to your ```PATH``` in the environment variables. 
Running the ```where R``` command at the command prompt should return the 
location.
-10. Now open the Windows CMD and change the directory to the `mxnet` folder. 
Then use the following commands
+9. Now open the Windows CMD with admin rights and change the directory to the 
`mxnet` folder(cloned repository). Then use the following commands
 to build R package:
 
 ```bat


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to