Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hi, when I try to install scs with gpu python setup.py install --scs --gpu, it comes with the following error: #71

Open
QiuCB opened this issue Oct 8, 2023 · 7 comments

Comments

@QiuCB
Copy link

QiuCB commented Oct 8, 2023

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

@QiuCB QiuCB changed the title Hi, when I try to install scs with gpu, it comes with the following error: Hi, when I try to install scs with gpu """python setup.py install --scs --gpu""", it comes with the following error: Oct 8, 2023
@QiuCB QiuCB changed the title Hi, when I try to install scs with gpu """python setup.py install --scs --gpu""", it comes with the following error: Hi, when I try to install scs with gpu python setup.py install --scs --gpu, it comes with the following error: Oct 8, 2023
@bodono
Copy link
Owner

bodono commented Oct 8, 2023

What version of Cuda / CUsparse are you using? This looks like you're probably using an older version than SCS is assuming.

@QiuCB
Copy link
Author

QiuCB commented Oct 8, 2023

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?

@bodono
Copy link
Owner

bodono commented Oct 8, 2023

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.

@QiuCB
Copy link
Author

QiuCB commented Oct 8, 2023

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!

@QiuCB

This comment was marked as resolved.

@QiuCB

This comment was marked as duplicate.

@QiuCB
Copy link
Author

QiuCB commented Oct 11, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants