diff --git a/cmake_integration.py b/cmake_integration.py index fba134ded1415aeb0fc36a449522cd8e0a2a1406..00321a58768549452a12d4edcec242650bf0916e 100644 --- a/cmake_integration.py +++ b/cmake_integration.py @@ -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 diff --git a/codegen.py b/codegen.py index fb7fc6e3edd8b47d722825089fa7c282accbf710..4d7612dce85673b337e38e09b84d51be4e7ea85f 100644 --- a/codegen.py +++ b/codegen.py @@ -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: