From 50d53928234be0594657b74c8b4edae12e746eb0 Mon Sep 17 00:00:00 2001 From: Markus Holzer <markus.holzer@fau.de> Date: Sun, 6 Dec 2020 22:30:29 +0100 Subject: [PATCH] FIX pystencils install bug --- MANIFEST.in | 2 ++ pystencils_tests/test_vectorization.py | 2 +- .../test_vectorization_specific.py | 35 +++++++++++++++++++ setup.py | 3 +- 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 pystencils_tests/test_vectorization_specific.py diff --git a/MANIFEST.in b/MANIFEST.in index f32d4f3d1..5c16bb200 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,5 @@ include README.md include COPYING.txt include RELEASE-VERSION +global-include *.pyx +global-exclude boundaries/createindexlistcython.c diff --git a/pystencils_tests/test_vectorization.py b/pystencils_tests/test_vectorization.py index 3cc1be4f3..057402c33 100644 --- a/pystencils_tests/test_vectorization.py +++ b/pystencils_tests/test_vectorization.py @@ -42,7 +42,7 @@ def test_inplace_update(): f1 @= 2 * s.tmp0 f2 @= 2 * s.tmp0 - ast = ps.create_kernel(update_rule, cpu_vectorize_info={'instruction_set': 'avx'}) + ast = ps.create_kernel(update_rule, cpu_vectorize_info=True) kernel = ast.compile() kernel(f=arr) np.testing.assert_equal(arr, 2) diff --git a/pystencils_tests/test_vectorization_specific.py b/pystencils_tests/test_vectorization_specific.py new file mode 100644 index 000000000..6764f282b --- /dev/null +++ b/pystencils_tests/test_vectorization_specific.py @@ -0,0 +1,35 @@ +import pytest + +import numpy as np +import sympy as sp + +import pystencils as ps +from pystencils.backends.simd_instruction_sets import get_supported_instruction_sets +from pystencils.cpu.vectorization import vectorize +from pystencils.fast_approximation import insert_fast_sqrts, insert_fast_divisions +from pystencils.transformations import replace_inner_stride_with_one +from pystencils.backends.simd_instruction_sets import get_supported_instruction_sets + +supported_instruction_sets = get_supported_instruction_sets() if get_supported_instruction_sets() else [] + + +@pytest.mark.parametrize('instruction_set', supported_instruction_sets) +def test_vectorisation_varying_arch(instruction_set): + shape = (9, 9, 3) + arr = np.ones(shape, order='f') + + @ps.kernel + def update_rule(s): + f = ps.fields("f(3) : [2D]", f=arr) + s.tmp0 @= f(0) + s.tmp1 @= f(1) + s.tmp2 @= f(2) + f0, f1, f2 = f(0), f(1), f(2) + f0 @= 2 * s.tmp0 + f1 @= 2 * s.tmp0 + f2 @= 2 * s.tmp0 + + ast = ps.create_kernel(update_rule, cpu_vectorize_info={'instruction_set': instruction_set}) + kernel = ast.compile() + kernel(f=arr) + np.testing.assert_equal(arr, 2) diff --git a/setup.py b/setup.py index d917867c1..b209fcbb9 100644 --- a/setup.py +++ b/setup.py @@ -88,7 +88,8 @@ setuptools.setup(name='pystencils', install_requires=['sympy>=1.1', 'numpy', 'appdirs', 'joblib'], package_data={'pystencils': ['include/*.h', 'backends/cuda_known_functions.txt', - 'backends/opencl1.1_known_functions.txt']}, + 'backends/opencl1.1_known_functions.txt', + 'boundaries/createindexlistcython.pyx']}, ext_modules=cython_extensions("pystencils.boundaries.createindexlistcython") if USE_CYTHON else [], classifiers=[ -- GitLab