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
No related merge requests found
......@@ -40,11 +40,12 @@ class CodeGeneration:
def parse_json_args():
default = {'EXPECTED_FILES': [],
'CMAKE_VARS': {'WALBERLA_BUILD_WITH_OPENMP': False,
'WALBERLA_OPTIMIZE_FOR_LOCALHOST': False,
'WALBERLA_DOUBLE_ACCURACY': True,
'WALBERLA_BUILD_WITH_MPI': True}
}
'CMAKE_VARS': {'WALBERLA_BUILD_WITH_OPENMP': False,
'WALBERLA_OPTIMIZE_FOR_LOCALHOST': False,
'WALBERLA_DOUBLE_ACCURACY': True,
'WALBERLA_BUILD_WITH_MPI': True,
'WALBERLA_BUILD_WITH_CUDA': False}
}
if len(sys.argv) == 2:
try:
......@@ -72,6 +73,7 @@ class CodeGenerationContext:
self.optimize_for_localhost = cmake_vars['WALBERLA_OPTIMIZE_FOR_LOCALHOST']
self.mpi = cmake_vars['WALBERLA_BUILD_WITH_MPI']
self.double_accuracy = cmake_vars['WALBERLA_DOUBLE_ACCURACY']
self.cuda = cmake_vars['WALBERLA_BUILD_WITH_CUDA']
def write_file(self, name, content):
self.files_written.append(os.path.abspath(name))
......@@ -90,6 +92,7 @@ class ManualCodeGenerationContext:
self.mpi = mpi
self.double_accuracy = double_accuracy
self.files = dict()
self.cuda = False
def write_file(self, name, content):
self.files[name] = content
......
......@@ -23,6 +23,9 @@ def generate_sweep(generation_context, class_name, assignments,
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:
ast = create_kernel(assignments, **create_kernel_params)
else:
......@@ -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)
target = create_kernel_params.get('target', 'cpu')
if not generation_context.cuda and target == 'gpu':
return
fields_accessed = set()
for terms in directions_to_pack_terms.values():
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