diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2022-11-23 11:08:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-23 11:08:27 +0100 |
commit | c173d345f3cc0fa90dbf6bbcf7a7f3b008015df8 (patch) | |
tree | 58821d0bcb6ecb5115f14dc763ba8c90243f350e /node-repository | |
parent | e03f1e82952dbdb801e737de41b285c0fa74c3f9 (diff) | |
parent | 2536fce055383d26043590e9ef2bcc099948c9a8 (diff) |
Merge pull request #24963 from vespa-engine/mpolden/negative-gpu
Allow negative GPU resources
Diffstat (limited to 'node-repository')
2 files changed, 24 insertions, 4 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTest.java index 04b260b356d..e0301d0c329 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTest.java @@ -219,7 +219,7 @@ public class DynamicProvisioningTest { } @Test - public void test_capacity_is_in_advertised_amounts() { + public void capacity_is_in_advertised_amounts() { int memoryTax = 3; List<Flavor> flavors = List.of(new Flavor("2x", new NodeResources(2, 17, 200, 10, fast, remote))); @@ -306,7 +306,7 @@ public class DynamicProvisioningTest { } @Test - public void test_changing_limits() { + public void changing_limits() { int memoryTax = 3; List<Flavor> flavors = List.of(new Flavor("1x", new NodeResources(1, 10 - memoryTax, 100, 0.1, fast, remote)), new Flavor("2x", new NodeResources(2, 20 - memoryTax, 200, 0.1, fast, remote)), @@ -380,7 +380,7 @@ public class DynamicProvisioningTest { } @Test - public void test_changing_storage_type() { + public void changing_storage_type() { int memoryTax = 3; List<Flavor> flavors = List.of(new Flavor("2x", new NodeResources(2, 20 - memoryTax, 200, 0.1, fast, remote)), new Flavor("2xl", new NodeResources(2, 20 - memoryTax, 200, 0.1, fast, local)), @@ -413,7 +413,7 @@ public class DynamicProvisioningTest { } @Test - public void test_any_disk_prefers_remote_for_container() { + public void any_disk_prefers_remote_for_container() { int memoryTax = 3; int localDiskTax = 55; // Disk tax is not included in flavor resources but memory tax is @@ -441,6 +441,23 @@ public class DynamicProvisioningTest { app1, cluster1); } + @Test + public void gpu_host() { + List<Flavor> flavors = List.of(new Flavor("gpu", new NodeResources(4, 16, 125, 10, fast, local, + Architecture.x86_64, new NodeResources.GpuResources(1, 16)))); + ProvisioningTester tester = new ProvisioningTester.Builder().zone(zone) + .flavors(flavors) + .hostProvisioner(new MockHostProvisioner(flavors, zone.cloud())) + .nameResolver(nameResolver) + .build(); + NodeResources resources = new NodeResources(4, 16, 125, 0.3, + NodeResources.DiskSpeed.any, NodeResources.StorageType.any, + NodeResources.Architecture.x86_64, new NodeResources.GpuResources(1, 16)); + tester.prepare(ProvisioningTester.applicationId(), ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("id1")) + .vespaVersion("8.0").build(), + 2, 1, resources); + } + private void prepareAndActivate(ApplicationId application, ClusterSpec clusterSpec, int nodes, int groups, NodeResources resources) { List<HostSpec> prepared = tester.prepare(application, clusterSpec, nodes, groups, resources); NodeList provisionedHosts = tester.nodeRepository().nodes().list(Node.State.provisioned).nodeType(NodeType.host); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java index 949ed8ffbcb..2ea8d95bc9d 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java @@ -731,6 +731,9 @@ public class ProvisioningTester { flavor.bandwidth(resources.bandwidthGbps() * 1000); flavor.fastDisk(resources.diskSpeed().compatibleWith(NodeResources.DiskSpeed.fast)); flavor.remoteStorage(resources.storageType().compatibleWith(NodeResources.StorageType.remote)); + flavor.architecture(resources.architecture().toString()); + flavor.gpuCount(resources.gpuResources().count()); + flavor.gpuMemoryGb(resources.gpuResources().memoryGb()); return flavor; } |