
Benchmarks de LLMs en Android: Snapdragon, Tensor y Exynos comparados
Datos reales de benchmarks para ejecutar LLMs en Android via llama.cpp. Velocidades de tokens en Snapdragon 8 Gen 2/3, Tensor G3/G4, Exynos 2400 y chipsets de gama media con guia practica de despliegue.
La diversidad de chipsets de Android es tanto un desafio como una oportunidad para la IA en el dispositivo. A diferencia de iOS donde apuntas a un punado de chips serie A, Android abarca Qualcomm Snapdragon, Google Tensor, Samsung Exynos y MediaTek Dimensity en cientos de modelos de dispositivos.
La buena noticia: los dispositivos Android flagship y de gama media recientes ejecutan modelos de 1-3B parametros a velocidades utilizables. La fragmentacion es manejable si apuntas a los niveles correctos.
El panorama de chipsets
Flagship (2023-2026)
| Chipset | Dispositivos ejemplo | RAM | GPU |
|---|---|---|---|
| Snapdragon 8 Gen 3 | Galaxy S24, OnePlus 12 | 8-12GB | Adreno 750 |
| Snapdragon 8 Elite | Galaxy S25, OnePlus 13 | 12-16GB | Adreno 830 |
| Tensor G3 | Pixel 8, 8 Pro | 12GB | Mali-G715 |
| Tensor G4 | Pixel 9, 9 Pro | 12-16GB | Mali-G715 |
| Exynos 2400 | Galaxy S24 (intl) | 8-12GB | Xclipse 940 |
| Dimensity 9300 | Varios flagships | 8-16GB | Immortalis-G720 |
Gama media (2024-2026)
| Chipset | Dispositivos ejemplo | RAM | GPU |
|---|---|---|---|
| Snapdragon 7+ Gen 3 | Gama media 2024+ | 8-12GB | Adreno 732 |
| Snapdragon 7 Gen 3 | Gama media 2024+ | 6-8GB | Adreno 720 |
| Dimensity 8300 | Gama media 2024+ | 8-12GB | Mali-G615 |
| Tensor G2 | Serie Pixel 7 | 8GB | Mali-G710 |
Presupuesto (2024-2026)
| Chipset | Dispositivos ejemplo | RAM | GPU |
|---|---|---|---|
| Snapdragon 6 Gen 3 | Presupuesto 2024+ | 4-6GB | Adreno 710 |
| Dimensity 7300 | Presupuesto 2024+ | 6-8GB | Mali-G615 |
| Helio G99 | Dispositivos economicos | 4-6GB | Mali-G57 |
Resultados de benchmarks
Todos los benchmarks usan llama.cpp con inferencia CPU (multi-hilo) y aceleracion GPU Vulkan donde esta disponible. Cuantizacion GGUF Q4_K_M, 2048 de longitud de contexto.
Modelos de 1B parametros (~600MB GGUF Q4)
| Chipset | CPU (tok/s) | GPU/Vulkan (tok/s) | Memoria |
|---|---|---|---|
| SD 8 Elite | 35-45 | 45-55 | ~800MB |
| SD 8 Gen 3 | 30-40 | 40-50 | ~800MB |
| SD 8 Gen 2 | 25-35 | 35-45 | ~800MB |
| Tensor G4 | 28-35 | 35-42 | ~800MB |
| Tensor G3 | 25-32 | 30-38 | ~800MB |
| Exynos 2400 | 25-35 | 32-42 | ~800MB |
| SD 7+ Gen 3 | 22-28 | 28-35 | ~800MB |
| SD 7 Gen 3 | 18-25 | 22-30 | ~800MB |
| Dimensity 8300 | 20-28 | 25-33 | ~800MB |
| SD 6 Gen 3 | 12-18 | 15-22 | ~800MB |
Cada chipset flagship y de gama media de los ultimos 2-3 anos ejecuta modelos 1B a 20+ tokens por segundo. Incluso el chip economico Snapdragon 6 Gen 3 entrega rendimiento utilizable.
Modelos de 3B parametros (~1.7GB GGUF Q4)
| Chipset | CPU (tok/s) | GPU/Vulkan (tok/s) | Memoria |
|---|---|---|---|
| SD 8 Elite | 18-25 | 22-30 | ~2.2GB |
| SD 8 Gen 3 | 15-22 | 20-28 | ~2.2GB |
| SD 8 Gen 2 | 12-18 | 16-22 | ~2.2GB |
| Tensor G4 | 14-20 | 18-24 | ~2.2GB |
| Tensor G3 | 12-16 | 15-20 | ~2.2GB |
| Exynos 2400 | 12-18 | 16-22 | ~2.2GB |
| SD 7+ Gen 3 | 10-14 | 13-18 | ~2.2GB |
| SD 7 Gen 3 | 7-11 | 9-14 | ~2.2GB |
| SD 6 Gen 3 | 4-7 | 5-9 | ~2.2GB |
Los modelos 3B funcionan bien en flagships (15+ tok/s con GPU). Los dispositivos de gama media alta (SD 7+ Gen 3, Dimensity 8300) son utilizables. Los de gama media baja y economicos luchan por alcanzar el umbral de 10 tok/s para chat comodo.
Aceleracion GPU Vulkan
La aceleracion GPU Vulkan es la clave para inferencia rapida en el dispositivo en Android. La mejora sobre inferencia solo CPU varia del 20-40% en la mayoria de dispositivos:
- Snapdragon 8 Gen 3: +30-35% con Vulkan
- Tensor G4: +25-30%
- Exynos 2400: +20-30%
- Snapdragon 7 gama media: +20-25%
llama.cpp habilita la aceleracion Vulkan con el parametro n_gpu_layers. Configurarlo al conteo completo de capas del modelo descarga toda la computacion a la GPU.
La estrategia de fragmentacion
La fragmentacion de Android es manejable con un enfoque por niveles:
Nivel 1: Modelo 1B (4GB+ RAM)
Cubre mas del 85% de dispositivos Android activos. Incluye todos los smartphones de los ultimos 3-4 anos, la mayoria de dispositivos economicos de los ultimos 2 anos.
- Tamano del modelo: ~600MB (Q4_K_M)
- Requisito de RAM: 800MB durante inferencia
- Velocidad: 12-55 tok/s dependiendo del chipset
- Adecuado para: clasificacion, autocompletado, sugerencias inteligentes, respuestas cortas
Nivel 2: Modelo 3B (8GB+ RAM)
Cubre dispositivos flagship y gama media alta de los ultimos 2-3 anos. Aproximadamente 40-50% de dispositivos Android activos en mercados desarrollados, creciendo cada ano.
- Tamano del modelo: ~1.7GB (Q4_K_M)
- Requisito de RAM: 2.2GB durante inferencia
- Velocidad: 10-30 tok/s en dispositivos soportados
- Adecuado para: chat, resumen, generacion de contenido, tareas complejas
Deteccion en tiempo de ejecucion
Detecta la RAM disponible y el chipset en tiempo de ejecucion para seleccionar el modelo apropiado:
fun selectModelTier(): ModelTier {
val memInfo = ActivityManager.MemoryInfo()
val activityManager = getSystemService(ACTIVITY_SERVICE) as ActivityManager
activityManager.getMemoryInfo(memInfo)
val totalRamGb = memInfo.totalMem / (1024 * 1024 * 1024)
return when {
totalRamGb >= 8 -> ModelTier.THREE_B
totalRamGb >= 4 -> ModelTier.ONE_B
else -> ModelTier.NONE // Dispositivo demasiado limitado
}
}
Impacto termico y de bateria
Throttling termico
Los dispositivos Android son mas propensos al throttling termico que los iPhones durante inferencia sostenida. El comportamiento de throttling varia por fabricante:
- Samsung: Throttling agresivo, reduccion de velocidad del 20-40% despues de 3-5 minutos de carga sostenida
- Pixel: Throttling moderado, reduccion del 15-25% despues de 5-7 minutos
- OnePlus/telefonos gaming: Mas permisivos, reduccion del 10-20%
Consumo de bateria
Ejecutar inferencia consume aproximadamente:
- Modelo 1B: 2-3W durante generacion
- Modelo 3B: 3-5W durante generacion
Para contexto, la capacidad tipica de bateria de un telefono es 4,000-5,500 mAh. Un modelo 3B generando continuamente drena aproximadamente 1% de bateria por minuto. Para uso tipico (unas pocas interacciones cortas por hora), el impacto en bateria es despreciable.
Optimizacion
- Usa conteo de hilos CPU que coincida con los nucleos de rendimiento del dispositivo (tipicamente 4)
- Descarga el modelo cuando no este en uso para eliminar consumo de energia inactivo
- Para tareas en segundo plano (clasificacion, etiquetado), el procesamiento por lotes es mas eficiente energeticamente que llamadas individuales
Que significa esto para desarrolladores
-
Los modelos 1B son universalmente viables. Apunta a 1B para amplio alcance. Fine-tunea para tu dominio para maximizar la calidad en este tamano.
-
Los modelos 3B estan listos para flagships. Si tu base de usuarios se inclina hacia dispositivos mas nuevos (comun en apps de pago), 3B entrega calidad de generacion significativamente mejor.
-
Vulkan importa. Siempre habilita la aceleracion GPU. La mejora de velocidad del 20-40% es rendimiento gratuito.
-
Detecta y adapta. Usa deteccion de RAM en tiempo de ejecucion para ofrecer el nivel de modelo correcto. No fuerces un modelo 3B en un dispositivo de 4GB.
-
Fine-tunea, no solo reduzcas. Un modelo 1B fine-tuned con tus datos de dominio supera a un 3B de proposito general en tus tareas especificas. Plataformas como Ertas lo hacen accesible: sube datos, entrena con LoRA, exporta GGUF, despliega.
El ecosistema Android tiene el hardware. El motor de inferencia (llama.cpp) maneja la diversidad de chipsets. La pieza faltante es el modelo correcto para tu caso de uso.
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.
Keep reading

AI in Android Apps: ML Kit, Cloud APIs, and On-Device LLMs Compared
Three paths to AI in your Android app. Google ML Kit for common tasks, cloud APIs for full LLM capability, and on-device models via llama.cpp for cost and privacy. A practical comparison for Kotlin developers.

Can LLMs Actually Run on iPhones? Benchmarks and Real-World Performance
Real benchmark data for running LLMs on iPhones via llama.cpp. Token generation speeds, memory usage, and thermal behavior across iPhone models from the iPhone 12 to iPhone 16 Pro.

llama.cpp on Android: A Kotlin Integration Guide
Step-by-step guide to integrating llama.cpp into an Android app with Kotlin. JNI bindings, Vulkan GPU acceleration, model loading, and memory management across the Android device spectrum.