From 0c2607836e2dc3fcdf6d2c109ad35824b9df6b27 Mon Sep 17 00:00:00 2001
From: Stephan Seitz <stephan.seitz@fau.de>
Date: Fri, 13 Mar 2020 14:25:40 +0100
Subject: [PATCH] Avoid copying of projection matrices on each kernel call

---
 src/pyronn_torch/PYRO-NN-Layers | 2 +-
 src/pyronn_torch/conebeam.py    | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/pyronn_torch/PYRO-NN-Layers b/src/pyronn_torch/PYRO-NN-Layers
index 32dd8e7..1d10af3 160000
--- a/src/pyronn_torch/PYRO-NN-Layers
+++ b/src/pyronn_torch/PYRO-NN-Layers
@@ -1 +1 @@
-Subproject commit 32dd8e7e0f43fc80a5ef905535c5212dea0c0773
+Subproject commit 1d10af309ff19d637bf4e991f4cb0aa58b561840
diff --git a/src/pyronn_torch/conebeam.py b/src/pyronn_torch/conebeam.py
index 5343f8c..aa0819e 100644
--- a/src/pyronn_torch/conebeam.py
+++ b/src/pyronn_torch/conebeam.py
@@ -155,7 +155,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))).cpu().contiguous()
+            map(torch.from_numpy, self._projection_matrices_numpy))).cuda().contiguous()
 
         inv_spacing = np.array([1/s for s in reversed(self._volume_spacing)], np.float32)
 
@@ -167,6 +167,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))).cpu().contiguous()
-        self._source_points = torch.stack(tuple(map(torch.from_numpy, source_points))).cpu().contiguous()
+        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._projection_multiplier = 1.
-- 
GitLab