<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>GPU on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/gpu/</link>
        <description>Recent content in GPU on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Mon, 27 Apr 2026 08:51:10 +0800</lastBuildDate><atom:link href="https://knightli.com/es/tags/gpu/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Cómo elegir una GPU en abril de 2026: qué modelos evitar y cuáles vale más la pena considerar</title>
        <link>https://knightli.com/es/2026/04/27/gpu-buying-guide-april-2026-model-picks/</link>
        <pubDate>Mon, 27 Apr 2026 08:51:10 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/27/gpu-buying-guide-april-2026-model-picks/</guid>
        <description>&lt;p&gt;Si te estás preparando para construir una PC, la GPU es la única parte en la que realmente no debes fijarte únicamente en si una tarjeta es nueva. En abril de 2026, algunos modelos ya son mucho más difíciles de justificar, mientras que otros no son perfectos, pero aún así parecen notablemente más razonables que las alternativas del mismo precio.&lt;/p&gt;
&lt;p&gt;Así que este artículo se salta la teoría y va directamente a modelos específicos.&lt;/p&gt;
&lt;h2 id=&#34;modelos-que-no-priorizaría&#34;&gt;Modelos que no priorizaría
&lt;/h2&gt;&lt;h2 id=&#34;1-rtx-5060-ti-8gb&#34;&gt;1. &lt;code&gt;RTX 5060 Ti 8GB&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;El mayor problema de esta tarjeta no es que sea inutilizable. El problema es que &amp;ldquo;8GB&amp;rdquo; ya se siente atrapado en un incómodo término medio en este momento.&lt;/p&gt;
&lt;p&gt;Si juegas principalmente a juegos en línea más livianos en configuraciones &lt;code&gt;1080p&lt;/code&gt; de media a alta, aún puede funcionar. Pero una vez que ingresa a cualquiera de estas áreas, la limitación aparece rápidamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Juegos AAA más nuevos&lt;/li&gt;
&lt;li&gt;Configuraciones de textura más altas&lt;/li&gt;
&lt;li&gt;&lt;code&gt;1440p&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Uso mixto con inferencia de IA, edición o trabajo de productividad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si ya está considerando la &amp;ldquo;RTX 5060 Ti&amp;rdquo;, la decisión más segura suele ser ir directamente a la versión de &amp;ldquo;16 GB&amp;rdquo; en lugar de ahorrar un poco de presupuesto optando por la de &amp;ldquo;8 GB&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;En resumen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;RTX 5060 Ti 8GB&lt;/code&gt;: no recomendado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RTX 5060 Ti 16GB&lt;/code&gt;: claramente más vale la pena considerar&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-tarjetas-antiguas-y-caras-especialmente-rtx-3080-10gb-y-rtx-3070-ti-cuando-todavía-tienen-un-precio-elevado&#34;&gt;2. Tarjetas antiguas y caras, especialmente &lt;code&gt;RTX 3080 10GB&lt;/code&gt; y &lt;code&gt;RTX 3070 Ti&lt;/code&gt; cuando todavía tienen un precio elevado
&lt;/h2&gt;&lt;p&gt;El problema con estas tarjetas no es que el rendimiento sea completamente malo. El problema es que, en el mercado actual, comprarlos a menudo te pone en una situación incómoda:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El consumo de energía no es bajo&lt;/li&gt;
&lt;li&gt;Ya no son nuevos&lt;/li&gt;
&lt;li&gt;La VRAM no es especialmente generosa&lt;/li&gt;
&lt;li&gt;Las fuentes del mercado de segunda mano suelen ser confusas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;RTX 3080 10GB&lt;/code&gt; es el ejemplo más claro. Si todavía tiene un precio alto, rápidamente se convierte en una tarjeta que parece sólida en el papel pero que se siente menos equilibrada en el uso real.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;RTX 3070 Ti&lt;/code&gt; sigue la misma lógica. No es absolutamente imposible de comprar, pero si la diferencia de precio no es significativa, normalmente será mejor que busques algo más nuevo, algo con una VRAM más cómoda o algo más equilibrado en potencia y térmica.&lt;/p&gt;
&lt;h2 id=&#34;3-insignias-más-antiguas-con-un-historial-poco-claro-como-rtx-3090-y-rtx-3080-ti&#34;&gt;3. Insignias más antiguas con un historial poco claro, como &lt;code&gt;RTX 3090&lt;/code&gt; y &lt;code&gt;RTX 3080 Ti&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Es fácil querer estas dos cartas por razones obvias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los nombres todavía suenan fuertes&lt;/li&gt;
&lt;li&gt;El rendimiento del papel no es débil&lt;/li&gt;
&lt;li&gt;Son muy visibles en el mercado de segunda mano.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lo que realmente hay que tener en cuenta es de dónde vienen.&lt;/p&gt;
&lt;p&gt;Si estás comprando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una tarjeta extraída&lt;/li&gt;
&lt;li&gt;Una tarjeta reparada&lt;/li&gt;
&lt;li&gt;Una tarjeta usada con un historial poco claro.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;entonces el riesgo suele ser mucho mayor que con una tarjeta minorista normal. Una tarjeta como la &amp;ldquo;RTX 3090&amp;rdquo; parece atractiva debido a la VRAM de &amp;ldquo;24 GB&amp;rdquo;, pero el calor, la entrega de energía, el estado del silicio y el historial de uso pasado se convierten en preocupaciones mayores de las que serían en una tarjeta nueva y sencilla.&lt;/p&gt;
&lt;p&gt;Si aún no sabe exactamente lo que está comprando y no planea dedicar tiempo a revisar la tarjeta con atención, estos buques insignia más antiguos generalmente no son algo que tocaría casualmente.&lt;/p&gt;
&lt;h2 id=&#34;4-rtx-5070-cuando-el-precio-no-es-el-adecuado&#34;&gt;4. &lt;code&gt;RTX 5070&lt;/code&gt; cuando el precio no es el adecuado
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;RTX 5070&lt;/code&gt; no es una tarjeta que sea automáticamente mala. El problema es que el precio tiene que tener sentido.&lt;/p&gt;
&lt;p&gt;Su incomodidad aparece cuando la brecha entre este y el &lt;code&gt;RTX 5070 Ti&lt;/code&gt; no es lo suficientemente grande. En ese caso, muchos compradores acaban sintiéndose extrañamente insatisfechos.&lt;/p&gt;
&lt;p&gt;El patrón suele verse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Compra el &lt;code&gt;5070&lt;/code&gt;: sigues pensando que con un poco más te habrías comprado el &lt;code&gt;5070 Ti&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;No estires el presupuesto: aún sabes que compraste la tarjeta &amp;ldquo;casi&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo tanto, &amp;ldquo;RTX 5070&amp;rdquo; no es algo que deba ignorarse por completo, pero &lt;strong&gt;vale la pena considerarlo solo cuando el precio es claramente correcto&lt;/strong&gt;. Si el precio se sitúa en una zona intermedia incómoda, rápidamente se convierte en una tarjeta que tiene sentido teórico pero que no se siente muy bien en la práctica.&lt;/p&gt;
&lt;h2 id=&#34;modelos-que-tienen-más-sentido&#34;&gt;Modelos que tienen más sentido
&lt;/h2&gt;&lt;h2 id=&#34;1-rtx-5060-ti-16gb&#34;&gt;1. &lt;code&gt;RTX 5060 Ti 16GB&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Si ya está comprando en el rango medio, esta tarjeta suele ser la opción más segura en comparación con la versión de &amp;ldquo;8 GB&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Las razones son simples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Más espacio libre dentro de la misma familia de productos&lt;/li&gt;
&lt;li&gt;Es menos probable que VRAM lo bloquee en los próximos años.&lt;/li&gt;
&lt;li&gt;Es más fácil vivir con él si combinas juegos y productividad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puede que no sea la tarjeta más explosiva por su precio, pero al menos es el tipo de tarjeta de la que es menos probable que te arrepientas inmediatamente.&lt;/p&gt;
&lt;h2 id=&#34;2-rtx-5070-ti&#34;&gt;2. &lt;code&gt;RTX 5070 Ti&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Si su presupuesto puede estirarse, esta suele ser una respuesta más completa que el &lt;code&gt;RTX 5070&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Su valor no es que domine todos los escenarios. Su valor es que se siente más como una tarjeta que puede equilibrar los juegos, la resolución y el uso a largo plazo, todo al mismo tiempo.&lt;/p&gt;
&lt;p&gt;Tiene sentido para las personas que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quiere configuraciones altas de &lt;code&gt;1440p&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Quiere que el sistema dure años&lt;/li&gt;
&lt;li&gt;No quiero empezar a pensar en actualizaciones demasiado pronto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si ya está atrapado entre el &lt;code&gt;5070&lt;/code&gt; y el &lt;code&gt;5070 Ti&lt;/code&gt;, y la brecha no es absurdamente grande, ir directamente al &lt;code&gt;5070 Ti&lt;/code&gt; suele ser la decisión menos molesta.&lt;/p&gt;
&lt;h2 id=&#34;3-las-tarjetas-nuevas-con-un-precio-adecuado-suelen-ser-una-mejor-primera-opción-que-las-tarjetas-más-antiguas-de-alta-gama&#34;&gt;3. Las tarjetas nuevas con un precio adecuado suelen ser una mejor primera opción que las tarjetas más antiguas de alta gama
&lt;/h2&gt;&lt;p&gt;Si no eres un cazador veterano de GPU usadas, una regla simple y efectiva es la siguiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Priorizar las nuevas tarjetas minoristas normales&lt;/li&gt;
&lt;li&gt;Tenga cuidado con las tarjetas antiguas de alta gama que tienen orígenes complicados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este punto, el enfoque más práctico suele ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Presupuesto de gama media: comience con &lt;code&gt;RTX 5060 Ti 16GB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Un nivel superior: céntrese en &lt;code&gt;RTX 5070 Ti&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Considere &lt;code&gt;RTX 5070&lt;/code&gt; solo cuando el precio sea claramente favorable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este suele ser un mejor camino que apostar con cartas más antiguas que suenan más fuertes pero que vienen con más equipaje.&lt;/p&gt;
&lt;h2 id=&#34;si-solo-quieres-la-versión-corta&#34;&gt;Si solo quieres la versión corta
&lt;/h2&gt;&lt;p&gt;Puedes recordarlo así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Realmente no recomendado: &lt;code&gt;RTX 5060 Ti 8GB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;No recomendado a menos que tenga un buen precio: &lt;code&gt;RTX 5070&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Tenga cuidado con: &lt;code&gt;RTX 3080 10GB&lt;/code&gt;, &lt;code&gt;RTX 3070 Ti&lt;/code&gt; y &lt;code&gt;RTX 3090&lt;/code&gt;/&lt;code&gt;RTX 3080 Ti&lt;/code&gt; de fuente poco clara&lt;/li&gt;
&lt;li&gt;Más que vale la pena considerar: &lt;code&gt;RTX 5060 Ti 16GB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Selección más fácil a largo plazo si el presupuesto lo permite: &lt;code&gt;RTX 5070 Ti&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;línea-final&#34;&gt;Línea final
&lt;/h2&gt;&lt;p&gt;A estas alturas del mercado el verdadero error suele ser no gastar un poco más. Se trata de &lt;strong&gt;comprar una tarjeta que parece aceptable en papel pero que siempre se siente un poco comprometida en el uso real&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Si desea minimizar el arrepentimiento, &lt;code&gt;RTX 5060 Ti 16GB&lt;/code&gt; y &lt;code&gt;RTX 5070 Ti&lt;/code&gt; son generalmente más seguras que muchas tarjetas que parecen &amp;ldquo;suficientemente buenas&amp;rdquo;, mientras que &lt;code&gt;RTX 5060 Ti 8GB&lt;/code&gt;, &lt;code&gt;RTX 5070&lt;/code&gt; de mal precio y tarjetas de gama alta más antiguas con un historial poco claro suelen ser las primeras en tachar.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Actualizaciones de hardware y GPU Ubuntu 26.04 LTS: CUDA, ROCm, DPC&#43;&#43; y más cambios de plataforma</title>
        <link>https://knightli.com/es/2026/04/26/ubuntu-26-04-lts-gpu-hardware-ai-updates/</link>
        <pubDate>Sun, 26 Apr 2026 19:35:57 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/26/ubuntu-26-04-lts-gpu-hardware-ai-updates/</guid>
        <description>&lt;p&gt;Si el artículo anterior funcionó como una descripción general centrada en el escritorio de &lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt;, es mejor leer este como su seguimiento del hardware y la computación. En este ciclo &lt;code&gt;26.04&lt;/code&gt;, Ubuntu impulsó una serie de cambios en IA, computación GPU y compatibilidad de plataforma en el archivo principal o alcance de soporte formal.&lt;/p&gt;
&lt;p&gt;La versión corta es esta: la parte más importante de esta ronda no son solo las actualizaciones de escritorio y kernel, sino que &lt;strong&gt;Ubuntu está incorporando pilas de computación de GPU Intel, NVIDIA y AMD a la distribución de una manera más sistemática&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;1-intel-dpc-y-componentes-relacionados-ahora-están-en-ubuntu-archive&#34;&gt;1. Intel DPC++ y componentes relacionados ahora están en Ubuntu Archive
&lt;/h2&gt;&lt;p&gt;A partir de &lt;code&gt;26.04&lt;/code&gt;, el compilador de código abierto &lt;code&gt;oneAPI DPC++&lt;/code&gt; de Intel está disponible directamente desde Ubuntu Archive para crear código &lt;code&gt;SYCL&lt;/code&gt;. Su tiempo de ejecución también incluye adaptadores para GPU Intel.&lt;/p&gt;
&lt;p&gt;Ahora también están disponibles dos componentes relacionados en los repositorios de Ubuntu:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;oneDPL&lt;/code&gt;, la biblioteca DPC++, que proporciona API de desarrollador de mayor productividad&lt;/li&gt;
&lt;li&gt;&lt;code&gt;oneDNN&lt;/code&gt;, creado con &lt;code&gt;dpclang-6&lt;/code&gt;, que puede ejecutarse en GPU Intel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso significa que si ya está trabajando con &lt;code&gt;SYCL&lt;/code&gt;, computación heterogénea o cargas de trabajo de IA en GPU Intel, Ubuntu ahora ofrece una ruta más directa en lugar de obligarlo a mantener una pila externa separada para todo.&lt;/p&gt;
&lt;p&gt;Ubuntu también señala un requisito práctico: los usuarios deben estar en el grupo &amp;ldquo;renderizar&amp;rdquo; para utilizar realmente estas capacidades relacionadas con la GPU Intel.&lt;/p&gt;
&lt;h2 id=&#34;2-el-kit-de-herramientas-nvidia-cuda-ahora-se-puede-instalar-directamente-con-apt&#34;&gt;2. El kit de herramientas NVIDIA CUDA ahora se puede instalar directamente con &lt;code&gt;apt&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Para muchos desarrolladores y operadores, este puede ser uno de los cambios más útiles de inmediato en las notas.&lt;/p&gt;
&lt;p&gt;A partir de &lt;code&gt;26.04&lt;/code&gt;, el &lt;code&gt;kit de herramientas NVIDIA CUDA&lt;/code&gt; ahora se puede instalar directamente desde Ubuntu Archive:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install cuda-toolkit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El valor aquí es mayor que simplemente guardar algunos pasos de configuración.&lt;/p&gt;
&lt;p&gt;Para los desarrolladores que envían software en Ubuntu, este nuevo modelo significa que pueden simplemente declarar una dependencia del &amp;ldquo;tiempo de ejecución CUDA&amp;rdquo;, mientras que Ubuntu gestiona la instalación y la compatibilidad a nivel de distribución. Eso hace que CUDA se sienta más como una capacidad nativa del sistema en Ubuntu, en lugar de una capa de software adicional que siempre debe mantenerse por separado.&lt;/p&gt;
&lt;h2 id=&#34;3-amd-rocm-710-ya-está-en-universe&#34;&gt;3. AMD ROCm 7.1.0 ya está en Universe
&lt;/h2&gt;&lt;p&gt;Por el lado de AMD, Ubuntu Universe ahora incluye &lt;code&gt;ROCm 7.1.0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Estas bibliotecas proporcionan principalmente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;infraestructura backend para entrenamiento e inferencia de IA en GPU AMD&lt;/li&gt;
&lt;li&gt;fundamentos de software para el aprendizaje automático y la informática de alto rendimiento&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Canonical también señala que los componentes relacionados con ROCm se prueban continuamente en su canal de CI/CD. Más allá de &amp;ldquo;autopkgtests&amp;rdquo;, eso incluye varias aplicaciones de espacio de usuario como:&lt;/p&gt;
&lt;p&gt;-&lt;code&gt;llama.cpp&lt;/code&gt;
-&lt;code&gt;pytorch&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;licuadora&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Servidor de limonada&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese detalle es importante, porque muestra que Ubuntu no se limita a colocar paquetes en el archivo. Está validando ROCm como una pila de software mantenible.&lt;/p&gt;
&lt;h2 id=&#34;4-la-historia-más-importante-es-que-los-tres-ecosistemas-de-gpu-están-aterrizando&#34;&gt;4. La historia más importante es que los tres ecosistemas de GPU están aterrizando
&lt;/h2&gt;&lt;p&gt;Es más fácil ver la dirección de &lt;code&gt;26.04&lt;/code&gt; cuando &lt;code&gt;DPC++&lt;/code&gt;, &lt;code&gt;CUDA&lt;/code&gt; y &lt;code&gt;ROCm&lt;/code&gt; se ven juntos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Intel: incorporando componentes &lt;code&gt;SYCL&lt;/code&gt;/&lt;code&gt;oneAPI&lt;/code&gt; a repositorios oficiales&lt;/li&gt;
&lt;li&gt;NVIDIA: dando al &lt;code&gt;kit de herramientas CUDA&lt;/code&gt; una ruta de instalación administrada por distribución&lt;/li&gt;
&lt;li&gt;AMD: lanzando &lt;code&gt;ROCm 7.1.0&lt;/code&gt; en Universe con pruebas en curso&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si trabaja con este tipo de cargas de trabajo en Ubuntu, esta versión probablemente le resultará más relevante:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;inferencia local LLM&lt;/li&gt;
&lt;li&gt;Entrenamiento o ajuste acelerado por GPU&lt;/li&gt;
&lt;li&gt;Blender, informática científica y HPC.&lt;/li&gt;
&lt;li&gt;entornos de desarrollo que necesitan moverse a través de diferentes plataformas GPU&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, Ubuntu ya no es sólo &amp;ldquo;un sistema donde puedes instalar un controlador de GPU&amp;rdquo;. Está comenzando a tener una &lt;strong&gt;pila de software de espacio de usuario más completa para computación con IA y GPU&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;5-nvidia-dynamic-boost-está-habilitado-de-forma-predeterminada&#34;&gt;5. NVIDIA Dynamic Boost está habilitado de forma predeterminada
&lt;/h2&gt;&lt;p&gt;Desde el &amp;ldquo;25.04&amp;rdquo;, &amp;ldquo;Dynamic Boost&amp;rdquo; se ha habilitado de forma predeterminada en las computadoras portátiles NVIDIA compatibles.&lt;/p&gt;
&lt;p&gt;La idea es sencilla: dependiendo de la carga del sistema, la energía se puede cambiar dinámicamente entre la CPU y la GPU. En escenarios de juegos, eso generalmente significa darle más potencia a la GPU cuando sea necesario para extraer más rendimiento.&lt;/p&gt;
&lt;p&gt;Sólo se aplica bajo dos condiciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la computadora portátil está conectada a la alimentación de CA&lt;/li&gt;
&lt;li&gt;la carga de la GPU es lo suficientemente alta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No se activa mientras el sistema está funcionando con batería.&lt;/p&gt;
&lt;h2 id=&#34;6-la-compatibilidad-con-las-nuevas-gpu-intel-integradas-y-discretas-sigue-avanzando&#34;&gt;6. La compatibilidad con las nuevas GPU Intel integradas y discretas sigue avanzando
&lt;/h2&gt;&lt;p&gt;Ubuntu también continúa ampliando el soporte para nuevas GPU Intel, que incluyen:&lt;/p&gt;
&lt;p&gt;Integrado:&lt;/p&gt;
&lt;p&gt;-&lt;code&gt;Intel Core Ultra Xe2&lt;/code&gt;
-&lt;code&gt;Intel Core Ultra Xe3&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Discreto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Intel Arco 5 B570&lt;/code&gt;
-&lt;code&gt;Intel Arc 5 B580&lt;/code&gt;
-&lt;code&gt;Intel Arc Pro B50&lt;/code&gt;
-&lt;code&gt;Intel Arc Pro B60&lt;/code&gt;
-&lt;code&gt;Intel Arc Pro B65&lt;/code&gt;
-&lt;code&gt;Intel Arc Pro B70&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ubuntu también destaca varias características que ya están disponibles en estos dispositivos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rendimiento mejorado del trazado de rayos de GPU y CPU a través de Intel Embree, beneficiando aplicaciones como &lt;code&gt;Blender 4.2+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;codificación de vídeo por hardware para &lt;code&gt;AVC&lt;/code&gt;, &lt;code&gt;JPEG&lt;/code&gt;, &lt;code&gt;HEVC&lt;/code&gt; y &lt;code&gt;AV1&lt;/code&gt; en dispositivos &amp;ldquo;Battlemage&amp;rdquo;&lt;/li&gt;
&lt;li&gt;una nueva optimización &lt;code&gt;CCS&lt;/code&gt; en Intel Compute Runtime&lt;/li&gt;
&lt;li&gt;soporte de depuración habilitado para GPU Intel Xe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si está viendo las versiones de seguimiento, &amp;ldquo;25.10&amp;rdquo; también continúa incorporando más capacidades, que incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;soporte inicial para la plataforma de cliente de próxima generación de Intel con nombre en código &lt;code&gt;Panther Lake&lt;/code&gt; hasta &lt;code&gt;Linux kernel 6.17&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;IOMMU mejorado, subsistema PCIe y compatibilidad con múltiples GPU&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mesa 25.2.3&lt;/code&gt; habilitando &lt;code&gt;VK_KHR_shader_bfloat16&lt;/code&gt; para Battlemage y Panther Lake&lt;/li&gt;
&lt;li&gt;&lt;code&gt;intel-media-driver 25.3.0&lt;/code&gt; agrega soporte de decodificación Panther Lake y codificación &lt;code&gt;VP9&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;intel-compute-runtime 25.31&lt;/code&gt; ajusta el comportamiento de asignación de eventos de memoria del dispositivo local y del grupo &lt;code&gt;USM&lt;/code&gt; de nivel cero&lt;/li&gt;
&lt;li&gt;&lt;code&gt;level-zero 1.24&lt;/code&gt; y &lt;code&gt;level-zero-raytracing 1.1.0&lt;/code&gt; brindan compatibilidad con especificaciones más amplias y extensión RTAS&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;7-suspender-y-reanudar-también-es-más-estable-en-las-computadoras-de-escritorio-nvidia&#34;&gt;7. Suspender y reanudar también es más estable en las computadoras de escritorio Nvidia
&lt;/h2&gt;&lt;p&gt;A partir de &lt;code&gt;25.10&lt;/code&gt;, Ubuntu habilita el soporte de suspensión y reanudación en el controlador propietario &lt;code&gt;Nvidia&lt;/code&gt; para reducir la corrupción y la congelación al activar un sistema de escritorio.&lt;/p&gt;
&lt;p&gt;Este no es el tipo de cambio más visible, pero es muy importante en el uso diario, especialmente en computadoras de escritorio que permanecen encendidas durante períodos prolongados y que se suspenden y reanudan con frecuencia.&lt;/p&gt;
&lt;h2 id=&#34;8-arm-raspberry-pi-risc-v-e-ibm-z-también-reciben-cambios-más-difíciles-a-nivel-de-plataforma&#34;&gt;8. ARM, Raspberry Pi, RISC-V e IBM Z también reciben cambios más difíciles a nivel de plataforma
&lt;/h2&gt;&lt;p&gt;Más allá de la pila de software de GPU, las notas de la versión también incluyen varios cambios a nivel de plataforma que vale la pena mencionar por separado.&lt;/p&gt;
&lt;h3 id=&#34;plataformas-de-escritorio-arm64&#34;&gt;Plataformas de escritorio ARM64
&lt;/h3&gt;&lt;p&gt;A partir de &lt;code&gt;25.10&lt;/code&gt;, el kernel &lt;code&gt;linux-generic&lt;/code&gt; &lt;code&gt;ARM64&lt;/code&gt; proporciona una compatibilidad de escritorio más amplia para las plataformas de escritorio ARM64 que arrancan a través de &lt;code&gt;UEFI&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;un-nuevo-diseño-de-arranque-de-raspberry-pi&#34;&gt;Un nuevo diseño de arranque de Raspberry Pi
&lt;/h3&gt;&lt;p&gt;Un cambio introducido en &lt;code&gt;25.10&lt;/code&gt; y refinado en &lt;code&gt;26.04&lt;/code&gt; es un nuevo diseño de partición de arranque para sistemas Raspberry Pi.
Su objetivo es mejorar la confiabilidad del arranque: los recursos de arranque recién escritos primero se &amp;ldquo;prueban&amp;rdquo; antes de confirmarlos como el nuevo conjunto &amp;ldquo;bueno conocido&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Los requisitos de fecha del firmware son la parte que la mayoría de los usuarios querrán recordar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Pi 3 / 3+ / CM3+ / Zero 2W&lt;/code&gt;: no se requiere ninguna acción adicional, el firmware de arranque está en la propia imagen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Pi 4/400/CM4&lt;/code&gt;: el firmware de arranque no debe tener una fecha anterior a &lt;code&gt;2022-11-25&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Pi 5/500/CM5&lt;/code&gt;: el firmware de arranque no debe tener una fecha anterior a &lt;code&gt;2025-02-11&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puedes comprobarlo con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rpi-eeprom-update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el firmware es demasiado antiguo y está utilizando &amp;ldquo;Ubuntu 24.04 LTS&amp;rdquo; o más reciente, puede actualizarlo de esta manera:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rpi-eeprom-update -a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo reboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;las-imágenes-de-escritorio-de-raspberry-pi-ahora-usan-escritorio-mínimo&#34;&gt;Las imágenes de escritorio de Raspberry Pi ahora usan escritorio mínimo
&lt;/h3&gt;&lt;p&gt;Desde &amp;ldquo;25.10&amp;rdquo;, las imágenes de escritorio de Ubuntu para Raspberry Pi se basan en &amp;ldquo;desktop-minimal&amp;rdquo; en lugar de en la semilla de &amp;ldquo;escritorio&amp;rdquo; completa.&lt;/p&gt;
&lt;p&gt;Ubuntu ofrece aquí un beneficio muy concreto: el conjunto de aplicaciones predeterminado es más pequeño, lo que ahorra alrededor de &amp;ldquo;777 MB&amp;rdquo; en la imagen sin comprimir y en los sistemas instalados.&lt;/p&gt;
&lt;p&gt;Si desea eliminar esa aplicación predeterminada configurada de forma masiva después de la actualización, puede usar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt purge ubuntu-desktop --autoremove
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si desea conservar algunas de esas aplicaciones, primero márquelas como instaladas manualmente con &amp;ldquo;apt&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;el-intercambio-en-raspberry-pi-ahora-lo-maneja-cloud-init&#34;&gt;El intercambio en Raspberry Pi ahora lo maneja cloud-init
&lt;/h3&gt;&lt;p&gt;Desde &amp;ldquo;25.10&amp;rdquo;, la creación de archivos de intercambio en imágenes de escritorio de Raspberry Pi se maneja mediante &amp;ldquo;cloud-init&amp;rdquo;.&lt;br&gt;
Si desea personalizar el tamaño del intercambio antes del primer inicio, puede editar los &amp;ldquo;datos de usuario&amp;rdquo; directamente en la partición de inicio.&lt;/p&gt;
&lt;h3 id=&#34;los-requisitos-de-risc-v-han-aumentado&#34;&gt;Los requisitos de RISC-V han aumentado
&lt;/h3&gt;&lt;p&gt;A partir de &lt;code&gt;25.10&lt;/code&gt;, la compilación &lt;code&gt;RISC-V&lt;/code&gt; de &lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt; requiere hardware que implemente el &lt;code&gt;perfil ISA RVA23S64&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Los sistemas que no cumplan con ese requisito ya no podrán ejecutar &amp;ldquo;Ubuntu 26.04 LTS&amp;rdquo;. Si todavía tiene placas basadas en núcleos de procesador &amp;ldquo;RVA20&amp;rdquo; anteriores, debe permanecer en la línea de soporte proporcionada por &amp;ldquo;Ubuntu 24.04 LTS&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Según Ubuntu, a partir de &amp;ldquo;abril de 2026&amp;rdquo;, todavía no hay hardware &amp;ldquo;RVA23S64&amp;rdquo; real disponible. Por lo tanto, la única plataforma actualmente compatible es efectivamente un entorno virtualizado &amp;ldquo;QEMU&amp;rdquo; configurado con &amp;ldquo;-cpu rva23s64&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;ibm-z-ahora-requiere-z15-como-mínimo&#34;&gt;IBM Z ahora requiere z15 como mínimo
&lt;/h3&gt;&lt;p&gt;A partir de &lt;code&gt;26.04&lt;/code&gt;, el requisito mínimo para la arquitectura &lt;code&gt;s390x&lt;/code&gt; pasó a &lt;code&gt;z15&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Eso significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;z14&lt;/code&gt; / &lt;code&gt;LinuxONE II&lt;/code&gt; y sistemas más antiguos ya no pueden instalar &lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;z15&lt;/code&gt; / &lt;code&gt;LinuxONE III&lt;/code&gt; y los sistemas más nuevos deberían tener un mejor rendimiento&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;9-quién-debería-leer-esto-primero&#34;&gt;9. ¿Quién debería leer esto primero?
&lt;/h2&gt;&lt;p&gt;Este artículo es más útil que la descripción general del escritorio si se encuentra en alguno de estos casos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;usas Ubuntu para &lt;code&gt;CUDA&lt;/code&gt;, &lt;code&gt;ROCm&lt;/code&gt;, &lt;code&gt;SYCL&lt;/code&gt; o inferencia de IA local&lt;/li&gt;
&lt;li&gt;realiza trabajos de desarrollo o computación en GPU Intel, NVIDIA o AMD&lt;/li&gt;
&lt;li&gt;mantiene Raspberry Pi, ARM64, RISC-V, IBM Z u otras plataformas x86 no estándar&lt;/li&gt;
&lt;li&gt;eres especialmente sensible a la disponibilidad del repositorio, el comportamiento del controlador, los tiempos de ejecución y los requisitos de la plataforma después de una actualización&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;10-comida-para-llevar-de-una-línea&#34;&gt;10. Comida para llevar de una línea
&lt;/h2&gt;&lt;p&gt;El punto clave de &amp;ldquo;Ubuntu 26.04 LTS&amp;rdquo; en el lado del hardware y la pila de IA no es que un proveedor de GPU haya obtenido una actualización destacada. Es que &lt;strong&gt;DPC++ de Intel, CUDA de NVIDIA y ROCm de AMD están ingresando al ecosistema Ubuntu de una manera más oficial, en repositorio y mantenible&lt;/strong&gt;.
Si solía pensar en Ubuntu como &amp;ldquo;primero el sistema, luego yo mismo ensamblo el entorno de GPU&amp;rdquo;, &lt;code&gt;26.04&lt;/code&gt; comienza a parecerse más a una distribución que está dispuesta a transportar activamente IA y cargas de trabajo informáticas heterogéneas.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>C贸mo solucionar que Ollama use CPU en lugar de GPU</title>
        <link>https://knightli.com/es/2026/04/24/fix-ollama-using-cpu-instead-of-gpu/</link>
        <pubDate>Fri, 24 Apr 2026 18:30:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/24/fix-ollama-using-cpu-instead-of-gpu/</guid>
        <description>&lt;p&gt;Al ejecutar LLMs locales, uno de los problemas más frustrantes es este: tu máquina claramente tiene una GPU, sin embargo, &lt;code&gt;Ollama&lt;/code&gt; sigue apoyándose en gran medida en la &lt;code&gt;CPU&lt;/code&gt;, y el rendimiento es dolorosamente lento.&lt;/p&gt;
&lt;p&gt;La versión corta es que esto generalmente no se debe a un único problema. Las causas más comunes son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; no está detectando ninguna GPU utilizable&lt;/li&gt;
&lt;li&gt;El driver, el entorno &lt;code&gt;ROCm&lt;/code&gt; o &lt;code&gt;CUDA&lt;/code&gt; no están configurados correctamente&lt;/li&gt;
&lt;li&gt;El servicio &lt;code&gt;Ollama&lt;/code&gt; se inició sin las variables de entorno adecuadas&lt;/li&gt;
&lt;li&gt;El modelo es demasiado grande y ha recurrido a la &lt;code&gt;CPU&lt;/code&gt; o tiene una carga mixta de &lt;code&gt;CPU/GPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;En plataformas AMD, puede haber problemas de compatibilidad adicionales, como una incompatibilidad de versión de &lt;code&gt;ROCm&lt;/code&gt;, ajustes &lt;code&gt;gfx&lt;/code&gt;, o problemas de visibilidad del dispositivo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La forma más rápida de solucionar el problema es seguir las comprobaciones a continuación en orden.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;1-primero-confirma-si-ollama-realmente-no-está-usando-la-gpu&#34;&gt;1. Primero, confirma si Ollama realmente no está usando la GPU
&lt;/h2&gt;&lt;p&gt;La comprobación más directa es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Concéntrate en la columna &lt;code&gt;PROCESSOR&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;100% GPU&lt;/code&gt;: el modelo se está ejecutando completamente en la GPU&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt;: la GPU no se está usando en absoluto&lt;/li&gt;
&lt;li&gt;Resultados como &lt;code&gt;48%/52% CPU/GPU&lt;/code&gt;: parte del modelo está en VRAM, y parte se ha volcado a la memoria del sistema&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si ves &lt;code&gt;100% CPU&lt;/code&gt;, el siguiente paso es centrarse en la configuración del entorno y del servicio.
Si ves una carga mixta, eso no significa necesariamente que la GPU esté rota. En muchos casos, simplemente significa que la VRAM no es suficiente.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;2-descartar-primero-el-malentendido-más-común-el-modelo-no-cabe-en-vram&#34;&gt;2. Descartar primero el malentendido más común: el modelo no cabe en VRAM
&lt;/h2&gt;&lt;p&gt;Mucha gente asume que una vez que se instala una GPU, &lt;code&gt;Ollama&lt;/code&gt; siempre funcionará completamente en ella. Eso no es así.&lt;/p&gt;
&lt;p&gt;Si el modelo es demasiado grande, el contexto es demasiado largo, o algún otro modelo cargado ya está ocupando VRAM, &lt;code&gt;Ollama&lt;/code&gt; puede recurrir a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPU parcial + CPU parcial&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt; completo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En este punto, las dos pruebas más sencillas son:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Intentar un modelo más pequeño primero
Por ejemplo, pruébalo con un modelo &lt;code&gt;4B&lt;/code&gt; o &lt;code&gt;7B&lt;/code&gt; antes de saltar directamente a modelos mucho más grandes.&lt;/li&gt;
&lt;li&gt;Descargar otros modelos activos y probar de nuevo
Ejecuta &lt;code&gt;ollama ps&lt;/code&gt; primero y asegúrate de que nada más esté ocupando VRAM.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si los modelos más pequeños usan la GPU, pero los más grandes no, el problema real suele ser la capacidad de VRAM, y no el driver.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;3-comprobar-si-el-driver-de-la-gpu-y-el-runtime-de-bajo-nivel-están-funcionando-realmente&#34;&gt;3. Comprobar si el driver de la GPU y el runtime de bajo nivel están funcionando realmente
&lt;/h2&gt;&lt;p&gt;Si incluso modelos pequeños se ejecutan solo en &lt;code&gt;CPU&lt;/code&gt;, el siguiente paso es revisar el entorno subyacente.&lt;/p&gt;
&lt;h3 id=&#34;nvidia&#34;&gt;NVIDIA
&lt;/h3&gt;&lt;p&gt;Primero, confirma que el driver está funcionando y que el sistema puede ver la GPU. Una comprobación común es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si esto ya falla, es muy poco probable que &lt;code&gt;Ollama&lt;/code&gt; use la GPU correctamente.&lt;/p&gt;
&lt;h3 id=&#34;amd--rocm&#34;&gt;AMD / ROCm
&lt;/h3&gt;&lt;p&gt;Si estás usando una &lt;code&gt;AMD GPU&lt;/code&gt;, especialmente con &lt;code&gt;ROCm&lt;/code&gt;, empieza con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rocminfo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rocm-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si estas herramientas no pueden listar el dispositivo correctamente, el problema sigue estando por debajo de &lt;code&gt;Ollama&lt;/code&gt;, por lo que no tiene sentido depurar la capa de la aplicación todavía.&lt;/p&gt;
&lt;p&gt;En AMD, el problema más común no es simplemente &lt;code&gt;¿está instalado el driver?&lt;/code&gt;, sino más bien:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La versión de &lt;code&gt;ROCm&lt;/code&gt; no coincide con la versión del OS&lt;/li&gt;
&lt;li&gt;La arquitectura actual de la GPU tiene soporte incompleto&lt;/li&gt;
&lt;li&gt;El dispositivo existe, pero el runtime no se está exponiendo correctamente a &lt;code&gt;Ollama&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;4-reinicia-el-servicio-de-ollama-no-solo-tu-terminal&#34;&gt;4. Reinicia el servicio de Ollama, no solo tu terminal
&lt;/h2&gt;&lt;p&gt;Esta es una trampa muy común.&lt;/p&gt;
&lt;p&gt;Muchas personas instalan drivers, cambian variables de entorno, arreglan &lt;code&gt;ROCm&lt;/code&gt;, y luego simplemente abren una nueva terminal y continúan con &lt;code&gt;ollama run&lt;/code&gt;. Pero si &lt;code&gt;Ollama&lt;/code&gt; se está ejecutando como un servicio en segundo plano, aún puede estar usando el entorno antiguo.&lt;/p&gt;
&lt;p&gt;Por lo tanto, el enfoque más seguro es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reiniciar completamente el servicio &lt;code&gt;Ollama&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Reiniciar la máquina si es necesario&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si lo estás ejecutando como un servicio en Linux, asegúrate de que el proceso del servicio fue realmente reiniciado en lugar de reutilizar el antiguo.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;5-comprobar-si-las-variables-de-entorno-están-llegando-realmente-al-servicio&#34;&gt;5. Comprobar si las variables de entorno están llegando realmente al servicio
&lt;/h2&gt;&lt;p&gt;Esto es especialmente importante en sistemas &lt;code&gt;AMD ROCm&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Algunas máquinas funcionan bien cuando se ejecutan comandos manualmente en un shell, pero el servicio &lt;code&gt;Ollama&lt;/code&gt; sigue usando solo &lt;code&gt;CPU&lt;/code&gt;. En ese caso, la razón habitual es que el proceso del servicio nunca recibió las variables que estableciste en tu shell.&lt;/p&gt;
&lt;p&gt;Las variables comunes a revisar incluyen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ROCR_VISIBLE_DEVICES
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;HSA_OVERRIDE_GFX_VERSION
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Específicamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; limita o selecciona qué GPUs puede ver &lt;code&gt;ROCm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt; se usa a menudo como solución de compatibilidad en algunas plataformas AMD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo &lt;code&gt;exportas&lt;/code&gt; estas variables en la terminal actual, pero &lt;code&gt;Ollama&lt;/code&gt; es iniciado por &lt;code&gt;systemd&lt;/code&gt;, un servicio de fondo de escritorio u otro demonio, es posible que no surtan efecto.&lt;/p&gt;
&lt;p&gt;En otras palabras, que &amp;ldquo;parece estar establecido en mi terminal&amp;rdquo; no significa que &lt;code&gt;Ollama&lt;/code&gt; lo esté usando realmente.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;6-en-plataformas-amd-céntrate-en-la-compatibilidad-de-rocm&#34;&gt;6. En plataformas AMD, céntrate en la compatibilidad de ROCm
&lt;/h2&gt;&lt;p&gt;Según los metadatos de la página pública, el video original sobre este tema está vinculado a &lt;code&gt;AMD Max+ 395&lt;/code&gt;, &lt;code&gt;strix halo&lt;/code&gt;, y &lt;code&gt;AMD ROCm&lt;/code&gt;.
En configuraciones como estas, que &lt;code&gt;Ollama&lt;/code&gt; no logre usar la GPU a menudo depende más de la coincidencia de versiones que de los sistemas NVIDIA.&lt;/p&gt;
&lt;p&gt;Empieza revisando lo siguiente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si la versión instalada de &lt;code&gt;ROCm&lt;/code&gt; es compatible con el OS y la GPU actuales&lt;/li&gt;
&lt;li&gt;Si la GPU pertenece a una arquitectura con soporte sólido de &lt;code&gt;ROCm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si necesitas establecer &lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si una versión anterior de &lt;code&gt;Ollama&lt;/code&gt; o un runtime de inferencia antiguo está causando problemas de compatibilidad&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si &lt;code&gt;rocminfo&lt;/code&gt; funciona y la GPU es visible para el sistema, pero &lt;code&gt;Ollama&lt;/code&gt; sigue ejecutándose solo en &lt;code&gt;CPU&lt;/code&gt;, el problema a menudo radica en la combinación de versiones en lugar de en los parámetros del modelo.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;7-en-docker-wsl-o-entornos-remotos-comprueba-también-el-mapeo-de-dispositivos&#34;&gt;7. En Docker, WSL o entornos remotos, comprueba también el mapeo de dispositivos
&lt;/h2&gt;&lt;p&gt;Si no estás ejecutando en hardware físico (bare metal) sino dentro de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;WSL&lt;/li&gt;
&lt;li&gt;Contenedores remotos (Remote containers)&lt;/li&gt;
&lt;li&gt;Entornos virtualizados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;entonces necesitas comprobar una capa más: si el dispositivo GPU realmente se está exponiendo dentro de ese entorno.&lt;/p&gt;
&lt;p&gt;Un síntoma típico se ve así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La máquina anfitriona (host machine) puede ver la GPU&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ollama&lt;/code&gt; dentro del contenedor o subsistema sigue usando solo &lt;code&gt;CPU&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En ese caso, el problema puede no ser &lt;code&gt;Ollama&lt;/code&gt; en sí. El contenedor o subsistema simplemente puede no tener acceso a la GPU.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;8-revisar-los-registros-al-final-pero-revisarlos-por-la-razón-correcta&#34;&gt;8. Revisar los registros al final, pero revisarlos por la razón correcta
&lt;/h2&gt;&lt;p&gt;Si ya has pasado por los pasos anteriores, el siguiente movimiento más efectivo no es reinstalar sin parar, sino mirar directamente los registros de inicio y tiempo de ejecución de &lt;code&gt;Ollama&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Concéntrate en dos tipos de mensajes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si se detectó una GPU&lt;/li&gt;
&lt;li&gt;Si hay errores de controlador, carga de bibliotecas o inicialización de dispositivos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si los registros dicen claramente algo como &amp;ldquo;no compatible GPU found&amp;rdquo; o &amp;ldquo;failed to initialize ROCm/CUDA&amp;rdquo;, la dirección de la solución de problemas se vuelve mucho más clara de inmediato.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;orden-de-solución-de-problemas&#34;&gt;Orden de Solución de Problemas
&lt;/h2&gt;&lt;p&gt;Si solo quieres el camino más corto, usa este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ejecuta &lt;code&gt;ollama ps&lt;/code&gt; y confirma si está usando &lt;code&gt;GPU&lt;/code&gt;, &lt;code&gt;CPU&lt;/code&gt; o carga mixta.&lt;/li&gt;
&lt;li&gt;Intenta con un modelo más pequeño para descartar límites de VRAM.&lt;/li&gt;
&lt;li&gt;Utiliza &lt;code&gt;nvidia-smi&lt;/code&gt;, &lt;code&gt;rocminfo&lt;/code&gt; y &lt;code&gt;rocm-smi&lt;/code&gt; para verificar primero el entorno de bajo nivel.&lt;/li&gt;
&lt;li&gt;Reinicia completamente el servicio &lt;code&gt;Ollama&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Revisa las variables de entorno del servicio, especialmente &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; y &lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt; en AMD.&lt;/li&gt;
&lt;li&gt;Si estás en Docker o WSL, verifica el mapeo de dispositivos.&lt;/li&gt;
&lt;li&gt;Finalmente, inspecciona los logs para encontrar el error exacto.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;Cuando &lt;code&gt;Ollama&lt;/code&gt; utiliza &lt;code&gt;CPU&lt;/code&gt; en lugar de &lt;code&gt;GPU&lt;/code&gt;, la causa raíz generalmente cae en uno de tres grupos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La GPU no está siendo detectada en absoluto&lt;/li&gt;
&lt;li&gt;La GPU es detectable, pero el entorno de ejecución no está alcanzando a &lt;code&gt;Ollama&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;La GPU está funcionando, pero el modelo es demasiado grande y retrocede a &lt;code&gt;CPU&lt;/code&gt; o memoria mixta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una vez que se separan esos tres casos, la solución de problemas se vuelve mucho más rápida. Si estás en una plataforma AMD, presta especial atención a la coincidencia de versiones de &lt;code&gt;ROCm&lt;/code&gt;, la visibilidad del dispositivo y las variables de compatibilidad, en lugar de centrarte solo en el comando &lt;code&gt;Ollama&lt;/code&gt; en sí.&lt;/p&gt;
&lt;p&gt;Original video: &lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1cHoYBqE8k/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.bilibili.com/video/BV1cHoYBqE8k/&lt;/a&gt;
false&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qu茅 es NVIDIA nvbandwidth: c贸mo usar esta herramienta de prueba de ancho de banda de GPU</title>
        <link>https://knightli.com/es/2026/04/24/nvidia-nvbandwidth-guide/</link>
        <pubDate>Fri, 24 Apr 2026 14:41:35 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/24/nvidia-nvbandwidth-guide/</guid>
        <description>&lt;p&gt;Si recientemente has estado solucionando problemas del rendimiento de la interconexión entre múltiples &lt;code&gt;NVIDIA GPU&lt;/code&gt;s, o si deseas verificar el ancho de banda real entre &lt;code&gt;PCIe&lt;/code&gt;, &lt;code&gt;NVLink&lt;/code&gt;, la memoria host y la VRAM, &lt;code&gt;NVIDIA/nvbandwidth&lt;/code&gt; es una herramienta pequeña que vale la pena conocer.&lt;/p&gt;
&lt;p&gt;No es una utilidad de benchmark general, ni es un comando oculto dentro de un framework de modelo grande. Es una herramienta de código abierto de NVIDIA diseñada específicamente para medir el ancho de banda y la latencia para copias de memoria relacionadas con la GPU. En lugar de solo mirar el ancho de banda teórico, &lt;code&gt;nvbandwidth&lt;/code&gt; es mejor para responder a una pregunta práctica: &lt;strong&gt;¿cuánto ancho de banda puede entregar esta máquina y sus interconexiones GPU actuales en este momento?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;1-qué-hace-nvbandwidth&#34;&gt;1. ¿Qué hace &lt;code&gt;nvbandwidth&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Según el README oficial, &lt;code&gt;nvbandwidth&lt;/code&gt; es una herramienta de línea de comandos para medir el ancho de banda en las &lt;code&gt;NVIDIA GPU&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Se enfoca principalmente en el rendimiento de transferencia a través de diferentes patrones de &lt;code&gt;memcpy&lt;/code&gt;, tales como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPU -&amp;gt; GPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CPU -&amp;gt; GPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPU -&amp;gt; CPU&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Transferencias entre GPUs a través de múltiples nodos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas pruebas son especialmente útiles en escenarios como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solucionar problemas de cuellos de botella de interconexión en el entrenamiento o la inferencia multi-GPU&lt;/li&gt;
&lt;li&gt;Verificar el comportamiento real de enlaces como &lt;code&gt;NVLink&lt;/code&gt;, &lt;code&gt;PCIe&lt;/code&gt; y &lt;code&gt;C2C&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Comparar diferencias de transferencia entre servidores, topologías, drivers o versiones de CUDA&lt;/li&gt;
&lt;li&gt;Realizar validación de hardware de referencia antes del despliegue del clúster&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En resumen, &lt;code&gt;nvbandwidth&lt;/code&gt; no se trata del rendimiento del modelo (model throughput). Se trata de la capacidad de bajo nivel para mover datos.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;2-no-produce-solo-una-puntuación-simple&#34;&gt;2. No produce solo una puntuación simple
&lt;/h2&gt;&lt;p&gt;Mucha gente considera una prueba de ancho de banda como algo que termina con un solo número, pero &lt;code&gt;nvbandwidth&lt;/code&gt; proporciona una salida más detallada que eso.&lt;/p&gt;
&lt;p&gt;Informa los resultados como matrices para cada tipo de prueba. Por ejemplo, en una prueba como &lt;code&gt;device_to_device_memcpy_write_ce&lt;/code&gt;, muestra el ancho de banda entre cada par de GPUs por fila y columna. Eso significa que puedes ver más que solo una estimación aproximada de la velocidad a nivel de todo el sistema. También puedes detectar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué pares de GPUs son especialmente rápidos&lt;/li&gt;
&lt;li&gt;Qué rutas están claramente limitadas por &lt;code&gt;PCIe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si ciertos pares de GPUs muestran un ancho de banda anormalmente bajo&lt;/li&gt;
&lt;li&gt;Si la topología multi-GPU coincide con tus expectativas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si estás trabajando con un servidor de 8 GPUs, una plataforma dual-socket o un sistema multinodo, esta salida de estilo matriz suele ser más útil que un único número promedio.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;3-cómo-entender-las-copias-ce-y-sm&#34;&gt;3. Cómo entender las copias &lt;code&gt;CE&lt;/code&gt; y &lt;code&gt;SM&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;La documentación oficial divide las pruebas en dos categorías:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CE&lt;/code&gt;: transferencias del motor de copia basadas en las APIs &lt;code&gt;memcpy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SM&lt;/code&gt;: transferencias basadas en el kernel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos dos tipos de resultados no están garantizados a coincidir exactamente, porque representan diferentes rutas de copia. Si principalmente quieres entender el comportamiento regular de transferencia de dispositivo a dispositivo, generalmente mirarás &lt;code&gt;CE&lt;/code&gt; primero. Si quieres estudiar los detalles de ejecución más de cerca, entonces &lt;code&gt;SM&lt;/code&gt; también vale la pena revisar.&lt;/p&gt;
&lt;p&gt;El README también explica que los resultados de ancho de banda utilizan la mediana a través de múltiples ejecuciones de prueba por defecto. Las versiones más nuevas incluyen además estadísticas de variabilidad, lo que facilita juzgar cuán estables son los números.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;4-qué-entorno-requiere&#34;&gt;4. ¿Qué entorno requiere
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; no es una utilidad binaria pura que simplemente descargues y ejecutes. Espera un entorno de desarrollo CUDA estándar.&lt;/p&gt;
&lt;p&gt;El README actual enumera estos requisitos básicos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA Toolkit 11.x&lt;/code&gt; o más reciente&lt;/li&gt;
&lt;li&gt;Un compilador con soporte para &lt;code&gt;C++17&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CMake 3.20+&lt;/code&gt;, siendo &lt;code&gt;3.24+&lt;/code&gt; recomendado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Boost program_options&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Un dispositivo &lt;code&gt;CUDA&lt;/code&gt; utilizable y un controlador compatible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los requisitos son más altos si deseas la versión multinode. El README actual indica explícitamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las compilaciones multinode requieren &lt;code&gt;CUDA Toolkit 12.3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;El controlador debe ser &lt;code&gt;550&lt;/code&gt; o más reciente&lt;/li&gt;
&lt;li&gt;Se requiere &lt;code&gt;MPI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;El servicio &lt;code&gt;nvidia-imex&lt;/code&gt; debe estar configurado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo tanto, esta es mucho más una herramienta de ingeniería para servidores y clusters de GPU en Linux que algo destinado a un uso de escritorio casual.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;5-cómo-construir-y-ejecutar-la-versión-de-nodo-único&#34;&gt;5. Cómo construir y ejecutar la versión de nodo único
&lt;/h2&gt;&lt;p&gt;El proceso de construcción de nodo único es sencillo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En &lt;code&gt;Ubuntu&lt;/code&gt; / &lt;code&gt;Debian&lt;/code&gt;, el proyecto también proporciona un script &lt;code&gt;debian_install.sh&lt;/code&gt; que instala dependencias comunes y construye el proyecto.&lt;/p&gt;
&lt;p&gt;Después de construir, puedes verificar primero la salida de ayuda:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth -h
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Algunas opciones comúnmente utilizadas incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-l&lt;/code&gt;: listar pruebas disponibles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-t&lt;/code&gt;: ejecutar una prueba específica por nombre o índice&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p&lt;/code&gt;: ejecutar pruebas por prefijo&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-b&lt;/code&gt;: establecer el tamaño del búfer de memcpy, predeterminado &lt;code&gt;512 MiB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-i&lt;/code&gt;: establecer el número de iteraciones de benchmark&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-j&lt;/code&gt;: salida &lt;code&gt;JSON&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-H&lt;/code&gt;: habilitar huge pages para la asignación de memoria del host&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo deseas ejecutar la suite de pruebas predeterminada una vez, usa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si solo quieres probar un elemento específico, como una copia de dispositivo a dispositivo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./nvbandwidth -t device_to_device_memcpy_read_ce
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;6-el-soporte-multinodo-es-una-de-sus-características-más-destacadas&#34;&gt;6. El soporte multinodo es una de sus características más destacadas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; no es solo para pruebas multi-GPU en un solo nodo. También admite escenarios multinodo.&lt;/p&gt;
&lt;p&gt;Según el README, la compilación multinodo se realiza de esta manera:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake -DMULTINODE&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En tiempo de ejecución, normalmente se utiliza junto con &lt;code&gt;mpirun&lt;/code&gt;, con un proceso lanzado por GPU. La documentación también requiere que todos los ranks participantes pertenezcan al mismo clúster multinodo, y recomienda ejecutar las pruebas principalmente con el prefijo &lt;code&gt;multinode&lt;/code&gt; bajo MPI.&lt;/p&gt;
&lt;p&gt;Esto acerca su posicionamiento a la informática de alto rendimiento (high-performance computing) y a los sistemas GPU grandes que a las comprobaciones básicas de una estación de trabajo.&lt;/p&gt;
&lt;p&gt;Si estás trabajando con implementaciones multinodo de &lt;code&gt;NVLink&lt;/code&gt; o plataformas más complejas como &lt;code&gt;GB200&lt;/code&gt; / &lt;code&gt;Grace Hopper&lt;/code&gt;, el valor de &lt;code&gt;nvbandwidth&lt;/code&gt; es mucho mayor de lo que sería en una configuración típica de GPU de consumo.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;7-qué-cambió-en-v09&#34;&gt;7. Qué cambió en v0.9
&lt;/h2&gt;&lt;p&gt;A partir del &lt;strong&gt;24 de abril de 2026&lt;/strong&gt;, la página de GitHub Releases muestra que la última versión de &lt;code&gt;nvbandwidth&lt;/code&gt; es &lt;strong&gt;&lt;code&gt;v0.9&lt;/code&gt;&lt;/strong&gt;, lanzada el &lt;strong&gt;8 de abril de 2026&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Las actualizaciones más destacadas en este lanzamiento incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se agregaron estadísticas de variabilidad a la salida de ancho de banda&lt;/li&gt;
&lt;li&gt;Se agregó soporte para páginas grandes (huge page) para la memoria anfitriona (excluyendo Windows)&lt;/li&gt;
&lt;li&gt;Se agregó muestreo de pares (pair sampling) para pruebas de dispositivo a dispositivo&lt;/li&gt;
&lt;li&gt;Se agregó una guía de solución de problemas&lt;/li&gt;
&lt;li&gt;Se unificaron los caminos de ejecución de nodo único y multinodo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También vale la pena señalar dos cambios orientados a la ingeniería:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mejora en la detección de la arquitectura CUDA sin depender tanto del acceso directo a la GPU&lt;/li&gt;
&lt;li&gt;Se eliminó el soporte para Volta (&lt;code&gt;sm_70&lt;/code&gt; / &lt;code&gt;sm_72&lt;/code&gt;) en entornos de CUDA Toolkit 13.0+&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo tanto, si solo mirabas las versiones anteriores, &lt;code&gt;v0.9&lt;/code&gt; ya no es solo un probador básico de ancho de banda. Claramente se está moviendo hacia una mejor automatización, solución de problemas y validación de sistemas a gran escala.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;8-cuándo-es-una-buena-opción&#34;&gt;8. ¿Cuándo es una buena opción?
&lt;/h2&gt;&lt;p&gt;``nvbandwidth` es especialmente adecuado cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieres verificar el ancho de banda de interconexión real entre múltiples &lt;code&gt;NVIDIA GPU&lt;/code&gt;s&lt;/li&gt;
&lt;li&gt;Sospechas que una GPU está instalada en una ranura &lt;code&gt;PCIe&lt;/code&gt; con ancho de banda limitado&lt;/li&gt;
&lt;li&gt;Quieres comparar rutas &lt;code&gt;NVLink&lt;/code&gt; frente a rutas no &lt;code&gt;NVLink&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Estás desplegando un clúster de GPU multinode y necesitas validar los enlaces&lt;/li&gt;
&lt;li&gt;Quieres los resultados de las pruebas en &lt;code&gt;JSON&lt;/code&gt; para pipelines de automatización&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero si tu objetivo es solo responder preguntas como &amp;ldquo;¿qué tan rápido es el entrenamiento?&amp;rdquo; o &amp;ldquo;¿cuántos tokens por segundo puede alcanzar la inferencia?&amp;rdquo;, esta herramienta no es la respuesta completa.
En ese caso, todavía necesitas pruebas a nivel de carga de trabajo (workload-level testing) con tu framework de entrenamiento, motor de inferencia o aplicación real.&lt;/p&gt;
&lt;p&gt;false&lt;/p&gt;
&lt;h2 id=&#34;9-cómo-pensar-sobre-su-valor&#34;&gt;9. Cómo pensar sobre su valor
&lt;/h2&gt;&lt;p&gt;Muchos problemas de rendimiento de GPU no son causados realmente por una capacidad de cómputo insuficiente. Ocurren porque la ruta de datos no está funcionando como se espera.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las GPUs no están utilizando la ruta de interconexión prevista&lt;/li&gt;
&lt;li&gt;El acceso Cross-NUMA está reduciendo la velocidad&lt;/li&gt;
&lt;li&gt;Ciertos pares de GPU tienen un ancho de banda anormal&lt;/li&gt;
&lt;li&gt;La comunicación multinode está solo parcialmente configurada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos problemas a menudo son difíciles de diagnosticar si solo se observa &lt;code&gt;nvidia-smi&lt;/code&gt; o el rendimiento del modelo. Una herramienta de nivel más bajo y orientada a matrices, como &lt;code&gt;nvbandwidth&lt;/code&gt;, es útil precisamente porque expone lo que está sucediendo en la capa de interconexión.&lt;/p&gt;
&lt;p&gt;Así que una forma sencilla de pensarlo es: &lt;strong&gt;&lt;code&gt;nvbandwidth&lt;/code&gt; es una herramienta de verificación de salud en línea de comandos para el ancho de banda en sistemas NVIDIA GPU.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Proyecto GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvbandwidth&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvbandwidth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lanzamientos: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvbandwidth/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvbandwidth/releases&lt;/a&gt;
false&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo comprobar si una Tesla V100 tiene errores ECC</title>
        <link>https://knightli.com/es/2026/04/23/check-tesla-v100-ecc-errors/</link>
        <pubDate>Thu, 23 Apr 2026 11:50:21 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/check-tesla-v100-ecc-errors/</guid>
        <description>&lt;p&gt;Si tienes una &lt;code&gt;Tesla V100&lt;/code&gt; y quieres hacer primero una revisión básica de salud, el estado &lt;code&gt;ECC&lt;/code&gt; es una de las cosas más útiles que mirar.&lt;/p&gt;
&lt;p&gt;El método más directo es inspeccionar la información detallada de la tarjeta con &lt;code&gt;nvidia-smi&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi -q
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Query GPU 0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi -q -i &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Concéntrate en la sección &lt;code&gt;ECC Errors&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En una tarjeta en estado normal, los cuatro grupos comunes de contadores bajo &lt;code&gt;ECC Errors&lt;/code&gt; deberían ser &lt;code&gt;0&lt;/code&gt; o &lt;code&gt;N/A&lt;/code&gt;. Si alguno ya muestra un valor distinto de cero, significa que la tarjeta ha visto ese tipo de anomalía ECC antes, y deberías evaluar con más detalle si sigue siendo adecuada para uso continuo.&lt;/p&gt;
&lt;p&gt;Salida de referencia:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi -q
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ECC Mode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Current                          : Enabled
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Pending                          : Enabled
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ECC Errors
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Volatile
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Single Bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Device Memory            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Register File            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L1 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L2 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Memory           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Shared           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                CBU                      : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Total                    : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Double Bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Device Memory            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Register File            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L1 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L2 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Memory           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Shared           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                CBU                      : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Total                    : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Aggregate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Single Bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Device Memory            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Register File            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L1 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L2 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Memory           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Shared           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                CBU                      : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Total                    : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Double Bit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Device Memory            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Register File            : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L1 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                L2 Cache                 : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Memory           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Texture Shared           : N/A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                CBU                      : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                Total                    : 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Retired Pages
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Puedes pensarlo así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Volatile&lt;/code&gt; es el conteo de errores del ciclo de encendido actual&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Aggregate&lt;/code&gt; es el conteo acumulado durante la vida de la tarjeta&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Single Bit&lt;/code&gt; significa errores corregibles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Double Bit&lt;/code&gt; significa errores no corregibles, más serios&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo quieres una regla rápida de cribado:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La mayoría de elementos deberían ser &lt;code&gt;0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;N/A&lt;/code&gt; es normal en entradas no aplicables&lt;/li&gt;
&lt;li&gt;Si &lt;code&gt;Double Bit&lt;/code&gt; o el total no es &lt;code&gt;0&lt;/code&gt;, no te fíes solo de la descripción verbal del vendedor; conviene seguir con stress tests y comprobaciones de estabilidad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto no reemplaza una inspección completa, pero basta para una primera revisión cuando llega una &lt;code&gt;V100&lt;/code&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>¿Sigue valiendo la pena comprar una Tesla V100? ECC, mods de refrigeración y trampas DIY</title>
        <link>https://knightli.com/es/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/</link>
        <pubDate>Thu, 23 Apr 2026 11:15:10 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/</guid>
        <description>&lt;p&gt;Si has estado mirando tarjetas &lt;code&gt;Tesla V100&lt;/code&gt; usadas, probablemente viste dos opiniones muy distintas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un lado dice que la tarjeta sigue siendo fuerte y ofrece gran valor&lt;/li&gt;
&lt;li&gt;el otro dice que el mercado está lleno de trampas y que los usuarios DIY pueden quemarse fácilmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ambas son ciertas.&lt;/p&gt;
&lt;p&gt;El punto no es que &lt;code&gt;V100&lt;/code&gt; sea incomprable. El punto es que no puedes comprarla como comprarías una GPU de consumo normal. No importa solo si arranca, ni si el vendedor dice &amp;ldquo;como nueva&amp;rdquo; o &amp;ldquo;retirada de servidor original&amp;rdquo;. Importa si fue manipulada, cómo se ve su estado &lt;code&gt;ECC&lt;/code&gt; y si el setup de refrigeración y alimentación es realmente fiable.&lt;/p&gt;
&lt;p&gt;Este artículo reúne los controles más útiles para comprar y usar una en la práctica.&lt;/p&gt;
&lt;h2 id=&#34;resumen-rápido&#34;&gt;Resumen rápido
&lt;/h2&gt;&lt;p&gt;Si solo quieres la versión corta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;V100&lt;/code&gt; se produjo aproximadamente de &lt;code&gt;2017&lt;/code&gt; a &lt;code&gt;2021&lt;/code&gt;, y las tarjetas &lt;code&gt;16G&lt;/code&gt; de &lt;code&gt;2021&lt;/code&gt; son poco comunes&lt;/li&gt;
&lt;li&gt;mirar solo &amp;ldquo;ECC cero&amp;rdquo; u &amp;ldquo;original pull&amp;rdquo; no basta, porque tanto datos como estado físico pueden alterarse&lt;/li&gt;
&lt;li&gt;el mayor riesgo no suele ser comprar una tarjeta vieja, sino una que fue desmontada, reflasheada o usada con mala refrigeración&lt;/li&gt;
&lt;li&gt;para usuarios &lt;code&gt;DIY&lt;/code&gt;, el problema real suele estar en la placa adaptadora, alimentación, temperatura hotspot y refrigeración de backplate&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-empieza-por-fecha-de-producción-y-pistas-de-lote&#34;&gt;1. Empieza por fecha de producción y pistas de lote
&lt;/h2&gt;&lt;p&gt;Un método práctico es revisar primero la fecha del chip y luego ver si las fechas de componentes cercanos encajan.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/1.png&#34;
	width=&#34;1139&#34;
	height=&#34;670&#34;
	srcset=&#34;https://knightli.com/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/1_hu_a8325dae98af3ae7.png 480w, https://knightli.com/2026/04/23/tesla-v100-buying-ecc-cooling-diy-guide/1_hu_40537b27bd676168.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Tesla V100&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;170&#34;
		data-flex-basis=&#34;408px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Por ejemplo, si la superficie del chip muestra &lt;code&gt;1828&lt;/code&gt;, normalmente significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;18&lt;/code&gt; = año &lt;code&gt;2018&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;28&lt;/code&gt; = semana &lt;code&gt;28&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese chip se produjo en la semana &lt;code&gt;28&lt;/code&gt; de &lt;code&gt;2018&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Además del encapsulado del chip, los inductores cercanos suelen tener marcas relacionadas con fecha. Si la fecha del chip y la de los inductores están muy separadas, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;chip de &lt;code&gt;2017&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;inductores que apuntan a &lt;code&gt;2020&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;conviene tener cuidado. No prueba automáticamente que la tarjeta sea mala, pero sugiere que ya no está en estado muy original.&lt;/p&gt;
&lt;p&gt;Si las fechas encajan de forma amplia, como un chip &lt;code&gt;2018&lt;/code&gt; con componentes &lt;code&gt;2018&lt;/code&gt;, o un chip de finales de &lt;code&gt;2019&lt;/code&gt; con componentes &lt;code&gt;2020&lt;/code&gt;, eso es mucho más normal.&lt;/p&gt;
&lt;h2 id=&#34;2-no-mires-solo-el-chip-revisa-inductores-resortes-y-marco&#34;&gt;2. No mires solo el chip: revisa inductores, resortes y marco
&lt;/h2&gt;&lt;p&gt;La inspección visual conviene dividirla en varios controles.&lt;/p&gt;
&lt;h3 id=&#34;1-toca-primero-los-inductores&#34;&gt;1. Toca primero los inductores
&lt;/h3&gt;&lt;p&gt;Presiona o toca suavemente los inductores. En condiciones normales, ninguno debería sentirse suelto.&lt;/p&gt;
&lt;p&gt;Si alguno se mueve, suele significar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la soldadura no está sana&lt;/li&gt;
&lt;li&gt;el problema puede empeorar con el uso&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aunque la tarjeta funcione ahora, no es una buena señal.&lt;/p&gt;
&lt;h3 id=&#34;2-revisa-si-el-resorte-de-retención-fue-retirado-antes&#34;&gt;2. Revisa si el resorte de retención fue retirado antes
&lt;/h3&gt;&lt;p&gt;Hay una lógica útil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si el vendedor insiste en que es una &amp;ldquo;original server pull&amp;rdquo;&lt;/li&gt;
&lt;li&gt;entonces el resorte de retención normalmente no debería haberse retirado casualmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En un entorno normal de servidor de fábrica, la gente no retira ese resorte sin razón.&lt;/p&gt;
&lt;p&gt;Si el resorte sale muy fácil, probablemente la tarjeta fue abierta antes. Si el vendedor además dice que nunca fue tocada, esa afirmación merece escepticismo.&lt;/p&gt;
&lt;h3 id=&#34;3-si-el-marco-se-separa-demasiado-fácil-también-sospecha&#34;&gt;3. Si el marco se separa demasiado fácil, también sospecha
&lt;/h3&gt;&lt;p&gt;Una vez retirado el marco medio, si toda la estructura se separa casi sin esfuerzo, suele significar que la tarjeta ya fue desmontada varias veces.&lt;/p&gt;
&lt;p&gt;En &lt;code&gt;V100&lt;/code&gt; usadas, reflasheos, modificaciones y reparaciones suelen dejar exactamente ese tipo de trazas.&lt;/p&gt;
&lt;h2 id=&#34;3-si-el-backplate-se-separa-demasiado-fácil-sospecha-reflasheo-o-manipulación-previa&#34;&gt;3. Si el backplate se separa demasiado fácil, sospecha reflasheo o manipulación previa
&lt;/h2&gt;&lt;p&gt;Un detalle importante es que hay una placa metálica bajo el &lt;code&gt;PCB&lt;/code&gt;. No solo protege; también ayuda a disipar calor.&lt;/p&gt;
&lt;p&gt;En estado original normal, este backplate no suele ser fácil de retirar por:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;adhesivo&lt;/li&gt;
&lt;li&gt;ajuste estructural estrecho&lt;/li&gt;
&lt;li&gt;diseño no pensado para desmontajes repetidos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el backplate se separa del &lt;code&gt;PCB&lt;/code&gt; con poca fuerza, sospecha:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fue abierta antes&lt;/li&gt;
&lt;li&gt;pudo tener &lt;code&gt;VBIOS&lt;/code&gt; reflasheado&lt;/li&gt;
&lt;li&gt;pudo sufrir modificaciones secundarias&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No la vuelve automáticamente inutilizable, pero contradice claramente &amp;ldquo;original e intacta&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;4-cómo-leer-ecc-importa-más-si-crece-que-si-es-cero&#34;&gt;4. Cómo leer &lt;code&gt;ECC&lt;/code&gt;: importa más si crece que si es cero
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ECC&lt;/code&gt; es una de las primeras cosas que se miran en una &lt;code&gt;V100&lt;/code&gt;, y hay que interpretarlo con cuidado.&lt;/p&gt;
&lt;p&gt;Un método común es usar &lt;code&gt;nvidia-smi&lt;/code&gt; en modo detallado y revisar &lt;code&gt;ECC Errors&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;1-los-errores-en-tiempo-real-son-los-más-peligrosos&#34;&gt;1. Los errores en tiempo real son los más peligrosos
&lt;/h3&gt;&lt;p&gt;La sección superior puede entenderse como errores en tiempo real.&lt;/p&gt;
&lt;p&gt;Si esos números siguen aumentando mientras la tarjeta corre, normalmente significa que ya está en estado inestable.&lt;/p&gt;
&lt;p&gt;En simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una tarjeta que corre sin nuevos errores importa más que una lectura estática de cero&lt;/li&gt;
&lt;li&gt;una tarjeta cuyos errores aumentan bajo estrés preocupa mucho más que una con solo conteos históricos acumulados&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-los-errores-acumulados-de-por-vida-no-siempre-son-terroríficos&#34;&gt;2. Los errores acumulados de por vida no siempre son terroríficos
&lt;/h3&gt;&lt;p&gt;Otra sección muestra errores acumulados de vida útil.&lt;/p&gt;
&lt;p&gt;Si esos valores son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;de un solo dígito&lt;/li&gt;
&lt;li&gt;o quizá decenas bajas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;no es automáticamente desastre.&lt;/p&gt;
&lt;p&gt;Si los errores en tiempo real no siguen aumentando durante uso real, la tarjeta puede seguir siendo perfectamente usable.&lt;/p&gt;
&lt;h3 id=&#34;3-la-sección-de-page-retirement-merece-más-atención&#34;&gt;3. La sección de page retirement merece más atención
&lt;/h3&gt;&lt;p&gt;La sección de page retirement es aún más importante, porque indica bloques de memoria retirados tras errores no corregibles.&lt;/p&gt;
&lt;p&gt;Una forma práctica de verlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;categorías single-bit y double-bit pueden tener bloques retirados&lt;/li&gt;
&lt;li&gt;si el total supera &lt;code&gt;10&lt;/code&gt;, entras en una zona donde conviene cautela&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No siempre significa que la tarjeta sea inutilizable, pero sugiere menor memoria efectiva y menor confianza a largo plazo.&lt;/p&gt;
&lt;h2 id=&#34;5-no-veneres-zero-ecc-los-datos-pueden-manipularse&#34;&gt;5. No veneres &amp;ldquo;zero ECC&amp;rdquo;: los datos pueden manipularse
&lt;/h2&gt;&lt;p&gt;Advertencia práctica:&lt;/p&gt;
&lt;p&gt;los números &lt;code&gt;ECC&lt;/code&gt; no son sagrados por sí mismos.&lt;/p&gt;
&lt;p&gt;Si una tarjeta tiene:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;datos extremadamente limpios&lt;/li&gt;
&lt;li&gt;señales obvias de desmontaje&lt;/li&gt;
&lt;li&gt;estructura claramente trabajada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;no confíes en &amp;ldquo;zero ECC&amp;rdquo; por sí solo.&lt;/p&gt;
&lt;p&gt;La analogía útil es un coche viejo que de pronto muestra &lt;code&gt;0&lt;/code&gt; kilometraje y casi nada de desgaste. Cuesta no sospechar del odómetro.&lt;/p&gt;
&lt;p&gt;Con &lt;code&gt;V100&lt;/code&gt; aplica igual:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;números demasiado perfectos no siempre son buena noticia&lt;/li&gt;
&lt;li&gt;importa que datos, estado físico y comportamiento bajo estrés tengan sentido juntos&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;6-el-stress-test-es-necesario-pero-no-basta-probar-el-core&#34;&gt;6. El stress test es necesario, pero no basta probar el core
&lt;/h2&gt;&lt;p&gt;Puedes usar herramientas como &lt;code&gt;gpu-burn&lt;/code&gt; durante varios minutos o más y observar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si permanece estable&lt;/li&gt;
&lt;li&gt;si la tarjeta desaparece&lt;/li&gt;
&lt;li&gt;si aparecen nuevos errores &lt;code&gt;ECC&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero probar solo el core no demuestra que toda la tarjeta esté sana.&lt;/p&gt;
&lt;p&gt;Muchos fallos de &lt;code&gt;V100&lt;/code&gt; no empiezan en el core, sino en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sobrecalentamiento de alimentación&lt;/li&gt;
&lt;li&gt;refrigeración insuficiente del backplate&lt;/li&gt;
&lt;li&gt;temperaturas hotspot excesivas&lt;/li&gt;
&lt;li&gt;adaptadores y refrigeración operando demasiado al límite&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El stress test solo prueba que &amp;ldquo;la tarjeta corre ahora&amp;rdquo;. No prueba que &amp;ldquo;este setup DIY sobrevivirá a largo plazo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;7-para-diy-el-punto-débil-suele-ser-refrigeración-y-alimentación&#34;&gt;7. Para DIY, el punto débil suele ser refrigeración y alimentación
&lt;/h2&gt;&lt;p&gt;Esta quizá sea la parte más importante.&lt;/p&gt;
&lt;p&gt;Para usuarios &lt;code&gt;DIY&lt;/code&gt;, combinar una base adaptadora cualquiera con un cooler genérico no es un plan robusto.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;V100&lt;/code&gt; no es una tarjeta de consumo normal. Es un acelerador de servidor con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;alto consumo&lt;/li&gt;
&lt;li&gt;alta densidad térmica&lt;/li&gt;
&lt;li&gt;distribución de calor complicada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El chip no es lo único que genera calor. Backplate, zona de alimentación y conectores también se calientan, a veces mucho.&lt;/p&gt;
&lt;h3 id=&#34;1-no-mires-solo-temperatura-promedio-de-gpu&#34;&gt;1. No mires solo temperatura promedio de GPU
&lt;/h3&gt;&lt;p&gt;Muchas herramientas muestran temperatura promedio, pero el número peligroso suele ser el &lt;code&gt;hot spot&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Puede pasar que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la temperatura visible esté en 60 y pico Celsius&lt;/li&gt;
&lt;li&gt;mientras hotspots locales ya superen 100C&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso algunos builds DIY de &lt;code&gt;V100&lt;/code&gt; parecen &amp;ldquo;bien&amp;rdquo; en papel y luego mueren de repente.&lt;/p&gt;
&lt;h3 id=&#34;2-la-refrigeración-de-backplate-debe-considerarse&#34;&gt;2. La refrigeración de backplate debe considerarse
&lt;/h3&gt;&lt;p&gt;No puedes ignorar backplate y zona de alimentación.&lt;/p&gt;
&lt;p&gt;Si solo enfrías el core, pero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;descuidas la zona &lt;code&gt;MOS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;el backplate no recibe ayuda térmica&lt;/li&gt;
&lt;li&gt;la parte trasera carece de diseño térmico adecuado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;el setup sigue incompleto.&lt;/p&gt;
&lt;h3 id=&#34;3-los-water-cooling-improvisados-baratos-son-riesgosos&#34;&gt;3. Los water-cooling improvisados baratos son riesgosos
&lt;/h3&gt;&lt;p&gt;Cuidado con setups tipo &amp;ldquo;adaptador aleatorio + AIO barato&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El problema no es que fallen siempre de inmediato. Es que a menudo tienen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cobertura desigual de canales de agua&lt;/li&gt;
&lt;li&gt;refrigeración incompleta de alimentación&lt;/li&gt;
&lt;li&gt;control pobre de zonas hotspot reales&lt;/li&gt;
&lt;li&gt;vida útil impredecible&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;8-si-aún-quieres-diy-vigila-al-menos-esto&#34;&gt;8. Si aún quieres DIY, vigila al menos esto
&lt;/h2&gt;&lt;p&gt;Recomendaciones prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;prefiere adaptadores más maduros y con historial&lt;/li&gt;
&lt;li&gt;no te centres solo en el core; alimentación trasera y backplate también necesitan atención térmica&lt;/li&gt;
&lt;li&gt;el bloque de agua necesita cobertura real y manejo uniforme del calor&lt;/li&gt;
&lt;li&gt;tras stress test, sigue observando temperaturas, hotspots y comportamiento a largo plazo&lt;/li&gt;
&lt;li&gt;la calidad de PSU también afecta coil whine y estabilidad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lo difícil de un build &lt;code&gt;V100&lt;/code&gt; DIY no es &amp;ldquo;hacer que arranque&amp;rdquo;. Es &amp;ldquo;mantenerlo vivo y estable después&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;9-coil-whine-y-variación-de-adaptadores-también-son-problemas-reales&#34;&gt;9. Coil whine y variación de adaptadores también son problemas reales
&lt;/h2&gt;&lt;p&gt;Dos puntos se pasan por alto.&lt;/p&gt;
&lt;h3 id=&#34;1-el-coil-whine-quizá-no-se-elimine-del-todo&#34;&gt;1. El coil whine quizá no se elimine del todo
&lt;/h3&gt;&lt;p&gt;Depende de la tarjeta concreta, inductores, capacitores y entorno de alimentación. No siempre se arregla con un cable o accesorio.&lt;/p&gt;
&lt;h3 id=&#34;2-la-variación-entre-adaptadores-es-enorme&#34;&gt;2. La variación entre adaptadores es enorme
&lt;/h3&gt;&lt;p&gt;Por eso algunos vendedores, incluso vendiendo tarjeta desnuda, enfatizan:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;probarla en banco primero&lt;/li&gt;
&lt;li&gt;registrar número de serie&lt;/li&gt;
&lt;li&gt;hacer stress tests&lt;/li&gt;
&lt;li&gt;documentar el proceso&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Muchos conflictos no vienen del silicio, sino del adaptador y la refrigeración usados después.&lt;/p&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;¿Sigue valiendo la pena comprar &lt;code&gt;Tesla V100&lt;/code&gt;? Sí, pero solo si entiendes qué compras y cómo planeas usarla.&lt;/p&gt;
&lt;p&gt;No basta revisar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si enciende&lt;/li&gt;
&lt;li&gt;si &lt;code&gt;ECC&lt;/code&gt; está todo en cero&lt;/li&gt;
&lt;li&gt;si el vendedor dice &amp;ldquo;original pull&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es más útil verificar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si fechas y pistas de lote encajan&lt;/li&gt;
&lt;li&gt;si hay señales sospechosas de desmontaje&lt;/li&gt;
&lt;li&gt;si backplate y estructura fueron abiertos&lt;/li&gt;
&lt;li&gt;si los errores aumentan bajo stress test&lt;/li&gt;
&lt;li&gt;si tu refrigeración y alimentación son confiables&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Especialmente para usuarios &lt;code&gt;DIY&lt;/code&gt;, la parte más peligrosa de &lt;code&gt;V100&lt;/code&gt; no suele ser comprar una tarjeta vieja, sino subestimar lo exigentes que son en refrigeración, alimentación y calidad de modificación.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Ranking de rendimiento GPU en llama.cpp: cómo leer los scoreboards CUDA, ROCm y Vulkan con pp512 / tg128 / FA</title>
        <link>https://knightli.com/es/2026/04/23/llama-cpp-gpu-benchmark-cuda-rocm-vulkan-scoreboard/</link>
        <pubDate>Thu, 23 Apr 2026 10:22:04 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/llama-cpp-gpu-benchmark-cuda-rocm-vulkan-scoreboard/</guid>
        <description>&lt;p&gt;Los scoreboards de &lt;code&gt;llama.cpp&lt;/code&gt; son muy útiles, pero también son fáciles de malinterpretar si solo miras una cifra. En esas tablas suelen aparecer &lt;code&gt;CUDA&lt;/code&gt;, &lt;code&gt;ROCm&lt;/code&gt;, &lt;code&gt;Vulkan&lt;/code&gt;, &lt;code&gt;Q4_0&lt;/code&gt;, &lt;code&gt;pp512&lt;/code&gt;, &lt;code&gt;tg128&lt;/code&gt;, &lt;code&gt;FA&lt;/code&gt; y &lt;code&gt;t/s&lt;/code&gt;, y cada uno describe una dimensión diferente del benchmark.&lt;/p&gt;
&lt;p&gt;Este artículo resume cómo leer esas tablas y qué conclusiones prácticas conviene sacar antes de comparar GPUs.&lt;/p&gt;
&lt;h2 id=&#34;entender-primero-las-métricas&#34;&gt;Entender primero las métricas
&lt;/h2&gt;&lt;h3 id=&#34;qué-es-q4_0&#34;&gt;Qué es Q4_0
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Q4_0&lt;/code&gt; es un formato de cuantización de 4 bits. No significa que el modelo sea más fuerte. Significa que el modelo es más pequeño, usa menos VRAM y cabe en más dispositivos.&lt;/p&gt;
&lt;p&gt;La mayoría de estos scoreboards estandarizan sobre &lt;code&gt;Llama 2 7B, Q4_0&lt;/code&gt; para que la comparación entre GPUs sea más sencilla.&lt;/p&gt;
&lt;h3 id=&#34;qué-es-pp512&#34;&gt;Qué es pp512
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; suele significar &lt;code&gt;prompt processing 512 tokens&lt;/code&gt;, es decir, el throughput al procesar 512 tokens de entrada.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp&lt;/code&gt; = prompt processing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;512&lt;/code&gt; = la entrada tiene 512 tokens&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt; = tokens por segundo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto se acerca más a la velocidad de ingestión del prompt, por eso suele ser mucho más alto que la velocidad de generación.&lt;/p&gt;
&lt;h3 id=&#34;qué-es-tg128&#34;&gt;Qué es tg128
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;tg128&lt;/code&gt; suele significar &lt;code&gt;text generation 128 tokens&lt;/code&gt;, es decir, la velocidad al generar 128 tokens de forma continua.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tg&lt;/code&gt; = text generation&lt;/li&gt;
&lt;li&gt;&lt;code&gt;128&lt;/code&gt; = generar 128 tokens seguidos&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt; = tokens por segundo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta métrica suele estar más cerca de la velocidad que el usuario percibe en uso interactivo.&lt;/p&gt;
&lt;h3 id=&#34;qué-es-fa&#34;&gt;Qué es FA
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;FA&lt;/code&gt; significa &lt;code&gt;Flash Attention&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;with FA&lt;/code&gt; significa que Flash Attention está activado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no FA&lt;/code&gt; significa que Flash Attention está desactivado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En muchas GPUs, FA mejora &lt;code&gt;pp512&lt;/code&gt; con más claridad que &lt;code&gt;tg128&lt;/code&gt;, pero la ganancia no es idéntica entre backends, drivers y arquitecturas GPU.&lt;/p&gt;
&lt;h3 id=&#34;cómo-leer-ts&#34;&gt;Cómo leer t/s
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;t/s&lt;/code&gt; significa &lt;code&gt;tokens per second&lt;/code&gt;. La regla clave es comparar el mismo tipo de prueba con los mismos ajustes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No compares &lt;code&gt;pp512&lt;/code&gt; y &lt;code&gt;tg128&lt;/code&gt; como si fueran lo mismo.&lt;/li&gt;
&lt;li&gt;No mezcles resultados &lt;code&gt;no FA&lt;/code&gt; con &lt;code&gt;with FA&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;No asumas que CUDA, ROCm y Vulkan son directamente intercambiables.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;conclusiones-rápidas&#34;&gt;Conclusiones rápidas
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;CUDA sigue siendo la ruta más fuerte en conjunto para benchmarks GPU de &lt;code&gt;llama.cpp&lt;/code&gt;, especialmente en GPUs Nvidia de gama alta.&lt;/li&gt;
&lt;li&gt;ROCm ya ofrece resultados fuertes en GPUs AMD de gama alta y aceleradores Instinct.&lt;/li&gt;
&lt;li&gt;Vulkan tiene la cobertura de hardware más amplia, incluyendo Nvidia, AMD, Intel, GPUs antiguas y algunos setups Apple / Asahi.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; se acerca más a la velocidad percibida en uso diario, mientras &lt;code&gt;pp512&lt;/code&gt; es mejor para juzgar throughput de prompt.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cómo-usar-las-tablas&#34;&gt;Cómo usar las tablas
&lt;/h2&gt;&lt;h3 id=&#34;1-decide-si-te-importa-más-tg128-o-pp512&#34;&gt;1. Decide si te importa más tg128 o pp512
&lt;/h3&gt;&lt;p&gt;Para chat y uso interactivo, &lt;code&gt;tg128&lt;/code&gt; suele importar más. Para prompts largos, batch processing o workloads de ingestión, &lt;code&gt;pp512&lt;/code&gt; pesa más.&lt;/p&gt;
&lt;h3 id=&#34;2-compara-el-backend-que-realmente-usas&#34;&gt;2. Compara el backend que realmente usas
&lt;/h3&gt;&lt;p&gt;Usuarios Nvidia deberían priorizar CUDA. Usuarios AMD deberían comparar primero ROCm y Vulkan. Si necesitas compatibilidad amplia o hardware mixto, presta atención a Vulkan.&lt;/p&gt;
&lt;h3 id=&#34;3-mira-fa-al-final&#34;&gt;3. Mira FA al final
&lt;/h3&gt;&lt;p&gt;En muchas GPUs, activar FA mejora más &lt;code&gt;pp512&lt;/code&gt; que &lt;code&gt;tg128&lt;/code&gt;, así que una sola cifra destacada puede ser engañosa.&lt;/p&gt;
&lt;h3 id=&#34;4-no-compares-generaciones-solo-por-memoria&#34;&gt;4. No compares generaciones solo por memoria
&lt;/h3&gt;&lt;p&gt;Una GPU con más VRAM no siempre gana en &lt;code&gt;tg128&lt;/code&gt;. La generación token a token puede depender mucho de ancho de banda, caché, backend, kernel y optimizaciones del runtime.&lt;/p&gt;
&lt;h3 id=&#34;5-usa-las-tablas-como-orientación-no-como-garantía&#34;&gt;5. Usa las tablas como orientación, no como garantía
&lt;/h3&gt;&lt;p&gt;Los scoreboards son aportes comunitarios. Pueden variar por commit, driver, sistema operativo, flags de compilación, versión de &lt;code&gt;llama.cpp&lt;/code&gt;, temperatura y configuración de energía.&lt;/p&gt;
&lt;h2 id=&#34;qué-muestran-en-general-los-scoreboards&#34;&gt;Qué muestran en general los scoreboards
&lt;/h2&gt;&lt;p&gt;En las tablas CUDA, las GPUs Nvidia modernas de gama alta, como RTX 5090, RTX PRO 6000 Blackwell, H100, A100, RTX 4090 y RTX 5080, ocupan los rangos superiores. El patrón general confirma que CUDA sigue siendo la ruta más madura para Nvidia.&lt;/p&gt;
&lt;p&gt;En las tablas ROCm / HIP, aceleradores como MI300X y tarjetas AMD de gama alta como RX 7900 XTX muestran resultados fuertes. Esto confirma que ROCm ya es una ruta seria, aunque la experiencia puede depender mucho de soporte de driver y plataforma.&lt;/p&gt;
&lt;p&gt;En las tablas Vulkan, el valor principal es la amplitud. Aparecen Nvidia, AMD, Intel, Apple vía MoltenVK / Asahi, GPUs antiguas y GPUs integradas. Vulkan no siempre es la ruta más rápida, pero suele ser la más flexible para comparar hardware diverso.&lt;/p&gt;
&lt;h2 id=&#34;resumen-en-una-frase&#34;&gt;Resumen en una frase
&lt;/h2&gt;&lt;p&gt;En benchmarks de &lt;code&gt;llama.cpp&lt;/code&gt;, &lt;code&gt;pp512&lt;/code&gt;, &lt;code&gt;tg128&lt;/code&gt;, &lt;code&gt;Q4_0&lt;/code&gt;, &lt;code&gt;FA&lt;/code&gt; y &lt;code&gt;CUDA&lt;/code&gt; / &lt;code&gt;ROCm&lt;/code&gt; / &lt;code&gt;Vulkan&lt;/code&gt; describen dimensiones distintas. Cuando entiendes el contexto del benchmark, las tablas se vuelven mucho más fáciles de leer.&lt;/p&gt;
&lt;h2 id=&#34;fuentes&#34;&gt;Fuentes
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;CUDA discussion #15013: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/15013&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/15013&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Apple Silicon discussion #4167: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/4167&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/4167&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ROCm discussion #15021: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/15021&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/15021&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Vulkan discussion #10879: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggml-org/llama.cpp/discussions/10879&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ggml-org/llama.cpp/discussions/10879&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Qué significan realmente las métricas comunes de benchmark GPU: FA, pp512, tg128 y Q4_0</title>
        <link>https://knightli.com/es/2026/04/23/how-to-read-llm-cuda-scoreboard-fa-pp512-tg128-q4-0/</link>
        <pubDate>Thu, 23 Apr 2026 00:15:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/23/how-to-read-llm-cuda-scoreboard-fa-pp512-tg128-q4-0/</guid>
        <description>&lt;p&gt;En cuanto empiezas a mirar benchmarks de LLM locales o inferencia GPU, aparece una pila de abreviaturas: &lt;code&gt;FA&lt;/code&gt;, &lt;code&gt;pp512&lt;/code&gt;, &lt;code&gt;tg128&lt;/code&gt; y &lt;code&gt;Q4_0&lt;/code&gt;. Todas parecen métricas de rendimiento, pero sin contexto pueden ser sorprendentemente difíciles de interpretar.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puedes ver una línea como:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CUDA Scoreboard for Llama 2 7B, Q4_0 (no FA)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Y justo debajo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pp512 t/s
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tg128 t/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si no desarmas estos términos, cuesta entender qué mide realmente el benchmark o cómo comparar los resultados de dos GPUs distintas.&lt;/p&gt;
&lt;p&gt;Este artículo no trata sobre qué GPU conviene comprar. Trata específicamente de explicar las métricas más comunes que aparecen en benchmarks de inferencia GPU.&lt;/p&gt;
&lt;h2 id=&#34;primero-qué-dice-realmente-la-línea-del-título&#34;&gt;Primero, qué dice realmente la línea del título
&lt;/h2&gt;&lt;p&gt;Una línea como &lt;code&gt;CUDA Scoreboard for Llama 2 7B, Q4_0 (no FA)&lt;/code&gt; ya te cuenta casi todo el setup de prueba.&lt;/p&gt;
&lt;p&gt;Como mínimo, contiene cuatro capas de información:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CUDA&lt;/code&gt;: el benchmark corre por la ruta NVIDIA CUDA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Llama 2 7B&lt;/code&gt;: el modelo probado es la versión 7B de &lt;code&gt;Llama 2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Q4_0&lt;/code&gt;: el modelo usa un formato cuantizado de 4 bits&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no FA&lt;/code&gt;: &lt;code&gt;Flash Attention&lt;/code&gt; estuvo desactivado en esta prueba&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En términos prácticos, este título suele significar:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Un benchmark de un modelo grande cuantizado corriendo en una GPU NVIDIA, medido bajo una ruta de inferencia concreta.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-fa-flash-attention&#34;&gt;Qué significa FA: Flash Attention
&lt;/h2&gt;&lt;p&gt;Aquí, &lt;code&gt;FA&lt;/code&gt; significa &lt;code&gt;Flash Attention&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Es una de las técnicas de aceleración más importantes en entrenamiento e inferencia de modelos grandes, principalmente porque optimiza cómo se calcula la atención. En modelos Transformer, la atención ya es una de las partes más caras y más intensivas en ancho de banda de memoria.&lt;/p&gt;
&lt;p&gt;Una implementación tradicional de atención suele sufrir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lecturas y escrituras frecuentes de memoria&lt;/li&gt;
&lt;li&gt;muchos resultados intermedios&lt;/li&gt;
&lt;li&gt;movimiento repetido entre VRAM y caché on-chip&lt;/li&gt;
&lt;li&gt;overhead que crece rápido al aumentar el contexto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lo que hace &lt;code&gt;Flash Attention&lt;/code&gt;, en términos simples, es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reorganizar el orden de cálculo&lt;/li&gt;
&lt;li&gt;reducir cuántas veces los resultados intermedios vuelven a VRAM&lt;/li&gt;
&lt;li&gt;mantener más trabajo dentro de caché rápida&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso le da tres ventajas típicas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;es más rápida&lt;/li&gt;
&lt;li&gt;ahorra memoria&lt;/li&gt;
&lt;li&gt;es matemáticamente equivalente a la atención estándar, no un atajo de menor precisión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso muchos frameworks modernos de inferencia y entrenamiento la tratan como una optimización clave.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-no-fa&#34;&gt;Qué significa no FA
&lt;/h2&gt;&lt;p&gt;Si &lt;code&gt;FA&lt;/code&gt; significa &lt;code&gt;Flash Attention&lt;/code&gt;, &lt;code&gt;no FA&lt;/code&gt; simplemente significa que no se activó &lt;code&gt;Flash Attention&lt;/code&gt; para esa prueba.&lt;/p&gt;
&lt;p&gt;Es decir, el benchmark se midió usando una implementación de atención más tradicional.&lt;/p&gt;
&lt;p&gt;Las tablas suelen marcar explícitamente &lt;code&gt;no FA&lt;/code&gt; por varias razones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mantener una línea base de comparación&lt;/li&gt;
&lt;li&gt;soportar hardware o software donde &lt;code&gt;FA&lt;/code&gt; no está disponible&lt;/li&gt;
&lt;li&gt;evitar mezclar resultados de condiciones de optimización distintas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que cuando veas &lt;code&gt;no FA&lt;/code&gt;, no lo leas como &amp;ldquo;esta GPU es débil&amp;rdquo;. Una lectura más precisa es:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Esta puntuación se midió sin Flash Attention activado.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-q4_0-un-formato-de-cuantización&#34;&gt;Qué significa Q4_0: un formato de cuantización
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Q4_0&lt;/code&gt; se refiere a un formato de cuantización de 4 bits.&lt;/p&gt;
&lt;p&gt;Los pesos del modelo original normalmente no se guardan con tan baja precisión. La cuantización comprime pesos de mayor precisión en una representación de menos bits para que el modelo sea más fácil de ejecutar en GPUs de consumo.&lt;/p&gt;
&lt;p&gt;Una forma aproximada de pensarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q&lt;/code&gt;: Quantization&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4&lt;/code&gt;: 4-bit&lt;/li&gt;
&lt;li&gt;&lt;code&gt;_0&lt;/code&gt;: identificador de un esquema concreto de cuantización&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su importancia práctica es directa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;menor tamaño de modelo&lt;/li&gt;
&lt;li&gt;menos requisitos de VRAM&lt;/li&gt;
&lt;li&gt;más probabilidad de caber en hardware de consumo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que &lt;code&gt;Llama 2 7B, Q4_0&lt;/code&gt; no significa solo &amp;ldquo;un modelo 7B normal&amp;rdquo;. Significa &amp;ldquo;un modelo 7B ya comprimido con un formato de cuantización de 4 bits.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-pp512-ts&#34;&gt;Qué significa pp512 t/s
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; suele significar:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Prompt Processing 512 tokens&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Mide qué tan rápido el modelo procesa el prompt de entrada, normalmente en &lt;code&gt;t/s&lt;/code&gt;, es decir, &lt;code&gt;tokens per second&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Aquí, &lt;code&gt;512&lt;/code&gt; significa que la longitud de prompt usada en la prueba fue de &lt;code&gt;512 tokens&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Esta métrica no mide velocidad de salida. Mide qué tan rápido el modelo codifica y calcula sobre la entrada antes de empezar a responder. Puedes pensarla como la velocidad de la etapa &amp;ldquo;leer primero el prompt&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Una propiedad importante de esta etapa es que normalmente es mucho más paralelizable.&lt;/p&gt;
&lt;p&gt;Como la secuencia de entrada puede procesarse en batches, la GPU puede mantener sus unidades de cómputo muy ocupadas. Por eso los números de &lt;code&gt;pp512&lt;/code&gt; pueden verse extremadamente altos.&lt;/p&gt;
&lt;p&gt;Si ves algo como:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pp512 ~= 14000 t/s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;no hay razón para preocuparse. Mide throughput de procesamiento de prompt, no velocidad de generación token por token.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-tg128-ts&#34;&gt;Qué significa tg128 t/s
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;tg128&lt;/code&gt; suele significar:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Text Generation 128 tokens&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Mide la velocidad media de generar &lt;code&gt;128 tokens&lt;/code&gt;, también en &lt;code&gt;t/s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Esta métrica está mucho más cerca de lo que la gente quiere decir intuitivamente cuando pregunta si un modelo se siente rápido, porque mide directamente la etapa de salida.&lt;/p&gt;
&lt;p&gt;La diferencia principal frente a &lt;code&gt;pp512&lt;/code&gt; es que la generación de texto suele ser autoregresiva.&lt;/p&gt;
&lt;p&gt;Eso significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el modelo debe generar el primer token&lt;/li&gt;
&lt;li&gt;luego usarlo para generar el segundo&lt;/li&gt;
&lt;li&gt;y seguir así&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta etapa no puede paralelizarse como el procesamiento de prompt, así que naturalmente es mucho más lenta.&lt;/p&gt;
&lt;p&gt;Por eso es normal ver:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt; en decenas de miles de &lt;code&gt;t/s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt; solo en cientos de &lt;code&gt;t/s&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es un error de benchmark. Son workloads fundamentalmente distintos.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-pp512-y-tg128-difieren-tanto&#34;&gt;Por qué pp512 y tg128 difieren tanto
&lt;/h2&gt;&lt;p&gt;Esta suele ser la primera confusión al leer un scoreboard.&lt;/p&gt;
&lt;p&gt;La explicación corta:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; mide algo más cercano al throughput paralelo, mientras &lt;code&gt;tg128&lt;/code&gt; mide capacidad de generación token por token.&lt;/p&gt;
&lt;p&gt;Más detalladamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la etapa de entrada es más fácil de paralelizar&lt;/li&gt;
&lt;li&gt;la etapa de salida depende de generación secuencial&lt;/li&gt;
&lt;li&gt;la generación suele ser más sensible a ancho de banda y caché&lt;/li&gt;
&lt;li&gt;por eso la generación es mucho más lenta que el procesamiento de prompt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto también explica un patrón interesante:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una GPU puede ser más fuerte en &lt;code&gt;pp512&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;otra puede terminar ligeramente más rápida en &lt;code&gt;tg128&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es contradictorio. Una métrica se inclina más hacia throughput de cómputo pico; la otra refleja comportamiento de memoria y latencia en la ruta de generación.&lt;/p&gt;
&lt;h2 id=&#34;cómo-pensar-sobre-ts&#34;&gt;Cómo pensar sobre t/s
&lt;/h2&gt;&lt;p&gt;Aquí, &lt;code&gt;t/s&lt;/code&gt; significa &lt;code&gt;tokens per second&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Indica cuántos tokens el modelo puede procesar o generar por segundo.&lt;/p&gt;
&lt;p&gt;Pero hay una salvedad importante: un &lt;code&gt;token&lt;/code&gt; no equivale exactamente a un carácter o una palabra. Es la unidad producida por el tokenizer del modelo, y su longitud real puede variar mucho entre modelos e idiomas.&lt;/p&gt;
&lt;p&gt;En la práctica, &lt;code&gt;t/s&lt;/code&gt; sirve sobre todo para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;comparar GPUs con el mismo modelo&lt;/li&gt;
&lt;li&gt;comparar ajustes distintos en el mismo entorno&lt;/li&gt;
&lt;li&gt;comparar un framework antes y después de activar una optimización concreta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es mucho menos fiable como métrica absoluta universal entre modelos, frameworks y tokenizers distintos.&lt;/p&gt;
&lt;h2 id=&#34;en-qué-fijarse-primero-al-leer-un-scoreboard&#34;&gt;En qué fijarse primero al leer un scoreboard
&lt;/h2&gt;&lt;p&gt;Si no quieres enterrarte bajo abreviaturas, empieza por estas preguntas.&lt;/p&gt;
&lt;h3 id=&#34;1-qué-modelo-se-está-probando&#34;&gt;1. Qué modelo se está probando
&lt;/h3&gt;&lt;p&gt;¿Es &lt;code&gt;Llama 2 7B&lt;/code&gt;? ¿Es la misma variante cuantizada, como &lt;code&gt;Q4_0&lt;/code&gt;? Si cambia el modelo o el formato de cuantización, comparar directamente pierde sentido.&lt;/p&gt;
&lt;h3 id=&#34;2-si-las-optimizaciones-clave-están-activadas&#34;&gt;2. Si las optimizaciones clave están activadas
&lt;/h3&gt;&lt;p&gt;El ejemplo más común es &lt;code&gt;FA&lt;/code&gt;. Si un benchmark usa &lt;code&gt;Flash Attention&lt;/code&gt; y otro no, las puntuaciones no son directamente comparables.&lt;/p&gt;
&lt;h3 id=&#34;3-si-la-métrica-mide-entrada-o-salida&#34;&gt;3. Si la métrica mide entrada o salida
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;pp512&lt;/code&gt; y &lt;code&gt;tg128&lt;/code&gt; miden etapas distintas. Una se acerca a velocidad de lectura de prompt; la otra a velocidad de generación de respuesta.&lt;/p&gt;
&lt;h3 id=&#34;4-si-te-importa-throughput-o-sensación-de-uso&#34;&gt;4. Si te importa throughput o sensación de uso
&lt;/h3&gt;&lt;p&gt;Si te importa procesar rápido un prompt largo, &lt;code&gt;pp512&lt;/code&gt; pesa más. Si te importa qué tan rápido se siente el modelo al responder, &lt;code&gt;tg128&lt;/code&gt; suele estar más cerca de la experiencia real.&lt;/p&gt;
&lt;h2 id=&#34;una-forma-práctica-de-recordarlo&#34;&gt;Una forma práctica de recordarlo
&lt;/h2&gt;&lt;p&gt;Puedes resumirlo así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Q4_0&lt;/code&gt;: el modelo está comprimido en una versión cuantizada de 4 bits&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FA&lt;/code&gt;: si Flash Attention está activado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pp512&lt;/code&gt;: velocidad para procesar una entrada de 512 tokens&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tg128&lt;/code&gt;: velocidad para generar una salida de 128 tokens&lt;/li&gt;
&lt;li&gt;&lt;code&gt;t/s&lt;/code&gt;: unidad de velocidad, tokens por segundo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Con esos cinco puntos claros, es mucho más fácil juzgar qué mide realmente un CUDA Scoreboard.&lt;/p&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;Las tablas de benchmark GPU a menudo parecen más complicadas de lo que son, no porque las métricas sean misteriosas, sino porque identidad del modelo, cuantización, flags de optimización y etapas distintas de throughput se comprimen en abreviaturas cortas.&lt;/p&gt;
&lt;p&gt;Cuando desarmas términos como &lt;code&gt;FA&lt;/code&gt;, &lt;code&gt;Q4_0&lt;/code&gt;, &lt;code&gt;pp512&lt;/code&gt; y &lt;code&gt;tg128&lt;/code&gt;, estas tablas se vuelven mucho más legibles.&lt;/p&gt;
&lt;p&gt;Lo importante no es recordar solo una puntuación, sino saber:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;de qué configuración de modelo viene&lt;/li&gt;
&lt;li&gt;si las optimizaciones clave estaban activadas&lt;/li&gt;
&lt;li&gt;si midió entrada o salida&lt;/li&gt;
&lt;li&gt;si refleja throughput de cómputo o algo más cercano a la sensación real de generación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso facilita juzgar qué significan realmente los resultados.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Guía práctica de formatos tensoriales comunes en LLMs: FP32, FP16, BF16, TF32 y FP8</title>
        <link>https://knightli.com/es/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/</link>
        <pubDate>Wed, 22 Apr 2026 22:40:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/</guid>
        <description>&lt;p&gt;En cuanto empiezas a trabajar con entrenamiento, inferencia o despliegue de modelos grandes, aparece un conjunto familiar de abreviaturas: &lt;code&gt;FP32&lt;/code&gt;, &lt;code&gt;FP16&lt;/code&gt;, &lt;code&gt;BF16&lt;/code&gt;, &lt;code&gt;TF32&lt;/code&gt; y &lt;code&gt;FP8&lt;/code&gt;. Parecen pequeñas etiquetas en una página de modelo, pero su impacto es mucho mayor que una diferencia de nombre.&lt;/p&gt;
&lt;p&gt;Estos formatos determinan cómo se almacenan los números en memoria y cómo se representan durante el cálculo. Afectan directamente la estabilidad del entrenamiento, la velocidad de inferencia e incluso qué tamaño de modelo puede manejar realmente una GPU.&lt;/p&gt;
&lt;p&gt;Así que si quieres entender los tradeoffs de precisión en modelos grandes, uno de los mejores puntos de partida no es una tabla de benchmarks de un modelo concreto, sino una imagen clara de qué son estos formatos tensoriales y por qué se diseñaron así.&lt;/p&gt;
&lt;h2 id=&#34;qué-determinan-realmente-los-formatos-tensoriales&#34;&gt;Qué determinan realmente los formatos tensoriales
&lt;/h2&gt;&lt;p&gt;En esencia, un modelo grande es un conjunto masivo de operaciones matriciales sobre enormes cantidades de parámetros, y el formato tensorial es cómo esos números se almacenan en memoria y se representan durante el cálculo.&lt;/p&gt;
&lt;p&gt;El tradeoff suele girar alrededor de tres dimensiones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;precisión&lt;/li&gt;
&lt;li&gt;uso de VRAM&lt;/li&gt;
&lt;li&gt;velocidad de cómputo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se parece bastante a los formatos de imagen. Los formatos sin pérdida preservan más detalle, pero ocupan más espacio y cargan más lento. Los formatos comprimidos descartan información menos perceptible a cambio de menor tamaño y manejo más rápido. Los modelos grandes aceptan tradeoffs similares porque, en conjuntos enormes de parámetros, muchos cambios numéricos diminutos no afectan significativamente la salida final.&lt;/p&gt;
&lt;p&gt;Por eso el mundo de modelos desarrolló toda una familia de formatos de precisión.&lt;/p&gt;
&lt;h2 id=&#34;cómo-se-representa-un-número&#34;&gt;Cómo se representa un número
&lt;/h2&gt;&lt;p&gt;Antes de entrar en formatos, conviene recordar una estructura básica. Un número de punto flotante suele tener tres partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;bit de signo: determina positivo o negativo&lt;/li&gt;
&lt;li&gt;bits de exponente: determinan rango numérico&lt;/li&gt;
&lt;li&gt;bits de mantisa: determinan detalle numérico&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En modelos grandes, la precisión de mantisa importa, pero muchos modelos son incluso más sensibles a un rango numérico insuficiente, es decir, muy pocos bits de exponente y mayor riesgo de overflow o entrenamiento inestable. Mucho del diseño de formatos tensoriales consiste en redistribuir un número limitado de bits entre rango y detalle.&lt;/p&gt;
&lt;p&gt;El diagrama siguiente da una vista general:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tensor-format-overview.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Overview of the bit layouts of FP32, FP16, BF16, TF32, and FP8&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;fp32-el-más-estable-pero-caro&#34;&gt;FP32: el más estable, pero caro
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FP32&lt;/code&gt; es el formato tradicional de punto flotante de precisión simple. Usa 32 bits en total, o 4 bytes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp32-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP32 bit layout diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Sus fortalezas son claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rango numérico amplio&lt;/li&gt;
&lt;li&gt;alta precisión&lt;/li&gt;
&lt;li&gt;comportamiento de entrenamiento más estable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La desventaja es igual de clara: consume mucha VRAM.&lt;/p&gt;
&lt;p&gt;Una estimación muy aproximada:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;VRAM usage ~= parameter count * bytes per parameter
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si un modelo 27B guarda pesos enteramente en &lt;code&gt;FP32&lt;/code&gt;, solo los pesos ocupan aproximadamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;27B * 4 bytes ~= 108GB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Y eso no incluye activaciones, KV cache, estado del optimizador u otros overheads. Por eso, en entrenamiento e inferencia modernos, &lt;code&gt;FP32&lt;/code&gt; ya no es tanto el formato predeterminado como la línea base más estable.&lt;/p&gt;
&lt;h2 id=&#34;fp16-mitad-de-tamaño-pero-menos-estable&#34;&gt;FP16: mitad de tamaño, pero menos estable
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;FP16&lt;/code&gt; comprime cada parámetro a 2 bytes, reduciendo memoria aproximadamente a la mitad frente a &lt;code&gt;FP32&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp16-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP16 bit layout diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Para el mismo modelo 27B, mirando solo tamaño de pesos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;27B * 2 bytes ~= 54GB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Eso ya explica por qué muchas guías colocan un modelo 27B alrededor de 50GB de VRAM.&lt;/p&gt;
&lt;p&gt;Ventajas de &lt;code&gt;FP16&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mucha menos presión de VRAM&lt;/li&gt;
&lt;li&gt;mayor throughput&lt;/li&gt;
&lt;li&gt;uso amplio en entrenamiento mixed-precision temprano&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su debilidad es el rango de exponente relativamente pequeño. En entrenamiento de modelos grandes, eso hace más probable el overflow y suele requerir técnicas extra como loss scaling, añadiendo complejidad de ingeniería.&lt;/p&gt;
&lt;p&gt;Así que &lt;code&gt;FP16&lt;/code&gt; sigue siendo común, pero en muchos escenarios ya no es la opción más cómoda.&lt;/p&gt;
&lt;h2 id=&#34;bf16-una-half-precision-más-práctica-para-la-era-de-modelos-grandes&#34;&gt;BF16: una half precision más práctica para la era de modelos grandes
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;BF16&lt;/code&gt; también usa 2 bytes, pero hace un tradeoff distinto a &lt;code&gt;FP16&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/bf16-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;BF16 bit layout diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Mantiene un rango de exponente mucho mayor, acercando su rango dinámico a &lt;code&gt;FP32&lt;/code&gt;, mientras sacrifica algo de precisión de mantisa. Ese tradeoff funciona especialmente bien en modelos grandes, porque suelen ser más sensibles al rango que a perder unos pocos bits de mantisa.&lt;/p&gt;
&lt;p&gt;Por eso muchos frameworks de entrenamiento, papers de modelos grandes y setups reales prefieren &lt;code&gt;BF16&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Una forma simple de pensarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;coste de VRAM cercano a &lt;code&gt;FP16&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;estabilidad más cercana a &lt;code&gt;FP32&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si una guía de despliegue 27B pide alrededor de 50GB de VRAM y otra optimizada se acerca a 30GB, la primera suele vivir aún en la capa &lt;code&gt;FP16/BF16&lt;/code&gt;, mientras la segunda normalmente avanzó hacia menor precisión o cuantización.&lt;/p&gt;
&lt;h2 id=&#34;tf32-no-ahorra-vram-acelera-flujos-fp32&#34;&gt;TF32: no ahorra VRAM, acelera flujos FP32
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;TF32&lt;/code&gt; es fácil de confundir con otro formato de ahorro de memoria, pero su rol es distinto.&lt;/p&gt;
&lt;p&gt;En términos comunes, puedes pensarlo como un formato de cómputo que mantiene un rango de exponente grande y acorta la precisión de mantisa.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tf32-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;TF32 computation format diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Pero es importante notar que &lt;code&gt;TF32&lt;/code&gt; se parece más a un formato interno de cálculo usado en la ruta Tensor Core, no algo usado principalmente para almacenar pesos como &lt;code&gt;FP16&lt;/code&gt; o &lt;code&gt;BF16&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Es sobre todo un modo de cómputo que NVIDIA ofrece en GPUs nuevas. El objetivo no es reducir VRAM, sino hacer que flujos originalmente basados en &lt;code&gt;FP32&lt;/code&gt; corran más rápido sin grandes cambios de código.&lt;/p&gt;
&lt;p&gt;Su rol se resume así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;externamente sigue pareciendo un flujo &lt;code&gt;FP32&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;internamente ejecuta math matricial aproximada más rápida&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que &lt;code&gt;TF32&lt;/code&gt; resuelve principalmente que &lt;code&gt;FP32&lt;/code&gt; es demasiado lento, no que use demasiada memoria. Si tu pregunta es por qué el mismo modelo puede tener requisitos de VRAM muy distintos, &lt;code&gt;TF32&lt;/code&gt; no es la respuesta principal.&lt;/p&gt;
&lt;h2 id=&#34;fp8-más-compresión-pero-exige-mucha-más-ingeniería&#34;&gt;FP8: más compresión, pero exige mucha más ingeniería
&lt;/h2&gt;&lt;p&gt;Un paso más lleva a &lt;code&gt;FP8&lt;/code&gt;. Comprime cada valor en aún menos bits, reduciendo más el ancho de banda de memoria y el coste de almacenamiento.&lt;/p&gt;
&lt;p&gt;Normalmente no aparece como un único formato, sino como dos variantes comunes: &lt;code&gt;E4M3&lt;/code&gt; y &lt;code&gt;E5M2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/fp8-layout.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FP8 variant diagram&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Pero &lt;code&gt;FP8&lt;/code&gt; tiene un coste obvio: con tan pocos bits, es muy difícil preservar rango y precisión al mismo tiempo. En la práctica, distintas variantes se usan en distintas etapas para equilibrar forward pass, backward pass y gradientes.&lt;/p&gt;
&lt;p&gt;Esta familia representa una estrategia más agresiva:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;renunciar a más precisión&lt;/li&gt;
&lt;li&gt;ganar menor coste de almacenamiento y mayor throughput&lt;/li&gt;
&lt;li&gt;depender de hardware y frameworks más maduros&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tiene mucho potencial, pero para la mayoría de usuarios las divisiones prácticas principales siguen siendo &lt;code&gt;FP32&lt;/code&gt;, &lt;code&gt;FP16&lt;/code&gt; y &lt;code&gt;BF16&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-importa-entender-estos-formatos&#34;&gt;Por qué importa entender estos formatos
&lt;/h2&gt;&lt;p&gt;Mucha gente primero trata estas abreviaturas como detalles de implementación en una página de descarga. Pero en la práctica cambian cómo piensas sobre entrenamiento y despliegue.&lt;/p&gt;
&lt;p&gt;Por ejemplo, ayudan a explicar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;por qué algunos setups de entrenamiento se preocupan tanto por la estabilidad numérica&lt;/li&gt;
&lt;li&gt;por qué algunas stacks de inferencia priorizan cuantización y baja precisión&lt;/li&gt;
&lt;li&gt;por qué modelos con conteos de parámetros similares pueden tener requisitos de despliegue muy distintos&lt;/li&gt;
&lt;li&gt;por qué algunos formatos son mejores para almacenar pesos y otros tienen más sentido como rutas de cómputo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si sigues desarmando esas preguntas, vuelves al mismo punto: cómo eliges intercambiar precisión, rango, memoria y velocidad.&lt;/p&gt;
&lt;p&gt;Por eso entender &lt;code&gt;FP32&lt;/code&gt;, &lt;code&gt;FP16&lt;/code&gt;, &lt;code&gt;BF16&lt;/code&gt;, &lt;code&gt;TF32&lt;/code&gt; y &lt;code&gt;FP8&lt;/code&gt; no es solo decodificar un glosario. Es entender qué se está intercambiando realmente al leer una config de entrenamiento, elegir un motor de inferencia o comparar opciones de despliegue.&lt;/p&gt;
&lt;h2 id=&#34;un-modelo-mental-práctico&#34;&gt;Un modelo mental práctico
&lt;/h2&gt;&lt;p&gt;Si no quieres memorizar todos los detalles de inmediato, ayuda recordarlos así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;FP32&lt;/code&gt;: más estable, más caro&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FP16&lt;/code&gt;: menos uso de VRAM, pero menor rango&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BF16&lt;/code&gt;: coste de VRAM similar a &lt;code&gt;FP16&lt;/code&gt;, pero estabilidad más adecuada para modelos grandes&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TF32&lt;/code&gt;: resuelve principalmente lentitud de &lt;code&gt;FP32&lt;/code&gt;, no uso de VRAM&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FP8&lt;/code&gt;: ruta más agresiva de compresión y aceleración&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/22/common-tensor-formats-fp32-fp16-bf16-tf32-fp8/tensor-format-summary.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Summary chart of common tensor formats&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;Después, cuando veas &lt;code&gt;fp16&lt;/code&gt;, &lt;code&gt;bf16&lt;/code&gt; o &lt;code&gt;fp8&lt;/code&gt; en una página de modelo, o cuando distintas guías den umbrales de VRAM muy diferentes, ya no parecerá una diferencia de palabras. Esas etiquetas reflejan presupuestos de precisión y elecciones de ingeniería muy distintos.&lt;/p&gt;
&lt;h2 id=&#34;cierre&#34;&gt;Cierre
&lt;/h2&gt;&lt;p&gt;Los formatos tensoriales en modelos grandes parecen una discusión sobre anchos de bits, pero debajo son una discusión sobre tradeoffs de ingeniería.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;FP32&lt;/code&gt;, &lt;code&gt;FP16&lt;/code&gt;, &lt;code&gt;BF16&lt;/code&gt;, &lt;code&gt;TF32&lt;/code&gt; y &lt;code&gt;FP8&lt;/code&gt; no son simplemente mejores o peores entre sí. Cada uno se ubica en un punto diferente de la curva entre estabilidad, rango, precisión, memoria y velocidad.&lt;/p&gt;
&lt;p&gt;Cuando entiendes claramente esa capa, resulta mucho más fácil leer papers de entrenamiento, ajustar inferencia y comparar estrategias de despliegue con el modelo mental correcto.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Una GPU de 16GB aún puede ejecutar modelos 35B: estrategias de compresión VRAM para modelos MoE en LM Studio</title>
        <link>https://knightli.com/es/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</link>
        <pubDate>Wed, 22 Apr 2026 21:47:34 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</guid>
        <description>&lt;p&gt;Mucha gente piensa que 16GB de VRAM es el punto donde el despliegue local de LLMs se queda más o menos en modelos 12B a 14B, y que cualquier cosa más grande se vuelve demasiado dolorosa incluso con cuantización. Esa visión es comprensible, pero no es el techo real de una GPU de 16GB.&lt;/p&gt;
&lt;p&gt;Si eliges bien el modelo y configuras bien los parámetros, una GPU de 16GB no tiene por qué limitarse a modelos pequeños. Un enfoque representativo es usar modelos &lt;code&gt;MoE&lt;/code&gt; dentro de &lt;code&gt;LM Studio&lt;/code&gt; con una estrategia sensata de descarga, de modo que modelos de clase 35B sigan funcionando a una velocidad realmente usable.&lt;/p&gt;
&lt;h2 id=&#34;01-por-qué-una-gpu-de-16gb-no-necesariamente-se-limita-a-12b-14b&#34;&gt;01 Por qué una GPU de 16GB no necesariamente se limita a 12B-14B
&lt;/h2&gt;&lt;p&gt;La idea central es simple: el tamaño de VRAM importa, pero la arquitectura del modelo importa igual.&lt;/p&gt;
&lt;p&gt;Si intentas meter un modelo dense estándar en una GPU de 16GB, chocarás con el límite rápidamente. Estos modelos suelen involucrar todos los parámetros durante inferencia, así que la presión de VRAM y ancho de banda sube de inmediato.&lt;/p&gt;
&lt;p&gt;Pero los modelos &lt;code&gt;MoE&lt;/code&gt; son distintos. Su número total de parámetros puede ser grande, mientras solo una parte de los parámetros expertos se activa en cada paso de inferencia. Tomando como ejemplo un modelo de clase 35B: aunque el total de parámetros es alto, el número real que participa en cada paso es mucho menor, así que su requisito real de VRAM no es tan extremo como muchos asumen.&lt;/p&gt;
&lt;p&gt;Por eso una GPU de 16GB todavía deja cierto margen de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;02-conclusión-práctica-clave-los-modelos-moe-35b-pueden-correr-sorprendentemente-rápido&#34;&gt;02 Conclusión práctica clave: los modelos MoE 35B pueden correr sorprendentemente rápido
&lt;/h2&gt;&lt;p&gt;Un caso representativo es un modelo &lt;code&gt;MoE&lt;/code&gt; cuantizado como &lt;code&gt;Qwen 3.5 35B A3B&lt;/code&gt;. Con una GPU de 16GB y los ajustes correctos en &lt;code&gt;LM Studio&lt;/code&gt;, la cuantización &lt;code&gt;Q6&lt;/code&gt; puede superar los 30 &lt;code&gt;tokens/s&lt;/code&gt;, y &lt;code&gt;Q4&lt;/code&gt; a veces prueba incluso más alto.&lt;/p&gt;
&lt;p&gt;Ese resultado importa no solo porque el modelo &amp;ldquo;corre&amp;rdquo;, sino porque la velocidad ya está en un rango claramente usable.&lt;/p&gt;
&lt;p&gt;En comparación, modelos grandes de escala similar que no son &lt;code&gt;MoE&lt;/code&gt; suelen sufrir overflow de VRAM y caídas bruscas de velocidad en una GPU de 16GB. En otras palabras, el resultado no se determina solo por el número de parámetros. Importa cómo se usan esos parámetros durante inferencia.&lt;/p&gt;
&lt;h2 id=&#34;03-en-lm-studio-la-clave-no-es-un-solo-parámetro&#34;&gt;03 En LM Studio, la clave no es un solo parámetro
&lt;/h2&gt;&lt;p&gt;Si quieres que este tipo de modelo corra con fluidez en una GPU de 16GB, el truco real no es suerte. Es ajustar correctamente dos parámetros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPU Offload&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;el ajuste que fuerza parte de las capas expertas a memoria CPU&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El primero es fácil de entender. &lt;code&gt;GPU Offload&lt;/code&gt; básicamente se empuja lo más alto posible para que el modelo priorice cálculo en GPU.&lt;/p&gt;
&lt;p&gt;El segundo es la clave. No es el enfoque tradicional de &amp;ldquo;tomar prestada memoria del sistema cuando se desborda la VRAM&amp;rdquo;. En su lugar, coloca proactivamente parte de las capas expertas en memoria CPU para reducir uso de VRAM desde el inicio. Como los modelos &lt;code&gt;MoE&lt;/code&gt; no activan todos los expertos en cada paso, mover algunos expertos a memoria no perjudica la velocidad global tanto como muchos esperarían.&lt;/p&gt;
&lt;p&gt;Una forma más segura de ajustarlo es empezar en un rango y luego afinar gradualmente según tu máquina:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;empezar con valores relacionados entre &lt;code&gt;20&lt;/code&gt; y &lt;code&gt;35&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;luego ajustar según uso de VRAM y presión de memoria&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En el fondo, este método usa memoria del sistema para recuperar margen de VRAM.&lt;/p&gt;
&lt;h2 id=&#34;04-puede-seguir-funcionando-a-128k-de-contexto-y-contextos-menores-reducen-más-la-vram&#34;&gt;04 Puede seguir funcionando a 128K de contexto, y contextos menores reducen más la VRAM
&lt;/h2&gt;&lt;p&gt;Otro punto interesante es que incluso con longitud de contexto en &lt;code&gt;128K&lt;/code&gt;, un modelo &lt;code&gt;MoE&lt;/code&gt; de clase 35B puede mantener una velocidad relativamente alta.&lt;/p&gt;
&lt;p&gt;Eso dice algo importante: el cuello de botella de una GPU de 16GB no es tan rígido como muchos imaginan. Especialmente en una herramienta local como &lt;code&gt;LM Studio&lt;/code&gt;, la pregunta real no suele ser simplemente si corre o no, sino:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si aceptas intercambiar más memoria del sistema por menos uso de VRAM&lt;/li&gt;
&lt;li&gt;si aceptas acortar la longitud de contexto&lt;/li&gt;
&lt;li&gt;si aceptas distintos compromisos de capacidad entre niveles de cuantización&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si reduces el contexto de &lt;code&gt;128K&lt;/code&gt; a &lt;code&gt;64K&lt;/code&gt; o &lt;code&gt;32K&lt;/code&gt;, la presión de VRAM baja aún más. Eso significa que algunos modelos &lt;code&gt;MoE&lt;/code&gt; de clase 35B podrían incluso correr, con dificultad, en GPUs con menos VRAM, aunque velocidad y presión de memoria tendrán que reequilibrarse.&lt;/p&gt;
&lt;h2 id=&#34;05-el-coste-mucha-más-demanda-de-ram-y-memoria-virtual&#34;&gt;05 El coste: mucha más demanda de RAM y memoria virtual
&lt;/h2&gt;&lt;p&gt;Este setup no es rendimiento gratis.&lt;/p&gt;
&lt;p&gt;Lo que debes vigilar es que, al comprimir más la presión de VRAM, el uso de RAM del sistema sube notablemente, y también la presión de memoria virtual. En otras palabras, no eliminas el coste: lo desplazas desde la GPU hacia RAM y swap en disco.&lt;/p&gt;
&lt;p&gt;Si quieres probarlo, revisa primero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si tu RAM del sistema es suficiente&lt;/li&gt;
&lt;li&gt;si tu asignación de memoria virtual es suficiente&lt;/li&gt;
&lt;li&gt;si demasiadas apps de fondo ya consumen recursos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si esas condiciones no están, quizá no obtengas &amp;ldquo;35B corriendo rápido&amp;rdquo;, sino una máquina lenta en todo.&lt;/p&gt;
&lt;h2 id=&#34;06-una-cuantización-más-agresiva-no-siempre-es-mejor&#34;&gt;06 Una cuantización más agresiva no siempre es mejor
&lt;/h2&gt;&lt;p&gt;Hay otro compromiso práctico. La cuantización de menos bits suele ahorrar más VRAM, pero eso no la convierte automáticamente en la mejor opción.&lt;/p&gt;
&lt;p&gt;La conclusión práctica es que algunos modelos corren más rápido en &lt;code&gt;Q4&lt;/code&gt;, pero su capacidad original también puede degradarse más. En comparación, &lt;code&gt;Q6&lt;/code&gt; tiende a equilibrar mejor velocidad y retención de capacidad. Así que la elección correcta depende de qué te importe más:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;máxima velocidad y encajar en VRAM&lt;/li&gt;
&lt;li&gt;o preservar más capacidad original del modelo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esas dos prioridades no siempre llevan a la misma cuantización.&lt;/p&gt;
&lt;h2 id=&#34;07-qué-modelos-vale-la-pena-probar&#34;&gt;07 Qué modelos vale la pena probar
&lt;/h2&gt;&lt;p&gt;Desde este ángulo, lo mejor no es perseguir ciegamente más parámetros, sino buscar primero modelos que encajen con esta estrategia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;modelos construidos sobre arquitectura &lt;code&gt;MoE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;modelos bien soportados en &lt;code&gt;LM Studio&lt;/code&gt; y con variantes cuantizadas completas&lt;/li&gt;
&lt;li&gt;modelos con ventajas claras en contexto largo o seguimiento de instrucciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea no se detiene en un único modelo &lt;code&gt;MoE&lt;/code&gt; 35B. También se extiende a modelos experimentales con memoria de contexto largo más fuerte, mejor seguimiento de instrucciones o variantes cuantizadas más ligeras con gran velocidad.&lt;/p&gt;
&lt;p&gt;La lógica es consistente: primero encuentra modelos cuya arquitectura encaje con la estrategia de intercambiar memoria por VRAM, y luego habla de tuning. No empieces solo por número de parámetros.&lt;/p&gt;
&lt;h2 id=&#34;08-conclusión-breve&#34;&gt;08 Conclusión breve
&lt;/h2&gt;&lt;p&gt;Si tienes una GPU de 16GB y asumes que los LLMs locales se detienen en 12B-14B, vale la pena actualizar esa suposición.&lt;/p&gt;
&lt;p&gt;Una forma más precisa de decirlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una GPU de 16GB no queda automáticamente descartada para modelos más grandes&lt;/li&gt;
&lt;li&gt;modelos dense y modelos &lt;code&gt;MoE&lt;/code&gt; deben considerarse por separado&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPU Offload&lt;/code&gt; y transferencia de capas expertas a memoria CPU en &lt;code&gt;LM Studio&lt;/code&gt; pueden cambiar significativamente el uso de VRAM&lt;/li&gt;
&lt;li&gt;en la práctica, intercambias mayor presión de memoria por más escala de modelo y mejor velocidad usable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este enfoque no encaja con todas las máquinas, pero muestra algo importante: en despliegue local de LLMs, la VRAM no es el único límite. La arquitectura del modelo y la configuración de inferencia importan igual.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>12V-2x6 frente a 12VHPWR: notas sobre las diferencias en el conector de alimentación de 16 pines de la GPU</title>
        <link>https://knightli.com/es/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/</link>
        <pubDate>Sun, 19 Apr 2026 23:21:17 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/</guid>
        <description>&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/4.png&#34;
	width=&#34;1516&#34;
	height=&#34;774&#34;
	srcset=&#34;https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/4_hu_defcdc0fe696070d.png 480w, https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/4_hu_d75571d9af707f1a.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Comparación&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;195&#34;
		data-flex-basis=&#34;470px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;Entre las GPU de gama alta recientes, el conector de alimentación del que se habla con más frecuencia es probablemente el &amp;ldquo;12VHPWR&amp;rdquo; y el más nuevo &amp;ldquo;12V-2x6&amp;rdquo;. Ambos parecen conectores de 16 pines, con un diseño &amp;ldquo;12 + 4&amp;rdquo;, pero no son exactamente la misma interfaz.&lt;/p&gt;
&lt;p&gt;En términos simples, &amp;ldquo;12V-2x6&amp;rdquo; puede entenderse como una revisión del diseño anterior &amp;ldquo;12VHPWR&amp;rdquo; bajo &amp;ldquo;ATX 3.1&amp;rdquo; y &amp;ldquo;PCIe CEM 5.1&amp;rdquo;. Mantiene la capacidad de salida de alta potencia, pero utiliza un diseño más conservador para la detección de inserción y la estructura del terminal. El objetivo es reducir el riesgo de que el conector siga soportando carga cuando no está completamente asentado.&lt;/p&gt;
&lt;h2 id=&#34;01-las-diferencias-de-cables-son-pequeñas&#34;&gt;01 Las diferencias de cables son pequeñas
&lt;/h2&gt;&lt;p&gt;La primera pregunta que preocupa a mucha gente es si los cables modulares &amp;ldquo;12V-2x6&amp;rdquo; y &amp;ldquo;12VHPWR&amp;rdquo; se pueden utilizar indistintamente.&lt;/p&gt;
&lt;p&gt;Si nos fijamos únicamente en el cable en sí, la diferencia no suele ser grande. El verdadero cambio está principalmente en el conector del lado de la placa, como el zócalo de la GPU o el zócalo de la placa posterior de la fuente de alimentación modular. Tanto los cables modulares &amp;ldquo;12V-2x6&amp;rdquo; más nuevos como los cables modulares &amp;ldquo;12VHPWR&amp;rdquo; más antiguos todavía están destinados a la entrega de energía de GPU de 16 pines.&lt;/p&gt;
&lt;p&gt;Por lo tanto, la compatibilidad no debe juzgarse únicamente por la longitud, el calibre o la apariencia del cable. Las especificaciones del socket del lado de la GPU y de la PSU, la calidad del terminal y la declaración de compatibilidad oficial del proveedor de la fuente de alimentación son más importantes.&lt;/p&gt;
&lt;h2 id=&#34;02-cambios-mecánicos-clave&#34;&gt;02 Cambios mecánicos clave
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/1.png&#34;
	width=&#34;1469&#34;
	height=&#34;505&#34;
	srcset=&#34;https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/1_hu_f49f1d41f41658ca.png 480w, https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/1_hu_9451e0053960c4aa.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Comparación de conectores&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;290&#34;
		data-flex-basis=&#34;698px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/2.png&#34;
	width=&#34;1390&#34;
	height=&#34;743&#34;
	srcset=&#34;https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/2_hu_b338f61621a3f769.png 480w, https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/2_hu_dee9d88d14eab23d.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Comparación de conectores&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;187&#34;
		data-flex-basis=&#34;448px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;El objetivo de &lt;code&gt;12V-2x6&lt;/code&gt; no es cambiar completamente la forma exterior del conector, sino ajustar la estructura de los pines.&lt;/p&gt;
&lt;p&gt;Sus 12 pines de alimentación principales son más largos y hacen contacto antes, mientras que los 4 pines de señal SENSE son más cortos y hacen contacto más tarde. La lógica es sencilla: sólo cuando el conector se inserta lo suficientemente profundo los pines SENSE deben conducir correctamente, permitiendo a la GPU identificar la capacidad de energía deseada.&lt;/p&gt;
&lt;p&gt;Este cambio apunta a un problema típico expuesto por los primeros conectores &amp;ldquo;12VHPWR&amp;rdquo;: el enchufe puede parecer insertado, pero en realidad puede no estar completamente asentado. Bajo cargas elevadas, un contacto insuficiente puede generar calor y, en casos graves, puede quemar el enchufe o el enchufe.&lt;/p&gt;
&lt;h2 id=&#34;03-lógica-sentida-más-conservadora&#34;&gt;03 Lógica SENTIDA más conservadora
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;SENTIDO0&lt;/th&gt;
          &lt;th&gt;SENTIDO1&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Encendido inicial (encendido)&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Potencia máxima sostenida&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Terreno&lt;/td&gt;
          &lt;td&gt;Terreno&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;375 W&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;600 vatios&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Abrir&lt;/td&gt;
          &lt;td&gt;Terreno&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;225 W&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;450 vatios&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Terreno&lt;/td&gt;
          &lt;td&gt;Abrir&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;150W&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;300W&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Corto&lt;/td&gt;
          &lt;td&gt;Corto&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;100 vatios&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;150W&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Abrir&lt;/td&gt;
          &lt;td&gt;Abrir&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;0W&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;0W&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La mejora de seguridad en &lt;code&gt;12V-2x6&lt;/code&gt; se centra en la lógica SENSE.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/3.png&#34;
	width=&#34;1413&#34;
	height=&#34;594&#34;
	srcset=&#34;https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/3_hu_da90f28c8ff5ee55.png 480w, https://knightli.com/2026/04/19/12v-2x6-vs-12vhpwr-gpu-power-connector-notes/3_hu_d32cc33cf944e495.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Se alimenta solo cuando está completamente insertado&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;237&#34;
		data-flex-basis=&#34;570px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;En la definición más reciente, si &amp;ldquo;SENSE0&amp;rdquo; y &amp;ldquo;SENSE1&amp;rdquo; están en el estado flotante &amp;ldquo;Abierto&amp;rdquo;, la GPU no se encenderá normalmente o no entrará en el estado de entrada de alta potencia correspondiente. En otras palabras, cuando el conector no está colocado correctamente, el sistema es más propenso a impedir el funcionamiento en lugar de dejar que la GPU siga consumiendo energía.&lt;/p&gt;
&lt;p&gt;Esto es más conservador que los primeros &amp;ldquo;12VHPWR&amp;rdquo;. En diseños más antiguos, incluso si el estado SENSE no fuera ideal, algunos casos aún podrían permitir un cierto nivel de entrada de energía. Para las GPU de alta potencia, esa tolerancia puede convertirse en un riesgo.&lt;/p&gt;
&lt;p&gt;Acortar los pines SENSE es esencialmente una forma de hacer que &amp;ldquo;completamente insertados&amp;rdquo; sea un requisito previo más estricto.&lt;/p&gt;
&lt;h2 id=&#34;04-qué-significa-h&#34;&gt;04 Qué significa H++
&lt;/h2&gt;&lt;p&gt;Los conectores &amp;ldquo;12V-2x6&amp;rdquo; más nuevos suelen llevar una marca &amp;ldquo;H++&amp;rdquo;. Indica que los terminales del conector admiten una capacidad de corriente &lt;code&gt;9.2A&lt;/code&gt; o superior, lo que los distingue de los conectores &lt;code&gt;12VHPWR&lt;/code&gt; anteriores marcados como &lt;code&gt;H+&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Vale la pena señalar que &amp;ldquo;H++&amp;rdquo; no significa que el límite de potencia del conector supere los 600 W. Ya sea nuevo o antiguo, el límite superior común para este esquema de energía de GPU de 16 pines sigue siendo &amp;ldquo;600W&amp;rdquo;. &lt;code&gt;H++&lt;/code&gt; se entiende mejor como especificación de terminal e identificación de versión de conector, no simplemente como &amp;ldquo;mayor potencia&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;05-qué-significa-para-la-construcción-de-pc&#34;&gt;05 Qué significa para la construcción de PC
&lt;/h2&gt;&lt;p&gt;Para la construcción diaria de PC, el mayor valor de &amp;ldquo;12V-2x6&amp;rdquo; es reducir el riesgo relacionado con la inserción, pero no es un escudo mágico.&lt;/p&gt;
&lt;p&gt;Al utilizar este tipo de conector, vale la pena prestar atención a algunas cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Insertar completamente el enchufe; No confíe sólo en si &amp;ldquo;parece insertado&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Evite doblar demasiado el cable justo al lado del conector de la GPU.&lt;/li&gt;
&lt;li&gt;No deje que el panel lateral ejerza presión sobre el cable.&lt;/li&gt;
&lt;li&gt;Prefiera cables originales, personalizados o adaptadores explícitamente admitidos por el proveedor de PSU o GPU.&lt;/li&gt;
&lt;li&gt;Evite adaptadores baratos de origen desconocido en GPU de alta potencia.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si la carcasa está apretada, un cable en forma de L de 90 grados o un cable personalizado certificado por el proveedor pueden reducir la presión de flexión. Aún así, la calidad del terminal, el calibre del cable y la certificación del proveedor son más importantes que la apariencia.&lt;/p&gt;
&lt;h2 id=&#34;06-resumen-rápido&#34;&gt;06 Resumen rápido
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;12V-2x6&lt;/code&gt; no es un conector que sea &amp;ldquo;básicamente igual que 12VHPWR porque tiene el mismo aspecto&amp;rdquo;. Sus cambios reales están dentro de la estructura del conector y la lógica de detección.&lt;/p&gt;
&lt;p&gt;Puedes pensarlo de esta manera:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La forma del cable es similar, pero el conector del lado de la placa y el diseño del terminal son más importantes.&lt;/li&gt;
&lt;li&gt;Los pines de alimentación principales son más largos, mientras que los pines SENSE son más cortos.&lt;/li&gt;
&lt;li&gt;Cuando el conector no está completamente asentado, es más probable que el nuevo diseño impida que la GPU entre en estado de funcionamiento.&lt;/li&gt;
&lt;li&gt;La marca &lt;code&gt;H++&lt;/code&gt; identifica terminales con mayor capacidad de corriente.&lt;/li&gt;
&lt;li&gt;El límite de potencia común de la GPU sigue siendo &amp;ldquo;600W&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si está construyendo un sistema con una GPU de alta potencia, &amp;ldquo;12V-2x6&amp;rdquo; es de hecho más tranquilizador que el anterior &amp;ldquo;12VHPWR&amp;rdquo;. Pero la seguridad final aún depende de si el enchufe está completamente colocado, la calidad del cable, el diseño de la fuente de alimentación y el espacio para la gestión de cables de la caja. Un mejor estándar de conector no hace que una instalación descuidada sea segura.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Notas de Ollama Multi-GPU: agrupación de VRAM, selección de GPU y malentendidos comunes</title>
        <link>https://knightli.com/es/2026/04/19/ollama-multiple-gpu-notes/</link>
        <pubDate>Sun, 19 Apr 2026 00:18:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/19/ollama-multiple-gpu-notes/</guid>
        <description>&lt;p&gt;Al ejecutar la inferencia local con Ollama, surgen rápidamente algunas preguntas: si ya tengo una GPU y mi placa base todavía tiene ranuras PCIe vacías, ¿ayuda agregar más GPU? ¿Es necesario que las GPU sean idénticas? ¿Se puede combinar VRAM? ¿Acelerará la inferencia como un marco de entrenamiento de múltiples GPU?&lt;/p&gt;
&lt;p&gt;Esta nota resume cómo se comporta Ollama con múltiples GPU. La versión corta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama admite múltiples GPU.&lt;/li&gt;
&lt;li&gt;El valor principal de varias GPU generalmente es adaptar modelos más grandes a la VRAM disponible, sin obtener un escalado lineal de tokens.&lt;/li&gt;
&lt;li&gt;De forma predeterminada, si un modelo cabe completamente en una GPU, Ollama tiende a cargarlo en una sola GPU.&lt;/li&gt;
&lt;li&gt;Si un modelo no cabe en una GPU, Ollama puede distribuirlo entre las GPU disponibles.&lt;/li&gt;
&lt;li&gt;Ollama puede ver modelos de GPU mixtos, pero el rendimiento y la ubicación pueden no ser los ideales.&lt;/li&gt;
&lt;li&gt;SLI/NVLink no es necesario para el uso de múltiples GPU.&lt;/li&gt;
&lt;li&gt;Para limitar qué GPU puede usar Ollama, use &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt;, &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; o &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;comportamiento-oficial-gpu-única-primero-gpu-múltiple-cuando-sea-necesario&#34;&gt;Comportamiento oficial: GPU única primero, GPU múltiple cuando sea necesario
&lt;/h2&gt;&lt;p&gt;Las preguntas frecuentes de Ollama describen directamente la lógica de carga de múltiples GPU: al cargar un nuevo modelo, Ollama estima la VRAM requerida y la compara con la memoria de GPU disponible actualmente. Si el modelo cabe completamente en una GPU, carga el modelo en esa GPU. Si no cabe en una sola GPU, el modelo se distribuye entre todas las GPU disponibles.&lt;/p&gt;
&lt;p&gt;La razón es el rendimiento. Mantener un modelo en una GPU generalmente reduce las transferencias de datos a través del bus PCIe durante la inferencia, por lo que suele ser más rápido.&lt;/p&gt;
&lt;p&gt;Así que no pienses en Ollama multi-GPU como si &amp;ldquo;más tarjetas significan automáticamente varias veces más rápido&amp;rdquo;. Un modelo más preciso es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El modelo pequeño cabe en una GPU: normalmente funciona con una GPU.&lt;/li&gt;
&lt;li&gt;El modelo grande no cabe en una GPU: se divide en varias GPU.&lt;/li&gt;
&lt;li&gt;Todavía no hay suficiente VRAM: parte del modelo vuelve a la memoria del sistema y la velocidad cae notablemente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Utilice este comando para ver dónde está cargado el modelo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La columna &amp;ldquo;PROCESADOR&amp;rdquo; puede mostrar algo como:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100% GPU
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;48%/52% CPU/GPU
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100% CPU
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si ve &amp;ldquo;48%/52% CPU/GPU&amp;rdquo;, parte del modelo ya está en la memoria del sistema. En ese caso, agregar más memoria GPU o usar una GPU con VRAM más grande suele ser más útil que seguir dependiendo de la CPU/RAM.&lt;/p&gt;
&lt;h2 id=&#34;multi-gpu-no-es-un-simple-apilamiento-informático&#34;&gt;Multi-GPU no es un simple apilamiento informático
&lt;/h2&gt;&lt;p&gt;La inferencia LLM local no es lo mismo que SLI en los juegos. Con Ollama en múltiples GPU, el patrón común es que se colocan diferentes capas o tensores en diferentes dispositivos. Esto puede hacer que un modelo más grande encaje en la VRAM disponible combinada, pero es posible que aún sea necesario que los datos se muevan entre dispositivos durante la inferencia.&lt;/p&gt;
&lt;p&gt;Por lo tanto, los beneficios de múltiples GPU generalmente se dividen en dos categorías:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Beneficio de VRAM: los modelos más grandes encajan más fácilmente, o menos parte del modelo recurre a CPU/RAM.&lt;/li&gt;
&lt;li&gt;Beneficio de rendimiento: generalmente es más obvio cuando un modelo no cabría en una GPU o se extendería en gran medida a la CPU.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si un modelo 8B o 14B ya cabe por completo en un solo RTX 3090, forzarlo en dos GPU puede no ser más rápido. Incluso puede ralentizarse debido a la sobrecarga de transferencia entre GPU. La estrategia predeterminada de Ollama de &amp;ldquo;usar una GPU cuando sea necesario&amp;rdquo; evita ese costo innecesario de PCIe.&lt;/p&gt;
&lt;h2 id=&#34;no-se-requiere-sli-o-nvlink&#34;&gt;No se requiere SLI o NVLink
&lt;/h2&gt;&lt;p&gt;Ollama multi-GPU no depende de SLI. Se pueden programar varias GPU PCIe normales siempre que el controlador y Ollama puedan detectarlas.
NVLink o un ancho de banda PCIe superior puede ayudar en algunos escenarios entre GPU, pero no es un requisito. Muchos servidores y estaciones de trabajo GPU usados ​​pueden ejecutar varias GPU a través de PCIe normal.&lt;/p&gt;
&lt;p&gt;A lo que debes prestar atención es al ancho de banda PCIe. La diferencia entre &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;x4&lt;/code&gt;, &lt;code&gt;x8&lt;/code&gt; y &lt;code&gt;x16&lt;/code&gt; afecta la rapidez con la que se carga un modelo en VRAM. Si cambia con frecuencia de modelo grande, el ancho de banda PCIe se vuelve más importante. Después de cargar un modelo, PCIe generalmente importa menos durante la generación, pero la división entre GPU aún puede agregar gastos generales.&lt;/p&gt;
&lt;p&gt;Reglas más seguras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prefiere las bandas x16/x8 a las bandas x1 estilo minería.&lt;/li&gt;
&lt;li&gt;El ancho de banda PCIe es más importante cuando se cambian modelos grandes con frecuencia.&lt;/li&gt;
&lt;li&gt;Si un modelo permanece residente en VRAM durante mucho tiempo, el ancho de banda PCIe es menos visible.&lt;/li&gt;
&lt;li&gt;Para máquinas con múltiples GPU, verifique la topología PCIe de la placa base y los carriles conectados a la CPU.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;limite-las-gpu-nvidia-que-utiliza-ollama&#34;&gt;Limite las GPU NVIDIA que utiliza Ollama
&lt;/h2&gt;&lt;p&gt;En sistemas NVIDIA con múltiples GPU, use &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt; para controlar qué GPU puede ver Ollama.&lt;/p&gt;
&lt;p&gt;Ejecución temporal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Utilice sólo la segunda GPU:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Obligar a Ollama a no utilizar GPU NVIDIA:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los documentos oficiales señalan que los ID numéricos pueden cambiar de orden, por lo que los UUID de GPU son más confiables. Primero verifique los UUID:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi -L
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Salida de ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPU 0: NVIDIA GeForce RTX 3090 (UUID: GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GPU 1: NVIDIA GeForce RTX 3070 (UUID: GPU-yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego especifique el UUID:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;GPU-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si Ollama está instalado como un servicio systemd de Linux, coloque la variable en el entorno del servicio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl edit ollama.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Agregar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;CUDA_VISIBLE_DEVICES=0,1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Recargar y reiniciar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl restart ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;selección-de-dispositivos-amd-y-vulkan&#34;&gt;Selección de dispositivos AMD y Vulkan
&lt;/h2&gt;&lt;p&gt;Para AMD ROCm, use &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; para controlar las GPU visibles:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ROCR_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para obligar a Ollama a no usar GPU ROCm, use una identificación no válida:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ROCR_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los documentos de GPU de Ollama también mencionan el soporte experimental de Vulkan. Para GPU Vulkan, use &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_VULKAN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;GGML_VK_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si los dispositivos Vulkan causan problemas, desactívelos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;GGML_VK_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-1 ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es más probable que las configuraciones de múltiples GPU de AMD tengan problemas de compatibilidad con el controlador, la versión ROCm y la versión GFX. Los documentos oficiales también mencionan los requisitos del controlador ROCm de Linux y las anulaciones de compatibilidad, como &lt;code&gt;HSA_OVERRIDE_GFX_VERSION&lt;/code&gt;. Si combina diferentes generaciones de GPU AMD, primero verifique que cada tarjeta funcione por sí sola antes de probar con varias GPU.&lt;/p&gt;
&lt;h2 id=&#34;exponer-varias-gpu-en-docker&#34;&gt;Exponer varias GPU en Docker
&lt;/h2&gt;&lt;p&gt;Si ejecuta Ollama en Docker, las configuraciones de NVIDIA generalmente requieren &lt;code&gt;nvidia-container-toolkit&lt;/code&gt; y luego &lt;code&gt;--gpus&lt;/code&gt; para exponer los dispositivos.&lt;/p&gt;
&lt;p&gt;Exponga todas las GPU:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Exponer GPU específicas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#34;device=0,1&amp;#34;&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes combinar esto con variables de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --gpus&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;CUDA_VISIBLE_DEVICES&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0,1 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v ollama:/root/.ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 11434:11434 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name ollama &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ollama/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si &lt;code&gt;nvidia-smi&lt;/code&gt; no puede ver las GPU dentro del contenedor, Ollama tampoco puede usarlas. Primero solucione los problemas de transferencia de GPU de Docker y luego Ollama.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-ollama_sched_spread&#34;&gt;¿Qué es &lt;code&gt;OLLAMA_SCHED_SPREAD&lt;/code&gt;?
&lt;/h2&gt;&lt;p&gt;En algunas discusiones sobre configuración de múltiples GPU, es posible que vea &lt;code&gt;OLLAMA_SCHED_SPREAD=1&lt;/code&gt; o &lt;code&gt;OLLAMA_SCHED_SPREAD=true&lt;/code&gt;. Está relacionado con el programador de Ollama y se usa a menudo cuando las personas desean que los modelos o solicitudes se distribuyan más ampliamente entre las GPU.&lt;/p&gt;
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_SCHED_SPREAD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ollama serve
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O con systemd:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Environment&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;OLLAMA_SCHED_SPREAD=true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Pero no es un cambio mágico. Habilitarlo no implica un escalado lineal de tokens y aún puede ejecutarse en OOM cuando se cargan varios modelos, las estimaciones de VRAM son ajustadas, la longitud del contexto aumenta o la caché KV se expande. El comportamiento principal de las preguntas frecuentes todavía se aplica: si una GPU puede contener completamente el modelo, una GPU suele ser más eficiente; Si una GPU no puede contenerlo, entonces resulta útil la división entre varias GPU.
Trate &lt;code&gt;OLLAMA_SCHED_SPREAD&lt;/code&gt; como un experimento de programación avanzada, no como una configuración multi-GPU requerida. Primero, comprenda el comportamiento predeterminado y luego ajústelo según &lt;code&gt;ollama ps&lt;/code&gt;, registros y &lt;code&gt;nvidia-smi&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cómo-comprobar-si-se-están-utilizando-varias-gpu&#34;&gt;Cómo comprobar si se están utilizando varias GPU
&lt;/h2&gt;&lt;p&gt;Comandos útiles:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;watch -n 0.5 nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ver los registros del servicio de Ollama:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;journalctl -u ollama -f
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si usa Docker:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker logs -f ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esté atento a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si Ollama descubre GPU compatibles.&lt;/li&gt;
&lt;li&gt;Si el modelo muestra &amp;ldquo;100% GPU&amp;rdquo; o una división CPU/GPU.&lt;/li&gt;
&lt;li&gt;Si cada GPU tiene VRAM asignada.&lt;/li&gt;
&lt;li&gt;Si la VRAM crece en varias GPU durante la carga del modelo.&lt;/li&gt;
&lt;li&gt;Si los tokens de generación mejoran en comparación con el desbordamiento de CPU/RAM.&lt;/li&gt;
&lt;li&gt;Si la descarga de OOM o de modelos ocurre con frecuencia.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La utilización de la GPU por sí sola puede resultar engañosa. La inferencia LLM no siempre mantiene las GPU completamente cargadas, especialmente con varias GPU, tamaños de lote bajos, contextos pequeños, CPU lentas o enlaces PCIe lentos.&lt;/p&gt;
&lt;h2 id=&#34;malentendidos-comunes&#34;&gt;Malentendidos comunes
&lt;/h2&gt;&lt;h3 id=&#34;malentendido-1-dos-gpu-de-12-gb-equivalen-a-una-gpu-de-24-gb&#34;&gt;Malentendido 1: Dos GPU de 12 GB equivalen a una GPU de 24 GB
&lt;/h3&gt;&lt;p&gt;No exactamente. Varias GPU pueden colocar un modelo en varios dispositivos, pero el acceso entre dispositivos tiene una sobrecarga. Resuelve el problema de &amp;ldquo;no encaja&amp;rdquo;, pero no es equivalente a la velocidad y estabilidad de una GPU de gran VRAM.&lt;/p&gt;
&lt;h3 id=&#34;malentendido-2-no-se-pueden-mezclar-diferentes-modelos-de-gpu&#34;&gt;Malentendido 2: No se pueden mezclar diferentes modelos de GPU
&lt;/h3&gt;&lt;p&gt;No necesariamente. Si el controlador, la capacidad informática y las bibliotecas de tiempo de ejecución son compatibles con las tarjetas, Ollama puede ver varias GPU. Pero las configuraciones mixtas suelen estar limitadas por una tarjeta más lenta, una VRAM más pequeña y una topología PCIe. La configuración más predecible sigue siendo el mismo modelo, el mismo tamaño de VRAM y controladores de la misma generación con buen soporte.&lt;/p&gt;
&lt;h3 id=&#34;malentendido-3-la-gpu-múltiple-siempre-es-más-rápida-que-la-gpu-única&#34;&gt;Malentendido 3: La GPU múltiple siempre es más rápida que la GPU única
&lt;/h3&gt;&lt;p&gt;No siempre. Si el modelo se adapta completamente a una GPU rápida, una GPU única puede ser más rápida. La GPU múltiple es útil principalmente para modelos grandes, contextos prolongados o VRAM de GPU única insuficiente.&lt;/p&gt;
&lt;h3 id=&#34;malentendido-4-se-requiere-nvlink--sli&#34;&gt;Malentendido 4: Se requiere NVLink / SLI
&lt;/h3&gt;&lt;p&gt;No. Ollama puede utilizar sistemas PCIe múltiples-GPU ordinarios. NVLink no es un requisito previo.&lt;/p&gt;
&lt;h3 id=&#34;malentendido-5-agregar-una-gpu-no-requiere-reiniciar-los-servicios&#34;&gt;Malentendido 5: Agregar una GPU no requiere reiniciar los servicios
&lt;/h3&gt;&lt;p&gt;No siempre es cierto. Es posible que sea necesario reiniciar los servicios systemd de Linux, las aplicaciones en segundo plano de Windows y los contenedores Docker antes de que redescubran dispositivos y variables de entorno.&lt;/p&gt;
&lt;h2 id=&#34;sugerencias-de-selección-de-gpu&#34;&gt;Sugerencias de selección de GPU
&lt;/h2&gt;&lt;p&gt;Para la inferencia local de Ollama, la prioridad aproximada es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La VRAM de una sola GPU más grande suele ser más fácil de administrar.&lt;/li&gt;
&lt;li&gt;Las GPU idénticas son más fáciles de solucionar que las GPU mixtas.&lt;/li&gt;
&lt;li&gt;Los carriles PCIe más completos facilitan la carga de modelos grandes.&lt;/li&gt;
&lt;li&gt;Primero se debe verificar la capacidad de computación CUDA o la compatibilidad con ROCm en las tarjetas más antiguas.&lt;/li&gt;
&lt;li&gt;La alimentación, la refrigeración y el flujo de aire del chasis de varias GPU deben planificarse con antelación.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Para plataformas económicas de segunda mano:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dual RTX 3090 sigue siendo una opción común de alta VRAM.&lt;/li&gt;
&lt;li&gt;Las tarjetas Tesla más antiguas, como la P40/M40, tienen una gran VRAM, pero la potencia, la refrigeración, la compatibilidad con el controlador y el rendimiento necesitan compensaciones.&lt;/li&gt;
&lt;li&gt;Las tarjetas como RTX 4070/4070 Ti tienen buena eficiencia, pero la VRAM de una sola tarjeta puede ser limitante.&lt;/li&gt;
&lt;li&gt;Puede ser divertido experimentar con varias tarjetas antiguas de 8 GB, pero no son ideales para ejecutar modelos grandes a largo plazo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La compatibilidad con múltiples GPU de Ollama se entiende mejor como &amp;ldquo;primero la expansión de VRAM y luego la aceleración del rendimiento&amp;rdquo;. Si el modelo cabe completamente en una GPU, la ruta predeterminada de una sola GPU suele ser más rápida. Si una GPU no puede contenerlo, varias GPU pueden distribuir el modelo entre dispositivos y evitar un gran desbordamiento de CPU/RAM, lo que hace que se puedan utilizar modelos más grandes.&lt;/p&gt;
&lt;p&gt;En la práctica, use &lt;code&gt;ollama ps&lt;/code&gt; para verificar dónde está cargado el modelo, luego use las herramientas &lt;code&gt;nvidia-smi&lt;/code&gt; o ROCm para observar la asignación de VRAM. Para la selección de GPU, use &lt;code&gt;CUDA_VISIBLE_DEVICES&lt;/code&gt; en NVIDIA, &lt;code&gt;ROCR_VISIBLE_DEVICES&lt;/code&gt; en AMD ROCm y &lt;code&gt;GGML_VK_VISIBLE_DEVICES&lt;/code&gt; para Vulkan. Si se ejecuta en Docker, primero asegúrese de que el contenedor pueda ver las GPU.&lt;/p&gt;
&lt;p&gt;La multi-GPU no es mágica. Puede ayudar a adaptar modelos más grandes, pero no garantiza una aceleración lineal. La ruta estable sigue siendo preferir GPU únicas con gran VRAM o configuraciones idénticas de múltiples GPU, considerando al mismo tiempo la compatibilidad con controladores, PCIe, alimentación, refrigeración y cuantificación de modelos.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Preguntas frecuentes de Ollama: ¿Cómo carga Ollama modelos en múltiples GPU?: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ollama/ollama/blob/main/docs/faq.mdx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ollama/ollama/blob/main/docs/faq.mdx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Documentos de Ollama GPU: soporte de hardware/selección de GPU: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ollama/ollama/blob/main/docs/gpu.mdx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/ollama/ollama/blob/main/docs/gpu.mdx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Centro Docker de Ollama: &lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/r/ollama/ollama&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://hub.docker.com/r/ollama/ollama&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kit de herramientas de contenedor NVIDIA: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NVIDIA/nvidia-container-toolkit&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/NVIDIA/nvidia-container-toolkit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo comprobar si un modelo de Ollama ya se cargó en la GPU</title>
        <link>https://knightli.com/es/2026/04/06/check-ollama-model-loaded-on-gpu/</link>
        <pubDate>Mon, 06 Apr 2026 10:15:18 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/check-ollama-model-loaded-on-gpu/</guid>
        <description>&lt;p&gt;Si quieres confirmar si un modelo de Ollama se está ejecutando realmente en la GPU, el método más directo es revisar la información de uso de procesador de los modelos cargados actualmente.&lt;/p&gt;
&lt;h2 id=&#34;comando&#34;&gt;Comando
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ollama ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;salida-de-ejemplo&#34;&gt;Salida de ejemplo
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;NAME        ID            SIZE    PROCESSOR   UNTIL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;llama3:70b  bcfb190ca3a7  42 GB   100% GPU    4 minutes from now
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;cómo-interpretar-la-columna-processor&#34;&gt;Cómo interpretar la columna &lt;code&gt;PROCESSOR&lt;/code&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;100% GPU&lt;/code&gt;: el modelo está cargado por completo en la memoria de la GPU.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100% CPU&lt;/code&gt;: el modelo está cargado por completo en la memoria del sistema (no usa GPU para inferencia).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;48%/52% CPU/GPU&lt;/code&gt;: una parte del modelo está en memoria del sistema y otra en memoria de GPU; es una carga mixta.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;consejos-prácticos&#34;&gt;Consejos prácticos
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Si esperas usar GPU pero ves &lt;code&gt;100% CPU&lt;/code&gt;, revisa primero el driver de la tarjeta gráfica, el entorno CUDA/ROCm y los parámetros de ejecución de Ollama.&lt;/li&gt;
&lt;li&gt;Cuando el modelo es grande y la memoria de GPU no alcanza, suele aparecer una carga mixta CPU/GPU.&lt;/li&gt;
&lt;li&gt;Al diagnosticar problemas de rendimiento, ejecuta primero &lt;code&gt;ollama ps&lt;/code&gt; y luego mira los datos de velocidad; así podrás ubicar antes el cuello de botella.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ollama ps&lt;/code&gt; es el primer paso para saber si un modelo está usando realmente la GPU. Basta con fijarse en la columna &lt;code&gt;PROCESSOR&lt;/code&gt; para confirmar rápidamente dónde está cargado el modelo y decidir la siguiente dirección de optimización.&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        
    </channel>
</rss>
