Skip to content

Commit 7b4c75b

Browse files
authored
Merge pull request #268 from deepmodeling/fix/parameterize-max-atom-in-efficiency
Feat: add natom upper limit for binary search
2 parents f758454 + c231a3c commit 7b4c75b

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

lambench/tasks/calculator/calculator_tasks.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ inference_efficiency:
1212
test_data: /bohr/lambench-efficiency-rg7a/v3/efficiency
1313
calculator_params:
1414
warmup_ratio: 0.1
15+
natoms_upper_limit: 850
1516
torsionnet:
1617
test_data: /bohr/lambench-torsionnet-e4sc/v2/torsionnet500_wB97m
1718
calculator_params: null

lambench/tasks/calculator/inference_efficiency/inference_efficiency.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717

1818
def run_inference(
19-
model: ASEModel, test_data: Path, warmup_ratio: float
19+
model: ASEModel, test_data: Path, warmup_ratio: float, natoms_upper_limit: int
2020
) -> dict[str, dict[str, float]]:
2121
"""
2222
Inference for all trajectories, return average time and success rate for each system.
@@ -26,7 +26,9 @@ def run_inference(
2626
for traj in trajs:
2727
system_name = traj.name
2828
try:
29-
system_result = run_one_inference(model, traj, warmup_ratio)
29+
system_result = run_one_inference(
30+
model, traj, warmup_ratio, natoms_upper_limit
31+
)
3032
average_time = system_result["average_time"]
3133
std_time = system_result["std_time"]
3234
success_rate = system_result["success_rate"]
@@ -52,6 +54,7 @@ def run_one_inference(
5254
model: ASEModel,
5355
test_traj: Path,
5456
warmup_ratio: float,
57+
natoms_upper_limit: int,
5558
) -> dict[str, float]:
5659
"""
5760
Infer for one trajectory, return averaged time and success rate, starting timing at warmup_ratio.
@@ -65,7 +68,7 @@ def run_one_inference(
6568
efficiency = []
6669
for i, atoms in enumerate(test_atoms):
6770
# find maximum allowed natoms
68-
max_natoms = binary_search_max_natoms(model, atoms)
71+
max_natoms = binary_search_max_natoms(model, atoms, natoms_upper_limit)
6972
# on-the-fly expand atoms
7073
scaling_factor = np.int32(np.floor(max_natoms / len(atoms)))
7174
while 1 in find_even_factors(scaling_factor) and scaling_factor > 1:

0 commit comments

Comments
 (0)