(self)
| 441 | @test_util.run_gpu_only |
| 442 | @reset_eager |
| 443 | def testVirtualGpu(self): |
| 444 | gpus = config.list_physical_devices('GPU') |
| 445 | self.assertNotEqual(len(gpus), 0) |
| 446 | |
| 447 | self.assertIsNone(config.get_virtual_device_configuration(gpus[-1])) |
| 448 | config.set_virtual_device_configuration(gpus[-1], [ |
| 449 | context.VirtualDeviceConfiguration(memory_limit=10), |
| 450 | context.VirtualDeviceConfiguration(memory_limit=10) |
| 451 | ]) |
| 452 | self.assertEqual(len(config.get_virtual_device_configuration(gpus[-1])), 2) |
| 453 | |
| 454 | logical_gpus = config.list_logical_devices('GPU') |
| 455 | self.assertTrue(len(logical_gpus), len(gpus) + 1) |
| 456 | for i in range(0, len(logical_gpus)): |
| 457 | with ops.device('/device:GPU:' + str(i)): |
| 458 | a = constant_op.constant(1.0) |
| 459 | self.evaluate(a) |
| 460 | |
| 461 | with self.assertRaisesRegexp(RuntimeError, 'unknown device'): |
| 462 | with ops.device('/device:GPU:' + str(len(logical_gpus))): |
| 463 | a = constant_op.constant(1.0) |
| 464 | self.evaluate(a) |
| 465 | |
| 466 | # Modifying the GPU configuration is not supported |
| 467 | with self.assertRaisesRegexp(RuntimeError, 'cannot be modified'): |
| 468 | config.set_virtual_device_configuration(gpus[-1], [ |
| 469 | context.VirtualDeviceConfiguration(memory_limit=20), |
| 470 | context.VirtualDeviceConfiguration(memory_limit=20) |
| 471 | ]) |
| 472 | |
| 473 | with self.assertRaisesRegexp(RuntimeError, 'cannot be modified'): |
| 474 | config.set_virtual_device_configuration(gpus[-1], [ |
| 475 | context.VirtualDeviceConfiguration(memory_limit=10), |
| 476 | context.VirtualDeviceConfiguration(memory_limit=10), |
| 477 | context.VirtualDeviceConfiguration(memory_limit=10) |
| 478 | ]) |
| 479 | |
| 480 | # Setting the same GPU configuration is fine |
| 481 | config.set_virtual_device_configuration(gpus[-1], [ |
| 482 | context.VirtualDeviceConfiguration(memory_limit=10), |
| 483 | context.VirtualDeviceConfiguration(memory_limit=10) |
| 484 | ]) |
| 485 | |
| 486 | @test_util.run_gpu_only |
| 487 | @reset_eager |
nothing calls this directly
no test coverage detected