foges / pogs Goto Github PK
View Code? Open in Web Editor NEWProximal Operator Graph Solver
License: MIT License
Proximal Operator Graph Solver
License: MIT License
Roger Koenker has mentioned POGS as a good choice for solving large scale quantile regression problems. In one paper he mentions that he has ran some experiments with the GPU implementation of POGS.
How can one apply POGS to quantile regression? Were Koenker's experiments using an unpublished POGS implementation of quantile loss? Or is it possible to to define a quantile regression problem using the 16 available functions in prox_lib.sh
?
Otherwise, I'd love a bit of direction on how to implement quantile loss in POGS.
The "data" member is not initialised (src/cpu/include/gls/gsl_vector.h, line 27). This causes a lot of "Conditional jump or move depends on uninitialised value(s)" with valgrind.
Although I did not notice any strange behaviour, a std::fill or - according to stackoverflow - new T[n]()
may be safer.
I'm not sure if there is an ideal way to guess the dual variables, but assuming x0 and y0 are primal optimal, then the relation
x0 = prox_g(x0 - \tilde x)
y0 = prox_f(y0 - \tilde y)
holds, which means
\nabla g(x0) + rho \tilde x = 0 <=> \tilde x = -(1/rho) \nabla g(x0) and \tilde y = -(1/rho) \nabla f(y0)
Should reflect current state of solver.
If it is the case, then skip Ax in the first iteration
(maybe has to do with different equilibration)
How do I ensure GPU optimization in Matlab ?
I checked pogs help under Matlab and went trough code quickly, but no luck.
Is there a way to tell it use CPUs\GPU, or it just happens in the background ?
Would be good to have a license file in the repo to make the terms of the license clear and to make it easier for people new to the project to evaluate quickly whether it meets their needs.
I was getting a R.h not found
error when installing according to the docs, and did some digging about where it was looking for R.h
. interface_r/pogs/src/config.mk
defines R_INC:=$(R_HOME)/include
, but the debian install of R stores these files in /usr/share/R/include
. Commenting out Line 7 in config.mk and installing from the package directory using devtools::install
worked.
I tried to run pogs_setup on Matlab, but it gives a series of errors.
'make' is not recognized as an internal or external command,
operable program or batch file.
'make' is not recognized as an internal or external command,
operable program or batch file.
Building with 'Microsoft Visual C++ 2015'.
Error using mex
pogs_mex.cpp
I am running it on Matlab R2018a and CUDA 9.0 is installed on my machine.
Interface using numpy (will probably use swig).
0 : Nothing
1 : Residuals + Final time and other stats
2 : Rho changes
3 : Sparse solving steps
This is a really great method! However, I have embedded pogs in a loop that iterates many many times and there is a memory leak resulting in an inevitable crash. Any ideas/suggestions? I'm assuming somewhere an array needs destroying.
Thanks
The three lines with memcpy omit "sizeof(T)"....
(1) The final argument, "n", wants to be "n * sizeof(T)":
pogs/src/interface_c/pogs_c.cpp
Line 48 in 81e3d89
(2) The final argument, "m", wants to be "m * sizeof(T)":
pogs/src/interface_c/pogs_c.cpp
Line 49 in 81e3d89
(3) The final argument, "m", wants to be "m * sizeof(T)":
pogs/src/interface_c/pogs_c.cpp
Line 50 in 81e3d89
matlab implementation of pogs calls norms(matrix, int, int), line 355 and 357. To my believe this function is not provided.
Hi!
I tried to build pogs but encountered a s**t ton of build errors.
A small portion of the errors I experienced are posted below.
Is this a version error or somthing?
I built the cpp examples with make gpu
This is what I got.
gpu/include/cml/cml_spmat.cuh(41): error: identifier "CUSPARSE_ACTION_NUMERIC" is undefined
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(40): error: argument of type "int" is incompatible with parameter of type "const float *"
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(40): error: argument of type "const float *" is incompatible with parameter of type "const int *"
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(41): error: argument of type "const int *" is incompatible with parameter of type "float *"
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(41): error: argument of type "float *" is incompatible with parameter of type "int *"
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(41): error: argument of type "int *" is incompatible with parameter of type "int"
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(42): error: too many arguments in function call
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(48): error: identifier "CUSPARSE_ACTION_NUMERIC" is undefined
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(47): error: argument of type "int" is incompatible with parameter of type "const float *"
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(47): error: argument of type "const float *" is incompatible with parameter of type "const int *"
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(48): error: argument of type "const int *" is incompatible with parameter of type "float *"
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(48): error: argument of type "float *" is incompatible with parameter of type "int *"
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(48): error: argument of type "int *" is incompatible with parameter of type "int"
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spmat.cuh(49): error: too many arguments in function call
detected during:
instantiation of "void cml::spmat_memcpy(cusparseHandle_t, cml::spmat<T, I, O> *, const T *, const I *, const I *) [with T=float, I=pogs::POGS_INT, O=CblasRowMajor]"
gpu/matrix/matrix_sparse.cu(139): here
instantiation of "int pogs::MatrixSparse<T>::Init() [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(60): error: argument of type "float *" is incompatible with parameter of type "cusparseMatDescr_t"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(60): error: argument of type "cusparseMatDescr_t" is incompatible with parameter of type "const float *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(61): error: argument of type "float *" is incompatible with parameter of type "const int *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(61): error: argument of type "pogs::POGS_INT *" is incompatible with parameter of type "const float *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(61): error: argument of type "float *" is incompatible with parameter of type "float"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(61): error: too many arguments in function call
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(63): error: argument of type "float *" is incompatible with parameter of type "cusparseMatDescr_t"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(63): error: argument of type "cusparseMatDescr_t" is incompatible with parameter of type "const float *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(64): error: argument of type "float *" is incompatible with parameter of type "const int *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(64): error: argument of type "pogs::POGS_INT *" is incompatible with parameter of type "const float *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(64): error: argument of type "float *" is incompatible with parameter of type "float"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(65): error: too many arguments in function call
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasRowMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(171): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(80): error: argument of type "float *" is incompatible with parameter of type "cusparseMatDescr_t"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(81): error: argument of type "cusparseMatDescr_t" is incompatible with parameter of type "const float *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(81): error: argument of type "float *" is incompatible with parameter of type "const int *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(81): error: argument of type "pogs::POGS_INT *" is incompatible with parameter of type "const float *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(81): error: argument of type "float *" is incompatible with parameter of type "float"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(82): error: too many arguments in function call
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(84): error: argument of type "float *" is incompatible with parameter of type "cusparseMatDescr_t"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(85): error: argument of type "cusparseMatDescr_t" is incompatible with parameter of type "const float *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(85): error: argument of type "float *" is incompatible with parameter of type "const int *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(85): error: argument of type "pogs::POGS_INT *" is incompatible with parameter of type "const float *"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(85): error: argument of type "float *" is incompatible with parameter of type "float"
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
gpu/include/cml/cml_spblas.cuh(85): error: too many arguments in function call
detected during:
instantiation of "cusparseStatus_t cml::spblas_gemv(cusparseHandle_t, cusparseOperation_t, cusparseMatDescr_t, float, const cml::spmat<float, I, CblasColMajor> *, const cml::vector<float> *, float, cml::vector<float> *) [with I=pogs::POGS_INT]"
gpu/matrix/matrix_sparse.cu(176): here
instantiation of "int pogs::MatrixSparse<T>::Mul(char, T, const T *, T, T *) const [with T=float]"
gpu/matrix/matrix_sparse.cu(376): here
76 errors detected in the compilation of "/tmp/tmpxft_0000776b_00000000-6_matrix_sparse.cpp1.ii".
make[1]: *** [build/gpu/matrix/matrix_sparse.o] Error 2
make[1]: Leaving directory `/home/msca8h/project/POGS_test/pogs/src'
make: *** [gpu] Error 2
Hi,
I tried to compile PGOS on MATLAB with no success.
Any help?
Win 10
MATLAB 2017b
MinGW64 Compiler
Error message:
pogs_setup
'make' is not recognized as an internal or external command,
operable program or batch file.
'make' is not recognized as an internal or external command,
operable program or batch file.
Error using mex
MEX cannot find library 'mwblas' specified with the -l option.
MEX looks for a file with one of the names:
libmwblas.lib
mwblas.lib
Please specify the path to this library with the -L option.
Error in pogs_setup (line 33)
eval(sprintf(['mex -largeArrayDims -I../include ' ...
Can you please clarify the license of POGS? I neither found a COPYING file nor a license/copyright header at the top of a source file.
http://foges.github.io/pogs/ says GPL.
Paper and src/interface_r/pogs/DESCRIPTION say 3-Clause-BSD.
BSD is great. GPL would be quite limiting.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.