| 67 | ) |
| 68 | |
| 69 | def forward(self, blobs): |
| 70 | self.blobs_buf.from_torch(blobs.detach()) |
| 71 | self.device.render_context.wait_for_cuda() |
| 72 | vars = self.forward_pass.globals.forward |
| 73 | vars.blobs = self.blobs_buf |
| 74 | vars.blob_count = BLOB_COUNT |
| 75 | vars.image = self.image_buf |
| 76 | vars.resolution = falcor.uint2(RESOLUTION, RESOLUTION) |
| 77 | self.forward_pass.execute(threads_x=RESOLUTION, threads_y=RESOLUTION) |
| 78 | self.device.render_context.wait_for_falcor() |
| 79 | return self.image_buf.to_torch([RESOLUTION, RESOLUTION, 3], falcor.float32) |
| 80 | |
| 81 | def backward(self, blobs, grad_intensities): |
| 82 | self.grad_blobs_buf.from_torch(torch.zeros([BLOB_COUNT, 8]).cuda()) |