diff --git a/tests/test_benchmark_vector.py b/tests/test_benchmark_vector.py new file mode 100644 index 0000000000000000000000000000000000000000..5f73e77244ffb1ad29b9fba424018ae90a3dd3ba --- /dev/null +++ b/tests/test_benchmark_vector.py @@ -0,0 +1,29 @@ +import subprocess +import numpy as np +import sympy as sp +import pystencils as ps +from pystencils_benchmark import generate_benchmark, Compiler +from pathlib import Path + + +def test_generate(): + path = Path.cwd() / 'test' + path.mkdir(parents=True, exist_ok=True) + a, b, c = ps.fields(a=np.ones(4000000), b=np.ones(4000000), c=np.ones(4000000)) + alpha = sp.symbols('alpha') + + @ps.kernel_config(ps.CreateKernelConfig(cpu_vectorize_info={'instruction_set': 'best'})) + def vadd(): + a[0] @= b[0] + c[0] + kernel_vadd = ps.create_kernel(**vadd) + + @ps.kernel_config(ps.CreateKernelConfig(cpu_vectorize_info={'instruction_set': 'best'})) + def daxpy(): + b[0] @= alpha * a[0] + b[0] + kernel_daxpy = ps.create_kernel(**daxpy) + + for compiler in [Compiler.GCC, Compiler.GCCdebug, Compiler.Clang]: + generate_benchmark([kernel_vadd, kernel_daxpy], path, compiler=compiler) + subprocess.run(['make', '-C', f'{path}'], check=True) + subprocess.run([f'{path}/benchmark-{compiler.name}', '10'], check=True) +