Partimos de un cuello de botella conocido: Presto nació como motor SQL distribuido para big data en CPU, y el tiempo de consulta se dispara con el volumen. En el vídeo, Roy y William (NVIDIA) muestran cómo romper ese techo con GPU. El trabajo viene de IBM, NVIDIA y la comunidad Presto; el objetivo es añadir un motor acelerado por GPU sobre un almacén existente sin mover datos. La promesa es simple: en lugar de Presto en Java, ejecutar Presto con Velox — una capa de ejecución en C++ — para distribuir el mismo SQL en hardware paralelo. Como ampliar una carretera de un carril a ocho — mismo coche, más carriles.
Un repaso rápido de Presto y Velox ayuda. Nacido en Facebook en 2012, Presto es un motor SQL distribuido open source que separa almacenamiento y cómputo, escalando con coordinator y workers. En 2019 la comunidad se bifurcó en PrestoDB y Trino; PrestoDB vive hoy bajo prestodb/presto y la Presto Foundation, alojada por la Linux Foundation. El Presto clásico corre en Java. Velox, construido por Meta, es una librería de ejecución C++ vectorizada y columnar — el corazón de Presto C++ / Presto Native. Elimina la sobrecarga de la JVM y ejecuta el mismo plan en vectores cerca del hardware. Emparejado con cuDF, ese plan se dispersa por núcleos GPU. Analogía: reemplazar una orquesta Java por un equipo pequeño y rápido de C++ que sube directo al escenario.
La magia GPU llega vía NVIDIA cuDF y su extensión cuDF-X. Parte de RAPIDS (ahora NVIDIA CUDA-X), cuDF es una librería DataFrame para GPU — respaldada por libcudf y pylibcudf — que paraleliza joins, agregaciones, filtros y sorts en miles de núcleos CUDA. El vídeo lo refleja: tomar un data frame, unir, agregar, calcular — todo acelerado en GPU. El cuello es mover datos a la memoria GPU (VRAM). El punto de William es clave: llevar una consulta de 100 filas a la GPU no tiene sentido, el coste de transferencia borra la ganancia. Pero en 179 millones de filas agrupadas y ordenadas en bloque, el paralelismo gana con claridad. Las pruebas GB200 NVL72 y DGX B200 de 2026 confirman la misma idea — si los datos pasan entre operadores sin salir de la memoria GPU vía NVLink, la latencia cae.
La configuración práctica son tres notebooks, todos en el repositorio Prestorials de la Presto Foundation. El primero levanta un clúster Presto Native con Docker Compose. Pasos nítidos: crear directorios metastore y warehouse en el host, escribir los ficheros de config de Presto y lanzar coordinator y worker vía docker compose. Una celda de verificación muestra ambos componentes en Running — un coordinator CPU y un worker CPU. Luego unas consultas simples confirman la salud del clúster. Es un lab Presto mínimo que opera sobre datos del host en lugar de construir un almacén desde cero — un playground de un comando que encanta a los equipos de infra.
El segundo notebook añade volumen. El dataset es el sintético de IBM para anti-lavado de dinero (AML). Está en Kaggle como "IBM Transactions for Anti Money Laundering" y también en Hugging Face; el número de filas varía por escala, unas 176 millones a gran escala. Imita transacciones financieras — transferencias, compras, pagos con tarjeta — y se usa mucho en investigación GNN y foundation models. El notebook lo carga en el warehouse y verifica de nuevo que el clúster responde con consultas simples. Este paso fija el volumen realista del benchmark; sintético pero cercano a prod en forma y escala para una carga analítica.
El tercer notebook trae la novedad: copiar el almacén existente y añadir el motor GPU encima. En el Explorer se ven config y metadatos duplicados de forma idéntica, luego se añaden algunas propiedades GPU y se arranca el clúster GPU. El arranque parece rápido, pero la primera verificación aún muestra Starting; el segundo intento pasa a Running. Luego una prueba de humo: select star limit 1. William apunta que la primera consulta tarda cerca de un segundo porque levanta los binarios en VRAM — ese warm-up es esperado. Luego una decisión de diseño asumida: el lado GPU queda en solo lectura. La idea es evitar que dos escritores corrompan los mismos ficheros mientras informes y jobs siguen en el clúster CPU; el motor GPU solo lee. Si solo vas a correr el motor GPU, puedes quitar la restricción.
Y el cara a cara. La misma consulta — no monstruosa, pero con agrupación y ordenación sobre todas las filas y diez filas devueltas — se envía secuencialmente a ambos motores. El código abre conexiones y cursores separados para CPU y GPU en un bucle y cronometra cada ejecución. El resultado en pantalla es nítido: unos 6 segundos en CPU, 1,6 segundos en GPU. Es 3,75× más rápido, redondeado a cuatro o cinco veces en la narración. El delta Docker es igual de mínimo: imagen coordinator prestodb/presto:latest frente a gpu-nightly, worker prestodb/presto-native:latest frente a gpu-nightly; una celda de comparación lado a lado en el tema claro de Jupyter subraya la diferencia de dos líneas. Copia el almacén, cambia el tag de imagen, añade unas propiedades GPU — la ganancia está a ese alcance.
Haciendo zoom atrás, la imagen encaja. Los tres notebooks de Prestorials muestran cómo colocar un segundo nivel más rápido junto a un almacén de producción sin mover datos y manteniendo el mismo SQL. La integración IBM + NVIDIA Velox + cuDF, descrita en el paper de taller VLDB arXiv 2606.24647 de marzo de 2026, ataca dos problemas duros: llevar datos del almacenamiento a operadores GPU y mantener los intercambios entre operadores en memoria GPU. Las primeras evaluaciones sobre consultas derivadas de TPC-H reportan hasta 6× de mejora coste/rendimiento. El vídeo aporta una prueba de lab concreta sobre 179 millones de filas: 6 frente a 1,6 segundos. La conclusión es práctica: para probar Presto acelerado por GPU, clona Prestorials, ejecuta los mismos notebooks y comparte tu speedup en comentarios.
| Plataforma | Tiempo | Aceleración |
|---|---|---|
| CPU (Presto Native) | 6,0 s | 1× |
| GPU (Presto + Velox/cuDF) | 1,6 s | 3,8× |
Comentario de la IA
"Lo que más me llamó la atención es el enfoque: se gana cambiando el motor de ejecución, no los datos. Un 3,75× en 176 millones de filas por dos líneas de config en una imagen nightly es generoso — pero el coste de la primera carga en VRAM y que las consultas pequeñas siguen mejor en CPU mantienen el relato honesto."
Evaluación de la IA
En su versión más fuerte, la postura opuesta defiende que la CPU sigue siendo la opción racional en muchos trabajos. En un filtro de 100 filas o una búsqueda puntual, el coste de mover datos a VRAM borra la ganancia; para consultas pequeñas, frecuentes e interactivas y cargas con mucha escritura, el Presto JVM e incluso sistemas tipo Postgres siguen siendo más simples y baratos. Mover pipelines, monitorización y certificaciones de seguridad a una imagen gpu-nightly también implica riesgo operativo — un tag nightly no promete estabilidad.
Límites y notas de metodología son claros. El vídeo compara dos clústeres en el mismo host Docker, en un solo nodo; no se mide el shuffle de red ni el intercambio distribuido multi-nodo. El warm-up de VRAM de la primera consulta no se desglosa como partida separada, así que la segunda y siguientes parecen mejores. La capacidad de VRAM — incluso 13,5 TB HBM3e / 17 TB LPDDR5X en GB200 — es finita; tablas que la exceden requieren spill o particionado. Y el dataset IBM AML es sintético; el sesgo prod real, tasas de nulos y cardinalidad pueden llevar al planificador por otro camino.
¿De quién es la afirmación y qué necesita verificación independiente? La velocidad se apoya en la medición 6 frente a 1,6 segundos del vídeo y la nota de hasta 6× coste/rendimiento en el paper de taller VLDB arXiv 2606.24647 de IBM-NVIDIA. Para validación independiente, los notebooks Prestorials están abiertos — repita el mismo volumen y tipo de instancia con consultas derivadas de TPC-H; las cifras DGX B200 del blog GB200 NVL72 son otra clase de hardware, así que léalas como referencia de escala, no comparación directa. Los docs NVIDIA CUDA-X / cuDF y la doc Prestodb son las fuentes primarias sobre qué contienen versiones y tags nightly.
En la práctica: una capa GPU es atractiva para escaneos amplios repetidos — informes nocturnos y extracción de features con 100M+ filas y agregaciones/ordenaciones pesadas — sobre todo si ya usa Presto Native basado en Velox, donde el cambio son dos líneas de config. Para consultas interactivas pequeñas, escrituras frecuentes y presupuestos ajustados, quedarse en CPU o evaluar vías alternativas de aceleración (p. ej. Spark RAPIDS) es más sano. No decida sin medir su distribución de tamaños de consulta y su presupuesto de VRAM.
Fuentes
11 enlaces; ninguna otra noticia publicada los cita. Stories sharing a link do not confirm each other; a source's origin is not inferred from how often it is cited.
- @youtube.com YouTube — IBM Developer: Aceleración GPU Presto
- @github.com https://github.com/prestodb/prestorials
- @github.com https://github.com/prestodb/presto
- @prestodb.io https://prestodb.io/docs/current/overview.html
- @developer.nvidia.com https://developer.nvidia.com/blog/accelerating-large-scale-data-analytics-with-gpu-native-velox-and-nvidia-cudf
- @developer.nvidia.com https://developer.nvidia.com/blog/running-low-latency-analytical-workloads-with-gpu-accelerated-presto-on-nvidia-gb200-nvl72
- @arxiv.org https://arxiv.org/abs/2606.24647
- @docs.nvidia.com https://docs.nvidia.com/cudf/latest
- @kaggle.com https://www.kaggle.com/datasets/ealtman2019/ibm-transactions-for-anti-money-laundering-aml
- @github.com https://github.com/IBM/AML-Data
- @research.ibm.com https://research.ibm.com/publications/accelerating-presto-with-gpus
presto · velox · gpu · nvidia cudf · sql · docker · ibm