GPU para la investigación ML · Pago cripto sin KYC
IteraGPU
Método 02 · Calidad, medición y coste

¿Qué GPU cuesta menos para el mismo resultado ML?

Compara primero resultados que cumplan la misma exigencia de calidad y después el presupuesto necesario para obtenerlos dentro de tu calendario. Un rendimiento superior no basta: el corpus debe estar completo, las salidas deben ser aceptables y la exportación debe haber terminado. Este dosier propone un protocolo de inferencia, una hoja de resultados en blanco y un cálculo de precio; no publica ninguna clasificación de rendimiento de GPU.

01 /

Definir qué contará como resultado aceptado

Escribe la decisión antes de las pruebas: «¿Qué configuración procesa todos mis documentos, respeta mi calidad mínima y termina antes de mi plazo, por el presupuesto comprometido más bajo?». Fija el escenario: aquí, un corpus procesado sin conexión. Una aplicación interactiva también requeriría definir la llegada de las solicitudes, su concurrencia y la latencia admisible; su clasificación no se deduce solo de esta prueba.

Llama corpus validado a un conjunto completo de salidas que supera todos tus controles. Un archivo creado aún no es un resultado aceptado. Verifica los identificadores, el formato, la cobertura y una métrica relacionada con tu uso. Anota el umbral y la tolerancia respecto a una referencia antes de mirar los tiempos. Así, dos configuraciones pueden ser equivalentes para la decisión sin producir números idénticos bit a bit.

Esta separación entre conjunto de datos, objetivo de calidad y escenario también existe en los principios de MLPerf Inference. El protocolo siguiente es nuestro método de trabajo, que debes adaptar a tu proyecto; no constituye ni una ejecución ni una certificación MLPerf.

Fuentes técnicas: MLCommons — escenarios, métricas y objetivos de calidad

02 /

Preparar las entradas, la referencia y el manifiesto

Necesitas un corpus que tengas derecho a usar, respuestas de referencia o un procedimiento de evaluación, el código de inferencia y un entorno capaz de ejecutar el modelo elegido. Separa los datos que sirven para ajustar la configuración del corpus final de comparación. Si ajustas los umbrales después de ver este último, prepara una nueva evaluación independiente para respaldar la conclusión.

Asigna un identificador estable a cada entrada. Conserva una huella del corpus, el orden de paso, la revisión del modelo y del tokenizer, las versiones del código y de las dependencias. El manifiesto describe también las GPU utilizadas, la precisión, la cuantización, la compilación, el backend de atención, la política de padding y la longitud máxima. Una truncación diferente cambiaría el trabajo que se va a comparar.

Registra el controlador y el backend que realmente están presentes. Para una variante AMD, verifica la combinación de sistema, GPU, ROCm y framework en la matriz oficial. Una documentación consultada o el nombre de una tarjeta no demuestran que ese entorno esté instalado. Si las pilas de software difieren entre dos ensayos, la conclusión se referirá a las configuraciones completas probadas.

Fuentes técnicas: AMD — matriz de compatibilidad ROCm

03 /

Ejemplo: clasificar los mismos 1000 textos

Este es un experimento para construir con tus datos, sin resultado de rendimiento presupuesto. Quieres clasificar 1000 textos en las categorías de tu proyecto. Reserva 600 entradas cortas, 300 intermedias y 100 largas; define los límites con el tokenizer elegido y mantén una distribución representativa de las clases. Este reparto es un ejemplo de protocolo, no un corpus proporcionado ni una recomendación universal de proporciones.

Compara batches de 1, 4 y 8 con el mismo modelo, la misma precisión, el mismo orden y la misma regla de padding. La única variable de esta primera serie es el batch. Una segunda serie podrá cambiar la precisión o el hardware, manteniendo las demás decisiones explícitamente fijadas. Agrupar por longitud es una nueva variante que hay que declarar, porque modifica la organización del trabajo.

Para cada pasada, exporta las 1000 predicciones con sus identificadores. La comprobación debe encontrar exactamente los identificadores esperados, sin duplicados ni omisiones. Conserva las predicciones erróneas: sirven para el cálculo de calidad. Eliminar los ejemplos difíciles mejoraría artificialmente la puntuación y reduciría el corpus realmente procesado.

Contrato de calidad que hay que completar antes de la primera medición
ComprobaciónRegla del ejemploDecisión que hay que registrar
CoberturaLos 1000 identificadores esperados aparecen exactamente una vezCualquier falta o duplicado invalida el corpus
FormatoUna clase permitida por texto; valores numéricos finitos si se exportanEsquema y clases permitidas
Calidad globalUna métrica principal, por ejemplo macro-F1Umbral mínimo y tolerancia frente a la referencia
Casos importantesVerificación de las clases o longitudes críticas para el proyectoSubgrupos y criterios fijados de antemano
PlazoPredicciones evaluadas y archivos recuperados antes de la fecha límiteFecha, hora y zona horaria de finalización
04 /

Separar arranque, calentamiento y pasada medida

Registra la descarga necesaria, la instalación, la carga y la compilación por separado del procesamiento estabilizado. Pueden excluirse del cronómetro de una pasada aunque ocupen parte del alquiler. Fija una regla de calentamiento idéntica para todas las variantes: entradas cubiertas, número de pasadas y tratamiento de las recompilaciones. No ajustes esta regla después de ver qué variante se beneficia de ella.

Define los límites del tiempo principal. Para este ejemplo fuera de línea, mide la lectura del corpus, la tokenización, las transferencias, la inferencia y la materialización de las predicciones en el host. Cronometra después la evaluación y la escritura de los entregables por separado para establecer la campaña completa. Una duración limitada al cálculo en GPU no se compara directamente con este tiempo de procesamiento.

Las operaciones CUDA son asíncronas: un cronómetro en el host debe esperar el fin de las operaciones anteriores antes de su inicio y el del trabajo medido antes de su parada. Los eventos CUDA son adecuados para un perímetro de GPU correctamente definido. Para una operación aislada, torch.utils.benchmark.Timer se encarga del calentamiento y la sincronización. Mantén los mismos límites de medición entre variantes.

Fuentes técnicas: PyTorch 2.14 — ejecución CUDA asíncrona · PyTorch — medir con torch.utils.benchmark

05 /

Repetir y conservar los fallos

Prevé cinco pasadas completas por variante para esta primera comparación. Alterna su orden, por ejemplo 1–4–8, luego 4–8–1, luego 8–1–4, para que una sola variante no sea siempre la primera. Conserva la política de procesos, de cachés y de calentamiento. Estas cinco pasadas describen tu serie pequeña; por sí solas no demuestran la estabilidad durante un periodo largo.

Una fila de la tabla bruta representa un pasaje intentado, incluida una detención. Relaciona la variante y el corpus con los parámetros, la duración y el veredicto de calidad. Los campos expected_ids y observed_ids registran los recuentos de entradas; ids_match confirma la igualdad de los conjuntos, verificada en los archivos de predicciones conservados por separado. corpus_accepted contiene el veredicto del pasaje. Anota los errores y la ruta de las salidas en notes. Si falta una medición, deja su celda vacía e indica por qué. Una ausencia de GPU no es una medición de cero segundos o de cero bytes.

Si el batch 8 supera la memoria en las entradas largas, conserva la fila de fallo y el número de entradas completadas. No sustituyas silenciosamente ese pasaje por un batch más pequeño. El ajuste de reanudación se convierte en una variante distinta; su tiempo y sus intentos forman parte del balance. Una interrupción o un error de formato nunca es un éxito económico por haber sido rápida.

Rendimiento de un pasaje completo = número de entradas procesadas ÷ duración del alcance declarado. El veredicto de calidad sigue siendo una comprobación aparte.
06 /

Leer las duraciones sin sobreinterpretar cinco ensayos

Presenta las cinco duraciones brutas, su mediana, su mínimo y su máximo, con el número de éxitos y de fallos. La mediana describe el centro de esas observaciones; no elimina los incidentes. Si se excluye un pasaje por una causa externa documentada, conserva su rastro y aplica la misma regla de exclusión a todas las variantes.

No presentes un p95 calculado sobre cinco pasajes como una estimación robusta de los casos lentos. Para estudiar la latencia de las solicitudes, reúne un conjunto adecuado de tiempos individuales con el escenario de llegada y la concurrencia. Las cinco duraciones de corpus y las latencias de 1000 solicitudes no son la misma población.

Si la dispersión observada es comparable a la diferencia entre las medianas, la serie todavía no desempata las opciones. Añade repeticiones en un protocolo común o examina una causa concreta: carga, formas de entrada, compilación, actividad concurrente. Evita quedarte solo con el mejor pasaje de cada tarjeta.

07 /

Verificar la calidad tras un cambio de precisión

Para comparar FP32, BF16 o una cuantización, parte de las mismas entradas y de la misma referencia. Evalúa el formato, la métrica principal y los subgrupos previstos. Una variante que supera tu tolerancia puede ser interesante para otro objetivo; no se une a la comparación con calidad equivalente bajando el umbral a posteriori.

Registra las semillas y las opciones deterministas utilizadas. PyTorch no garantiza una reproducibilidad completa entre versiones, plataformas o ejecuciones de CPU y GPU, incluso con la misma semilla. Por tanto, precisa qué buscas reproducir: salidas idénticas, desviación numérica acotada o calidad de negocio aceptable. Para un protocolo estocástico, prevé varias semillas comunes y conserva sus resultados por separado.

Fuentes técnicas: PyTorch 2.14 — alcance y límites de la reproducibilidad

08 /

Usar la memoria como criterio de viabilidad

Una opción debe terminar el corpus con sus entradas largas antes de que se compare su costo. Anota el pico de memoria por dispositivo y el alcance del contador. Con PyTorch, memory_allocated sigue los tensores y memory_reserved la memoria gestionada por el asignador: estos valores no se suman. Los picos correspondientes pueden producirse en momentos distintos.

El notebook de la carpeta de memoria ayuda a distinguir estimación y observación. Su ejercicio no sustituye la medición de tu modelo: carga tu entorno, conserva los parámetros y vuelve a ejecutar tu carga. Una capacidad anunciada por tarjeta y un precio de lote no permiten deducir un rendimiento, una interconexión ni un reparto automático del modelo entre varias GPU.

Fuentes técnicas: PyTorch 2.14 — contadores y asignador de memoria

09 /

Elegir la duración con el calendario completo

La duración necesaria no es solo la suma de los kernels de GPU. Construye una ventana de acceso que vaya desde la preparación del alquiler hasta la recuperación de los entregables: instalación, controles, calentamiento, comparaciones, reanudaciones previstas, evaluación y exportación. Añade los periodos de espera durante los cuales sigues necesitando conservar el alquiler. Cuando las tareas se solapan, razona sobre el calendario real en lugar de sumar dos veces sus duraciones.

Ejemplo de calendario, sin suposiciones de velocidad: quieres conservar el acceso de lunes a las 9 h a viernes a las 9 h, en la misma zona horaria y sin cambio de hora. Esta ventana abarca 96 horas. Supera las 72 horas de un plan de 3 días y cabe dentro de las 168 horas de un plan de 7 días. Esto no demuestra que tus procesos terminen a tiempo: sus duraciones aún están por medir.

La calculadora permite indicar tu ventana total y muestra los planes de 3, 7 y 30 días. Un plan que cubre el calendario se convierte en candidato. Si la campaña excede el periodo elegido, modifica el programa o presupuesta explícitamente los periodos adicionales necesarios; no supongas una prórroga automática.

Los límites que debes registrar en tu planificación
EtapaFin observableDuración
PreparaciónEntorno cargado y prueba mínima superadaPor medir o planificar
ComparaciónTodas las ejecuciones previstas tienen un estado registradoPor medir
Evaluación y repeticionesCada salida tiene un veredicto, cada fallo una decisiónPor medir o planificar
ExportaciónArchivos recuperados, abiertos y verificados en destinoPor medir
ExpectativasRevisión y disponibilidad del equipo integradas en el calendarioPor planificar
10 /

Calcular el costo comprometido con nuestros planes

El presupuesto de un alquiler es el precio del plan por lote, multiplicado por el número de lotes. El costo por corpus validado divide después ese importe entero entre los corpus útiles realmente aceptados en el alcance anunciado. Si no se acepta ningún corpus, el ratio queda indefinido. El gasto comprometido, en cambio, permanece en el balance.

Los precios de abajo provienen de nuestro catálogo, versión del 24 de septiembre de 2026. Ilustran la regla de cálculo, sin establecer qué GPU termina tu carga más rápido. Un lote B200 ya incluye dos tarjetas: multiplicar su precio una segunda vez por dos contaría esas tarjetas dos veces. Así, dos lotes de RTX 4090 durante 7 días cuestan 220 USD; un lote de dos B200 durante 7 días cuesta 2071 USD.

Una ejecución corta no convierte el plan en una factura por horas. La calculadora usa el total del plan, aunque parte del periodo quede sin usar. Para un presupuesto de proyecto más amplio, registra por separado los demás gastos realmente aplicables y su justificación. No mezcles costos medidos en una de las variantes con partidas olvidadas en la otra.

Costo comprometido = precio del plan por lote × número de lotes. Costo por corpus útil validado = costo comprometido ÷ número de corpus útiles validados, estrictamente positivo.
Ejemplos de precios de IteraGPU por lote, en USD — catálogo del 24 de septiembre de 2026
Configuración del lote3 días7 días30 días
1 × NVIDIA GeForce RTX 4090 24 GB47,14110,00390,00
2 × NVIDIA B200 SXM, 180 GB por tarjeta887,572 071,007 391,00

Fuentes técnicas: IteraGPU — planes del catálogo

11 /

Contar entregables útiles, no repeticiones de medición

Las cinco repeticiones de un mismo benchmark sirven para observar la dispersión. No se convierten en cinco corpus de producción útiles solo porque se hayan escrito cinco archivos. Define los entregables esperados antes de la campaña y cuenta cada entregable aceptado una sola vez. Si el trabajo real abarca varios corpus, cada configuración debe procesar los mismos corpus y aplicar la misma regla de calidad.

En la calculadora, deja vacío el número de corpus mientras los entregables útiles no estén realmente terminados y validados. La casilla de calidad confirma tu propia verificación; la herramienta no lee tus predicciones ni tus métricas. Indica únicamente la cantidad constatada. La ventana de campaña puede ser una hipótesis de planificación, pero una previsión de capacidad no sustituye a resultados aceptados.

El balance final reúne, para cada configuración admisible, los veredictos de calidad, las duraciones brutas, la ventana de campaña, el plan comprometido y el número de entregables aceptados. Una opción rápida puede ser útil para un plazo ajustado sin ser la más barata. Dos opciones que caben en el mismo calendario pueden diferenciarse por su costo comprometido, sus fallos o la incertidumbre que persiste.

12 /

Descargar el protocolo y conservar una prueba reutilizable

El paquete IteraGPU Lab v1 reúne los materiales de esta comparación y de la medición de memoria. Empieza por el README y el protocolo de calidad, y luego completa la tabla bruta con tus ejecuciones. Las celdas de rendimiento permanecen vacías antes de una ejecución; las tarifas son datos de catálogo, separados de las mediciones.

Para presupuestar dos lotes de RTX 4090 durante 7 días, coloca calcul_forfaits.py y tarifs-forfaits.csv en la misma carpeta, abre un terminal en esa carpeta y ejecuta el comando de abajo con Python 3.10 o más reciente. Muestra un presupuesto de 220,00 USD para dos GPU. La opción opcional --accepted-results recibe tu número entero de corpus útiles distintos realmente terminados y validados. Omítela mientras ese dato no exista: el script entonces solo calcula el presupuesto, sin inventar un costo por resultado.

Conserva juntos el manifiesto, las huellas de entradas, las predicciones, los veredictos y la tabla de intentos. La nota de decisión indica el ajuste elegido, la carga cubierta y el motivo de la elección. Podrás contrastarla con tu alquiler en el cuaderno de IteraGPU y relanzar exactamente la pregunta experimental cuando cambies de modelo o de versión.

Este protocolo fuera de línea no cualifica por sí solo un servicio interactivo, un entrenamiento hasta la convergencia ni otro conjunto de datos. Para esos usos, redefine la unidad útil y los controles antes de comparar. Los archivos proporcionados sirven para preparar y registrar tus ensayos; esta carpeta no presenta ninguna comparación medida entre las configuraciones del catálogo ni ahorro observado.

shell
python calcul_forfaits.py --gpu rtx-4090 --days 7 --lots 2
HERRAMIENTA / PLANES

Calcular el presupuesto de tu campaña

Elige una configuración y tu número de lotes. La tabla utiliza los precios de nuestro catálogo. A continuación, introduce tus propias hipótesis de calendario; no se predice ningún tiempo de cálculo.

1 GPU en total · 24 GB por GPU · 1 GPU incluidos en el precio de cada lote.

Incluye preparación del alquiler, cálculos, evaluación, interrupciones previstas y exportación. Una ventana que quepa en el paquete no garantiza el éxito del procesamiento.

Un corpus es el lote de trabajo completo definido por tu protocolo. Cuenta únicamente los corpus útiles terminados y validados; las repeticiones del benchmark no constituyen nuevos corpus útiles. La calculadora no mide la calidad.

Paquetes NVIDIA GeForce RTX 4090 24GB · 1 lote · USD
DuraciónTotal del paqueteVentana introducidaUSD / corpus validado
3 días · 72 h47,14 USDPor completarCalidad y cantidad requeridas
7 días · 168 h110,00 USDPor completarCalidad y cantidad requeridas
30 días · 720 h390,00 USDPor completarCalidad y cantidad requeridas

Costo por corpus = total del forfait ÷ número de corpus completos validados. El forfait se debe en su totalidad; esta ratio no constituye una tarifa por hora ni un pago por uso.

Si la ventana supera los 30 días, define un nuevo calendario o varias períodos de alquiler y verifica su disponibilidad. La calculadora no supone ni prolongación automática ni continuidad de capacidad.