10000 ENH: Add support for ATLAS > 3.9.33. by charris · Pull Request #5364 · numpy/numpy · GitHub
[go: up one dir, main page]

Skip to content

ENH: Add support for ATLAS > 3.9.33. #5364

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

Merged
merged 1 commit into from
Dec 24, 2014
Merged

Conversation

charris
Copy link
Member
@charris charris commented Dec 11, 2014

Recent ATLAS combines the previous libraries into two

  • libsatlas -- single threaded.
  • libtatlas -- threaded.

This fix is a bit of hack in that ATLAS > 3.9.33 is treated as a new,
separate library covered by atlas_3_10_info, but the latter derives
from atlas_info, which treats the cblas, atlas, and atlas_lapack
libraries separately, so the new info has a bit of repetition.

The alternative would be to rewrite atlas_info, but that can wait
on a larger cleanup of the build system.

Closes #3774.

@charris
Copy link
Member Author
charris commented Dec 11, 2014

Might be worth a backport now that fedora 21 is out.

@charris
Copy link
Member Author
charris commented Dec 20, 2014

Rebased for backport.

class atlas_3_10_info(atlas_info):
_lib_names = ['satlas']
#if sys.platform[:7] == 'freebsd':
## I don't think freebsd supports 3.10 at this time - 2014
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what would freebsd need if it would support it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I simply don't know. It was special cased before because FreeBSD used

_lib_atlas = ['atlas_r']
_lib_lapack = ['alapack_r']

I don't know what they will use for 3.10.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd remove the comment then, its only confusing

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Googling shows SAGE problems with FreeBSD, so probably the current situation is not good. There was a FreeBSD person posting a while back.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment removed.

Recent ATLAS combines the previous libraries into two

* libsatlas -- single threaded.
* libtatlas -- threaded.

This fix is a bit of hack in that ATLAS > 3.9.33 is treated as a new,
separate library covered by atlas_3_10_info, but the latter derived
from atlas_info, which treats the cblas, atlas, and atlas_lapack
libraries separately, so the new info has a bit of repetition.

The alternative would be to rewrite atlas_info, but that can wait
on a larger cleanup of the build system.

Closes numpy#3774.
charris added a commit that referenced this pull request Dec 24, 2014
ENH: Add support for ATLAS > 3.9.33.
@charris charris merged commit aa95d5d into numpy:master Dec 24, 2014
@rgommers
Copy link
Member

Note that on Ubuntu ATLAS 3.10 gets recognized fine by the old atlas_info, so the output is now a little confusing:

>>> np.show_config()
lapack_opt_info:
    libraries = ['lapack', 'f77blas', 'cblas', 'atlas']
    library_dirs = ['/usr/lib/atlas-base/atlas', '/usr/lib/atlas-base']
    define_macros = [('ATLAS_INFO', '"\\"3.10.1\\""')]
    language = f77
    include_dirs = ['/usr/include/atlas']
openblas_lapack_info:
  NOT AVAILABLE
atlas_3_10_blas_threads_info:
  NOT AVAILABLE
atlas_threads_info:
  NOT AVAILABLE
atlas_3_10_threads_info:
  NOT AVAILABLE
atlas_blas_info:
    libraries = ['f77blas', 'cblas', 'atlas']
    library_dirs = ['/usr/lib/atlas-base']
    define_macros = [('HAVE_CBLAS', None), ('ATLAS_INFO', '"\\"3.10.1\\""')]
    language = c
    include_dirs = ['/usr/include/atlas']
atlas_3_10_blas_info:
  NOT AVAILABLE
atlas_blas_threads_info:
  NOT AVAILABLE
openblas_info:
  NOT AVAILABLE
blas_mkl_info:
  NOT AVAILABLE
blas_opt_info:
    libraries = ['f77blas', 'cblas', 'atlas']
    library_dirs = ['/usr/lib/atlas-base']
    define_macros = [('HAVE_CBLAS', None), ('ATLAS_INFO', '"\\"3.10.1\\""')]
    language = c
    include_dirs = ['/usr/include/atlas']
atlas_info:
    libraries = ['lapack', 'f77blas', 'cblas', 'atlas']
    library_dirs = ['/usr/lib/atlas-base/atlas', '/usr/lib/atlas-base']
    define_macros = [('ATLAS_INFO', '"\\"3.10.1\\""')]
    language = f77
    include_dirs = ['/usr/include/atlas']
atlas_3_10_info:
  NOT AVAILABLE
lapack_mkl_info:
  NOT AVAILABLE
mkl_info:
  NOT AVAILABLE

I verified that this PR doesn't break anything there though, so it's OK for now. Some comments in the file to explain why the atlas_3_10 stuff is necessary would be useful though.

@charris charris deleted the detect_atlas_3_10 branch February 17, 2015 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support atlas 3.10
3 participants
0