- docker с поддержкой gpu (nvidia-container-toolkit)
- обе карты свободны (отключи свою LLM - сейчас она висит на обеих, PID 2575)
- ~15 ГБ места на диск
- интернет на сборку (скачает веса модели и историю)
проверь, что docker видит карты:
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi
должны показаться обе (RTX 4060 и RTX 4000 Ada)
из этой папки:
docker build -t kronos-bt .
mkdir -p results
docker run --rm --gpus all -v "$PWD/results:/app/kronos_lab/data" kronos-bt gpu_info
это быстро он:
- скачает историю BTC (разово)
- увидит обе карты и сколько свободно
- поделит 1200 точек пропорционально памяти (большой карте больше)
- напишет готовый скрипт запуска в results/run_workers.sh
в выводе увидишь план, например:
карта 0 (RTX 4060, 8.0ГБ): точки 0..353 = 353 шт
карта 1 (RTX 4000 Ada, 19.2ГБ): точки 353..1200 = 847 шт
bash results/run_workers.sh
это запустит по одному контейнеру на каждую карту (kronos-bt-0, kronos-bt-1), в фоне обе карты загрузятся по максимуму, chunk подберётся автоматически под память каждой
следить:
docker logs -f kronos-bt-1
строки вида:
[auto_chunk] свободно 19.2ГБ ... -> chunk=256
[06-08 16:40:01] [42/847] 2025-03-14 11:00:00 up=98% ход=4.1% реал=-1.2% ETA~14.3ч
можно закрыть терминал, работа в фоне. прервалось/перезагрузка - просто запусти bash results/run_workers.sh снова, продолжит с места (резюм встроен)
проверь, что оба контейнера завершились (docker ps - их не будет в списке), потом:
docker run --rm -v "$PWD/results:/app/kronos_lab/data" kronos-bt merge
склеит журналы воркеров в один results/backtest_journal.csv
всю папку results/, там:
- backtest_journal.csv - главный файл с метриками
- ens_shard0/, ens_shard1/ - сырые ансамбли и реальные пути (тяжёлые, но нужны)
заархивь и пришли: tar czf results.tar.gz results/