yajiedesign / mxnet

efficient, flexible, distributed deep learning framework
Apache License 2.0
177 stars 45 forks source link

Need help with CPU only build for windows #20

Open santanpereira opened 6 years ago

santanpereira commented 6 years ago

Hi, I need help with CPU only build. Currently i am running "https://github.com/yajiedesign/mxnet/blob/master/setup-utils/install-mxnet-windows-python.bat" file to create build which creates the "libmxnet.dll" in the release folder. I am doing this on CPU machine without CUDA, CUDNN installation on that machine. (Here i have added operators for Deformable-ConvNets to work with CPU)

To test the mxnet build I run the demo from "https://github.com/msracver/Deformable-ConvNets/blob/master/rfcn/demo.py" (modified to use CPU). On GPU machine it worked fine for me and detected all objects with good accuracy. But when i run the demo on CPU machine it gives me "CUDA driver version is insufficient for CUDA runtime version" warning and detects only limited objects.

To create CPU only build is there any other code changes or flag which needs to be set ? output on GPU machine : gup_output

output on CPU machine : cpu_output

console o/p on CPU machine : 'pretrained_epoch': 0}, 'output_path': './output/rfcn', 'symbol': 'resnet_v1_101_rfcn'} CUDA driver version is insufficient for CUDA runtime version CUDA driver version is insufficient for CUDA runtime version CUDA driver version is insufficient for CUDA runtime version CUDA driver version is insufficient for CUDA runtime version CUDA driver version is insufficient for CUDA runtime version CUDA driver version is insufficient for CUDA runtime version CUDA driver version is insufficient for CUDA runtime version testing COCO_test2015_000000000891.jpg 7.9530s

yajiedesign commented 6 years ago

two way. 1.use install-mxnet-windows-python.bat in not install cuda machine. 2.build with https://github.com/yajiedesign/mxnet/blob/master/docs/install/windows_setup.md but not checked USE_CUDA in cmake,

santanpereira commented 6 years ago

I have modified the bat file lines as below https://github.com/yajiedesign/mxnet/blob/0013ca14cb3d009f11dff20e4ba8efdc1293fa6f/setup-utils/install-mxnet-windows-python.bat#L246

REM SET CMAKE_OPT=%CMAKE_OPT% -DUSE_CUDA=%MXNET_SETUP_HAS_CUDA% REM SET CMAKE_OPT=%CMAKE_OPT% -DUSE_CUDNN=%MXNET_SETUP_HAS_CUDNN% REM if %MXNET_SETUP_HAS_CUDNN%=="1" SET CMAKE_OPT=%CMAKE_OPT% -DCUDNN_ROOT="%CUDNN_ROOT%" SET CMAKE_OPT=%CMAKE_OPT% -DBLAS="%MXNET_BLAS%" if "%MXNET_BLAS%"=="Open" SET CMAKE_OPT=%CMAKE_OPT% -DOpenBLAS_HOME="%MXNET_CONDA_LIBRARY%" -DOpenBLAS_INCLUDE_DIR="%OpenBLAS_INCLUDE_DIR%" -DOpenBLAS_LIB="%OpenBLAS_LIB%" REM if "%MXNET_BLAS%"=="MKL" SET CMAKE_OPT=%CMAKE_OPT% -DMKL_HOME="%INTEL_MKL_DIR%" -DMKL_INCLUDE_DIR="%MKL_INCLUDE_DIR%" -DMKL_LIB="%MKL_LIB%"

SET CMAKE_OPT=%CMAKE_OPT% -DOpenCV_LIB_PATH="%MXNET_CONDA_LIBRARY%\lib\" -DOpenCV_INCLUDE_DIRS="%MXNET_CONDA_LIBRARY%\include\" -DOpenCV_CONFIG_PATH="%MXNET_CONDA_LIBRARY%"

cmake -Wno-dev %CMAKE_OPT% -DUSE_CUDA=0 -DUSE_CUDNN=0 -DUSE_NVRTC=0 -DUSE_OPENCV=1 -DUSE_OPENMP=1 -DUSE_BLAS=open -DUSE_LAPACK=1 -DUSE_DIST_KVSTORE=0 -DCMAKE_PREFIX_PATH="%MXNET_CONDA_LIBRARY%" -G "Visual Studio 14 2015 Win64" -DUSE_PROFILER=1 -DCMAKE_BUILD_TYPE=Release -H. -Bbuild if errorlevel 1 goto :FAIL msbuild build\mxnet.sln /t:Clean,Build /p:Configuration=Release;Platform=x64 /m if errorlevel 1 goto :FAIL

Also, I am running the build on the machine where there is no cuda. Still i am getting warning "CUDA driver version is insufficient for CUDA runtime version".

yajiedesign commented 6 years ago

look like no problem.you try use cmake-gui direct.

santanpereira commented 6 years ago

Thank you, @yajiedesign. I figured out the problem. I had to modify the 'Deformable-ConvNets' repo at few places to make it work in CPU mode and got rid of the "CUDA driver version is insufficient for CUDA runtime version" warning.