¿Cuál es la diferencia entre los núcleos CUDA y los núcleos tensoriales? (Explicado) – Todas las diferencias

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 sus GPU, teléfonos inteligentes e incluso en sus automóviles, como lo dicen los desarrolladores de Nvidia.

Los núcleos CUDA son un plataforma de cómputo paralelo y la interfaz de programación de aplicaciones (API) que permite que el software haga uso de tipos específicos de unidades de procesamiento de gráficos (GPUs) para procesamiento de propósito general.

Mientras que los núcleos de tensor que también fueron desarrollados por Nvidia, también se utilizan en las GPU. Tensor Cores permite la computación de precisión mixta, adaptando los cálculos dinámicamente para aumentar el rendimiento mientras se mantiene la precisión.

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

Mientras que el núcleo Tensor es el mismo pero con matrices de 4 × 4. Estos cálculos básicamente representan gráficos más rápidos para usted.

¿Qué es CUDA?

Compute Unified Device Architecture en resumen CUDA desarrollado por Nvidia, lanzado el 23 de junio de 2007, es una plataforma de computación paralela y una interfaz de programación de aplicaciones (API).

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

CUDA es una capa de software que brinda acceso directo al conjunto de instrucciones virtuales de la GPU y elementos computacionales paralelos para la ejecución de núcleos de cómputo. CUDA fue desarrollado para trabajar con diferentes lenguajes de programación, incluyendo C, C++y Fortran.

La capacidad de trabajar con diferentes lenguajes de programación facilita a los especialistas en programación paralela hacer uso de los recursos de la GPU si la diferenciamos de API anteriores como Direct3D o OpenGLlo que requerirá que tenga una base de habilidades más avanzada en programación gráfica.

GPU con CUDA también es compatible marcos de programacióntal como MP abierto, OpenACC, Abrir CL, 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. Sin embargo, Nvidia luego eliminó el acrónimo de uso común.

Una potente tarjeta gráfica Nvidia GTX 1080 TiUna potente tarjeta gráfica Nvidia GTX 1080 Ti

Más sobre CUDA

Como un procesador de computadora especializado, la unidad de procesamiento de gráficos (GPU) satisface las necesidades de las cargas de trabajo de gráficos 3D con uso intensivo de cómputo en tiempo real.

Alrededor de 2012, las GPU evolucionaron y se volvieron altamente paralelas. sistemas multinúcleo permitiendo un procesamiento efectivo de datos para grandes bloques.

Cuando se procesan grandes bloques de datos en paralelo, este diseño es superior a las unidades centrales de procesamiento (CPU) de uso general para algoritmos, como:

  • funciones hash criptograficas
  • aprendizaje automático
  • simulaciones de dinámica molecular
  • motores de física
  • ordenar algoritmos

Usos de la arquitectura CUDA ahora y en el futuro

  • Representación acelerada de gráficos 3D
  • Interconversión acelerada de formatos de archivos de video
  • Cifrado, descifrado y compresión acelerados
  • Bioinformática, por ejemplo, SNG ADN secuenciación BarraCUDA
  • Cálculos distribuidos, como predecir la conformación nativa de las proteínas
  • Simulaciones de análisis médicos, por ejemplo, realidad virtual basada en Connecticut y resonancia magnética escanear imágenes
  • 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, tales como [email protected] y otros proyectos utilizando BOINC
  • dinámica molecular
  • Criptomonedas mineras
  • Estructura del software de movimiento (SfM)

¿Qué es un núcleo tensor?

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

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

En la práctica, esto acelera significativamente los cálculos con poca influencia en la efectividad final del modelo. Esta capacidad se ha ampliado posteriormente microarquitecturas a representaciones numéricas de computadora aún menos precisas.

La primera generación se presentó con Microarquitectura Volta a partir de V100, se pusieron a disposición más formatos de precisión de números de computadora para computación con nuevas microarquitecturas de GPU con cada generación que pasaba.

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

Una imagen renderizada gráficamente hecha por un Titan VUna imagen renderizada gráficamente hecha por un Titan V

¿Cómo funcionan los núcleos tensoriales?

Primera generación:

La microarquitectura Volta GPU se incluyó con la primera generación de Tensor Cores. Estos núcleos permitieron entrenar con precisión mixta y el formato de números FP16.

Esto podría tener un aumento de hasta 12x en teraFLOP rendimiento para ciertas GPU. Los 640 núcleos del V100 de nivel superior brindan hasta 5 veces más velocidad de rendimiento que las GPU Pascal de la generación anterior.

Segunda generación:

Con la introducción de las GPU Turing, se presentó la segunda generación de Tensor Cores. Int8, Int4 e Int1 se agregaron a la lista de precisiones de Tensor Core admitidas, que anteriormente se limitaban a FP16.

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

Tercera generación:

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

Las actividades de formación e inferencia de aprendizaje profundo se aceleran mucho más con estos formatos de precisión adicional. Por ejemplo, el formato TF32 funciona de manera similar a FP32 y garantiza hasta 20x aceleraciones sin alterar ningún código.

Luego, con solo unas pocas líneas de código, la implementación automática de precisión mixta acelerará el entrenamiento dos veces más.

Tercera generación Enlace NV para permitir interacciones multi-GPU ultrarrápidas, tercera generación Núcleos de trazado de rayosy especialización con matemáticas de matriz dispersa son aspectos adicionales de la Microarquitectura de amperios.

Cuarta generación:

Un lanzamiento futuro de la Microarquitectura de tolvaEstá prevista una cuarta generación de Tensor Cores basada en . Los Tensor Cores de cuarta generación en el próximo H100.

que se espera que se lance en marzo de 2022, podrá manejar formatos de precisión FP8 y, según NVIDIA, acelerará modelos de lenguaje enormes «en un asombroso 30X con respecto a la generación anterior».

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

La diferencia entre los núcleos CUDA y los núcleos tensoriales

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

Cada núcleo de tensor opera en matrices pequeñas de 4 × 4 para matrices pequeñas. Por un reloj de GPU, cada núcleo de tensor puede completar una operación de acumulación múltiple de matriz.

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

Debido a 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 precisión mixta.

El término correcto probablemente sería solo «núcleos de matriz de 4 × 4», pero el equipo de marketing de NVIDIA eligió usar «núcleos de tensor».

Tensor cores full explanation in a nutshell GPU cardCUDA coresVRAMGeForce GTX 1660 Ti15366GBGeForce GTX 1660 Super14086GBGeForce GTX 166014086GBGeForce GTX 1650 Super14084GBGeForce GTX 16501024 and 8964GBGeForce GTX 1060 3GB12804GBGeForce GTX 165012803GBGeForce GTX 1060 6GB7686GBGeForce GTX 1050 Ti (3GB)7684GBGeForce GTX 1050 (2GB)6403GBGeForce GTX 96010242GBGeForce GTX 9507862GBGeForce GTX 780 Ti28802GBGeForce GTX 78023043GBGeForce GTX 750 Ti6402 GBGeForce GTX 7505121GB o 2 GBGPU que contienen núcleos CUDA

Conclusión

  • Los núcleos CUDA y Tensor son productos, ambos desarrollados por una empresa llamada Nvidia. CUDA son las siglas de Compute Unified Device Architecture. Estos núcleos CUDA están presentes en sus GPU, teléfonos inteligentes e incluso en sus automóviles.
  • Mientras que los núcleos de tensor, que también fueron desarrollados por Nvidia, también se utilizan en las GPU. Los núcleos especializados llamados «núcleos de tensor» permiten un entrenamiento de precisión mixta. La primera generación de Tensor Cores hizo posible entrenar con precisión mixta y el formato de número FP16.
  • Esto podría tener un aumento de hasta 12 veces en el rendimiento de teraFLOP para ciertas GPU. Int8, Int4 e Int1 se agregaron a la lista de precisiones de Tensor Core admitidas.
  • Debido a los procedimientos mixtos de entrenamiento de precisión, el rendimiento de la GPU aumentó 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

Deja un comentario

¡Contenido premium bloqueado!

Desbloquear Contenido
close-link