Apéndice B. CUDA

A lo largo del libro, hemos utilizado principalmente PyTorch o herramientas construidas sobre él, como fastai y los transformadores Hugging Face. Cuando lo introdujimos por primera vez en este libro, presentamos PyTorch como un marco de trabajo de bajo nivel, en el que puedes construir arquitecturas y escribir bucles de entrenamiento "desde cero" utilizando tus conocimientos de álgebra lineal.

Pero PyTorch puede no ser el nivel más bajo de abstracción con el que trates en el aprendizaje automático.

El propio PyTorch está escrito en C++, del que el lenguaje CUDA es una extensión. CUDA se autodefine como un "modelo de programación" que te permite escribir código para las GPU de Nvidia. Cuando escribes tu código C++, incluyes ciertas funciones llamadas "núcleos CUDA" que realizan una parte del trabajo en la GPU .

¿Quién es ese Pokémon? Núcleos CUDA

Un kernel es una función compilada y diseñada para ejecutarse en hardware acelerador especial, como GPUs (unidades de procesamiento gráfico), FPGAs (matrices de puertas programables en campo) y ASICs (circuitos integrados de aplicación específica). Suelen estar escritos por ingenieros muy familiarizados con la arquitectura del hardware, y están ampliamente ajustados para realizar muy bien una única tarea, como la multiplicación de matrices o la convolución. Los kernels CUDA son kernels que se ejecutan en dispositivos que utilizan GPU y aceleradores CUDA-Nvidia.

PyTorch y muchos otros marcos de aprendizaje profundo utilizan ...

Get Procesamiento del Lenguaje Natural Aplicado en la Empresa now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.