cfdf515228
- .claude/CLAUDE.md - .claude/commands/subagentes.md - .claude/rules/INDEX.md - .mcp.json - bash/functions/cybersecurity/analyze_dns.md - bash/functions/cybersecurity/audit_http_headers.md - bash/functions/cybersecurity/audit_ssh_config.md - bash/functions/cybersecurity/check_firewall.md - bash/functions/cybersecurity/detect_suspicious_users.md - bash/functions/cybersecurity/encrypt_file.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
59 lines
1.9 KiB
Markdown
59 lines
1.9 KiB
Markdown
---
|
|
name: gpu_info
|
|
kind: function
|
|
lang: py
|
|
domain: ml
|
|
version: "1.0.0"
|
|
purity: impure
|
|
signature: "def gpu_info() -> list[dict]"
|
|
description: "Consulta nvidia-smi para obtener informacion de cada GPU NVIDIA: nombre, VRAM total y libre, version de driver y CUDA. Devuelve lista vacia si nvidia-smi no esta disponible, sin lanzar excepcion."
|
|
tags: [gpu, nvidia, cuda, vram, hardware, probe, ml, nvidia-smi, pendiente-usar]
|
|
uses_functions: []
|
|
uses_types: []
|
|
returns: []
|
|
returns_optional: false
|
|
error_type: "error_go_core"
|
|
imports: []
|
|
params: []
|
|
output: "lista de dicts por GPU con claves: index (int), name (str), vram_total_mb (int), vram_free_mb (int), driver_version (str), cuda_version (str). Lista vacia si nvidia-smi no esta disponible."
|
|
tested: true
|
|
tests:
|
|
- "sin nvidia-smi devuelve lista vacia"
|
|
- "formato CSV correcto devuelve lista con un dict por GPU"
|
|
- "fila malformada en CSV se ignora sin excepcion"
|
|
test_file_path: "python/functions/ml/tests/test_gpu_info.py"
|
|
file_path: "python/functions/ml/gpu_info.py"
|
|
---
|
|
|
|
## Ejemplo
|
|
|
|
```python
|
|
from ml.gpu_info import gpu_info
|
|
|
|
gpus = gpu_info()
|
|
# Sin nvidia-smi: []
|
|
|
|
# Con una GPU:
|
|
# [
|
|
# {
|
|
# "index": 0,
|
|
# "name": "NVIDIA GeForce RTX 4090",
|
|
# "vram_total_mb": 24564,
|
|
# "vram_free_mb": 22000,
|
|
# "driver_version": "535.183.01",
|
|
# "cuda_version": "8.9"
|
|
# }
|
|
# ]
|
|
|
|
for gpu in gpus:
|
|
pct = 100 * (1 - gpu["vram_free_mb"] / gpu["vram_total_mb"])
|
|
print(f"GPU {gpu['index']}: {gpu['name']} — VRAM {pct:.1f}% usada")
|
|
```
|
|
|
|
## Notas
|
|
|
|
- Usa `--query-gpu=compute_cap` como aproximacion de la version CUDA soportada. El campo `cuda_version` del output es la compute capability (ej. "8.9"), no la version CUDA del driver.
|
|
- Robusto a `FileNotFoundError` (nvidia-smi no instalado), `TimeoutExpired` (driver colgado), y `OSError`.
|
|
- Para datos de torch (no nvidia-smi), usar `cuda_available`.
|
|
- impure: consulta hardware y estado del sistema en tiempo de ejecucion.
|