If prompt evaluation (prefill) is significantly slower than generation (decoding) on a single GPU, it usually indicates a **bottleneck in parallel processing** or **memory swapping**.

### 1. GPU Offloading & VRAM
*   **Full Offload:** Ensure the entire model is on the GPU. Check if `-ngl` (or `--n-gpu-layers`) is high enough to move all layers.
*   **VRAM Overflow:** Verify that the model + KV Cache fits entirely in VRAM. If it spills into System RAM (Unified Memory), prefill speeds will collapse.
*   **KV Cache Size:** If your context window (`-c`) is very large, the KV cache might be pushing the model out of VRAM. Try reducing `-c` to see if speed improves.

### 2. Batching Parameters (The most likely culprit)
*   **Increase Batch Size:** Prefill is a parallel operation. If `-b` (batch size) is too small (e.g., 512), the GPU cannot utilize its cores effectively. Increase `-b` to 2048 or 4096.
*   **Ubatch Size:** Ensure `-ubatch` (ubatch size) is set to a value that matches your GPU's capability (usually 512 or 1024).
*   **Flash Attention:** Ensure Flash Attention is enabled (if supported by your hardware/model) to significantly speed up prefill.

### 3. Model & Quantization
*   **Quantization Level:** If using a very high-bit quantization (e.g., Q8_0 or F16) on a mid-range card, you may be hitting compute limits. Try a lower quantization (e.g., Q4_K_M).
*   **Model Architecture:** Some architectures (like MoE) have different prefill characteristics. Ensure you are using the latest `llama.cpp` build for your specific model type.

### 4. System & Driver
*   **CUDA/ROCm Version:** Ensure your drivers and toolkit are up to date. Outdated kernels can cause inefficient memory mapping.
*   **Power Limits:** Check if the GPU is thermal throttling or stuck in a low-power state during the high-compute prefill phase.
*   **PCIe Bandwidth:** While less common for prefill, ensure your GPU is in a high-bandwidth slot (x16), as data must be moved to the GPU before processing.

### Summary Checklist for Command Line:
1.  **Increase** `-b` (e.g., `2048`)
2.  **Increase** `-ubatch` (e.g., `512`)
3.  **Verify** `-ngl` covers all layers.
4.  **Reduce** `-c` (context size) to test for VRAM pressure.
5.  **Enable** Flash Attention (if applicable).