Habr AI muestra cómo construir una Linear Layer en C++ y CUDA en su serie «De MNIST a Transformer»
Habr AI ha publicado la tercera parte de su serie «De MNIST a Transformer». Esta entrega trata de tensores, multiplicación de tensores y una Linear Layer propia, sin PyTorch. El artículo incluye mucho C++ y CUDA: el autor construye paso a paso una capa totalmente conectada, explica el manejo de memoria en la GPU y termina con una red sencilla para reconocer MNIST. El foco no está en las API de las bibliotecas, sino en cómo se ejecutan realmente estas operaciones en la GPU.
Procesado por IA desde Habr AI; editado por Hamidun News
Habr AI ha publicado la tercera parte de su serie «De MNIST a Transformer». Analiza el paso de las matrices comunes a los tensores y muestra cómo construir a mano una Linear Layer básica, sin PyTorch. El material lleva al lector hasta una red neuronal sencilla para reconocer MNIST y se centra no en las API de las bibliotecas, sino en cómo se ejecutan realmente estas operaciones en la GPU.
De qué trata la tercera parte
El nuevo artículo continúa el recorrido desde el código CUDA de bajo nivel hasta las arquitecturas sobre las que después se construyen Transformer y los LLM actuales. En lugar de abstracciones ya hechas, el autor propone mirar directamente el cálculo: cómo se almacenan los datos en memoria, cómo lanza la GPU las operaciones y por qué incluso una capa de red neuronal aparentemente elemental exige mucho trabajo de ingeniería. Es un buen formato para quienes están cansados de ver los frameworks de ML como magia de una sola línea.
El cambio principal de esta parte es el paso de las matrices a los tensores. Para el aprendizaje automático aplicado es un tema básico, porque los datos reales rara vez se limitan a dos dimensiones. El autor muestra cómo cambia la forma de pensar del desarrollador cuando trabaja no solo con tablas de números, sino con estructuras multidimensionales, de las que luego se componen los lotes, los pesos de las capas, las representaciones intermedias y otros bloques del futuro modelo. En este nivel empieza la preparación para entender bloques más complejos, como la atención (attention) y los embeddings.
Qué se implementa a mano
La parte práctica gira en torno a código propio en C++ y CUDA. No hay intento de esconder la complejidad tras una interfaz cómoda; al contrario, se propone al lector recorrer el camino desde la fórmula matemática hasta la implementación manual. Este enfoque resulta útil porque conecta el álgebra lineal abstracta con pasos concretos de desarrollo: la ubicación de los datos, las llamadas a kernels, la comprobación de las formas de las dimensiones y la comprensión de dónde aparecen exactamente los errores o las pérdidas de rendimiento. Sin este eslabón, cuesta sentir la diferencia entre un ejemplo didáctico y un sistema real.
- Implementación de la multiplicación de tensores
- Creación de la primera Linear Layer, es decir, una capa totalmente conectada
- Trabajo con la memoria y la colocación de datos en la GPU
- Unión de matemáticas y código para entrenar con MNIST
- Montaje de una red sencilla para reconocer dígitos manuscritos
«Solo así se puede entender de verdad cómo funcionan los LLM».
Tras implementar las operaciones básicas, el artículo conduce a una capa totalmente conectada propia y después a una pequeña red para reconocer dígitos manuscritos de MNIST. Es un punto importante: el material no se queda en primitivas aisladas, sino que muestra cómo ensamblarlas en una cadena funcional. También queda claro que incluso un clasificador simple se apoya en una pila de conocimientos bastante profunda, desde las matemáticas hasta la estructura de la memoria de vídeo y las particularidades del cálculo paralelo.
Por qué importa
El valor de estos análisis está en que disipan la ilusión de facilidad que suele crear la envoltura de Python. Cuando el desarrollador solo ve llamadas ya hechas a bibliotecas, le cuesta evaluar el coste de cada operación y entender por qué el modelo se topa de pronto con límites de memoria, de ancho de banda o de tamaño de lote. Analizar a nivel de tensores y capas ayuda a leer mejor los profilers, a diseñar la arquitectura con más cuidado y a elegir con más criterio entre velocidad, precisión y complejidad de implementación.
La serie «De MNIST a Transformer» es especialmente útil para quien quiere no solo ejecutar modelos ajenos, sino entender la mecánica de los sistemas de IA actuales. No promete una entrada rápida y advierte sin rodeos: habrá mucho código, CUDA, matemáticas y trabajo manual con la memoria. Pero este formato da una base que servirá tanto para optimizar la inferencia como para leer implementaciones CUDA ajenas y para entender por qué unas decisiones de arquitectura funcionan más rápido que otras.
Qué significa
Para el público de habla rusa es una buena señal: la demanda se desplaza de los tutoriales superficiales hacia el análisis de ingeniería de las entrañas de la pila de IA. Cuantos más materiales así aparecen, menos se perciben los LLM como una caja negra y más fácil resulta para los desarrolladores pasar de usar modelos ya hechos a ajustarlos y optimizarlos con criterio. Esto es especialmente importante ahora, cuando crece rápidamente entre los ingenieros en activo la demanda de optimización para GPU y de comprensión del funcionamiento interno de los modelos.
- 2 nov 2026TensorFold 1.2.0 aumenta un 44,2% el rendimiento de Qwen3.8-27B en el M3 Ultra con 16 flujos
- 1 nov 2026Los modelos locales pierden ante Opus y Codex: 0,21 puntos en un MacBook frente a 1,00 de Codex
- 1 nov 2026Un autor de Habr ajusta YOLOv8l con radiografías dentales y lleva el mAP50 a 0,642
- 1 nov 2026Los bots de voz con LLM recurren al clasificador rápido Jev: decisiones en 200–500 ms
Preguntas frecuentes sobre la noticia
¿Qué se sabe sobre De qué trata la tercera parte?
El nuevo artículo continúa el recorrido desde el código CUDA de bajo nivel hasta las arquitecturas sobre las que después se construyen Transformer y los LLM actuales. En lugar de abstracciones ya hechas, el autor propone mirar directamente el cálculo: cómo se almacenan los datos en memoria, cómo lanza la GPU las operaciones y por qué incluso una capa de red neuronal aparentemente elemental exige mucho trabajo de ingeniería. Es un buen formato para quienes están cansados de ver los frameworks de ML como magia de una sola línea. El cambio principal de esta parte es el paso de
¿Qué se sabe sobre Qué se implementa a mano?
La parte práctica gira en torno a código propio en C++ y CUDA. No hay intento de esconder la complejidad tras una interfaz cómoda; al contrario, se propone al lector recorrer el camino desde la fórmula matemática hasta la implementación manual. Este enfoque resulta útil porque conecta el álgebra lineal abstracta con pasos concretos de desarrollo: la ubicación de los datos, las llamadas a kernels, la comprobación de las formas de las dimensiones y la comprensión de dónde aparecen exactamente los errores o las pérdidas de rendimiento. Sin este eslabón, cuesta sentir la difere
¿Qué se sabe sobre Por qué importa?
El valor de estos análisis está en que disipan la ilusión de facilidad que suele crear la envoltura de Python. Cuando el desarrollador solo ve llamadas ya hechas a bibliotecas, le cuesta evaluar el coste de cada operación y entender por qué el modelo se topa de pronto con límites de memoria, de ancho de banda o de tamaño de lote. Analizar a nivel de tensores y capas ayuda a leer mejor los profilers, a diseñar la arquitectura con más cuidado y a elegir con más criterio entre velocidad, precisión y complejidad de implementación. La serie «De MNIST a Transformer» es especialme
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
Lo esencial de la IA — una vez por semana
Siete historias que de verdad importaron, elegidas a mano. Sin ruido ni notas de prensa.
¡Listo! Revisa tu correo para la confirmación.