diff --git a/setup.py b/setup.py index 937d063bc0d9728b777a25af59e6f5d1e1a8a235..8b194f67980b4f05e23cca6048b4d7b545617ea5 100644 --- a/setup.py +++ b/setup.py @@ -1,12 +1,3 @@ -# -*- coding: utf-8 -*- -""" - Setup file for pyronn_torch. - Use setup.cfg to configure your project. - - This file was generated with PyScaffold 3.2.3. - PyScaffold helps you to put up the scaffold of your new Python project. - Learn more under: https://pyscaffold.org/ -""" import sys from pkg_resources import VersionConflict, require diff --git a/src/pyronn_torch/codegen.py b/src/pyronn_torch/codegen.py index 0021721409ecd6dbfaf0c7eccdb4653ecee79c04..4783c709dd5126bff458968dcb9b9fbce6636e62 100644 --- a/src/pyronn_torch/codegen.py +++ b/src/pyronn_torch/codegen.py @@ -170,8 +170,7 @@ def generate_shared_object(output_folder=None, source_files=None, show_code=Fals copyfile(s, dst) # Torch only accepts *.cu as CUDA cuda_sources.append(dst) - functions = [WrapperFunction(Block([v]), function_name=k) for k, v in FUNCTIONS.items()] - module = TorchModule(module_name, functions, wrap_wrapper_functions=True) + module = TorchModule(module_name, FUNCTIONS.values()) if show_code: pystencils.show_code(module, custom_backend=FrameworkIntegrationPrinter()) @@ -183,7 +182,9 @@ def generate_shared_object(output_folder=None, source_files=None, show_code=Fals shared_object_file = module.compiled_file copyfile(shared_object_file, join(output_folder, module_name + '.so')) - copyfile(module.compiled_file, join(output_folder, 'pyronn_torch.cpp')) + if show_code: + with open(join(output_folder, 'pyronn_torch.cpp'), 'w') as f: + f.write(pystencils.get_code_str(module, custom_backend=FrameworkIntegrationPrinter())) return extension diff --git a/src/pyronn_torch/conebeam.py b/src/pyronn_torch/conebeam.py index ffc2479b1177ef03128085662f42555bf1bc5297..09e4f4073a4b64806251d2c10d1573de71403d42 100644 --- a/src/pyronn_torch/conebeam.py +++ b/src/pyronn_torch/conebeam.py @@ -47,7 +47,7 @@ class ConeBeamProjector: self.source_points, self.step_size, volume, - *reversed(self.volume_spacing)) + *self.volume_spacing) else: pyronn_torch.cpp_extension.call_Cone_Projection_Kernel_Launcher( self.inverse_matrices, @@ -55,7 +55,7 @@ class ConeBeamProjector: self.source_points, self.step_size, volume, - *reversed(self.volume_spacing)) + *self.volume_spacing) return projection, @@ -70,8 +70,8 @@ class ConeBeamProjector: projection_grad, self.projection_multiplier, volume_grad, - *reversed(self.volume_origin), - *reversed(self.volume_spacing)) + self.volume_origin, + self.volume_spacing) return volume_grad, @@ -142,7 +142,7 @@ class ConeBeamProjector: if self._projection_matrices_numpy is None: return self._projection_matrices = torch.stack(tuple( - map(torch.from_numpy, self._projection_matrices_numpy))).cuda().contiguous() + map(torch.from_numpy, self._projection_matrices_numpy))).cpu().contiguous() inv_spacing = np.array([1/s for s in reversed(self._volume_spacing)], np.float32) @@ -154,6 +154,6 @@ class ConeBeamProjector: inv_matrices = map(lambda x: (np.linalg.inv(x[:3, :3]) * inv_spacing).astype(np.float32), self._projection_matrices_numpy) - self._inverse_matrices = torch.stack(tuple(map(torch.from_numpy, inv_matrices))).cuda().contiguous() - self._source_points = torch.stack(tuple(map(torch.from_numpy, source_points))).cuda().contiguous() + self._inverse_matrices = torch.stack(tuple(map(torch.from_numpy, inv_matrices))).cpu().contiguous() + self._source_points = torch.stack(tuple(map(torch.from_numpy, source_points))).cpu().contiguous() self._projection_multiplier = 1. diff --git a/src/pyronn_torch/pyronn_torch.cpp b/src/pyronn_torch/pyronn_torch.cpp index e5defe1b03e85dd5e509bafb5dc48d231a72a526..411ee34186bfd8d9312547d27722a5d88f79cf4d 100644 Binary files a/src/pyronn_torch/pyronn_torch.cpp and b/src/pyronn_torch/pyronn_torch.cpp differ