¿Cuál es la diferencia entre los núcleos CUDA y los núcleos tensoriales? (Explicación) - All The Differences

 ¿Cuál es la diferencia entre los núcleos CUDA y los núcleos tensoriales? (Explicación) - All The Differences

Mary Davis

Los núcleos CUDA y Tensor son productos desarrollados por una empresa llamada Nvidia. Entonces, ¿qué son los núcleos CUDA y los núcleos Tensor? CUDA son las siglas de Compute Unified Device Architecture. Los núcleos CUDA están presentes en tus GPU, smartphones e incluso en tus coches, como dicen los desarrolladores de Nvidia.

Los núcleos CUDA son una plataforma de cálculo paralelo y una interfaz de programación de aplicaciones (API) que permite al software hacer uso de tipos específicos de unidades de procesamiento gráfico (GPU) para el procesamiento de propósito general.

Por su parte, los núcleos tensoriales, también desarrollados por Nvidia, se utilizan en las GPU. Los núcleos tensoriales permiten la computación de precisión mixta, adaptando los cálculos dinámicamente para aumentar el rendimiento sin perder precisión.

En palabras sencillas, estos núcleos son una parte importante de las GPU de tu PC para realizar determinados cálculos. Los núcleos CUDA se utilizan para multiplicar dos números y sumarlos a otro número.

Mientras que Tensor core es lo mismo pero con matrices de 4×4. Estos cálculos son básicamente renderizar gráficos más rápido para ti.

¿Qué es CUDA?

Compute Unified Device Architecture, abreviado CUDA, desarrollado por Nvidia y publicado el 23 de junio de 2007, es una plataforma de cálculo paralelo y una interfaz de programación de aplicaciones (API).

Esto permite al software utilizar tipos específicos de unidades de procesamiento gráfico (GPU) para el procesamiento de propósito general, un método conocido como computación de propósito general en GPU (GPU).

Ver también: ¿Cuál es la diferencia entre MashaAllah e InshaAllah? - Todas las diferencias

CUDA es una capa de software que proporciona acceso directo al conjunto de instrucciones virtuales de la GPU y a los elementos de cálculo paralelo para la ejecución de los kernels de cálculo. CUDA se desarrolló para funcionar con diferentes lenguajes de programación, incluidos C, C++ y Fortran.

La posibilidad de trabajar con distintos lenguajes de programación facilita a los especialistas en programación paralela el aprovechamiento de los recursos de la GPU, si la diferenciamos de APIs anteriores como Direct3D u OpenGL, que requerirían una base de conocimientos más avanzada en programación gráfica.

Las GPU con CUDA también admiten marcos de programación, como OpenMP, OpenACC, OpenCL y también HIP, que puede compilar dicho código en CUDA. El primer nombre utilizado para CUDA fue un acrónimo de Compute Unified Device Architecture (Arquitectura de Dispositivos de Computación Unificada). Sin embargo, Nvidia abandonó posteriormente el acrónimo comúnmente utilizado.

Una potente tarjeta gráfica Nvidia GTX 1080 Ti

Más información sobre CUDA

Como procesador informático especializado, la unidad de procesamiento gráfico (GPU) satisface las necesidades de las cargas de trabajo de gráficos 3D en tiempo real y con alta carga computacional.

Hacia 2012, las GPU evolucionaron y se convirtieron en sistemas multinúcleo altamente paralelos que permitían un procesamiento eficaz de datos para grandes bloques.

Al procesar enormes bloques de datos en paralelo, este diseño es superior al de las unidades centrales de procesamiento (CPU) de propósito general para algoritmos como:

  • funciones hash criptográficas
  • aprendizaje automático
  • simulaciones de dinámica molecular
  • motores físicos
  • algoritmos de ordenación

Usos de la arquitectura CUDA ahora y en el futuro

  • Renderizado acelerado de gráficos 3D
  • Interconversión acelerada de formatos de archivo de vídeo
  • Cifrado, descifrado y compresión acelerados
  • Bioinformática, por ejemplo, secuenciación NGS del ADN BarraCUDA
  • Cálculos distribuidos, como la predicción de la conformación nativa de las proteínas.
  • Simulaciones de análisis médicos, por ejemplo, realidad virtual basada en imágenes de tomografía computarizada y resonancia magnética.
  • Simulaciones físicas, en particular en dinámica de fluidos
  • Entrenamiento de redes neuronales en problemas de aprendizaje automático
  • Reconocimiento facial
  • Proyectos de computación distribuida, como [email protected] y otros proyectos que utilizan BOINC
  • Dinámica molecular
  • Minería de criptomonedas
  • Software de estructura a partir del movimiento (SfM)

¿Qué es un núcleo tensorial?

Los núcleos especializados denominados Tensor Cores permiten la formación de precisión mixta. La generación inicial de estos núcleos especializados lo hace con un algoritmo de multiplicación- suma fusionado. Esto hace posible multiplicar y sumar dos matrices de 4 x 4 FP16 a una matriz de 4 x 4 FP16 o FP32.

El resultado final será FP32 con sólo una ligera pérdida de precisión, la computación de precisión mixta se designa como tal aunque las matrices de entrada puedan ser FP16 de baja precisión.

En la práctica, esto acelera considerablemente los cálculos sin apenas influir en la eficacia final del modelo. Esta capacidad ha sido ampliada por microarquitecturas posteriores a representaciones numéricas de ordenador aún menos precisas.

La primera generación se introdujo con la microarquitectura Volta a partir de la V100, y con cada generación se ofrecían más formatos de precisión numérica para el cálculo con las nuevas microarquitecturas de GPU.

Hablaremos de cómo la capacidad y funcionalidad de los Tensor Cores han cambiado y mejorado con cada generación de microarquitectura en la sección siguiente.

Una imagen renderizada gráficamente por una Titan V

¿Cómo funcionan los núcleos sensores?

Primera generación:

La microarquitectura de la GPU Volta se incluyó con la primera generación de Tensor Cores, que permitían entrenar con precisión mixta y el formato numérico FP16.

Los 640 núcleos de la V100 de gama alta multiplican por 5 la velocidad de rendimiento de las GPU Pascal de la generación anterior.

Segunda generación:

Con la introducción de las GPUs Turing, se introdujo la segunda generación de Tensor Cores. Int8, Int4 e Int1 se añadieron a la lista de precisiones soportadas por los Tensor Core, que anteriormente estaban limitadas a FP16.

Gracias a los procedimientos de entrenamiento de precisión mixta, el rendimiento de la GPU aumentó hasta 32 veces en comparación con las GPU Pascal.

Tercera generación:

La arquitectura de una GPU Ampere amplía los avances anteriores de las microarquitecturas Volta y Turing al añadir soporte para las precisiones FP64, TF32 y bfloat16.

Por ejemplo, el formato TF32 funciona de forma similar a FP32 y garantiza una aceleración de hasta 20 veces sin necesidad de modificar el código.

Entonces, con sólo unas pocas líneas de código, la implementación automática de precisión mixta acelerará el entrenamiento en 2x adicionales.

Ver también: Cuál es la diferencia entre potencia de ataque y fuerza de ataque (en personajes de ficción) - Todas las diferencias

NVLink de tercera generación para permitir interacciones multi-GPU ultrarrápidas, núcleos Ray Tracing de tercera generación y especialización en matemáticas de matrices dispersas son otros aspectos de la microarquitectura Ampere. .

Cuarta generación:

Está prevista una futura versión de la cuarta generación de Tensor Cores basada en la microarquitectura Hopper. La cuarta generación de Tensor Cores en el próximo H100.

cuyo lanzamiento está previsto para marzo de 2022, podrá manejar formatos de precisión FP8 y, según NVIDIA, acelerará los modelos de lenguaje enorme "en una asombrosa proporción 30X superior a la generación anterior."

Una tarjeta gráfica RTX se utiliza para renderizar gráficos muy rápido, ya que contiene núcleos tensoriales.

Diferencia entre núcleos CUDA y núcleos tensoriales

Los núcleos de tensor están limitados actualmente a Titan V y Tesla V100. Los 5120 núcleos CUDA de ambas GPU tienen una capacidad máxima de una operación de multiplicación-acumulación de precisión simple (por ejemplo, en fp32: x += y * z) por reloj de GPU (por ejemplo, la frecuencia PCIe de Tesla V100 es de 1,38Gz).

Cada núcleo tensor opera con matrices pequeñas de 4×4. Por cada reloj de la GPU, cada núcleo tensor puede completar una operación de multiplicación-acumulación de matrices.

Multiplica dos matrices 4×4 FP16 y suma la matriz 4×4 FP32 que resulta en el acumulador (que también es una matriz fp32 4×4).

Dado que las matrices de entrada son fp16 mientras que los resultados de la multiplicación y el acumulador son fp32, el algoritmo se conoce como de precisión mixta.

El término correcto sería probablemente "núcleos de matriz 4×4", pero el equipo de marketing de NVIDIA ha optado por utilizar "núcleos de tensor".

Explicación completa de los núcleos tensores en pocas palabras

Tarjeta GPU Núcleos CUDA VRAM
GeForce GTX 1660 Ti 1536 6 GB
GeForce GTX 1660 Super 1408 6 GB
GeForce GTX 1660 1408 6 GB
GeForce GTX 1650 Super 1408 4 GB
GeForce GTX 1650 1024 y 896 4 GB
GeForce GTX 1060 de 3 GB 1280 4 GB
GeForce GTX 1650 1280 3 GB
GeForce GTX 1060 6 GB 768 6 GB
GeForce GTX 1050 Ti (3 GB) 768 4 GB
GeForce GTX 1050 (2 GB) 640 3 GB
GeForce GTX 960 1024 2 GB
GeForce GTX 950 786 2 GB
GeForce GTX 780 Ti 2880 2 GB
GeForce GTX 780 2304 3 GB
GeForce GTX 750 Ti 640 2 GB
GeForce GTX 750 512 1 GB o 2 GB

GPUs que contienen núcleos CUDA

Conclusión

  • Los núcleos CUDA y Tensor son productos desarrollados por una empresa llamada Nvidia. CUDA son las siglas de Compute Unified Device Architecture. Estos núcleos CUDA están presentes en tus GPU, smartphones e incluso en tus coches.
  • Mientras que los núcleos tensoriales, también desarrollados por Nvidia, se utilizan en las GPU. Los núcleos especializados denominados "núcleos tensoriales" permiten entrenar con precisión mixta. La primera generación de núcleos tensoriales permitía entrenar con precisión mixta y el formato numérico FP16.
  • Se han añadido Int8, Int4 e Int1 a la lista de precisiones compatibles con Tensor Core.
  • Gracias a los procedimientos de entrenamiento de precisión mixta, el rendimiento de la GPU se incrementó hasta 32 veces. Está prevista una futura versión de la cuarta generación de Tensor Cores basada en la microarquitectura Hopper.

Otros artículos

    Mary Davis

    Mary Davis es escritora, creadora de contenido y ávida investigadora especializada en análisis comparativos sobre diversos temas. Con un título en periodismo y más de cinco años de experiencia en el campo, a Mary le apasiona brindar información imparcial y directa a sus lectores. Su amor por la escritura comenzó cuando era joven y ha sido la fuerza impulsora detrás de su exitosa carrera como escritora. La capacidad de Mary para investigar y presentar hallazgos en un formato atractivo y fácil de entender la ha granjeado el cariño de lectores de todo el mundo. Cuando no está escribiendo, a Mary le gusta viajar, leer y pasar tiempo con su familia y amigos.