Skip to content
Snippets Groups Projects
Commit 594f6c3a authored by Martin Bauer's avatar Martin Bauer
Browse files

generate waLBerla CUDA kernels only if walberla is built with CUDA

parent ce061c41
Branches
Tags
No related merge requests found
...@@ -40,11 +40,12 @@ class CodeGeneration: ...@@ -40,11 +40,12 @@ class CodeGeneration:
def parse_json_args(): def parse_json_args():
default = {'EXPECTED_FILES': [], default = {'EXPECTED_FILES': [],
'CMAKE_VARS': {'WALBERLA_BUILD_WITH_OPENMP': False, 'CMAKE_VARS': {'WALBERLA_BUILD_WITH_OPENMP': False,
'WALBERLA_OPTIMIZE_FOR_LOCALHOST': False, 'WALBERLA_OPTIMIZE_FOR_LOCALHOST': False,
'WALBERLA_DOUBLE_ACCURACY': True, 'WALBERLA_DOUBLE_ACCURACY': True,
'WALBERLA_BUILD_WITH_MPI': True} 'WALBERLA_BUILD_WITH_MPI': True,
} 'WALBERLA_BUILD_WITH_CUDA': False}
}
if len(sys.argv) == 2: if len(sys.argv) == 2:
try: try:
...@@ -72,6 +73,7 @@ class CodeGenerationContext: ...@@ -72,6 +73,7 @@ class CodeGenerationContext:
self.optimize_for_localhost = cmake_vars['WALBERLA_OPTIMIZE_FOR_LOCALHOST'] self.optimize_for_localhost = cmake_vars['WALBERLA_OPTIMIZE_FOR_LOCALHOST']
self.mpi = cmake_vars['WALBERLA_BUILD_WITH_MPI'] self.mpi = cmake_vars['WALBERLA_BUILD_WITH_MPI']
self.double_accuracy = cmake_vars['WALBERLA_DOUBLE_ACCURACY'] self.double_accuracy = cmake_vars['WALBERLA_DOUBLE_ACCURACY']
self.cuda = cmake_vars['WALBERLA_BUILD_WITH_CUDA']
def write_file(self, name, content): def write_file(self, name, content):
self.files_written.append(os.path.abspath(name)) self.files_written.append(os.path.abspath(name))
...@@ -90,6 +92,7 @@ class ManualCodeGenerationContext: ...@@ -90,6 +92,7 @@ class ManualCodeGenerationContext:
self.mpi = mpi self.mpi = mpi
self.double_accuracy = double_accuracy self.double_accuracy = double_accuracy
self.files = dict() self.files = dict()
self.cuda = False
def write_file(self, name, content): def write_file(self, name, content):
self.files[name] = content self.files[name] = content
......
...@@ -23,6 +23,9 @@ def generate_sweep(generation_context, class_name, assignments, ...@@ -23,6 +23,9 @@ def generate_sweep(generation_context, class_name, assignments,
create_kernel_params = default_create_kernel_parameters(generation_context, create_kernel_params) create_kernel_params = default_create_kernel_parameters(generation_context, create_kernel_params)
if not generation_context.cuda and create_kernel_params['target'] == 'gpu':
return
if not staggered: if not staggered:
ast = create_kernel(assignments, **create_kernel_params) ast = create_kernel(assignments, **create_kernel_params)
else: else:
...@@ -105,6 +108,9 @@ def generate_pack_info(generation_context, class_name: str, ...@@ -105,6 +108,9 @@ def generate_pack_info(generation_context, class_name: str,
create_kernel_params = default_create_kernel_parameters(generation_context, create_kernel_params) create_kernel_params = default_create_kernel_parameters(generation_context, create_kernel_params)
target = create_kernel_params.get('target', 'cpu') target = create_kernel_params.get('target', 'cpu')
if not generation_context.cuda and target == 'gpu':
return
fields_accessed = set() fields_accessed = set()
for terms in directions_to_pack_terms.values(): for terms in directions_to_pack_terms.values():
for term in terms: for term in terms:
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment