cvxgrp / scs

Splitting Conic Solver
MIT License
553 stars 136 forks source link

Win10 install scs-gpu #216

Open Yushuibo opened 2 years ago

Yushuibo commented 2 years ago

Please read this first

If you are have a problem that SCS struggles with you can pass a string to the write_data_filename argument and SCS will dump a file containing the problem to disk. Zip the file and send it to us or attach it to this bug report for easy reproduction of the issue.

A common cause of issues is not linking BLAS/LAPACK libraries correctly. If you are having this issue please search for resources on installing and linking these libraries first. You can try openblas if you need a BLAS library.

Specifications

Description

Try to install scs -gpu in win10 /gtx 1650 In my computer finish to install vs2019 (all) and cuda 10.1
set cuda CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 CUDA_PATH_V10_1=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Fri_Feb__8_19:08:26_Pacific_Standard_Time_2019 Cuda compilation tools, release 10.1, V10.1.105

How to reproduce

git clne https://github.com/bodono/scs-python.git(3.0.0) cd scs-python git clone git clone https://github.com/cvxgrp/scs.git

python setup.py install --scs --gpu

Additional information

I use the conda env conda list:

atomicwrites 1.4.0 pypi_0 pypi attrs 21.4.0 pypi_0 pypi blas 1.0 mkl https://mirrors.ustc.edu.cn/anaconda/pkgs/main certifi 2020.6.20 pyhd3eb1b0_3 https://mirrors.ustc.edu.cn/anaconda/pkgs/main charset-normalizer 2.0.12 pypi_0 pypi colorama 0.4.4 pypi_0 pypi cvxpy 1.1.11 pypi_0 pypi decorator 4.4.2 pypi_0 pypi easydict 1.9 pypi_0 pypi ecos 2.0.10 pypi_0 pypi flake8 4.0.1 pypi_0 pypi flake8-import-order 0.18.1 pypi_0 pypi future 0.18.2 pypi_0 pypi googledrivedownloader 0.4 pypi_0 pypi idna 3.3 pypi_0 pypi importlib-metadata 4.2.0 pypi_0 pypi importlib-resources 5.4.0 pypi_0 pypi iniconfig 1.1.1 pypi_0 pypi isodate 0.6.1 pypi_0 pypi jinja2 3.0.3 pypi_0 pypi markupsafe 2.0.1 pypi_0 pypi mccabe 0.6.1 pypi_0 pypi mkl 2017.0.3 0 https://mirrors.ustc.edu.cn/anaconda/pkgs/free motmetrics 1.2.0 pypi_0 pypi networkx 2.5.1 pypi_0 pypi numpy 1.19.5 pypi_0 pypi opencv-python 4.5.5.62 pypi_0 pypi osqp 0.6.2.post5 pypi_0 pypi packaging 21.3 pypi_0 pypi pandas 1.1.5 pypi_0 pypi pillow 8.4.0 pypi_0 pypi pip 21.2.2 py36haa95532_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main pluggy 1.0.0 pypi_0 pypi py 1.11.0 pypi_0 pypi py-cpuinfo 8.0.0 pypi_0 pypi pycodestyle 2.8.0 pypi_0 pypi pyflakes 2.4.0 pypi_0 pypi pyparsing 3.0.7 pypi_0 pypi pytest 7.0.1 pypi_0 pypi pytest-benchmark 3.4.1 pypi_0 pypi python 3.6.2 0 https://mirrors.ustc.edu.cn/anaconda/pkgs/free python-dateutil 2.8.2 pypi_0 pypi pytz 2021.3 pypi_0 pypi pyyaml 6.0 pypi_0 pypi qdldl 0.1.5.post0 pypi_0 pypi qpth 0.0.15 dev_0 rdflib 5.0.0 pypi_0 pypi requests 2.27.1 pypi_0 pypi scikit-learn 0.19.0 pypi_0 pypi scipy 1.4.1 pypi_0 pypi setuptools 58.0.4 py36haa95532_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main six 1.16.0 pypi_0 pypi tomli 1.2.3 pypi_0 pypi torch 1.5.0+cu101 pypi_0 pypi torch-geometric 2.0.3 pypi_0 pypi torchvision 0.6.0+cu101 pypi_0 pypi tqdm 4.63.0 pypi_0 pypi typing-extensions 4.1.1 pypi_0 pypi urllib3 1.26.8 pypi_0 pypi vc 14 0 https://mirrors.ustc.edu.cn/anaconda/pkgs/free vs2015_runtime 14.27.29016 h5e58377_2 https://mirrors.ustc.edu.cn/anaconda/pkgs/main wheel 0.37.1 pyhd3eb1b0_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main wincertstore 0.2 py36h7fe50ca_0 https://mirrors.ustc.edu.cn/anaconda/pkgs/main xmltodict 0.12.0 pypi_0 pypi yacs 0.1.8 pypi_0 pypi zipp 3.6.0 pypi_0 pypi

Output

error: Command "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DPYTHON -DCTRLC=1 -DGPU_TRANSPOSE_MAT=1 -DPY_GPU -DINDIRECT=1 -Iscs/include -Iscs/linsys -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1/include" -Iscs/linsys/gpu/ -Iscs/linsys/gpu/indirect -ID:\ANACONDA\envs\gmt\lib\site-packages\numpy\core\include -ID:\ANACONDA\envs\gmt\include -ID:\ANACONDA\envs\gmt\include -I"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\ATLMFC\include" -I"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include" -I"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /Tcscs/linsys/gpu\gpu.c /Fobuild\temp.win-amd64-3.6\Release\scs/linsys/gpu\gpu.obj -O3" failed with exit status 2

Yushuibo commented 2 years ago

This is comlete mistake news python setup.py install --scs --gpu Namespace(blas64=False, extraverbose=False, float32=False, gpu=True, gpu_atrans=True, int32=False, scs=True) running install running bdist_egg running egg_info creating scs.egg-info writing scs.egg-info\PKG-INFO writing dependency_links to scs.egg-info\dependency_links.txt writing requirements to scs.egg-info\requires.txt writing top-level names to scs.egg-info\top_level.txt writing manifest file 'scs.egg-info\SOURCES.txt' blas_mkl_info: libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll'] library_dirs = ['D:/ANACONDA/envs/gmt\Library\lib'] define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)] include_dirs = ['D:/ANACONDA/envs/gmt\Library\include'] blas_opt_info: libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll'] library_dirs = ['D:/ANACONDA/envs/gmt\Library\lib'] define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)] include_dirs = ['D:/ANACONDA/envs/gmt\Library\include'] lapack_mkl_info: libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll'] library_dirs = ['D:/ANACONDA/envs/gmt\Library\lib'] define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)] include_dirs = ['D:/ANACONDA/envs/gmt\Library\include'] lapack_opt_info: libraries = ['mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll'] library_dirs = ['D:/ANACONDA/envs/gmt\Library\lib'] define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)] include_dirs = ['D:/ANACONDA/envs/gmt\Library\include'] D:\ANACONDA\envs\gmt\lib\site-packages\numpy\distutils\system_info.py:655: UserWarning: Specified path D:/ANACONDA/envs/gmt\Library\lib is invalid. return self.get_paths(self.section, key) D:\ANACONDA\envs\gmt\lib\site-packages\numpy\distutils\system_info.py:664: UserWarning: Specified path D:/ANACONDA/envs/gmt\Library\include is invalid. return self.get_paths(self.section, key) D:\ANACONDA\envs\gmt\lib\site-packages\numpy\distutils\system_info.py:572: UserWarning: Atlas (http://math-atlas.sourceforge.net/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [atlas]) or by setting the ATLAS environment variable. self.calc_info() D:\ANACONDA\envs\gmt\lib\site-packages\numpy\distutils\system_info.py:572: UserWarning: Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable. self.calc_info() D:\ANACONDA\envs\gmt\lib\site-packages\numpy\distutils\system_info.py:572: UserWarning: Blas (http://www.netlib.org/blas/) sources not found. Directories to search for the sources can be specified in the numpy/distutils/site.cfg file (section [blas_src]) or by setting the BLAS_SRC environment variable. self.calc_info() {} D:\ANACONDA\envs\gmt\lib\site-packages\numpy\distutils\system_info.py:572: UserWarning: Lapack (http://www.netlib.org/lapack/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [lapack]) or by setting the LAPACK environment variable. self.calc_info() D:\ANACONDA\envs\gmt\lib\site-packages\numpy\distutils\system_info.py:572: UserWarning: Lapack (http://www.netlib.org/lapack/) sources not found. Directories to search for the sources can be specified in the numpy/distutils/site.cfg file (section [lapack_src]) or by setting the LAPACK_SRC environment variable. self.calc_info() {} cl: 命令行 warning D9002 :忽略未知选项“-O3” gpu.c C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1/include\cuda_fp16.h(1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(100): error C2146: 语法错误: 缺少“)”(在标识符“x”的前面) D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(100): error C2061: 语法错误: 标识符“x” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(100): error C2059: 语法错误:“;” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(100): error C2059: 语法错误:“,” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(103): error C2059: 语法错误:“)” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(105): error C2146: 语法错误: 缺少“)”(在标识符“x”的前面) D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(105): error C2061: 语法错误: 标识符“x” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(105): error C2059: 语法错误:“;” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(105): error C2059: 语法错误:“,” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(108): error C2059: 语法错误:“)” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(110): error C2146: 语法错误: 缺少“)”(在标识符“x”的前面) D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(110): error C2061: 语法错误: 标识符“x” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(110): error C2059: 语法错误:“;” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(110): error C2059: 语法错误:“,” D:\GMTraker\GMTracker\scs-python\scs\linsys\gpu\gpu.h(113): error C2059: 语法错误:“)” scs/linsys/gpu\gpu.c(4): error C2146: 语法错误: 缺少“)”(在标识符“x”的前面) scs/linsys/gpu\gpu.c(4): error C2061: 语法错误: 标识符“x” scs/linsys/gpu\gpu.c(4): error C2059: 语法错误:“;” scs/linsys/gpu\gpu.c(4): error C2059: 语法错误:“,” scs/linsys/gpu\gpu.c(7): error C2059: 语法错误:“)” scs/linsys/gpu\gpu.c(32): error C2146: 语法错误: 缺少“)”(在标识符“x”的前面) scs/linsys/gpu\gpu.c(32): error C2061: 语法错误: 标识符“x” scs/linsys/gpu\gpu.c(32): error C2059: 语法错误:“;” scs/linsys/gpu\gpu.c(32): error C2059: 语法错误:“,” scs/linsys/gpu\gpu.c(35): error C2059: 语法错误:“)” scs/linsys/gpu\gpu.c(66): error C2146: 语法错误: 缺少“)”(在标识符“x”的前面) scs/linsys/gpu\gpu.c(66): error C2061: 语法错误: 标识符“x” scs/linsys/gpu\gpu.c(66): error C2059: 语法错误:“;” scs/linsys/gpu\gpu.c(66): error C2059: 语法错误:“,” scs/linsys/gpu\gpu.c(69): error C2059: 语法错误:“)” error: Command "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DPYTHON -DCTRLC=1 -DGPU_TRANSPOSE_MAT=1 -DPY_GPU -DINDIRECT=1 -Iscs/include -Iscs/linsys -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1/include" -Iscs/linsys/gpu/ -Iscs/linsys/gpu/indirect -ID:\ANACONDA\envs\gmt\lib\site-packages\numpy\core\include -ID:\ANACONDA\envs\gmt\include -ID:\ANACONDA\envs\gmt\include -I"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\ATLMFC\include" -I"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include" -I"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /Tcscs/linsys/gpu\gpu.c /Fobuild\temp.win-amd64-3.6\Release\scs/linsys/gpu\gpu.obj -O3" failed with exit status 2

Yushuibo commented 2 years ago

pls give me a advice thanks !

bodono commented 2 years ago

Sorry, I can't read those error messages so I can't tell what's happening. In many cases the GPU solver is actually slower than the CPU solver, so I would advise starting with that first.