From e28da7a3d50862fa99b8b704d60fc6543b5af631 Mon Sep 17 00:00:00 2001 From: Matthew Badin Date: Wed, 28 Apr 2021 16:56:01 -0700 Subject: BLD: Enable Accelerate Framework --- numpy/distutils/system_info.py | 54 +++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 35 deletions(-) (limited to 'numpy/distutils') diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py index 9e192329f..082b029d7 100644 --- a/numpy/distutils/system_info.py +++ b/numpy/distutils/system_info.py @@ -375,22 +375,6 @@ default_src_dirs = [_m for _m in default_src_dirs if os.path.isdir(_m)] so_ext = get_shared_lib_extension() -def is_symlink_to_accelerate(filename): - accelpath = '/System/Library/Frameworks/Accelerate.framework' - return (sys.platform == 'darwin' and os.path.islink(filename) and - os.path.realpath(filename).startswith(accelpath)) - - -_accel_msg = ( - 'Found {filename}, but that file is a symbolic link to the ' - 'MacOS Accelerate framework, which is not supported by NumPy. ' - 'You must configure the build to use a different optimized library, ' - 'or disable the use of optimized BLAS and LAPACK by setting the ' - 'environment variables NPY_BLAS_ORDER="" and NPY_LAPACK_ORDER="" ' - 'before building NumPy.' -) - - def get_standard_file(fname): """Returns a list of files named 'fname' from 1) System-wide directory (directory-location of this module) @@ -539,6 +523,7 @@ def get_info(name, notfound_action=0): 'blis': blis_info, # use blas_opt instead 'lapack_mkl': lapack_mkl_info, # use lapack_opt instead 'blas_mkl': blas_mkl_info, # use blas_opt instead + 'accelerate': accelerate_info, # use blas_opt instead 'openblas64_': openblas64__info, 'openblas64__lapack': openblas64__lapack_info, 'openblas_ilp64': openblas_ilp64_info, @@ -1029,9 +1014,6 @@ class system_info: for prefix in lib_prefixes: p = self.combine_paths(lib_dir, prefix + lib + ext) if p: - # p[0] is the full path to the binary library file. - if is_symlink_to_accelerate(p[0]): - raise RuntimeError(_accel_msg.format(filename=p[0])) break if p: assert len(p) == 1 @@ -1766,10 +1748,18 @@ def get_atlas_version(**config): class lapack_opt_info(system_info): notfounderror = LapackNotFoundError + # List of all known LAPACK libraries, in the default order - lapack_order = ['mkl', 'openblas', 'flame', 'atlas', 'lapack'] + lapack_order = ['accelerate', 'mkl', 'openblas', 'flame', 'atlas', 'lapack'] order_env_var_name = 'NPY_LAPACK_ORDER' + def _calc_info_accelerate(self): + info = get_info('accelerate') + if info: + self.set_info(**info) + return True + return False + def _calc_info_mkl(self): info = get_info('lapack_mkl') if info: @@ -1820,13 +1810,6 @@ class lapack_opt_info(system_info): return True return False - def _calc_info_accelerate(self): - info = get_info('accelerate') - if info: - self.set_info(**info) - return True - return False - def _get_info_blas(self): # Default to get the optimized BLAS implementation info = get_info('blas_opt') @@ -1942,9 +1925,17 @@ class lapack64__opt_info(lapack_ilp64_opt_info): class blas_opt_info(system_info): notfounderror = BlasNotFoundError # List of all known BLAS libraries, in the default order - blas_order = ['mkl', 'blis', 'openblas', 'atlas', 'blas'] + + blas_order = ['accelerate', 'mkl', 'blis', 'openblas', 'atlas', 'blas'] order_env_var_name = 'NPY_BLAS_ORDER' + def _calc_info_accelerate(self): + info = get_info('accelerate') + if info: + self.set_info(**info) + return True + return False + def _calc_info_mkl(self): info = get_info('blas_mkl') if info: @@ -1979,13 +1970,6 @@ class blas_opt_info(system_info): return True return False - def _calc_info_accelerate(self): - info = get_info('accelerate') - if info: - self.set_info(**info) - return True - return False - def _calc_info_blas(self): # Warn about a non-optimized BLAS library warnings.warn(BlasOptNotFoundError.__doc__ or '', stacklevel=3) -- cgit v1.2.1 From ee56322f91788c97d4a41fdf4ae66aa45310553c Mon Sep 17 00:00:00 2001 From: Matthew Badin Date: Fri, 30 Apr 2021 14:03:55 -0700 Subject: BLD: Address lint issues and reviewer comments. --- numpy/distutils/system_info.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'numpy/distutils') diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py index 082b029d7..7a031bf9e 100644 --- a/numpy/distutils/system_info.py +++ b/numpy/distutils/system_info.py @@ -1750,7 +1750,8 @@ class lapack_opt_info(system_info): notfounderror = LapackNotFoundError # List of all known LAPACK libraries, in the default order - lapack_order = ['accelerate', 'mkl', 'openblas', 'flame', 'atlas', 'lapack'] + lapack_order = ['mkl', 'openblas', 'flame', + 'accelerate', 'atlas', 'lapack'] order_env_var_name = 'NPY_LAPACK_ORDER' def _calc_info_accelerate(self): @@ -1926,7 +1927,8 @@ class blas_opt_info(system_info): notfounderror = BlasNotFoundError # List of all known BLAS libraries, in the default order - blas_order = ['accelerate', 'mkl', 'blis', 'openblas', 'atlas', 'blas'] + blas_order = ['mkl', 'blis', 'openblas', + 'accelerate', 'atlas', 'blas'] order_env_var_name = 'NPY_BLAS_ORDER' def _calc_info_accelerate(self): -- cgit v1.2.1 From ec479e0edceb5759d24d4521e56ad8f63cc26354 Mon Sep 17 00:00:00 2001 From: Matthew Badin Date: Sat, 1 May 2021 11:30:24 -0700 Subject: BLD: Minimize diff --- numpy/distutils/system_info.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'numpy/distutils') diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py index 7a031bf9e..234b4afc9 100644 --- a/numpy/distutils/system_info.py +++ b/numpy/distutils/system_info.py @@ -1754,13 +1754,6 @@ class lapack_opt_info(system_info): 'accelerate', 'atlas', 'lapack'] order_env_var_name = 'NPY_LAPACK_ORDER' - def _calc_info_accelerate(self): - info = get_info('accelerate') - if info: - self.set_info(**info) - return True - return False - def _calc_info_mkl(self): info = get_info('lapack_mkl') if info: @@ -1811,6 +1804,13 @@ class lapack_opt_info(system_info): return True return False + def _calc_info_accelerate(self): + info = get_info('accelerate') + if info: + self.set_info(**info) + return True + return False + def _get_info_blas(self): # Default to get the optimized BLAS implementation info = get_info('blas_opt') @@ -1931,13 +1931,6 @@ class blas_opt_info(system_info): 'accelerate', 'atlas', 'blas'] order_env_var_name = 'NPY_BLAS_ORDER' - def _calc_info_accelerate(self): - info = get_info('accelerate') - if info: - self.set_info(**info) - return True - return False - def _calc_info_mkl(self): info = get_info('blas_mkl') if info: @@ -1972,6 +1965,13 @@ class blas_opt_info(system_info): return True return False + def _calc_info_accelerate(self): + info = get_info('accelerate') + if info: + self.set_info(**info) + return True + return False + def _calc_info_blas(self): # Warn about a non-optimized BLAS library warnings.warn(BlasOptNotFoundError.__doc__ or '', stacklevel=3) -- cgit v1.2.1