bob.math issueshttps://gitlab.idiap.ch/bob/bob.math/-/issues2021-10-29T15:34:56Zhttps://gitlab.idiap.ch/bob/bob.math/-/issues/16OSError: libopenblas.so.0: cannot open shared object file: No such file or di...2021-10-29T15:34:56ZAmir MOHAMMADIOSError: libopenblas.so.0: cannot open shared object file: No such file or directorywe do not pin openblas or mkl as runtime dependencieswe do not pin openblas or mkl as runtime dependenciesConda-forge migrationAmir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.math/-/issues/15FAIL: bob.math.test_gsvd.test_svd_signal2021-10-29T15:34:56ZAmir MOHAMMADIFAIL: bob.math.test_gsvd.test_svd_signal```
======================================================================
FAIL: bob.math.test_gsvd.test_svd_signal
----------------------------------------------------------------------
Traceback (most recent call last):
File "/scratc...```
======================================================================
FAIL: bob.math.test_gsvd.test_svd_signal
----------------------------------------------------------------------
Traceback (most recent call last):
File "/scratch/builds/bob/nightlies/miniconda/conda-bld/bob.math_1633456871908/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/scratch/builds/bob/nightlies/miniconda/conda-bld/bob.math_1633456871908/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_/lib/python3.8/site-packages/bob/math/test_gsvd.py", line 110, in test_svd_signal
nose.tools.eq_((abs(U-U_ref) < 1e-8).all(), True)
AssertionError: False != True
```
see: https://gitlab.idiap.ch/bob/nightlies/-/jobs/245916Conda-forge migrationhttps://gitlab.idiap.ch/bob/bob.math/-/issues/14ERROR: LAPACK library not found - have that installed or set BOB_PREFIX_PATH ...2018-02-05T15:55:21ZAmir MOHAMMADIERROR: LAPACK library not found - have that installed or set BOB_PREFIX_PATH to point to the correct installation prefixSee: https://gitlab.idiap.ch/bob/bob.math/-/jobs/116298
As far as I have investigated this so far, there are two problems here:
1. numpy compile flags (`mkl_rt` and `pthread`) are being ignored because `bob.extension.utils.findlibrary`...See: https://gitlab.idiap.ch/bob/bob.math/-/jobs/116298
As far as I have investigated this so far, there are two problems here:
1. numpy compile flags (`mkl_rt` and `pthread`) are being ignored because `bob.extension.utils.findlibrary` cannot find `pthread` which is located in `/x86_64-conda_cos6-linux-gnu/sysroot/usr/lib` during build.
2. As an alternative we search for [`mkl_lapack64`](https://gitlab.idiap.ch/bob/bob.math/blob/2189fd0e0b266b2893746b5dccb5a698b3c06918/setup.py#L99) which is not available in `MKL 2017` and `MKL 2018`. I don't when was this available in MKL that we are searching for it.
@andre.anjos ideas on 1?
@tiago.pereira ideas on 2? Why are we not searching for `mkl_rt` instead? It seems to be available in both mkl 2017 and 2018.Conda-based CIhttps://gitlab.idiap.ch/bob/bob.math/-/issues/13raspberry pi compilation fails2017-09-22T15:58:09ZFlavio TARSETTIraspberry pi compilation failsHi all,
Could someone explain to me how to properly compile bob.measure ? I am stuck.
I have this issue:
```
(/home/pi/3dfv/env3dfv)pi@raspberrypi:~/3dfv $ pip install bob.measure
Collecting bob.measure
Using cached bob.measure-2.4....Hi all,
Could someone explain to me how to properly compile bob.measure ? I am stuck.
I have this issue:
```
(/home/pi/3dfv/env3dfv)pi@raspberrypi:~/3dfv $ pip install bob.measure
Collecting bob.measure
Using cached bob.measure-2.4.1.zip
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-iiw7OE/bob.measure/setup.py", line 48, in <module>
boost_modules = boost_modules,
File "/home/pi/3dfv/env3dfv/lib/python2.7/site-packages/bob/blitz/extension.py", line 52, in __init__
BobExtension.__init__(self, *args, **kwargs)
File "/home/pi/3dfv/env3dfv/lib/python2.7/site-packages/bob/extension/__init__.py", line 301, in __init__
bob_includes, bob_libraries, bob_library_dirs, bob_macros = get_bob_libraries(self.bob_packages)
File "/home/pi/3dfv/env3dfv/lib/python2.7/site-packages/bob/extension/__init__.py", line 193, in get_bob_libraries
pkg = importlib.import_module(package)
File "/home/pi/3dfv/env3dfv/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/pi/3dfv/env3dfv/lib/python2.7/site-packages/bob/math/__init__.py", line 6, in <module>
bob.extension.load_bob_library('bob.math', __file__)
File "/home/pi/3dfv/env3dfv/lib/python2.7/site-packages/bob/extension/__init__.py", line 244, in load_bob_library
ctypes.cdll.LoadLibrary(full_libname)
File "/home/pi/3dfv/env3dfv/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
return self._dlltype(name)
File "/home/pi/3dfv/env3dfv/lib/python2.7/ctypes/__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /home/pi/3dfv/env3dfv/lib/python2.7/site-packages/bob/math/libbob_math.so: undefined symbol: dggsvd3_
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-iiw7OE/bob.measure/
```
* I have searched for this dggsvd3_ . It appears to be present only in bob.math in file bob/math/cpp/gsvd.cpp
* Following same request in group https://groups.google.com/forum/#!topic/bob-devel/oYZtVnUaqyM where it's stated that openblas and lapack are required. Both are installed.
* libopenblas-base:
Installed: 0.2.19-3+rpi1
Candidate: 0.2.19-3+rpi1
* libopenblas-dev:
Installed: 0.2.19-3+rpi1
Candidate: 0.2.19-3+rpi1
So could you tell me how to proceed, as this is a blocker right now for me. Thanks in advance.
Flaviohttps://gitlab.idiap.ch/bob/bob.math/-/issues/12bob.learn.em (master branch) requires bob.math >= 3.0.0, which does not exist2019-05-06T12:38:09ZManuel Günthersiebenkopf@googlemail.combob.learn.em (master branch) requires bob.math >= 3.0.0, which does not existDue to default version numbering schemes, the current version of the master branch (`bob.math 3.0.0b0`) is **smaller than** `bob.math 3.0.0`, which is required by `bob.learn.em`: https://gitlab.idiap.ch/bob/bob.learn.em/blob/master/requi...Due to default version numbering schemes, the current version of the master branch (`bob.math 3.0.0b0`) is **smaller than** `bob.math 3.0.0`, which is required by `bob.learn.em`: https://gitlab.idiap.ch/bob/bob.learn.em/blob/master/requirements.txt#L7
Hence, the requirement of `bob.learn.em` cannot be fulfilled at the moment. Either we release a new version of `bob.math`, or we reduce the requirements of `bob.learn.em`.Amir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.math/-/issues/11installation from scratch is broken2018-05-02T12:30:31ZManuel Günthersiebenkopf@googlemail.cominstallation from scratch is brokenI tries to install `bob.math` from scratch, i.e., using:
```
$ git clone https://gitlab.idiap.ch/bob/bob.math
...
$ python bootstrap-buildout
...
$ ./bin/buildout
...
```
The build succeeds, there is no compiler or linker error. Howeve...I tries to install `bob.math` from scratch, i.e., using:
```
$ git clone https://gitlab.idiap.ch/bob/bob.math
...
$ python bootstrap-buildout
...
$ ./bin/buildout
...
```
The build succeeds, there is no compiler or linker error. However, when I try to use it, I get the following error message:
```
$ ./bin/nosetests
Failure: OSError (/mgunther/test_checkouts/bob.math/bob/math/libbob_math.so: undefined symbol: dggsvd3_) ... ERROR
======================================================================
ERROR: Failure: OSError (/mgunther/test_checkouts/bob.math/bob/math/libbob_math.so: undefined symbol: dggsvd3_)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/nose/loader.py", line 411, in loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python2.7/dist-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python2.7/dist-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/mgunther/test_checkouts/bob.math/bob/math/__init__.py", line 6, in <module>
bob.extension.load_bob_library('bob.math', __file__)
File "/mgunther/test_checkouts/bob.math/eggs/bob.extension-2.3.9-py2.7.egg/bob/extension/__init__.py", line 244, in load_bob_library
ctypes.cdll.LoadLibrary(full_libname)
File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
return self._dlltype(name)
File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /mgunther/test_checkouts/bob.math/bob/math/libbob_math.so: undefined symbol: dggsvd3_
```
I have seen this error being reported several times in our mailing list, too. I assume that we are missing to link against the library that contains this method.
Note that this issue is only present in the latest stable version (2.1.0). This does not occur when using older versions, e.g., 2.0.6.Tiago de Freitas PereiraTiago de Freitas Pereirahttps://gitlab.idiap.ch/bob/bob.math/-/issues/10SVD functions when linking against Intel MKL return values multiplied by -12018-07-06T12:08:31ZAndré AnjosSVD functions when linking against Intel MKL return values multiplied by -1The SVD functionality is not tested in the Python level inside this package, therefore, the error is only observed in bob.learn.linear, when we compile it against the new environment.
How to reproduce this? Use the environment `bob-deve...The SVD functionality is not tested in the Python level inside this package, therefore, the error is only observed in bob.learn.linear, when we compile it against the new environment.
How to reproduce this? Use the environment `bob-devel-pyXY` from the installation at `/idiap/group/torch5spro/conda`. Bootstrap and then buildout bob.learn.linear with `./bin/buildout -c develop.cfg`, so the whole stack is recompiled.
An example output (scroll to the bottom): https://gitlab.idiap.ch/bob/bob.nightlies/builds/41695
@tiago.pereira: would it be easy to extend the work you have done with gsvd to include bindings and test for the svd parts?https://gitlab.idiap.ch/bob/bob.math/-/issues/9On OSX, openblas is broken - a fix is needed2018-01-29T11:18:06ZAndré AnjosOn OSX, openblas is broken - a fix is neededThis bug has been opened for 1yr now: https://github.com/ContinuumIO/anaconda-issues/issues/608
Not clear it will be fixed anytime soon.
@tiago.pereira: On OSX, is it possible that you link against Accelerate instead? Or at least, don'...This bug has been opened for 1yr now: https://github.com/ContinuumIO/anaconda-issues/issues/608
Not clear it will be fixed anytime soon.
@tiago.pereira: On OSX, is it possible that you link against Accelerate instead? Or at least, don't use openblas.
@amohammadi: Please ping the relevant channels.Tiago de Freitas PereiraTiago de Freitas Pereirahttps://gitlab.idiap.ch/bob/bob.math/-/issues/8Bind SVD2018-01-29T11:18:06ZTiago de Freitas PereiraBind SVDSince we have the GSVD binded in both python and C++ levels, would be nice to have the SVD too.
This is much less work since SVD is already visible in the C++ levelSince we have the GSVD binded in both python and C++ levels, would be nice to have the SVD too.
This is much less work since SVD is already visible in the C++ levelTiago de Freitas PereiraTiago de Freitas Pereirahttps://gitlab.idiap.ch/bob/bob.math/-/issues/7Swap columns function2018-01-29T11:18:06ZTiago de Freitas PereiraSwap columns functionThe function `dggsvd3` from LAPACK returns column matrices in the wrong order.
However, it returns the necessary information to reorder the data in one pass.
We need a function called swap, in `bob::math::linear` that swaps the columns...The function `dggsvd3` from LAPACK returns column matrices in the wrong order.
However, it returns the necessary information to reorder the data in one pass.
We need a function called swap, in `bob::math::linear` that swaps the columns in a blitz array.Tiago de Freitas PereiraTiago de Freitas Pereirahttps://gitlab.idiap.ch/bob/bob.math/-/issues/6Bind Generalized SVD from LAPACK2018-01-29T11:18:06ZTiago de Freitas PereiraBind Generalized SVD from LAPACKBasically bind the `dggsvd3` function
http://www.netlib.org/lapack/explore-html/d1/d7e/group__double_g_esing_ga4a187519e5c71da3b3f67c85e9baf0f2.html#ga4a187519e5c71da3b3f67c85e9baf0f2Basically bind the `dggsvd3` function
http://www.netlib.org/lapack/explore-html/d1/d7e/group__double_g_esing_ga4a187519e5c71da3b3f67c85e9baf0f2.html#ga4a187519e5c71da3b3f67c85e9baf0f2Tiago de Freitas PereiraTiago de Freitas Pereirahttps://gitlab.idiap.ch/bob/bob.math/-/issues/5Tests timeout on Circle CI2018-01-29T11:18:06ZAmir MOHAMMADITests timeout on Circle CIhttps://circleci.com/gh/conda-forge/bob-feedstock/28
```
bob.math.test_lp_interior_point.test_solvers ...
command took more than 10 minutes since last output
```
This does not timeout in bob.math-feedstock rather in bob-feedstock.https://circleci.com/gh/conda-forge/bob-feedstock/28
```
bob.math.test_lp_interior_point.test_solvers ...
command took more than 10 minutes since last output
```
This does not timeout in bob.math-feedstock rather in bob-feedstock.Amir MOHAMMADIAmir MOHAMMADIhttps://gitlab.idiap.ch/bob/bob.math/-/issues/4setup.py does not work with NumPy manylinux1 wheel2018-01-29T11:18:06ZAndré Anjossetup.py does not work with NumPy manylinux1 wheel*Created by: siebenkopf*
When I install a new virtual environment (using ``virtual_build.sh`` from ``bob.nightlies``) by using the automatically downloaded NumPy wheel, I am not able to install bob.math in this environment. The error me...*Created by: siebenkopf*
When I install a new virtual environment (using ``virtual_build.sh`` from ``bob.nightlies``) by using the automatically downloaded NumPy wheel, I am not able to install bob.math in this environment. The error message that I get is:
```
$ virtualenv/bin/pip install bob.math
...
LAPACK/BLAS configuration from NumPy:
* system include directories:
* defines: -DHAVE_CBLAS=None
* linking arguments:
* libraries: openblas
* library directories: /usr/local/lib
...
/usr/bin/ld: cannot find -lopenblas
...
```
After some investigations, I found that the reason is that the NumPy wheel is created using openBLAS:
http://comments.gmane.org/gmane.comp.python.wheel-builders/18
which will result in the fact that the NumPy default options as used here:
https://github.com/bioidiap/bob.math/blob/master/setup.py#L124
are not working. After installing ``libopenblas-dev`` locally, ``bob.math`` compiles and installs, but when I try to use it, I get the error message:
```
$ virtualenv/bin/python
>>> import bob.math
OSError: virtualenv/local/lib/python2.7/site-packages/bob/math/libbob_math.so: undefined symbol: dsyevd_
```
Apparently, it still does not work, as openBLAS does not seem to come with a ``dsyevd_`` method.
My current solution is to force NumPy to be compiled from source, but this is not a good solution for people who are not very familiar with the installation process. A better solution would be to adapt the ``setup.py`` accordingly, i.e., to use the LAPACK/BLAS configuration that is available on the system, and do not rely on the NumPy build.https://gitlab.idiap.ch/bob/bob.math/-/issues/2Documentation is very poor and no users guide is available2018-01-29T11:18:07ZAndré AnjosDocumentation is very poor and no users guide is available*Created by: siebenkopf*
I had a look into the bob.math documentation and found that there are some classes and functions, which have little to no documentation. Also, many of the parameters lack documentation (which can be seen in the ...*Created by: siebenkopf*
I had a look into the bob.math documentation and found that there are some classes and functions, which have little to no documentation. Also, many of the parameters lack documentation (which can be seen in the automatically generated TODO list in the documentation:
https://www.idiap.ch/software/bob/docs/latest/bioidiap/bob.math/master/index.html
(which I have moved below the documentation in the ``rebind`` branch that I will merge soon).
It would be nice if anyone (who knows, what the parameters are) could spend some time to document them. A proper users guide would be nice as well.
https://gitlab.idiap.ch/bob/bob.math/-/issues/1bob.math.linsolve parameter documentation in inconsistent order2018-01-29T11:18:07ZAndré Anjosbob.math.linsolve parameter documentation in inconsistent order*Created by: siebenkopf*
I just saw that the documented order of the parameters of ``bob.math.linsolve`` (and similar) is not the same as they are actually used:
https://github.com/bioidiap/bob.math/blob/master/bob/math/main.cpp#L93
h...*Created by: siebenkopf*
I just saw that the documented order of the parameters of ``bob.math.linsolve`` (and similar) is not the same as they are actually used:
https://github.com/bioidiap/bob.math/blob/master/bob/math/main.cpp#L93
https://github.com/bioidiap/bob.math/blob/master/bob/math/linsolve.cpp#L19
I think we should actually change the bindings, so that the parameters are actually **as currently documented** and not as currently used. This is the default way that we use in other packages as well, i.e., the optional output value should go last in the list of parameters, for example:
https://github.com/bioidiap/bob.learn.linear/blob/master/bob/learn/linear/pca.cpp#L180
If not desired otherwise, I will update the code accordingly.
Also, I have seen that we are binding ``nocheck`` (aka ``linsolve_``) functions, while in the other packages we removed the bindings for those. At the end, in the binding functions, in fact we **are checking** the parameters, even in the ``nocheck`` functions. Finally, the test does not take a lot of time, so the gain is not big. And, having no checks might result in crashes (SIGSEGV), which should be avoided in Python code.
So, if there are no objections, I will remove the bindings to those functions as well.
Both modifications will end up in an API change, so we get new version ``2.1.0``.Manuel Günthersiebenkopf@googlemail.comManuel Günthersiebenkopf@googlemail.com