Profesjonalna automatyzacja i zarządzanie klastrem obliczeniowym
Jest to projekt dla leniwych w ramach wolnego czasu z wykorzystaniem Gemini 3.1Pro "Just For Fun"
W przeciwieństwie do systemów Linux, Windows nie posiada natywnej funkcji zwracania wolnej pamięci VRAM dla kart AMD w konsoli.
• NVIDIA (CUDA): Działa w pełni automatycznie.
• AMD: Wymaga ręcznego wpisania pojemności w zmiennej $AMD_VRAM_MB.
Domyślnie skrypt sumuje lokalny VRAM z pamięcią zdalnego serwera 192.168.0.222.
Program stosuje rygorystyczną weryfikację gotowości. Zamiast zamykać okno po samym starcie procesu, skrypt odpytuje serwer HTTP:
💡 Wskazówka systemowa: Czasami konsola PowerShell w Windows ulega zamrożeniu (np. z powodu trybu "Szybkiej edycji" po kliknięciu myszką). Jeśli pasek postępu wydaje się stać w miejscu, naciśnij SPACJĘ lub ENTER, co natychmiast wymusi powrót pętli odświeżania.
| Zmienna | Domyślna Wartość / Opis |
|---|---|
| $MODEL_PATH | "C:\llama.cpp\x" - Folder z modelami GGUF. |
| $LLAMA_SERVER_PATH | "C:\llama.cpp\build\bin\Release\llama-server.exe" |
| $LOG_FILE | Zmienna $env:USERPROFILE\server.log. |
| $AMD_VRAM_MB | 0 - Manualna konfiguracja GPU AMD. |
| $RPC_TARGETS | "192.168.0.222:50052" - Adresy węzłów klastra RPC. |
| $RPC_VRAM_MB | 32752 - Pamięć zdalnego akceleratora (np. MI50). |
| $PORT | "8081" - Nasłuch. Zmieniono z 8080 na uniknięcie kolizji. |
| $CONTEXT | "-c 4000" - Limit okna kontekstu. |
| $CACHE_TYPE_K/V | "q4_0" - Kwantyzacja dla K i V cache. |
| $OVERHEAD_MB | 1536 - Margines bezpieczeństwa VRAM. |
| $MAX_WAIT | 600 - Timeout na załadowanie (10 minut dla ciężkich modeli sieciowych). |
📂 C:\llama.cpp\ # Katalog główny środowiska aplikacji ┣ 📂 build\ ┃ ┗ 📂 bin\ ┃ ┗ 📂 Release\ ┃ ┗ 🚀 llama-server.exe # Skompilowany serwer (Konfiguracja: $LLAMA_SERVER_PATH) ┣ 📂 x\ # Folder modeli GGUF (Konfiguracja: $MODEL_PATH) ┃ ┣ 📦 gpt-oss-20b-Q4_K_M.gguf # Przykładowy model ┃ ┗ 📦 Nemotron-3-Nano-30B-A3B-Q4_K_M.gguf # Przykładowy model ┣ 📜 llama-run.ps1 # Skrypt logiczny ładujący hybrydowy klaster ┗ 📜 start-llama.bat # Skrót do uruchamiania GUI (Można przenieść na Pulpit) 📂 C:\Users\TwojaNazwa\ # Katalog domowy zmiennej $env:USERPROFILE ┗ 📝 server.log # Żywe logi generowane przez serwer (Konfiguracja: $LOG_FILE)
Runner został zaprojektowany tak, aby zapobiegać pozostawaniu procesów widmowych. Po zakończeniu pracy, wciśnięcie klawisza ENTER w głównym oknie skryptu wyśle sygnał Stop-Process, który natychmiast zwolni zasoby VRAM na wszystkich kartach w klastrze (oraz przerwie połączenia RPC). Skrypt inteligentnie chroni system przed przepełnieniem za pomocą wbudowanej flagi --no-mmap.
Uruchamianie maszyny Llama.cpp... [SCAN] Scanning directory C:\llama.cpp\x... [INFO] Total combined VRAM: 4096 MB [INFO] Available VRAM: 3962 MB (Context overhead: 1536 MB) [OK] Models fitting in currently available VRAM: ------------------------------------------------------ 2) Llama-3.2-3B-Instruct-Q4_K_M.gguf [ 1,9G] ------------------------------------------------------ [WARN] Remaining models (exceed total VRAM): ------------------------------------------------------ 1) gpt-oss-20b-Q4_K_M.gguf [ 10,8G] (Out of system memory) 3) Nemotron-3-Nano-30B-A3B-Q4_K_M.gguf [ 22,9G] (Out of system memory) ------------------------------------------------------ >>> Select model number (1-3) or press CTRL+C to cancel: 2 [START] Starting server with model: Llama-3.2-3B-Instruct-Q4_K_M.gguf [WAIT] Loading weights and allocating KV Cache (Max wait: 600 s)... > Checking context size... ====================================================== 🟢 SERVER IS ONLINE (Port 8081) ====================================================== >>> Press [ENTER] to STOP the server and free VRAM: