From ae978b8a2bc4e7b219d796519f9327feb08fe4e7 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Tue, 27 Sep 2022 21:58:29 -0700 Subject: ENH: Add AVX-512 based 64-bit dtype sort --- numpy/core/setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'numpy/core/setup.py') diff --git a/numpy/core/setup.py b/numpy/core/setup.py index e509b9d11..912867709 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -650,6 +650,7 @@ def configuration(parent_package='',top_path=None): config.add_include_dirs(join('src', 'multiarray')) config.add_include_dirs(join('src', 'umath')) config.add_include_dirs(join('src', 'npysort')) + config.add_include_dirs(join('src', 'npysort', 'x86-simd-sort', 'src')) config.add_include_dirs(join('src', '_simd')) config.add_define_macros([("NPY_INTERNAL_BUILD", "1")]) # this macro indicates that Numpy build is in process @@ -942,7 +943,7 @@ def configuration(parent_package='',top_path=None): join('src', 'multiarray', 'usertypes.c'), join('src', 'multiarray', 'vdot.c'), join('src', 'common', 'npy_sort.h.src'), - join('src', 'npysort', 'x86-qsort.dispatch.cpp'), + join('src', 'npysort', 'x86-qsort-skx.dispatch.cpp'), join('src', 'npysort', 'quicksort.cpp'), join('src', 'npysort', 'mergesort.cpp'), join('src', 'npysort', 'timsort.cpp'), -- cgit v1.2.1 From 882503ac9383b3fff0ecf5423e732e64469347ba Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Wed, 28 Sep 2022 13:34:11 -0700 Subject: ENH: Add AVX-512 based 16-bit dtype sort --- numpy/core/setup.py | 1 + 1 file changed, 1 insertion(+) (limited to 'numpy/core/setup.py') diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 912867709..0331a2f9b 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -944,6 +944,7 @@ def configuration(parent_package='',top_path=None): join('src', 'multiarray', 'vdot.c'), join('src', 'common', 'npy_sort.h.src'), join('src', 'npysort', 'x86-qsort-skx.dispatch.cpp'), + join('src', 'npysort', 'x86-qsort-icl.dispatch.cpp'), join('src', 'npysort', 'quicksort.cpp'), join('src', 'npysort', 'mergesort.cpp'), join('src', 'npysort', 'timsort.cpp'), -- cgit v1.2.1 From 9edebc521b13bc2aa5a3367635730a4c4b4efac4 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Wed, 28 Sep 2022 22:22:41 -0700 Subject: Revert "ENH: Add AVX-512 based 16-bit dtype sort" This reverts commit 225c8bab83d239d8888bc7b688efed97ab2284cf. --- numpy/core/setup.py | 1 - 1 file changed, 1 deletion(-) (limited to 'numpy/core/setup.py') diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 0331a2f9b..912867709 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -944,7 +944,6 @@ def configuration(parent_package='',top_path=None): join('src', 'multiarray', 'vdot.c'), join('src', 'common', 'npy_sort.h.src'), join('src', 'npysort', 'x86-qsort-skx.dispatch.cpp'), - join('src', 'npysort', 'x86-qsort-icl.dispatch.cpp'), join('src', 'npysort', 'quicksort.cpp'), join('src', 'npysort', 'mergesort.cpp'), join('src', 'npysort', 'timsort.cpp'), -- cgit v1.2.1 From 92bd9902d4233d9f5befe05fd47bfb8b2d4e102a Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Mon, 10 Oct 2022 22:31:02 -0700 Subject: MAINT: Disable AVX-512 qsort on macOS and WIN32 --- numpy/core/setup.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'numpy/core/setup.py') diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 912867709..fb91f8e68 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -68,6 +68,15 @@ class CallOnceOnly: out = copy.deepcopy(pickle.loads(self._check_complex)) return out +# Temporarily disable AVX512 sorting on WIN32 and macOS until we can figure +# out why the build fails +def enable_avx512_qsort(): + enable = True + platform = sysconfig.get_platform() + if "win32" in platform or "macos" in platform: + enable = False + return enable + def can_link_svml(): """SVML library is supported only on x86_64 architecture and currently only on linux @@ -484,6 +493,9 @@ def configuration(parent_package='',top_path=None): if can_link_svml(): moredefs.append(('NPY_CAN_LINK_SVML', 1)) + if enable_avx512_qsort(): + moredefs.append(('NPY_ENABLE_AVX512_QSORT', 1)) + # Use bogus stride debug aid to flush out bugs where users use # strides of dimensions with length 1 to index a full contiguous # array. @@ -943,7 +955,6 @@ def configuration(parent_package='',top_path=None): join('src', 'multiarray', 'usertypes.c'), join('src', 'multiarray', 'vdot.c'), join('src', 'common', 'npy_sort.h.src'), - join('src', 'npysort', 'x86-qsort-skx.dispatch.cpp'), join('src', 'npysort', 'quicksort.cpp'), join('src', 'npysort', 'mergesort.cpp'), join('src', 'npysort', 'timsort.cpp'), @@ -967,6 +978,11 @@ def configuration(parent_package='',top_path=None): join('src', 'npymath', 'arm64_exports.c'), ] + if enable_avx512_qsort(): + multiarray_src += [ + join('src', 'npysort', 'x86-qsort-skx.dispatch.cpp'), + ] + ####################################################################### # _multiarray_umath module - umath part # ####################################################################### -- cgit v1.2.1 From 0d3feb0a829ea53d525487ea351055442b467c2c Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Tue, 11 Oct 2022 10:34:15 -0700 Subject: ENH: Add AVX-512 based 16-bit dtype sort This reverts commit 138ba7583253e7540a206e7f0df3edcd5e26c518. --- numpy/core/setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'numpy/core/setup.py') diff --git a/numpy/core/setup.py b/numpy/core/setup.py index fb91f8e68..c5d8564f9 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -73,7 +73,7 @@ class CallOnceOnly: def enable_avx512_qsort(): enable = True platform = sysconfig.get_platform() - if "win32" in platform or "macos" in platform: + if "win32" in platform: enable = False return enable @@ -981,6 +981,7 @@ def configuration(parent_package='',top_path=None): if enable_avx512_qsort(): multiarray_src += [ join('src', 'npysort', 'x86-qsort-skx.dispatch.cpp'), + join('src', 'npysort', 'x86-qsort-icl.dispatch.cpp'), ] ####################################################################### -- cgit v1.2.1 From c71352232164ab7ddc4142ebc1db694493b34ff9 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Tue, 11 Oct 2022 14:38:30 -0700 Subject: MAINT: Fix comment --- numpy/core/setup.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'numpy/core/setup.py') diff --git a/numpy/core/setup.py b/numpy/core/setup.py index c5d8564f9..3ab00205f 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -68,12 +68,11 @@ class CallOnceOnly: out = copy.deepcopy(pickle.loads(self._check_complex)) return out -# Temporarily disable AVX512 sorting on WIN32 and macOS until we can figure -# out why the build fails +# Temporarily disable AVX512 sorting on WIN32 until we can figure +# out why it has test failures def enable_avx512_qsort(): enable = True - platform = sysconfig.get_platform() - if "win32" in platform: + if "win32" in sysconfig.get_platform(): enable = False return enable -- cgit v1.2.1 From 6d26364d4ca94f86acf7c813d3a69431a75455d0 Mon Sep 17 00:00:00 2001 From: Sayed Adel Date: Tue, 7 Feb 2023 17:15:10 +0200 Subject: ENH, SIMD: reimplement CPU dispatching of qsort For a Few C++ More --- numpy/core/setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'numpy/core/setup.py') diff --git a/numpy/core/setup.py b/numpy/core/setup.py index 3ab00205f..cfae34e31 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -979,8 +979,8 @@ def configuration(parent_package='',top_path=None): if enable_avx512_qsort(): multiarray_src += [ - join('src', 'npysort', 'x86-qsort-skx.dispatch.cpp'), - join('src', 'npysort', 'x86-qsort-icl.dispatch.cpp'), + join('src', 'npysort', 'simd_qsort.dispatch.cpp'), + join('src', 'npysort', 'simd_qsort_16bit.dispatch.cpp'), ] ####################################################################### -- cgit v1.2.1 From 7ddb5daa866984caa78e3fa4b5cd4869f4ee94cf Mon Sep 17 00:00:00 2001 From: Sayed Adel Date: Tue, 7 Feb 2023 21:04:27 +0200 Subject: ENH, SIMD: removes #NPY_ENABLE_AVX512_QSORT and use #directives instead --- numpy/core/setup.py | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) (limited to 'numpy/core/setup.py') diff --git a/numpy/core/setup.py b/numpy/core/setup.py index cfae34e31..d6117f02d 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -68,14 +68,6 @@ class CallOnceOnly: out = copy.deepcopy(pickle.loads(self._check_complex)) return out -# Temporarily disable AVX512 sorting on WIN32 until we can figure -# out why it has test failures -def enable_avx512_qsort(): - enable = True - if "win32" in sysconfig.get_platform(): - enable = False - return enable - def can_link_svml(): """SVML library is supported only on x86_64 architecture and currently only on linux @@ -492,9 +484,6 @@ def configuration(parent_package='',top_path=None): if can_link_svml(): moredefs.append(('NPY_CAN_LINK_SVML', 1)) - if enable_avx512_qsort(): - moredefs.append(('NPY_ENABLE_AVX512_QSORT', 1)) - # Use bogus stride debug aid to flush out bugs where users use # strides of dimensions with length 1 to index a full contiguous # array. @@ -975,14 +964,10 @@ def configuration(parent_package='',top_path=None): # links to the arm64 npymath library, # see gh-22673 join('src', 'npymath', 'arm64_exports.c'), + join('src', 'npysort', 'simd_qsort.dispatch.cpp'), + join('src', 'npysort', 'simd_qsort_16bit.dispatch.cpp'), ] - if enable_avx512_qsort(): - multiarray_src += [ - join('src', 'npysort', 'simd_qsort.dispatch.cpp'), - join('src', 'npysort', 'simd_qsort_16bit.dispatch.cpp'), - ] - ####################################################################### # _multiarray_umath module - umath part # ####################################################################### -- cgit v1.2.1 From 472a47f8ea9aa9ffe933c15ac4c0c148570b1781 Mon Sep 17 00:00:00 2001 From: Sayed Adel Date: Tue, 7 Feb 2023 21:56:43 +0200 Subject: No need for add x86-simd-sort as global directory --- numpy/core/setup.py | 1 - 1 file changed, 1 deletion(-) (limited to 'numpy/core/setup.py') diff --git a/numpy/core/setup.py b/numpy/core/setup.py index d6117f02d..0793ad561 100644 --- a/numpy/core/setup.py +++ b/numpy/core/setup.py @@ -650,7 +650,6 @@ def configuration(parent_package='',top_path=None): config.add_include_dirs(join('src', 'multiarray')) config.add_include_dirs(join('src', 'umath')) config.add_include_dirs(join('src', 'npysort')) - config.add_include_dirs(join('src', 'npysort', 'x86-simd-sort', 'src')) config.add_include_dirs(join('src', '_simd')) config.add_define_macros([("NPY_INTERNAL_BUILD", "1")]) # this macro indicates that Numpy build is in process -- cgit v1.2.1