Skip to content
Snippets Groups Projects
Commit 2e0fe3a6 authored by Dominic Kempf's avatar Dominic Kempf
Browse files

[!288] Correctly skip vectorization in case boundary is not sumfact

Merge branch 'bugfix/abort-vectorization' into 'master'

See merge request [extensions/dune-codegen!288]

  [extensions/dune-codegen!288]: Noneextensions/dune-codegen/merge_requests/288
parents b1bcb542 0fa9b6c6
No related branches found
No related tags found
No related merge requests found
...@@ -564,12 +564,10 @@ def extract_kernel_from_cache(tag, name, signature, wrap_in_cgen=True, add_timin ...@@ -564,12 +564,10 @@ def extract_kernel_from_cache(tag, name, signature, wrap_in_cgen=True, add_timin
kernel = heuristic_duplication(kernel) kernel = heuristic_duplication(kernel)
# Maybe apply vectorization strategies # Maybe apply vectorization strategies
if get_form_option("vectorization_quadloop"): if get_form_option("vectorization_quadloop") and get_form_option("sumfact"):
if get_form_option("sumfact"): from dune.codegen.loopy.transformations.vectorize_quad import vectorize_quadrature_loop
from dune.codegen.loopy.transformations.vectorize_quad import vectorize_quadrature_loop kernel = vectorize_quadrature_loop(kernel)
kernel = vectorize_quadrature_loop(kernel)
else:
raise NotImplementedError("Only vectorizing sumfactorized code right now!")
if get_form_option("vectorization_blockstructured"): if get_form_option("vectorization_blockstructured"):
from dune.codegen.blockstructured.vectorization import vectorize_micro_elements from dune.codegen.blockstructured.vectorization import vectorize_micro_elements
kernel = vectorize_micro_elements(kernel) kernel = vectorize_micro_elements(kernel)
......
...@@ -273,7 +273,7 @@ def decide_vectorization_strategy(): ...@@ -273,7 +273,7 @@ def decide_vectorization_strategy():
all_sumfacts, active_sumfacts, inactive_sumfacts = filter_active_inactive_sumfacts() all_sumfacts, active_sumfacts, inactive_sumfacts = filter_active_inactive_sumfacts()
# If no vectorization is needed, abort now # If no vectorization is needed, abort now
if get_form_option("vectorization_strategy") == "none" or (get_global_context_value("form_type") == "jacobian" and not get_form_option("vectorization_jacobians")): if get_form_option("vectorization_strategy") == "none" or (get_global_context_value("form_type") == "jacobian" and not get_form_option("vectorization_jacobians")) or not get_form_option("sumfact"):
for sf in all_sumfacts: for sf in all_sumfacts:
_cache_vectorization_info(sf, sf.copy(buffer=get_counted_variable("buffer"))) _cache_vectorization_info(sf, sf.copy(buffer=get_counted_variable("buffer")))
return return
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment