summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYurenHao0426 <Blackhao0426@gmail.com>2026-07-22 20:47:21 -0500
committerYurenHao0426 <Blackhao0426@gmail.com>2026-07-22 20:47:21 -0500
commitc736932ec6fee7e69af2669524c480fa77c56c89 (patch)
treecd7fa21e092dcd8cd1bfde905340802a2b6762d3
parentcb64d220efeea919c3aec676cf79715fd2a6390f (diff)
audit: bind scale evidence to authorized GPUs
-rw-r--r--DYNAMIC_INNOVATION.md3
-rw-r--r--ORAL_A_RECOVERY.md2
-rw-r--r--experiments/analyze_kp_dynamic_projection_confirmation.py8
-rwxr-xr-xexperiments/analyze_oral_a_dynamic_scaling.py6
4 files changed, 17 insertions, 2 deletions
diff --git a/DYNAMIC_INNOVATION.md b/DYNAMIC_INNOVATION.md
index 9f148bb..9cb27f7 100644
--- a/DYNAMIC_INNOVATION.md
+++ b/DYNAMIC_INNOVATION.md
@@ -215,3 +215,6 @@ without threshold repair.
The executable audit accepts exactly the ten named frozen records and rejects
missing or extra JSON cells. Once its deterministic gate exists, later audits
may only verify exact equality with that record; they cannot overwrite it.
+Every record must also report an NVIDIA GTX 1080 with physical visibility
+restricted to the authorized timan107 GPU 5 or 7; device identity is an audit
+condition rather than an inferred property of the launch script.
diff --git a/ORAL_A_RECOVERY.md b/ORAL_A_RECOVERY.md
index 55189b1..1657a95 100644
--- a/ORAL_A_RECOVERY.md
+++ b/ORAL_A_RECOVERY.md
@@ -58,6 +58,8 @@ BP MAC estimate. Dynamic elementwise projection work is reported separately
and must be positive. Peak allocated memory may not exceed 8 GiB on the
authorized GTX 1080 devices. Wall time is reported but is never substituted
for MACs, queries, or memory.
+Every record must identify an NVIDIA GTX 1080 and visibility restricted to the
+authorized timan107 physical GPU 5 or 7.
## Frozen oral-A gate
diff --git a/experiments/analyze_kp_dynamic_projection_confirmation.py b/experiments/analyze_kp_dynamic_projection_confirmation.py
index 9a17206..12522ec 100644
--- a/experiments/analyze_kp_dynamic_projection_confirmation.py
+++ b/experiments/analyze_kp_dynamic_projection_confirmation.py
@@ -119,6 +119,12 @@ def main():
and evaluation["test_used_for_selection"] is False):
raise ValueError(
f"D4 seed {seed} {condition} evaluation drift")
+ hardware = record.get("hardware", {})
+ if not (hardware.get("cuda_device_name") ==
+ "NVIDIA GeForce GTX 1080"
+ and hardware.get("cuda_visible_devices") in ("5", "7")):
+ raise ValueError(
+ f"D4 seed {seed} {condition} unauthorized hardware")
epochs = record["epochs"]
if (len(epochs) != 200
or any(row["epoch"] != index + 1
@@ -196,7 +202,7 @@ def main():
and work["neutral_projection_observations"]
== 10_000_000):
failures.append(f"seed{seed}:elementwise_cost")
- if record["hardware"]["peak_memory_allocated_bytes"] > int(
+ if hardware["peak_memory_allocated_bytes"] > int(
2.5 * 1024 ** 3):
failures.append(f"seed{seed}:peak_memory")
if len(source_commits) != 1:
diff --git a/experiments/analyze_oral_a_dynamic_scaling.py b/experiments/analyze_oral_a_dynamic_scaling.py
index 38ce967..972356a 100755
--- a/experiments/analyze_oral_a_dynamic_scaling.py
+++ b/experiments/analyze_oral_a_dynamic_scaling.py
@@ -102,6 +102,10 @@ def validate_record(record, path, method, depth, seed):
and evaluation.get("test_evaluations") == 1
and evaluation.get("test_used_for_selection") is False,
f"{path}: evaluation drift")
+ hardware = record.get("hardware", {})
+ require(hardware.get("cuda_device_name") == "NVIDIA GeForce GTX 1080"
+ and hardware.get("cuda_visible_devices") in ("5", "7"),
+ f"{path}: unauthorized hardware")
epochs = record.get("epochs", [])
require(len(epochs) == 200
and all(row.get("epoch") == index + 1
@@ -129,7 +133,7 @@ def validate_record(record, path, method, depth, seed):
"elementwise_operations": int(record["work"][
"elementwise_operations_estimate"]),
"logical_queries": int(record["work"]["logical_batch_loss_queries"]),
- "peak_memory": int(record["hardware"][
+ "peak_memory": int(hardware[
"peak_memory_allocated_bytes"]),
"source_commit": record["provenance"]["git_commit"],
}