Cal é a diferenza entre os núcleos CUDA e os núcleos tensor? (Explicado) - Todas as diferenzas
Táboa de contidos
Os núcleos CUDA e Tensor son produtos desenvolvidos por unha empresa chamada Nvidia. Entón, que son os núcleos CUDA e os núcleos Tensor? CUDA significa Compute Unified Device Architecture. Os núcleos CUDA están presentes nas túas GPU, teléfonos intelixentes e mesmo nos teus coches, como din os desenvolvedores de Nvidia.
Os núcleos CUDA son unha plataforma de computación paralela e unha interface de programación de aplicacións (API) que permite ao software facer uso de tipos específicos de unidades de procesamento de gráficos (GPU) para o procesamento de propósito xeral.
Ver tamén: Cal é a diferenza entre Jordans e Air Jordans de Nike? (Decreto dos pés) - Todas as diferenzasConsiderando que os núcleos tensores que tamén foron desenvolvidos por Nvidia, tamén se usan nas GPU. Tensor Cores permiten computación de precisión mixta, adaptando os cálculos de forma dinámica para aumentar o rendemento mantendo a precisión.
Ver tamén: Cal é a diferenza entre un mago, un feiticeiro e un mago? (Explicado) - Todas as diferenzasEn palabras sinxelas, estes núcleos son unha parte importante das GPU do teu ordenador para facer certos cálculos. Os núcleos CUDA úsanse para multiplicar dous números e sumalos a outro número.
Considerando que o núcleo tensor é o mesmo pero con matrices 4×4. Estes cálculos son basicamente render gráficos máis rápido para ti.
Que é CUDA?
Compute Unified Device Architecture en resumo CUDA desenvolvido por Nvidia, lanzado o 23 de xuño de 2007, é unha plataforma de computación paralela e unha interface de programación de aplicacións (API).
Isto permite ao software utilizar tipos específicos de unidades de procesamento de gráficos (GPU) para o procesamento de propósito xeral, un método coñecido como computación de propósito xeral enGPU (GPU).
CUDA é unha capa de software que proporciona acceso directo ao conxunto de instrucións virtuais da GPU e aos elementos computacionais paralelos para a execución de núcleos informáticos. CUDA foi desenvolvido para traballar con diferentes linguaxes de programación, incluíndo C, C++ e Fortran.
A posibilidade de traballar con diferentes linguaxes de programación facilita que os especialistas en programación paralela fagan uso dos recursos da GPU se o diferenciamos de API anteriores como Direct3D ou OpenGL, o que esixiría que teñas un sistema máis avanzado. Habilidades básicas en programación gráfica.
GPU con CUDA tamén admite marcos de programación, como OpenMP, OpenACC, OpenCL e tamén HIP que poden compilar ese código en CUDA. O primeiro nome utilizado para CUDA foi un acrónimo de Compute Unified Device Architecture. Non obstante, Nvidia posteriormente abandonou o acrónimo de uso común.
Unha potente tarxeta gráfica Nvidia GTX 1080 Ti
Máis información sobre CUDA
Como procesador informático especializado, a unidade de procesamento de gráficos (GPU) satisface as necesidades reais -cargas de traballo de gráficos 3D con moito tempo e computación.
Ao redor de 2012, as GPU evolucionaron e convertéronse en sistemas multinúcleos altamente paralelos que permitían un procesamento de datos eficaz para grandes bloques.
Ao procesar grandes bloques de datos en paralelo, este deseño é superior ás unidades de procesamento central (CPU) de propósito xeral para algoritmos, como:
- hash criptográficofuncións
- aprendizaxe automática
- simulacións de dinámica molecular
- motores de física
- algoritmos de clasificación
Usos da arquitectura CUDA agora e no futuro
- Renderizado acelerado de gráficos 3D
- Interconversión acelerada de formatos de ficheiros de vídeo
- Cifrado, descifrado e compresión acelerados
- Bioinformática, por exemplo, secuenciación de ADN de NGS BarraCUDA
- Cálculos distribuídos, como predecir a conformación nativa das proteínas
- Simulacións de análises médicas, por exemplo, realidade virtual baseada en imaxes de exploración por TC e resonancia magnética
- Simulacións físicas, en particular en dinámica de fluídos
- Adestramento en redes neuronais en problemas de aprendizaxe automática
- Recoñecemento facial
- Proxectos de computación distribuídos, como [email protected] e outros proxectos que utilicen BOINC
- Dinámica molecular
- Minería de criptomonedas
- Software Structure from motion (SfM)
Que é un núcleo tensor?
Os núcleos especializados chamados Tensor Cores permiten un adestramento de precisión mixta. A xeración inicial destes núcleos especializados faino cun algoritmo de multiplicación e suma fusionada. Isto fai posible multiplicar e engadir dúas matrices FP16 4 x 4 a unha matriz FP16 ou FP32 4 x 4.
O resultado final será FP32 con só unha lixeira perda de precisión, a computación de precisión mixta desígnase como tal aínda queas matrices de entrada poden ser FP16 de baixa precisión.
Na práctica, isto acelera significativamente os cálculos con pouca influencia na eficacia final do modelo. Esta capacidade foi ampliada por microarquitecturas posteriores a representacións de números informáticos aínda menos precisas.
A primeira xeración introduciuse coa microarquitectura Volta a partir da V100, máis formatos de precisión do número de ordenadores foron dispoñibles para computación con novas microarquitecturas de GPU con cada xeración que pasaba.
Na sección que segue, falaremos de como a capacidade e a funcionalidade de Tensor Cores cambiaron e melloraron con cada xeración de microarquitecturas.
Unha imaxe representada gráficamente feita por un Titan V
Como funcionan os núcleos tensor?
Primeira xeración:
A microarquitectura da GPU Volta incluíuse coa primeira xeración de núcleos Tensor. Estes núcleos fixeron posible adestrar cunha precisión mesturada e co formato de número FP16.
Isto podería ter un aumento de ata 12 veces no rendemento de teraFLOP para certas GPU. Os 640 núcleos do V100 de nivel superior ofrecen un aumento de 5 veces na velocidade de rendemento con respecto ás GPU Pascal da xeración anterior.
Segunda xeración:
Coa introdución das GPU Turing, presentouse a segunda xeración de núcleos Tensor. Int8, Int4 e Int1 engadíronse á lista de precisións de Tensor Core admitidas, que foronanteriormente limitado ao FP16.
Debido aos procedementos de adestramento de precisión mixtos, o rendemento da GPU aumentou ata 32 veces en comparación coas GPU Pascal.
Terceira xeración:
A arquitectura nunha GPU Ampere amplía os avances anteriores das microarquitecturas Volta e Turing engadindo soporte para precisións FP64, TF32 e bfloat16.
Estes formatos de precisión adicional aceleran moito máis as actividades de adestramento e inferencia de aprendizaxe profunda. Por exemplo, o formato TF32 funciona de xeito similar ao FP32 ao mesmo tempo que garante unha velocidade de ata 20 veces sen alterar ningún código.
Entón, con só unhas poucas liñas de código, a implementación automática de precisión mixta acelerará o adestramento 2 veces máis.
NVLink de terceira xeración para permitir interaccións multi-GPU increíblemente rápidas, núcleos de trazado de rayos de terceira xeración e especialización con matemáticas de matriz escasa son aspectos adicionais da microarquitectura Ampere .
Cuarta xeración:
Está prevista unha futura versión da cuarta xeración de Tensor Cores baseada na microarquitectura Hopper. A cuarta xeración de Tensor Cores no próximo H100.
que se prevé que se lance en marzo de 2022, poderá manexar formatos de precisión FP8 e, segundo NVIDIA, acelerará enormes modelos de linguaxe "por un asombroso 30X". sobre a xeración anterior.”
Unha tarxeta gráfica RTX éúsase para renderizar gráficos moi rápido xa que contén núcleos tensores.
A diferenza entre os núcleos CUDA e os núcleos tensores
Os núcleos tensores están limitados actualmente a Titan V e Tesla V100. Os núcleos 5120 CUDA de ambas as GPU teñen unha capacidade máxima dunha única operación de acumulación de multiplicación de precisión (por exemplo, en fp32: x += y * z) por reloxo da GPU (por exemplo, a frecuencia de Tesla V100 PCIe é de 1,38 Gz).
Cada núcleo tensor opera en matrices pequenas 4×4 para matrices pequenas. Por un reloxo de GPU, cada núcleo tensor pode completar unha operación de multiplicación e acumulación de matriz.
Multiplica dúas matrices FP16 4×4 e engade a matriz FP32 4×4 que dá como resultado o acumulador (que tamén é unha matriz FP32 4×4).
Debido a que as matrices de entrada son fp16 mentres que os resultados da multiplicación e o acumulador son fp32, o algoritmo coñécese como precisión mixta.
O termo correcto probablemente sería só "núcleos de matriz 4 × 4", pero o equipo de marketing de NVIDIA optou por usar "núcleos de tensor".
Núcleos tensor explicación completa en poucas palabras
Tarxeta GPU | Núcleos CUDA | VRAM |
---|---|---|
GeForce GTX 1660 Ti | 1536 | 6GB |
GeForce GTX 1660 Super | 1408 | 6GB |
GeForce GTX 1660 | 1408 | 6GB |
GeForce GTX 1650 Super | 1408 | 4GB |
GeForce GTX 1650 | 1024 e896 | 4GB |
GeForce GTX 1060 3GB | 1280 | 4GB |
GeForce GTX 1650 | 1280 | 3GB |
GeForce GTX 1060 6GB | 768 | 6GB |
GeForce GTX 1050 Ti (3GB) | 768 | 4GB |
GeForce GTX 1050 (2GB) | 640 | 3GB |
GeForce GTX 960 | 1024 | 2GB |
GeForce GTX 950 | 786 | 2GB |
GeForce GTX 780 Ti | 2880 | 2GB |
GeForce GTX 780 | 2304 | 3GB |
GeForce GTX 750 Ti | 640 | 2 GB |
GeForce GTX 750 | 512 | 1 GB ou 2 GB |
GPU que conteñen núcleos CUDA
Conclusión
- Os núcleos CUDA e Tensor son produtos, ambos desenvolvidos por unha empresa chamada Nvidia. CUDA significa Compute Unified Device Architecture. Estes núcleos CUDA están presentes nas túas GPU, teléfonos intelixentes e mesmo nos teus coches.
- Considerando que os núcleos tensores, que tamén foron desenvolvidos por Nvidia, tamén se usan nas GPU. Os núcleos especializados chamados "núcleos tensores" permiten un adestramento de precisión mixta. A primeira xeración de Tensor Cores permitiu adestrar cunha precisión mesturada e co formato de número FP16.
- Isto podería ter un aumento de ata 12 veces no rendemento de teraFLOP para certas GPU. Int8, Int4 e Int1 engadíronse á lista de precisións de Tensor Core admitidas.
- Debido á mesturaprocedementos de adestramento de precisión, o rendemento da GPU aumentou ata 32 veces. Está previsto un futuro lanzamento da cuarta xeración de Tensor Cores baseada na microarquitectura Hopper.