Exemplo n.º 1
0
        public void CopyCpuToCuda()
        {
            TorchTensor cpu = FloatTensor.Ones(new long[] { 2, 2 });

            Assert.Equal("cpu", cpu.DeviceString);

            if (Torch.IsCudaAvailable())
            {
                var cuda = cpu.Cuda();
                Assert.Equal("cuda:0", cuda.DeviceString);

                // Copy back to CPU to inspect the elements
                var cpu2 = cuda.Cpu();
                Assert.Equal("cpu", cpu2.DeviceString);
                var data = cpu.Data <float>();
                for (int i = 0; i < 4; i++)
                {
                    Assert.Equal(1, data[i]);
                }
            }
            else
            {
                Assert.Throws <InvalidOperationException>(() => cpu.Cuda());
            }
        }
Exemplo n.º 2
0
        public void CopyCpuToCuda()
        {
            TorchTensor cpu = FloatTensor.Ones(new long[] { 2, 2 });

            Assert.AreEqual(cpu.Device, "cpu");

            if (Torch.IsCudaAvailable())
            {
                var cuda = cpu.Cuda();
                Assert.AreEqual(cuda.Device, "cuda");

                // Copy back to CPU to inspect the elements
                cpu = cuda.Cpu();
                var data = cpu.Data <float>();
                for (int i = 0; i < 4; i++)
                {
                    Assert.AreEqual(data[i], 1);
                }
            }
            else
            {
                Assert.ThrowsException <InvalidOperationException>(() => cpu.Cuda());
            }
        }