GPU в эволюции: оценка поколения одним батчем (use_gpu=True)
evaluate_genomes_gpu в gpu/batch_sweep.py — общий раундовый симулятор (_simulate_states) для sweep и эволюции, та же формула фитнеса, что в objective.evaluate (КПД либо -1+доля пройденных ступеней). run_evolution получил use_gpu: поколение целиком уходит в батч-интегратор (на сервере cupy/GTX 1070), полировка остаётся точной на CPU. search_mode=evolve-gpu(...). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -63,3 +63,19 @@ def test_polish_does_not_make_the_best_genome_worse():
|
||||
|
||||
_, polished_result = polish_best(genome, DB, bounds)
|
||||
assert polished_result.fitness >= baseline_fitness - 1e-9
|
||||
|
||||
|
||||
def test_run_evolution_gpu_batch_mode(tmp_path):
|
||||
"""GPU-режим эволюции (батч-оценка поколения; здесь numpy-бэкенд):
|
||||
пишет прогоны в ту же БД и находит реализуемые конфигурации."""
|
||||
from gausse.storage.database import count_runs, fetch_runs, open_connection
|
||||
|
||||
db_path = tmp_path / "evo_gpu.sqlite3"
|
||||
summary = run_evolution(
|
||||
db_path, n_generations=3, population_size=40, seed=5, polish=False, use_gpu=True
|
||||
)
|
||||
assert summary["n_evaluated"] == 120
|
||||
conn = open_connection(db_path)
|
||||
assert count_runs(conn) >= 120
|
||||
rows = fetch_runs(conn, limit=5)
|
||||
assert all(r.search_mode.startswith("evolve-gpu") for r in rows)
|
||||
|
||||
Reference in New Issue
Block a user