scs-python
scs-python copied to clipboard
Hi, when I try to install scs with gpu `python setup.py install --scs --gpu`, it comes with the following error:
Namespace(blas64=False, extraverbose=False, float32=False, gpu=True, gpu_atrans=True, int32=False, mkl=False, openmp=False, scs=True) running install /home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/setuptools/command/install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. setuptools.SetuptoolsDeprecationWarning, /home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/setuptools/command/easy_install.py:147: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. EasyInstallDeprecationWarning, running bdist_egg running 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 blas_mkl_info: NOT AVAILABLE blis_info: NOT AVAILABLE openblas_info: libraries = ['openblas', 'openblas'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None)] runtime_library_dirs = ['/usr/local/lib'] blas_opt_info: libraries = ['openblas', 'openblas'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None)] runtime_library_dirs = ['/usr/local/lib'] lapack_mkl_info: NOT AVAILABLE openblas_lapack_info: libraries = ['openblas', 'openblas'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None)] runtime_library_dirs = ['/usr/local/lib'] lapack_opt_info: libraries = ['openblas', 'openblas'] library_dirs = ['/usr/local/lib'] language = c define_macros = [('HAVE_CBLAS', None)] runtime_library_dirs = ['/usr/local/lib'] Supported SIMD extensions in this NumPy install: baseline = SSE,SSE2,SSE3 found = SSSE3,SSE41,POPCNT,SSE42,AVX,F16C,FMA3,AVX2 not found = AVX512F,AVX512CD,AVX512_KNL,AVX512_KNM,AVX512_SKX,AVX512_CLX,AVX512_CNL,AVX512_ICL /home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/distutils/system_info.py:2026: UserWarning: Optimized (vendor) Blas libraries are not found. Falls back to netlib Blas library which has worse performance. A better performance should be easily gained by switching Blas library. if self._calc_info(blas): /home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/distutils/system_info.py:2026: 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. if self._calc_info(blas): /home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/distutils/system_info.py:2026: 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. if self._calc_info(blas): Blas info: {} /home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/distutils/system_info.py:1858: 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. return getattr(self, 'calc_info{}'.format(name))() /home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/distutils/system_info.py:1858: 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. return getattr(self, 'calc_info{}'.format(name))() Lapack info: {} In file included from scs/linsys/gpu/gpu.c:1:0: scs/linsys/gpu/gpu.h:96:3: error: unknown type name ‘cusparseSpMatDescr_t’ cusparseSpMatDescr_t descr; ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.h:100:37: error: unknown type name ‘cusparseDnVecDescr_t’ const cusparseDnVecDescr_t x, ^~~~~~~~~~~~~~~~~~~~ In file included from scs/linsys/gpu/indirect/private.h:10:0, from scs/linsys/gpu/indirect/private.c:1: scs/linsys/gpu/gpu.h:96:3: error: unknown type name ‘cusparseSpMatDescr_t’ cusparseSpMatDescr_t descr; ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.h:100:37: error: unknown type name ‘cusparseDnVecDescr_t’ const cusparseDnVecDescr_t x, ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.h:101:31: error: unknown type name ‘cusparseDnVecDescr_t’; did you mean ‘cusparseMatDescr_t’? cusparseDnVecDescr_t y, ^~~~~~~~~~~~~~~~~~~~ cusparseMatDescr_t scs/linsys/gpu/gpu.h:105:55: error: unknown type name ‘cusparseDnVecDescr_t’ d SCS(accum_by_a_gpu)(const ScsGpuMatrix *A, const cusparseDnVecDescr_t x, ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.h:101:31: error: unknown type name ‘cusparseDnVecDescr_t’; did you mean ‘cusparseMatDescr_t’? cusparseDnVecDescr_t y, ^~~~~~~~~~~~~~~~~~~~ cusparseMatDescr_t scs/linsys/gpu/gpu.h:105:55: error: unknown type name ‘cusparseDnVecDescr_t’ d SCS(accum_by_a_gpu)(const ScsGpuMatrix *A, const cusparseDnVecDescr_t x, ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.h:106:26: error: unknown type name ‘cusparseDnVecDescr_t’; did you mean ‘cusparseMatDescr_t’? cusparseDnVecDescr_t y, ^~~~~~~~~~~~~~~~~~~~ cusparseMatDescr_t scs/linsys/gpu/gpu.h:110:55: error: unknown type name ‘cusparseDnVecDescr_t’ d SCS(accum_by_p_gpu)(const ScsGpuMatrix *P, const cusparseDnVecDescr_t x, ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.h:106:26: error: unknown type name ‘cusparseDnVecDescr_t’; did you mean ‘cusparseMatDescr_t’? cusparseDnVecDescr_t y, ^~~~~~~~~~~~~~~~~~~~ cusparseMatDescr_t scs/linsys/gpu/gpu.h:110:55: error: unknown type name ‘cusparseDnVecDescr_t’ d SCS(accum_by_p_gpu)(const ScsGpuMatrix P, const cusparseDnVecDescr_t x, ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.h:111:26: error: unknown type name ‘cusparseDnVecDescr_t’; did you mean ‘cusparseMatDescr_t’? cusparseDnVecDescr_t y, ^~~~~~~~~~~~~~~~~~~~ cusparseMatDescr_t In file included from scs/linsys/gpu/indirect/private.c:1:0: scs/linsys/gpu/indirect/private.h:38:3: error: unknown type name ‘cusparseDnVecDescr_t’ cusparseDnVecDescr_t dn_vec_m; / Dense vector of length m / ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/indirect/private.h:39:3: error: unknown type name ‘cusparseDnVecDescr_t’ cusparseDnVecDescr_t dn_vec_n; / Dense vector of length n / ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/indirect/private.h:40:3: error: unknown type name ‘cusparseDnVecDescr_t’ cusparseDnVecDescr_t dn_vec_n_p; / Dense vector of length n */ ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.h:111:26: error: unknown type name ‘cusparseDnVecDescr_t’; did you mean ‘cusparseMatDescr_t’? cusparseDnVecDescr_t y, ^~~~~~~~~~~~~~~~~~~~ cusparseMatDescr_t scs/linsys/gpu/gpu.c:4:37: error: unknown type name ‘cusparseDnVecDescr_t’ const cusparseDnVecDescr_t x, ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.c:5:31: error: unknown type name ‘cusparseDnVecDescr_t’; did you mean ‘cusparseMatDescr_t’? cusparseDnVecDescr_t y, ^~~~~~~~~~~~~~~~~~~~ cusparseMatDescr_t scs/linsys/gpu/gpu.c:32:56: error: unknown type name ‘cusparseDnVecDescr_t’ SCS(accum_by_a_gpu)(const ScsGpuMatrix *Ag, const cusparseDnVecDescr_t x, ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/indirect/private.c: In function ‘scs_free_lin_sys_work’: scs/linsys/gpu/indirect/private.c:114:5: warning: implicit declaration of function ‘cusparseDestroyDnVec’; did you mean ‘cusparseDestroy’? [-Wimplicit-function-declaration] cusparseDestroyDnVec(p->dn_vec_m); ^~~~~~~~~~~~~~~~~~~~ cusparseDestroy scs/linsys/gpu/gpu.c:33:26: error: unknown type name ‘cusparseDnVecDescr_t’; did you mean ‘cusparseMatDescr_t’? cusparseDnVecDescr_t y, ^~~~~~~~~~~~~~~~~~~~ cusparseMatDescr_t scs/linsys/gpu/gpu.c:66:56: error: unknown type name ‘cusparseDnVecDescr_t’ SCS(accum_by_p_gpu)(const ScsGpuMatrix *Pg, const cusparseDnVecDescr_t x, ^~~~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.c:67:26: error: unknown type name ‘cusparseDnVecDescr_t’; did you mean ‘cusparseMatDescr_t’? cusparseDnVecDescr_t y, ^~~~~~~~~~~~~~~~~~~~ cusparseMatDescr_t scs/linsys/gpu/indirect/private.c: In function ‘mat_vec’: scs/linsys/gpu/indirect/private.c:139:3: warning: implicit declaration of function ‘cusparseDnVecSetValues’; did you mean ‘cusparseDcsrilu02’? [-Wimplicit-function-declaration] cusparseDnVecSetValues(p->dn_vec_m, (void *)z); ^~~~~~~~~~~~~~~~~~~~~~ cusparseDcsrilu02 In file included from scs/linsys/csparse.h:10:0, from scs/linsys/gpu/indirect/private.h:8, from scs/linsys/gpu/indirect/private.c:1: scs/include/glbopts.h:12:16: warning: implicit declaration of function ‘_scs_accum_by_p_gpu’; did you mean ‘_scs_accum_by_p’? [-Wimplicit-function-declaration] #define SCS(x) scs##x ^ scs/linsys/gpu/indirect/private.c:150:5: note: in expansion of macro ‘SCS’ SCS(accum_by_p_gpu) ^~~ scs/linsys/gpu/gpu.c: In function ‘_scs_free_gpu_matrix’: scs/linsys/gpu/gpu.c:77:3: warning: implicit declaration of function ‘cusparseDestroySpMat’; did you mean ‘cusparseDestroyHybMat’? [-Wimplicit-function-declaration] cusparseDestroySpMat(A->descr); ^~~~~~~~~~~~~~~~~~~~ cusparseDestroyHybMat scs/include/glbopts.h:12:16: warning: implicit declaration of function ‘_scs_accum_by_atrans_gpu’; did you mean ‘_scs_accum_by_atrans’? [-Wimplicit-function-declaration] #define SCS(x) scs##x ^ scs/linsys/gpu/indirect/private.c:157:3: note: in expansion of macro ‘SCS’ SCS(accum_by_atrans_gpu) ^~~ scs/linsys/gpu/indirect/private.c: In function ‘scs_init_lin_sys_work’: scs/linsys/gpu/indirect/private.c:275:3: warning: implicit declaration of function ‘cusparseCreateCsr’; did you mean ‘cusparseCreate’? [-Wimplicit-function-declaration] cusparseCreateCsr(&Ag->descr, Ag->n, Ag->m, Ag->nnz, Ag->p, Ag->i, Ag->x, ^~~~~~~~~~~~~~~~~ cusparseCreate In file included from scs/linsys/gpu/indirect/private.h:10:0, from scs/linsys/gpu/indirect/private.c:1: scs/linsys/gpu/gpu.h:72:28: error: ‘CUSPARSE_INDEX_32I’ undeclared (first use in this function); did you mean ‘CUSPARSE_SIDE_LEFT’? #define SCS_CUSPARSE_INDEX CUSPARSE_INDEX_32I ^ scs/linsys/gpu/indirect/private.c:276:21: note: in expansion of macro ‘SCS_CUSPARSE_INDEX’ SCS_CUSPARSE_INDEX, SCS_CUSPARSE_INDEX, ^~~~~~~~~~~~~~~~~~ scs/linsys/gpu/gpu.h:72:28: note: each undeclared identifier is reported only once for each function it appears in #define SCS_CUSPARSE_INDEX CUSPARSE_INDEX_32I ^ scs/linsys/gpu/indirect/private.c:276:21: note: in expansion of macro ‘SCS_CUSPARSE_INDEX’ SCS_CUSPARSE_INDEX, SCS_CUSPARSE_INDEX, ^~~~~~~~~~~~~~~~~~ scs/linsys/gpu/indirect/private.c:311:3: warning: implicit declaration of function ‘cusparseCreateDnVec’; did you mean ‘cusparseCreate’? [-Wimplicit-function-declaration] cusparseCreateDnVec(&p->dn_vec_n, Ag->n, p->tmp_m, SCS_CUDA_FLOAT); ^~~~~~~~~~~~~~~~~~~ cusparseCreate scs/linsys/gpu/indirect/private.c:331:3: warning: implicit declaration of function ‘cusparseCsr2cscEx2_bufferSize’; did you mean ‘cusparseCsrmvEx_bufferSize’? [-Wimplicit-function-declaration] cusparseCsr2cscEx2_bufferSize( ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cusparseCsrmvEx_bufferSize In file included from scs/linsys/gpu/indirect/private.h:10:0, from scs/linsys/gpu/indirect/private.c:1: scs/linsys/gpu/gpu.h:78:25: error: ‘CUSPARSE_CSR2CSC_ALG1’ undeclared (first use in this function); did you mean ‘CUSPARSE_COLOR_ALG1’? #define SCS_CSR2CSC_ALG CUSPARSE_CSR2CSC_ALG1 ^ scs/linsys/gpu/indirect/private.c:334:33: note: in expansion of macro ‘SCS_CSR2CSC_ALG’ CUSPARSE_INDEX_BASE_ZERO, SCS_CSR2CSC_ALG, &new_buffer_size); ^~~~~~~~~~~~~~~ scs/linsys/gpu/indirect/private.c:344:3: warning: implicit declaration of function ‘cusparseCsr2cscEx2’; did you mean ‘cusparseCsr2cscEx’? [-Wimplicit-function-declaration] cusparseCsr2cscEx2(p->cusparse_handle, A->n, A->m, A->p[A->n], Ag->x, Ag->p, ^~~~~~~~~~~~~~~~~~ cusparseCsr2cscEx scs/src/rw.c: In function ‘_scs_read_data’: scs/src/rw.c:237:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(&(file_int_sz), sizeof(uint32_t), 1, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:238:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(&(file_float_sz), sizeof(uint32_t), 1, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:254:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(&(file_version_sz), sizeof(uint32_t), 1, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:255:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(file_version, 1, file_version_sz, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c: In function ‘read_scs_cone’: scs/src/rw.c:90:5: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(k->bl, sizeof(scs_float), MAX(k->bsize - 1, 0), fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:91:5: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(k->bu, sizeof(scs_float), MAX(k->bsize - 1, 0), fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:108:5: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(k->p, sizeof(scs_float), k->psize, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c: In function ‘read_scs_data’: scs/src/rw.c:197:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(d->b, sizeof(scs_float), d->m, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:198:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(d->c, sizeof(scs_float), d->n, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c: In function ‘read_amatrix’: scs/src/rw.c:170:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(A->x, sizeof(scs_float), Anz, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c: In function ‘read_scs_stgs’: scs/src/rw.c:136:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(&(s->scale), sizeof(scs_float), 1, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:137:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(&(s->rho_x), sizeof(scs_float), 1, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:139:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(&(s->eps_abs), sizeof(scs_float), 1, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:140:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(&(s->eps_rel), sizeof(scs_float), 1, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:141:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(&(s->eps_infeas), sizeof(scs_float), 1, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scs/src/rw.c:142:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result] fread(&(s->alpha), sizeof(scs_float), 1, fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: Command "gcc -pthread -B /home/ubuntu/anaconda3/envs/test2/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DPYTHON -DCTRLC=1 -DGPU_TRANSPOSE_MAT=1 -DPY_GPU -DINDIRECT=1 -Iscs/include -Iscs/linsys -I/usr/local/cuda/include -Iscs/linsys/gpu/ -Iscs/linsys/gpu/indirect -I/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/core/include -I/home/ubuntu/anaconda3/envs/test2/include/python3.7m -c scs/linsys/gpu/gpu.c -o build/temp.linux-x86_64-cpython-37/scs/linsys/gpu/gpu.o -O3" failed with exit status 1
What version of Cuda / CUsparse are you using? This looks like you're probably using an older version than SCS is assuming.
What version of Cuda / CUsparse are you using? This looks like you're probably using an older version than SCS is assuming.
Thank you for your reply. My CUDA version is 10.2. And if it is a version problem, can I get an earlier version of SCS? Or can I only solve it by updating CUDA?
I'm not sure what the earliest version of CuSparse where those functions appeared, but they are in version 12.2: https://docs.nvidia.com/cuda/cusparse/
I would recommend updating CuSparse over using an old version of SCS. Alternately you can use the MKL version of SCS, which is trypically faster than the GPU version anyway.
I'm not sure what the earliest version of CuSparse where those functions appeared, but they are in version 12.2: https://docs.nvidia.com/cuda/cusparse/
I would recommend updating CuSparse over using an old version of SCS. Alternately you can use the MKL version of SCS, which is trypically faster than the GPU version anyway.
Okay, I'll try the MKL version of SCS first, thanks again!
I'm not sure what the earliest version of CuSparse where those functions appeared, but they are in version 12.2: https://docs.nvidia.com/cuda/cusparse/
I would recommend updating CuSparse over using an old version of SCS. Alternately you can use the MKL version of SCS, which is trypically faster than the GPU version anyway.
====================================
(GPU version) Hello, I upgraded my CUDA but this error seems to still persist and there are many "unknown type name" errors.
running install
/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/setuptools/command/install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
setuptools.SetuptoolsDeprecationWarning,
/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/setuptools/command/easy_install.py:147: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
EasyInstallDeprecationWarning,
running bdist_egg
running 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
blas_info:
libraries = ['cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
include_dirs = ['/home/ubuntu/anaconda3/envs/test2/include']
language = c
define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
libraries = ['cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
include_dirs = ['/home/ubuntu/anaconda3/envs/test2/include']
language = c
lapack_info:
libraries = ['lapack', 'blas', 'lapack', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
language = f77
lapack_opt_info:
libraries = ['lapack', 'blas', 'lapack', 'blas', 'cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
language = c
define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
include_dirs = ['/home/ubuntu/anaconda3/envs/test2/include']
Supported SIMD extensions in this NumPy install:
baseline = SSE,SSE2,SSE3
found = SSSE3,SSE41,POPCNT,SSE42,AVX,F16C,FMA3,AVX2
not found = AVX512F,AVX512CD,AVX512_KNL,AVX512_KNM,AVX512_SKX,AVX512_CLX,AVX512_CNL,AVX512_ICL
/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/distutils/system_info.py:2026: UserWarning:
Optimized (vendor) Blas libraries are not found.
Falls back to netlib Blas library which has worse performance.
A better performance should be easily gained by switching
Blas library.
if self._calc_info(blas):
{'define_macros': [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)], 'libraries': ['cblas', 'blas', 'cblas', 'blas'], 'library_dirs': ['/home/ubuntu/anaconda3/envs/test2/lib'], 'include_dirs': ['/home/ubuntu/anaconda3/envs/test2/include'], 'language': 'c'}
{'libraries': ['lapack', 'blas', 'lapack', 'blas', 'cblas', 'blas', 'cblas', 'blas'], 'library_dirs': ['/home/ubuntu/anaconda3/envs/test2/lib'], 'language': 'c', 'define_macros': [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)], 'include_dirs': ['/home/ubuntu/anaconda3/envs/test2/include']}
warning: no directories found matching 'scs'
warning: no directories found matching 'scs/src'
warning: no directories found matching 'scs/test'
warning: no directories found matching 'scs/test/problems'
warning: no directories found matching 'scs/include'
warning: no directories found matching 'scs/linsys'
warning: no directories found matching 'scs/linsys/cpu'
warning: no directories found matching 'scs/linsys/cpu/direct'
warning: no directories found matching 'scs/linsys/cpu/indirect'
warning: no directories found matching 'scs/linsys/gpu'
warning: no directories found matching 'scs/linsys/gpu/indirect'
warning: no directories found matching 'scs/linsys/external'
warning: no directories found matching 'scs/linsys/external/amd'
warning: no directories found matching 'scs/linsys/external/qdldl'
src/scspy.c:16:10: fatal error: glbopts.h: No such file or directory
#include "glbopts.h" /* Constants and *alloc */
^~~~~~~~~~~
compilation terminated.
error: Command "gcc -pthread -B /home/ubuntu/anaconda3/envs/test2/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DPYTHON -DCTRLC=1 -DDLONG=1 -DUSE_LAPACK -DNO_ATLAS_INFO=1 -DHAVE_CBLAS -DNO_ATLAS_INFO=1 -DHAVE_CBLAS -Iscs/include -Iscs/linsys -Iscs/linsys/cpu/direct/ -Iscs/linsys/external/amd -Iscs/linsys/external/dqlql -I/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/core/include -I/home/ubuntu/anaconda3/envs/test2/include -I/home/ubuntu/anaconda3/envs/test2/include -I/home/ubuntu/anaconda3/envs/test2/include/python3.7m -c src/scspy.c -o build/temp.linux-x86_64-cpython-37/src/scspy.o -O3" failed with exit status 1
(test2) ubuntu@LXCqiuchengbo2:~/test0330/scs_test/scs-python-3.2.0$ python setup.py install --scs --gpu
Namespace(blas64=False, extraverbose=False, float32=False, gpu=True, gpu_atrans=True, int32=False, scs=True)
running install
/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/setuptools/command/install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
setuptools.SetuptoolsDeprecationWarning,
/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/setuptools/command/easy_install.py:147: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
EasyInstallDeprecationWarning,
running bdist_egg
running 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
blas_info:
libraries = ['cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
include_dirs = ['/home/ubuntu/anaconda3/envs/test2/include']
language = c
define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
libraries = ['cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
include_dirs = ['/home/ubuntu/anaconda3/envs/test2/include']
language = c
lapack_info:
libraries = ['lapack', 'blas', 'lapack', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
language = f77
lapack_opt_info:
libraries = ['lapack', 'blas', 'lapack', 'blas', 'cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
language = c
define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
include_dirs = ['/home/ubuntu/anaconda3/envs/test2/include']
Supported SIMD extensions in this NumPy install:
baseline = SSE,SSE2,SSE3
found = SSSE3,SSE41,POPCNT,SSE42,AVX,F16C,FMA3,AVX2
not found = AVX512F,AVX512CD,AVX512_KNL,AVX512_KNM,AVX512_SKX,AVX512_CLX,AVX512_CNL,AVX512_ICL
/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/distutils/system_info.py:2026: UserWarning:
Optimized (vendor) Blas libraries are not found.
Falls back to netlib Blas library which has worse performance.
A better performance should be easily gained by switching
Blas library.
if self._calc_info(blas):
{'define_macros': [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)], 'libraries': ['cblas', 'blas', 'cblas', 'blas'], 'library_dirs': ['/home/ubuntu/anaconda3/envs/test2/lib'], 'include_dirs': ['/home/ubuntu/anaconda3/envs/test2/include'], 'language': 'c'}
{'libraries': ['lapack', 'blas', 'lapack', 'blas', 'cblas', 'blas', 'cblas', 'blas'], 'library_dirs': ['/home/ubuntu/anaconda3/envs/test2/lib'], 'language': 'c', 'define_macros': [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)], 'include_dirs': ['/home/ubuntu/anaconda3/envs/test2/include']}
warning: no directories found matching 'scs'
warning: no directories found matching 'scs/src'
warning: no directories found matching 'scs/test'
warning: no directories found matching 'scs/test/problems'
warning: no directories found matching 'scs/include'
warning: no directories found matching 'scs/linsys'
warning: no directories found matching 'scs/linsys/cpu'
warning: no directories found matching 'scs/linsys/cpu/direct'
warning: no directories found matching 'scs/linsys/cpu/indirect'
warning: no directories found matching 'scs/linsys/gpu'
warning: no directories found matching 'scs/linsys/gpu/indirect'
warning: no directories found matching 'scs/linsys/external'
warning: no directories found matching 'scs/linsys/external/amd'
warning: no directories found matching 'scs/linsys/external/qdldl'
src/scspy.c:16:10: fatal error: glbopts.h: No such file or directory
#include "glbopts.h" /* Constants and *alloc */
^~~~~~~~~~~
compilation terminated.
error: Command "gcc -pthread -B /home/ubuntu/anaconda3/envs/test2/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DPYTHON -DCTRLC=1 -DUSE_LAPACK -DNO_ATLAS_INFO=1 -DHAVE_CBLAS -DNO_ATLAS_INFO=1 -DHAVE_CBLAS -Iscs/include -Iscs/linsys -Iscs/linsys/cpu/direct/ -Iscs/linsys/external/amd -Iscs/linsys/external/dqlql -I/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/core/include -I/home/ubuntu/anaconda3/envs/test2/include -I/home/ubuntu/anaconda3/envs/test2/include -I/home/ubuntu/anaconda3/envs/test2/include/python3.7m -c src/scspy.c -o build/temp.linux-x86_64-cpython-37/src/scspy.o -O3" failed with exit status 1```
~~~~~~~~~~~~~
(MKL version) In addition, when I installed the MKL version, I also got some error, o(╥﹏╥)o
running install
/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/setuptools/command/install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
setuptools.SetuptoolsDeprecationWarning,
/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/setuptools/command/easy_install.py:147: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
EasyInstallDeprecationWarning,
running bdist_egg
running 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
blas_info:
libraries = ['cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
include_dirs = ['/home/ubuntu/anaconda3/envs/test2/include']
language = c
define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
libraries = ['cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
include_dirs = ['/home/ubuntu/anaconda3/envs/test2/include']
language = c
lapack_info:
libraries = ['lapack', 'blas', 'lapack', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
language = f77
lapack_opt_info:
libraries = ['lapack', 'blas', 'lapack', 'blas', 'cblas', 'blas', 'cblas', 'blas']
library_dirs = ['/home/ubuntu/anaconda3/envs/test2/lib']
language = c
define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
include_dirs = ['/home/ubuntu/anaconda3/envs/test2/include']
Supported SIMD extensions in this NumPy install:
baseline = SSE,SSE2,SSE3
found = SSSE3,SSE41,POPCNT,SSE42,AVX,F16C,FMA3,AVX2
not found = AVX512F,AVX512CD,AVX512_KNL,AVX512_KNM,AVX512_SKX,AVX512_CLX,AVX512_CNL,AVX512_ICL
/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/distutils/system_info.py:2026: UserWarning:
Optimized (vendor) Blas libraries are not found.
Falls back to netlib Blas library which has worse performance.
A better performance should be easily gained by switching
Blas library.
if self._calc_info(blas):
{'define_macros': [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)], 'libraries': ['cblas', 'blas', 'cblas', 'blas'], 'library_dirs': ['/home/ubuntu/anaconda3/envs/test2/lib'], 'include_dirs': ['/home/ubuntu/anaconda3/envs/test2/include'], 'language': 'c'}
{'libraries': ['lapack', 'blas', 'lapack', 'blas', 'cblas', 'blas', 'cblas', 'blas'], 'library_dirs': ['/home/ubuntu/anaconda3/envs/test2/lib'], 'language': 'c', 'define_macros': [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)], 'include_dirs': ['/home/ubuntu/anaconda3/envs/test2/include']}
warning: no directories found matching 'scs'
warning: no directories found matching 'scs/src'
warning: no directories found matching 'scs/test'
warning: no directories found matching 'scs/test/problems'
warning: no directories found matching 'scs/include'
warning: no directories found matching 'scs/linsys'
warning: no directories found matching 'scs/linsys/cpu'
warning: no directories found matching 'scs/linsys/cpu/direct'
warning: no directories found matching 'scs/linsys/cpu/indirect'
warning: no directories found matching 'scs/linsys/gpu'
warning: no directories found matching 'scs/linsys/gpu/indirect'
warning: no directories found matching 'scs/linsys/external'
warning: no directories found matching 'scs/linsys/external/amd'
warning: no directories found matching 'scs/linsys/external/qdldl'
src/scspy.c:16:10: fatal error: glbopts.h: No such file or directory
#include "glbopts.h" /* Constants and *alloc */
^~~~~~~~~~~
compilation terminated.
error: Command "gcc -pthread -B /home/ubuntu/anaconda3/envs/test2/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DPYTHON -DCTRLC=1 -DDLONG=1 -DUSE_LAPACK -DNO_ATLAS_INFO=1 -DHAVE_CBLAS -DNO_ATLAS_INFO=1 -DHAVE_CBLAS -Iscs/include -Iscs/linsys -Iscs/linsys/cpu/direct/ -Iscs/linsys/external/amd -Iscs/linsys/external/dqlql -I/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/numpy/core/include -I/home/ubuntu/anaconda3/envs/test2/include -I/home/ubuntu/anaconda3/envs/test2/include -I/home/ubuntu/anaconda3/envs/test2/include/python3.7m -c src/scspy.c -o build/temp.linux-x86_64-cpython-37/src/scspy.o -O3" failed with exit status 1```
I'm not sure what the earliest version of CuSparse where those functions appeared, but they are in version 12.2: https://docs.nvidia.com/cuda/cusparse/
I would recommend updating CuSparse over using an old version of SCS. Alternately you can use the MKL version of SCS, which is trypically faster than the GPU version anyway.
=================================
scs-gpu version
Hello, I seem to have finally installed scs-gpu. there are some problems when using it. My test code is as follows:
import cvxpy as cp
import numpy as np
# Generate random SDP problem
n = 100
np.random.seed(1)
A = np.random.randn(n, n)
A = 0.5 * (A + A.T)
X = cp.Variable((n, n), PSD=True)
obj = cp.Maximize(cp.trace(A @ X))
constraints = [X >= 0, cp.trace(X) == 1]
prob = cp.Problem(obj, constraints)
# Solve problem on GPU
prob.solve(solver=cp.SCS, gpu=True, use_indirect=True)
# Print solution
print("Optimal value: ", prob.value)
print("Solution: ")
print(X.value)
Due to the configuration of my computer, I can only install cuda11.8 at most, so I tested two versions of scs-gpu:3.0.0 and 3.2.0
TEST 1: version 3.0.0
And the error reported is as follows:
** On entry to cusparseCreateCsr() parameter number 5 (csrRowOffsets) had an illegal value: null pointer
** On entry to cusparseCreateDnVec() parameter number 3 (values) had an illegal value: null pointer
** On entry to cusparseCreateDnVec() parameter number 3 (values) had an illegal value: null pointer
** On entry to cusparseCreateDnVec() parameter number 3 (values) had an illegal value: null pointer
Segmentation fault (core dumped)
And when I run the pytest -v
, it comes:
test/test_scs_basic.py::test_problems[cone0-False-1] PASSED [ 4%]
test/test_scs_basic.py::test_problems[cone1-True-1] PASSED [ 9%]
test/test_scs_basic.py::test_problems[cone2-False-0.5] PASSED [ 13%]
test/test_scs_basic.py::test_problems[cone3-True-0.5] PASSED [ 18%]
test/test_scs_basic.py::test_failures PASSED [ 22%]
test/test_scs_rand.py::test_feasible[False] PASSED [ 27%]
test/test_scs_rand.py::test_feasible[True] PASSED [ 31%]
test/test_scs_rand.py::test_infeasible[False] PASSED [ 36%]
test/test_scs_rand.py::test_infeasible[True] PASSED [ 40%]
test/test_scs_rand.py::test_unbounded[False] PASSED [ 45%]
test/test_scs_sdp.py::test_feasible[False] PASSED [ 50%]
test/test_scs_sdp.py::test_feasible[True] PASSED [ 54%]
test/test_scs_sdp.py::test_infeasible[False] PASSED [ 59%]
test/test_scs_sdp.py::test_infeasible[True] PASSED [ 63%]
test/test_scs_sdp.py::test_unbounded[False] PASSED [ 68%]
test/test_solve_random_cone_prob.py::test_solve_feasible[False-False] PASSED [ 72%]
test/test_solve_random_cone_prob.py::test_solve_feasible[True-False] PASSED [ 77%]
test/test_solve_random_cone_prob.py::test_solve_feasible[True-True] Fatal Python error: Segmentation fault
Current thread 0x00007fa7bae9f740 (most recent call first):
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/scs-3.0.0-py3.8-linux-x86_64.egg/scs/__init__.py", line 103 in solve
File "/home/ubuntu/test0330/scs_test/scs-python-3.0.0/test/test_solve_random_cone_prob.py", line 55 in test_solve_feasible
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/python.py", line 194 in pytest_pyfunc_call
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_callers.py", line 77 in _multicall
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_manager.py", line 115 in _hookexec
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_hooks.py", line 493 in __call__
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/python.py", line 1792 in runtest
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/runner.py", line 169 in pytest_runtest_call
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_callers.py", line 77 in _multicall
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_manager.py", line 115 in _hookexec
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_hooks.py", line 493 in __call__
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/runner.py", line 262 in <lambda>
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/runner.py", line 341 in from_call
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/runner.py", line 261 in call_runtest_hook
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/runner.py", line 222 in call_and_report
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/runner.py", line 133 in runtestprotocol
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/runner.py", line 114 in pytest_runtest_protocol
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_callers.py", line 77 in _multicall
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_manager.py", line 115 in _hookexec
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_hooks.py", line 493 in __call__
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/main.py", line 350 in pytest_runtestloop
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_callers.py", line 77 in _multicall
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_manager.py", line 115 in _hookexec
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_hooks.py", line 493 in __call__
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/main.py", line 325 in _main
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/main.py", line 271 in wrap_session
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/main.py", line 318 in pytest_cmdline_main
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_callers.py", line 77 in _multicall
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_manager.py", line 115 in _hookexec
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/pluggy/_hooks.py", line 493 in __call__
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/config/__init__.py", line 169 in main
File "/home/ubuntu/anaconda3/envs/test3/lib/python3.8/site-packages/_pytest/config/__init__.py", line 192 in console_main
File "/home/ubuntu/anaconda3/envs/test3/bin/pytest", line 8 in <module>
Segmentation fault (core dumped)
TEST 2: version 3.2.0
And the error reported is as follows:
cudaError: 803 (100 indicates no device)
ERROR: init_lin_sys_work failure
Traceback (most recent call last):
File "test.py", line 99, in <module>
prob.solve(solver=cp.SCS, gpu=True, use_indirect='gpu:0')
File "/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/cvxpy/problems/problem.py", line 472, in solve
return solve_func(self, *args, **kwargs)
File "/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/cvxpy/problems/problem.py", line 975, in _solve
self, data, warm_start, verbose, kwargs)
File "/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/cvxpy/reductions/solvers/solving_chain.py", line 344, in solve_via_data
solver_opts, problem._solver_cache)
File "/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/cvxpy/reductions/solvers/conic_solvers/scs_conif.py", line 321, in solve_via_data
results = scs.solve(args, cones, verbose=verbose, **solver_opts)
File "/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/scs-3.2.0-py3.7-linux-x86_64.egg/scs/__init__.py", line 166, in solve
solver = SCS(data, cone, **settings)
File "/home/ubuntu/anaconda3/envs/test2/lib/python3.7/site-packages/scs-3.2.0-py3.7-linux-x86_64.egg/scs/__init__.py", line 129, in __init__
**self._settings
ValueError: ScsWork allocation error!
And when I run the pytest -v
, it comes:
platform linux -- Python 3.7.13, pytest-7.4.2, pluggy-1.0.0 -- /home/ubuntu/anaconda3/envs/test2/bin/python3.7
cachedir: .pytest_cache
rootdir: /home/ubuntu/test0330/scs_test/scs-python-3.2.0
collected 26 items
test/test_scs_basic.py::test_problems[cone0-False-1] PASSED [ 3%]
test/test_scs_basic.py::test_problems[cone1-True-1] PASSED [ 7%]
test/test_scs_basic.py::test_problems[cone2-False-0.5] PASSED [ 11%]
test/test_scs_basic.py::test_problems[cone3-True-0.5] PASSED [ 15%]
test/test_scs_basic.py::test_failures PASSED [ 19%]
test/test_scs_object.py::test_update[False] PASSED [ 23%]
test/test_scs_object.py::test_update[True] PASSED [ 26%]
test/test_scs_object.py::test_warm_start[False] PASSED [ 30%]
test/test_scs_object.py::test_warm_start[True] PASSED [ 34%]
test/test_scs_rand.py::test_feasible[False] PASSED [ 38%]
test/test_scs_rand.py::test_feasible[True] PASSED [ 42%]
test/test_scs_rand.py::test_infeasible[False] PASSED [ 46%]
test/test_scs_rand.py::test_infeasible[True] PASSED [ 50%]
test/test_scs_rand.py::test_unbounded[False] PASSED [ 53%]
test/test_scs_sdp.py::test_feasible[False] PASSED [ 57%]
test/test_scs_sdp.py::test_feasible[True] PASSED [ 61%]
test/test_scs_sdp.py::test_infeasible[False] PASSED [ 65%]
test/test_scs_sdp.py::test_infeasible[True] PASSED [ 69%]
test/test_scs_sdp.py::test_unbounded[False] PASSED [ 73%]
test/test_solve_random_cone_prob.py::test_solve_feasible[False-False] PASSED [ 76%]
test/test_solve_random_cone_prob.py::test_solve_feasible[True-False] PASSED [ 80%]
test/test_solve_random_cone_prob.py::test_solve_feasible[True-True] FAILED [ 84%]
test/test_solve_random_cone_prob.py::test_solve_infeasible[False-False] PASSED [ 88%]
test/test_solve_random_cone_prob.py::test_solve_infeasible[True-False] PASSED [ 92%]
test/test_solve_random_cone_prob.py::test_solve_infeasible[True-True] FAILED [ 96%]
test/test_solve_random_cone_prob.py::test_solve_unbounded[False-False] PASSED [100%]
============================================== FAILURES ==============================================
___________________________________ test_solve_feasible[True-True] ___________________________________
use_indirect = True, gpu = True
@pytest.mark.parametrize("use_indirect,gpu", flags)
def test_solve_feasible(use_indirect, gpu):
data, p_star = tools.gen_feasible(K, n=m // 3, density=0.1)
> sol = scs.solve(data, K, use_indirect=use_indirect, gpu=gpu, **params)
test/test_solve_random_cone_prob.py:52:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../../anaconda3/envs/test2/lib/python3.7/site-packages/scs-3.2.0-py3.7-linux-x86_64.egg/scs/__init__.py:166: in solve
solver = SCS(data, cone, **settings)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <scs.SCS object at 0x7f0689c9c850>
data = {'A': <185x61 sparse matrix of type '<class 'numpy.float64'>'
with 1128 stored elements in Compressed Sparse Column f... 0.33570231, -2.94340476,
-2.00974735, -0.81127314, -3.18870305, -6.65891815, 2.8272063 ,
5.31327757])}
cone = {'ed': 10, 'ep': 10, 'f': 10, 'l': 15, ...}
settings = {'eps_abs': 1e-05, 'eps_infeas': 1e-05, 'eps_rel': 1e-05, 'verbose': True}
A = <185x61 sparse matrix of type '<class 'numpy.float64'>'
with 1128 stored elements in Compressed Sparse Column format>
b = array([-1.77972177e+00, -7.21552814e-01, 6.04651853e-01, 4.17280359e-01,
2.31310490e+00, 3.13874803e-01, -2...0, -6.10051807e-01,
-6.43584550e-01, 3.53862034e+00, -2.31483244e-01, -2.65193217e+00,
-1.54730012e+00])
c = array([ 0.43734599, -0.55049163, 0.06535198, -0.46593169, -0.76006428,
-0.63595698, 0.6186646 , 1.31535326, ... 0.33570231, -2.94340476,
-2.00974735, -0.81127314, -3.18870305, -6.65891815, 2.8272063 ,
5.31327757])
m = 185, n = 61
Adata = array([-0.70799426, 0.09878455, -0.01774488, ..., -2.67072051,
-1.62321065, 0.62820047])
Aindices = array([ 5, 9, 11, ..., 165, 171, 174], dtype=int32)
def __init__(self, data, cone, **settings):
"""Initialize the SCS solver.
@param data Dictionary containing keys `P`, `A`, `b`, `c`.
@param cone Dictionary containing cone information.
@param settings Settings as kwargs, see docs.
"""
self._settings = settings
if not data or not cone:
raise ValueError("Missing data or cone information")
if "b" not in data or "c" not in data:
raise ValueError("Missing one of b, c from data dictionary")
if "A" not in data:
raise ValueError("Missing A from data dictionary")
A = data["A"]
b = data["b"]
c = data["c"]
if A is None or b is None or c is None:
raise ValueError("Incomplete data specification")
if not sparse.issparse(A):
raise TypeError("A is required to be a sparse matrix")
if not sparse.isspmatrix_csc(A):
warn(
"Converting A to a CSC (compressed sparse column) matrix;"
" may take a while."
)
A = A.tocsc()
if sparse.issparse(b):
b = b.todense()
if sparse.issparse(c):
c = c.todense()
m = len(b)
n = len(c)
if not A.has_sorted_indices:
A.sort_indices()
Adata, Aindices, Acolptr = A.data, A.indices, A.indptr
if A.shape != (m, n):
raise ValueError("A shape not compatible with b,c")
Pdata, Pindices, Pcolptr = None, None, None
if "P" in data:
P = data["P"]
if P is not None:
if not sparse.issparse(P):
raise TypeError("P is required to be a sparse matrix")
if P.shape != (n, n):
raise ValueError("P shape not compatible with A,b,c")
if not sparse.isspmatrix_csc(P):
warn(
"Converting P to a CSC (compressed sparse column) "
"matrix; may take a while."
)
P = P.tocsc()
# extract upper triangular component only
if sparse.tril(P, -1).data.size > 0:
P = sparse.triu(P, format="csc")
if not P.has_sorted_indices:
P.sort_indices()
Pdata, Pindices, Pcolptr = P.data, P.indices, P.indptr
# Which scs are we using (scs_direct, scs_indirect, ...)
_scs = _select_scs_module(self._settings)
# Initialize solver
self._solver = _scs.SCS(
(m, n),
Adata,
Aindices,
Acolptr,
Pdata,
Pindices,
Pcolptr,
b,
c,
cone,
> **self._settings
)
E ValueError: ScsWork allocation error!
../../../anaconda3/envs/test2/lib/python3.7/site-packages/scs-3.2.0-py3.7-linux-x86_64.egg/scs/__init__.py:129: ValueError
---------------------------------------- Captured stdout call ----------------------------------------
SCS deprecation warning: The 'f' field in the cone struct
has been replaced by 'z' to better reflect the Zero cone.
Please replace usage of 'f' with 'z'. If both 'f' and 'z'
are set then we sum the two fields to get the final zero
cone size.
------------------------------------------------------------------
SCS v3.2.0 - Splitting Conic Solver
(c) Brendan O'Donoghue, Stanford University, 2012
------------------------------------------------------------------
problem: variables n: 61, constraints m: 185
cones: z: primal zero / dual free vars: 10
l: linear vars: 15
q: soc vars: 16, qsize: 4
s: psd vars: 72, ssize: 6
e: exp vars: 30, dual exp vars: 30
p: primal + dual power vars: 12
settings: eps_abs: 1.0e-05, eps_rel: 1.0e-05, eps_infeas: 1.0e-05
alpha: 1.50, scale: 1.00e-01, adaptive_scale: 1
max_iters: 100000, normalize: 1, rho_x: 1.00e-06
acceleration_lookback: 10, acceleration_interval: 10
lin-sys: sparse-indirect GPU
nnz(A): 1128, nnz(P): 0
cudaError: 803 (100 indicates no device)
ERROR: init_lin_sys_work failure
__________________________________ test_solve_infeasible[True-True] __________________________________
use_indirect = True, gpu = True
@pytest.mark.parametrize("use_indirect,gpu", flags)
def test_solve_infeasible(use_indirect, gpu):
data = tools.gen_infeasible(K, n=m // 2)
> sol = scs.solve(data, K, use_indirect=use_indirect, gpu=gpu, **params)
test/test_solve_random_cone_prob.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../../anaconda3/envs/test2/lib/python3.7/site-packages/scs-3.2.0-py3.7-linux-x86_64.egg/scs/__init__.py:166: in solve
solver = SCS(data, cone, **settings)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <scs.SCS object at 0x7f0689c99550>
data = {'A': <185x92 sparse matrix of type '<class 'numpy.float64'>'
with 17020 stored elements in Compressed Sparse Column ...-0.04999 ,
0.63148075, -0.08389907, -0.01735298, -0.71389919, -0.6706297 ,
-0.61027395, -0.37698244])}
cone = {'ed': 10, 'ep': 10, 'f': 10, 'l': 15, ...}
settings = {'eps_abs': 1e-05, 'eps_infeas': 1e-05, 'eps_rel': 1e-05, 'verbose': True}
A = <185x92 sparse matrix of type '<class 'numpy.float64'>'
with 17020 stored elements in Compressed Sparse Column format>
b = array([ 0.00517974, 0.17941606, -0.29172381, 0.01732769, -0.33715337,
0.44261772, 0.22239132, 0.002331 , ...18561 , 0.51127944, 0.13322921, -0.13817534,
0.4025374 , 0.06252133, -0.22711616, -0.00649554, -0.52139805])
c = array([ 1.04105485, 0.14433835, 1.50995752, 1.42838261, 0.27214613,
-2.02074466, -0.32352807, 0.21903492, ... -0.04999 ,
0.63148075, -0.08389907, -0.01735298, -0.71389919, -0.6706297 ,
-0.61027395, -0.37698244])
m = 185, n = 92
Adata = array([-0.66023834, 0.60458358, -0.3772123 , ..., 0.27921679,
0.57320994, 1.94738209])
Aindices = array([ 0, 1, 2, ..., 182, 183, 184], dtype=int32)
def __init__(self, data, cone, **settings):
"""Initialize the SCS solver.
@param data Dictionary containing keys `P`, `A`, `b`, `c`.
@param cone Dictionary containing cone information.
@param settings Settings as kwargs, see docs.
"""
self._settings = settings
if not data or not cone:
raise ValueError("Missing data or cone information")
if "b" not in data or "c" not in data:
raise ValueError("Missing one of b, c from data dictionary")
if "A" not in data:
raise ValueError("Missing A from data dictionary")
A = data["A"]
b = data["b"]
c = data["c"]
if A is None or b is None or c is None:
raise ValueError("Incomplete data specification")
if not sparse.issparse(A):
raise TypeError("A is required to be a sparse matrix")
if not sparse.isspmatrix_csc(A):
warn(
"Converting A to a CSC (compressed sparse column) matrix;"
" may take a while."
)
A = A.tocsc()
if sparse.issparse(b):
b = b.todense()
if sparse.issparse(c):
c = c.todense()
m = len(b)
n = len(c)
if not A.has_sorted_indices:
A.sort_indices()
Adata, Aindices, Acolptr = A.data, A.indices, A.indptr
if A.shape != (m, n):
raise ValueError("A shape not compatible with b,c")
Pdata, Pindices, Pcolptr = None, None, None
if "P" in data:
P = data["P"]
if P is not None:
if not sparse.issparse(P):
raise TypeError("P is required to be a sparse matrix")
if P.shape != (n, n):
raise ValueError("P shape not compatible with A,b,c")
if not sparse.isspmatrix_csc(P):
warn(
"Converting P to a CSC (compressed sparse column) "
"matrix; may take a while."
)
P = P.tocsc()
# extract upper triangular component only
if sparse.tril(P, -1).data.size > 0:
P = sparse.triu(P, format="csc")
if not P.has_sorted_indices:
P.sort_indices()
Pdata, Pindices, Pcolptr = P.data, P.indices, P.indptr
# Which scs are we using (scs_direct, scs_indirect, ...)
_scs = _select_scs_module(self._settings)
# Initialize solver
self._solver = _scs.SCS(
(m, n),
Adata,
Aindices,
Acolptr,
Pdata,
Pindices,
Pcolptr,
b,
c,
cone,
> **self._settings
)
E ValueError: ScsWork allocation error!
../../../anaconda3/envs/test2/lib/python3.7/site-packages/scs-3.2.0-py3.7-linux-x86_64.egg/scs/__init__.py:129: ValueError
---------------------------------------- Captured stdout call ----------------------------------------
SCS deprecation warning: The 'f' field in the cone struct
has been replaced by 'z' to better reflect the Zero cone.
Please replace usage of 'f' with 'z'. If both 'f' and 'z'
are set then we sum the two fields to get the final zero
cone size.
------------------------------------------------------------------
SCS v3.2.0 - Splitting Conic Solver
(c) Brendan O'Donoghue, Stanford University, 2012
------------------------------------------------------------------
problem: variables n: 92, constraints m: 185
cones: z: primal zero / dual free vars: 10
l: linear vars: 15
q: soc vars: 16, qsize: 4
s: psd vars: 72, ssize: 6
e: exp vars: 30, dual exp vars: 30
p: primal + dual power vars: 12
settings: eps_abs: 1.0e-05, eps_rel: 1.0e-05, eps_infeas: 1.0e-05
alpha: 1.50, scale: 1.00e-01, adaptive_scale: 1
max_iters: 100000, normalize: 1, rho_x: 1.00e-06
acceleration_lookback: 10, acceleration_interval: 10
lin-sys: sparse-indirect GPU
nnz(A): 17020, nnz(P): 0
cudaError: 803 (100 indicates no device)
ERROR: init_lin_sys_work failure
====================================== short test summary info =======================================
FAILED test/test_solve_random_cone_prob.py::test_solve_feasible[True-True] - ValueError: ScsWork allocation error!
FAILED test/test_solve_random_cone_prob.py::test_solve_infeasible[True-True] - ValueError: ScsWork allocation error!
=================================== 2 failed, 24 passed in 10.00s ====================================
====== I'm wondering if I haven't found the right way to use the scs-gpu yet