def test_device_gpu(self): import cupy as cp mv = MedicalVolume(np.ones((10, 20, 30)), self._AFFINE) mv_gpu = mv.to(Device(0)) assert mv_gpu.device == Device(0) assert isinstance(mv_gpu.volume, cp.ndarray) assert isinstance(mv_gpu.affine, np.ndarray) assert mv_gpu.is_same_dimensions(mv) assert cp.all((mv_gpu + 1).volume == 2) assert cp.all((mv_gpu - 1).volume == 0) assert cp.all((mv_gpu * 2).volume == 2) assert cp.all((mv_gpu / 2).volume == 0.5) assert cp.all((mv_gpu > 0).volume) assert cp.all((mv_gpu >= 0).volume) assert cp.all((mv_gpu < 2).volume) assert cp.all((mv_gpu <= 2).volume) ornt = tuple(x[::-1] for x in mv_gpu.orientation[::-1]) mv2 = mv_gpu.reformat(ornt) assert mv2.orientation == ornt mv_cpu = mv_gpu.cpu() assert mv_cpu.device == Device(-1) assert mv_cpu.is_identical(mv) with self.assertRaises(RuntimeError): mv_gpu.save_volume( os.path.join(self._TEMP_PATH, "test_device.nii.gz"))
def test_array_gpu(self): import cupy as cp mv = MedicalVolume(np.ones((10, 20, 30)), self._AFFINE) mv_gpu = mv.to(Device(0)) data = cp.asarray(mv_gpu) assert cp.shares_memory(data, mv_gpu.volume)
def test_device(self): mv = MedicalVolume(np.ones((10, 20, 30)), self._AFFINE) assert mv.to(Device(-1)) == mv assert mv.cpu() == mv