<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Performance Troubleshooting on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/performance-troubleshooting/</link>
        <description>Recent content in Performance Troubleshooting on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Fri, 24 Apr 2026 18:30:00 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/performance-troubleshooting/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>C贸mo solucionar que Ollama use CPU en lugar de GPU</title>
        <link>https://www.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://www.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>
        
    </channel>
</rss>
