summaryrefslogtreecommitdiff
path: root/experiments/analyze_resnet_crossover_r2.py
diff options
context:
space:
mode:
Diffstat (limited to 'experiments/analyze_resnet_crossover_r2.py')
-rw-r--r--experiments/analyze_resnet_crossover_r2.py29
1 files changed, 22 insertions, 7 deletions
diff --git a/experiments/analyze_resnet_crossover_r2.py b/experiments/analyze_resnet_crossover_r2.py
index 3c2bf46..ce89165 100644
--- a/experiments/analyze_resnet_crossover_r2.py
+++ b/experiments/analyze_resnet_crossover_r2.py
@@ -18,6 +18,7 @@ from experiments.resnet_crossover_r2 import (
registry_sha256,
selector_report,
)
+from experiments.crossover_hardware import assert_hardware_report
def sha256(path):
@@ -216,7 +217,9 @@ def work_metrics(record, job, history):
}
-def audit_job(job, expected_source, expected_selector):
+def audit_job(
+ job, expected_source, expected_selector, hardware_policy
+):
manifest_path = job["output"] + ".manifest.json"
if not os.path.isfile(manifest_path):
raise AssertionError(f"missing R2 manifest: {job['experiment_name']}")
@@ -240,8 +243,7 @@ def audit_job(job, expected_source, expected_selector):
assert manifest["source"] == expected_source
assert manifest["selector"] == expected_selector
hardware = manifest["hardware_lock"]
- assert hardware["physical_gpu_index"] in (5, 7)
- assert hardware["physical_gpu_uuid"]
+ assert_hardware_report(hardware, hardware_policy)
common = {
"cell_id": f"resnet{job['depth']}::{job['method']}",
"method": job["method"],
@@ -331,8 +333,14 @@ def audit_job(job, expected_source, expected_selector):
expected_ordinary *= job["depth"]
assert work["ordinary_training_examples"] == expected_ordinary
hardware_record = record["hardware"]
- assert hardware_record["cuda_visible_devices"] in ("5", "7")
- assert hardware_record["cuda_device_name"] == "NVIDIA GeForce GTX 1080"
+ assert (
+ hardware_record["cuda_visible_devices"]
+ == hardware["cuda_visible_devices"]
+ )
+ assert (
+ hardware_record["cuda_device_name"]
+ == hardware["physical_gpu_name"]
+ )
parameter_count = architecture.get("forward_parameter_count")
if parameter_count is None:
parameter_count = architecture["forward_parameters"]
@@ -370,9 +378,15 @@ def main():
assert launch["selector"] == selector
assert launch["registry_sha256"] == registry_sha256(jobs)
assert launch["num_jobs"] == 27
- assert launch["allowed_physical_gpus"] == [5, 7]
+ hardware_policy = launch["hardware_policy"]
+ assert (
+ launch["allowed_physical_gpus"]
+ == hardware_policy["allowed_physical_gpu_indices"]
+ )
source = launch["source"]
- records = [audit_job(job, source, selector) for job in jobs]
+ records = [
+ audit_job(job, source, selector, hardware_policy) for job in jobs
+ ]
assert len(records) == 27
assert len({record["cell_id"] for record in records}) == 27
assert {
@@ -401,6 +415,7 @@ def main():
"test_policy": "none",
"source": source,
"selector": selector,
+ "hardware_policy": hardware_policy,
"launch_lock": {
"path": os.path.relpath(launch_path, ROOT),
"sha256": sha256(launch_path),