Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Mar 2022 22:34:56 +0000
From:      bugzilla-noreply@freebsd.org
To:        python@FreeBSD.org
Subject:   [Bug 257400] science/py-scipy Add OPTION for Atlas blas
Message-ID:  <bug-257400-21822-8rsAsTrySy@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-257400-21822@https.bugs.freebsd.org/bugzilla/>
References:  <bug-257400-21822@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D257400

alt2600@icloud.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #229421|0                           |1
        is obsolete|                            |

--- Comment #11 from alt2600@icloud.com ---
Created attachment 232395
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D232395&action=
=3Dedit
git-diff-py-scipy-atlas-rev3.diff

with the 1.8.0 py-scipy release it has become trivially easy to support
multiple BLAS libraries, no more janky hacks adapted from py-numpy are
necessary. As I have heard no feedback in months on if this patch will be
accepted or not this will be the last time I update it for new versions of
py-scipy. At this point I'll just make it work for myself as need arises, a=
nd
if anyone else wants it this diff will show the basics, but essentially it =
just
takes a single radio that either uses blaslapack:atlas, for atlas, or uses =
the
lib depends on blas and openblas for openblas. In principal this should work
with netlib, but it you have atlas it will be chosen over netlib so I didnt
implement, but uses blaslapack should make it work fine if you do not have
openblas nor atlas installed. I kept OPENBLAS the default, despite it being
conflicting and not the default blas library for ports, as that is what it =
is
now.

for those looking in the future you can enable options like this

delete the LIB_DEPENDS line referencing blas and openblas and add this or j=
ust
add blaslapack:atlas to the USES line after deleting the LIB_DEPENDS line a=
nd
its ATLAS only for you.


OPTIONS_DEFAULT=3D OPENBLAS
OPTIONS_SINGLE=3D         BLASLIB
OPTIONS_SINGLE_BLASLIB=3D ATLAS OPENBLAS
ATLAS_USES=3D             blaslapack:atlas
OPENBLAS_LIB_DEPENDS=3D   libblas.so:math/blas \
                        libopenblas.so:math/openblas

tweak your default if you want or make sure to use OPTION_SET and OPTION_UN=
SET
using ports.conf if using portconf

=3D=3D OPENBLAS OPTION configure snippet
lapack_opt_info:
lapack_mkl_info:
customize UnixCCompiler
C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG
-O2 -pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -=
O2
-pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -fPIC

creating /tmp/tmpnwlzq1iw/tmp
creating /tmp/tmpnwlzq1iw/tmp/tmpnwlzq1iw
compile options: '-MMD -MF /tmp/tmpnwlzq1iw/file.c.d -c'
cc: /tmp/tmpnwlzq1iw/file.c
  libraries mkl_rt not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

openblas_lapack_info:
C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG
-O2 -pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -=
O2
-pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -fPIC

creating /tmp/tmpavviamb0/tmp
creating /tmp/tmpavviamb0/tmp/tmpavviamb0
compile options: '-c'
cc: /tmp/tmpavviamb0/source.c
cc /tmp/tmpavviamb0/tmp/tmpavviamb0/source.o -L/usr/local/lib
-L/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../
-lopenblas -lgfortran -o /tmp/tmpavviamb0/a.out
  FOUND:
    libraries =3D ['openblas', 'gfortran', 'openblas', 'gfortran']
    library_dirs =3D ['/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
    language =3D c
    define_macros =3D [('HAVE_CBLAS', None)]

  FOUND:
    libraries =3D ['openblas', 'gfortran', 'openblas', 'gfortran']
    library_dirs =3D ['/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
    language =3D c
    define_macros =3D [('HAVE_CBLAS', None)]

blas_opt_info:
blas_mkl_info:
  libraries mkl_rt not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

blis_info:
  libraries blis not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

openblas_info:
C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG
-O2 -pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -=
O2
-pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -fPIC

creating /tmp/tmpofuclsmh/tmp
creating /tmp/tmpofuclsmh/tmp/tmpofuclsmh
compile options: '-c'
cc: /tmp/tmpofuclsmh/source.c
cc /tmp/tmpofuclsmh/tmp/tmpofuclsmh/source.o -L/usr/local/lib
-L/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../
-lopenblas -lgfortran -o /tmp/tmpofuclsmh/a.out
  FOUND:
    libraries =3D ['openblas', 'gfortran', 'openblas', 'gfortran']
    library_dirs =3D ['/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
    language =3D c
    define_macros =3D [('HAVE_CBLAS', None)]

  FOUND:
    libraries =3D ['openblas', 'gfortran', 'openblas', 'gfortran']
    library_dirs =3D ['/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
    language =3D c
    define_macros =3D [('HAVE_CBLAS', None)]

non-existing path in 'scipy/signal/windows': 'tests'
non-existing path in 'scipy/sparse': 'sparsetools/sparsetools_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/bsr_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/csc_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/csr_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/other_impl.h'
[makenpz] scipy/special/tests/data/boost.npz not rebuilt
[makenpz] scipy/special/tests/data/gsl.npz not rebuilt
[makenpz] scipy/special/tests/data/local.npz not rebuilt
running config

=3D=3D=3DOPENBLAS OPTION check-orphans
=3D=3D=3D=3D> Checking for pkg-plist issues (check-plist)
=3D=3D=3D> Parsing plist
=3D=3D=3D> Checking for items in STAGEDIR missing from pkg-plist
=3D=3D=3D> Checking for items in pkg-plist which are not in STAGEDIR
=3D=3D=3D> No pkg-plist issues found (check-plist)


=3D=3D=3DOPENBLAS OPTION pkg info -d
py38-scipy-1.8.0
Depends on     :
        py38-numpy-1.20.3,1
        openblas-0.3.18,1
        blas-3.10.0
        python38-3.8.12_2
        gcc10-10.3.0
        py38-setuptools-57.0.0


=3D=3D=3DATLAS OPTION configure snippet
lapack_opt_info:
lapack_mkl_info:
customize UnixCCompiler
C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG
-O2 -pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -=
O2
-pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -fPIC

creating /tmp/tmppkk1xmzc/tmp
creating /tmp/tmppkk1xmzc/tmp/tmppkk1xmzc
compile options: '-MMD -MF /tmp/tmppkk1xmzc/file.c.d -c'
cc: /tmp/tmppkk1xmzc/file.c
  libraries mkl_rt not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

openblas_lapack_info:
  libraries openblas not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

openblas_clapack_info:
  libraries openblas,lapack not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

flame_info:
  libraries flame not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

atlas_3_10_threads_info:
Setting PTATLAS=3DATLAS
  libraries lapack_atlas not found in /usr/lib
  libraries ptf77blas,ptcblas not found in /usr/lib
  libraries lapack_atlas not found in /usr/local/lib
<class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
Setting PTATLAS=3DATLAS
get_default_fcompiler: matching types: '['gnu', 'gnu95']'
customize GnuFCompiler
Found executable /usr/local/bin/gfortran10
gnu: no Fortran 90 compiler found
Could not locate executable cc -shared
Found executable /usr/local/bin/ld
Found executable /usr/local/bin/ar
Found executable /usr/local/bin/ranlib
gnu: no Fortran 90 compiler found
customize Gnu95FCompiler
customize Gnu95FCompiler
customize Gnu95FCompiler using config
compiling '_configtest.c':

/* This file is generated from numpy/distutils/system_info.py */
void ATL_buildinfo(void);
int main(void) {
  ATL_buildinfo();
  return 0;
}

C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG
-O2 -pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -=
O2
-pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -fPIC

compile options: '-c'
cc: _configtest.c
cc _configtest.o -L/usr/local/lib -lptf77blas -lptcblas -o _configtest
ld: error: undefined symbol: ATL_buildinfo
>>> referenced by _configtest.c
>>>               _configtest.o:(main)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
failure.
removing: _configtest.c _configtest.o _configtest.o.d
Status: 255
Output: compiling '_configtest.c':

/* This file is generated from numpy/distutils/system_info.py */
void ATL_buildinfo(void);
int main(void) {
  ATL_buildinfo();
  return 0;
}

C compiler: cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG
-O2 -pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -=
O2
-pipe -march=3Dwestmere -fstack-protector-strong -fno-strict-aliasing -fPIC

compile options: '-c'
cc: _configtest.c
cc _configtest.o -L/usr/local/lib -lptf77blas -lptcblas -o _configtest

Setting PTATLAS=3DATLAS
Setting PTATLAS=3DATLAS
Setting PTATLAS=3DATLAS
  libraries tatlas not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
Library tatlas was not found. Ignoring
  FOUND:
    include_dirs =3D ['/usr/local/include']
    language =3D f77
    libraries =3D ['alapack', 'ptf77blas', 'ptcblas']
    library_dirs =3D ['/usr/local/lib']

  FOUND:
    include_dirs =3D ['/usr/local/include']
    language =3D f77
    libraries =3D ['alapack', 'ptf77blas', 'ptcblas']
    library_dirs =3D ['/usr/local/lib']

blas_opt_info:
blas_mkl_info:
  libraries mkl_rt not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

blis_info:
  libraries blis not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

openblas_info:
  libraries openblas not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

atlas_3_10_blas_threads_info:
Setting PTATLAS=3DATLAS
  libraries tatlas not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

atlas_3_10_blas_info:
  libraries satlas not found in ['/usr/lib', '/usr/local/lib',
'/usr/local/lib/gcc10/gcc/x86_64-portbld-freebsd13.0/10.3.0/../../../']
  NOT AVAILABLE

atlas_blas_threads_info:
Setting PTATLAS=3DATLAS
Setting PTATLAS=3DATLAS
Setting PTATLAS=3DATLAS
Setting PTATLAS=3DATLAS
Setting PTATLAS=3DATLAS
  FOUND:
    include_dirs =3D ['/usr/local/include']
    language =3D c
    define_macros =3D [('HAVE_CBLAS', None)]
    libraries =3D ['ptf77blas', 'ptcblas', 'ptf77blas', 'ptcblas']
    library_dirs =3D ['/usr/local/lib']

  FOUND:
    include_dirs =3D ['/usr/local/include']
    language =3D c
    define_macros =3D [('HAVE_CBLAS', None)]
    libraries =3D ['ptf77blas', 'ptcblas', 'ptf77blas', 'ptcblas']
    library_dirs =3D ['/usr/local/lib']

non-existing path in 'scipy/signal/windows': 'tests'
non-existing path in 'scipy/sparse': 'sparsetools/sparsetools_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/bsr_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/csc_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/csr_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/other_impl.h'
[makenpz] scipy/special/tests/data/boost.npz not rebuilt
[makenpz] scipy/special/tests/data/gsl.npz not rebuilt
[makenpz] scipy/special/tests/data/local.npz not rebuilt
running config


=3D=3D=3DATLAS OPTION check-orphans
=3D=3D=3D=3D> Checking for pkg-plist issues (check-plist)
=3D=3D=3D> Parsing plist
=3D=3D=3D> Checking for items in STAGEDIR missing from pkg-plist
=3D=3D=3D> Checking for items in pkg-plist which are not in STAGEDIR
=3D=3D=3D> No pkg-plist issues found (check-plist)


=3D=3D=3DATLAS OPTION pkg info -d
py38-scipy-1.8.0:
        py38-numpy-1.20.3,1
        atlas-math-3.8.4_18,1
        python38-3.8.12_2
        gcc10-10.3.0
        py38-setuptools-57.0.0

--=20
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-257400-21822-8rsAsTrySy>