Pascal (microarquitectura)

Microarquitectura de GPU diseñada por Nvidia

Pascal es el nombre en clave de una microarquitectura GPU desarrollada por Nvidia, como sucesora de la arquitectura Maxwell. La arquitectura se introdujo por primera vez en abril de 2016 con el lanzamiento de Tesla P100 (GP100) el 5 de abril de 2016 y se usa principalmente en la serie GeForce 10, comenzando con GeForce GTX 1080 y GTX 1070 (ambas con GPU GP104), que fueron lanzados el 17 de mayo de 2016 y el 10 de junio de 2016 respectivamente. Pascal se fabricó utilizando el proceso FinFET de 16 nm de TSMC,[1]​ y luego el proceso FinFET de Samsung de 14 nm.[2]

Pascal

La GTX 1070, la segunda tarjeta comercialmente disponible que usa la arquitectura Pascal
Información
Tipo Microarquitectura
Desarrollador Nvidia
Fabricante
Fecha de lanzamiento 5 de abril de 2016 (8 años)
Pintura de Blaise Pascal, epónimo de arquitectura

La arquitectura lleva el nombre del matemático y físico francés del siglo XVII, Blaise Pascal.

En abril de 2019, Nvidia habilitó una implementación de software de DirectX Raytracing en tarjetas basadas en Pascal a partir de la GTX 1060 de 6 GB y en las tarjetas de la serie 16, una característica reservada a la serie RTX basada en Turing hasta ese momento.[3][4]

Detalles editar

 
Fotografía de la GPU GP100 utilizada en las tarjetas Nvidia Tesla P100
 
Fotografía de la GPU GP102 encontrada dentro de las tarjetas GeForce GTX 1080 Ti
 
Foto de la GPU GP106 encontrada dentro de las tarjetas GTX 1060

En marzo de 2014, Nvidia anunció que la sucesora de Maxwell sería la microarquitectura Pascal; anunciado el 6 de mayo de 2016 y lanzado el 27 de mayo del mismo año. El Tesla P100 (chip GP100) tiene una versión diferente de la arquitectura Pascal en comparación con las GPU GTX (chip GP104). Las unidades de sombreado en GP104 tienen un diseño similar al de Maxwell.[5]

Las mejoras arquitectónicas de la arquitectura GP100 incluyen lo siguiente:[6][7][8]

  • En Pascal, un SM (multiprocesador de transmisión) consta de entre 64 y 128 núcleos CUDA, dependiendo de si es GP100 o GP104. Maxwell empaquetó 128, Kepler 192, Fermi 32 y Tesla solo 8 núcleos CUDA en un SM; el GP100 SM se divide en dos bloques de procesamiento, cada uno con 32 núcleos CUDA de precisión simple, un búfer de instrucciones, un programador warp, 2 unidades de mapeo de texturas y 2 unidades de despacho.
  • Capacidad de cómputo CUDA 6.0.
  • Memoria de alto ancho de banda 2: algunas tarjetas cuentan con 16 GiB HBM2 en cuatro pilas con un bus total de 4096 bits con un ancho de banda de memoria de 720 GB/s.
  • Memoria unificada: una arquitectura de memoria en la que la CPU y la GPU pueden acceder tanto a la memoria del sistema principal como a la memoria de la tarjeta gráfica con la ayuda de una tecnología llamada "Motor de migración de página".
  • NVLink: un bus de gran ancho de banda entre la CPU y la GPU, y entre varias GPU. Permite velocidades de transferencia mucho más altas que las que se pueden lograr con PCI Express; se estima que proporcionará entre 80 y 200 GB/s.[9][10]
  • Las operaciones de punto flotante de 16 bits (FP16) (coloquialmente "media precisión") se pueden ejecutar al doble de la velocidad de las operaciones de punto flotante de 32 bits ("precisión simple")[11]​ y las operaciones de punto flotante de 64 bits ( coloquialmente "doble precisión") ejecutado a la mitad de la velocidad de las operaciones de coma flotante de 32 bits.[12]
  • Más registros: el doble de registros por núcleo CUDA en comparación con Maxwell.
  • Más memoria compartida.
  • Sistema de programación de equilibrio de carga dinámico.[13]​ Esto permite que el programador ajuste dinámicamente la cantidad de GPU asignada a varias tareas, lo que garantiza que la GPU permanezca saturada de trabajo, excepto cuando no haya más trabajo que pueda distribuirse de manera segura.[13]​ Por lo tanto, Nvidia ha habilitado de forma segura la computación asíncrona en el controlador de Pascal.[13]
  • Preferencia a nivel de instrucción y de nivel de subproceso.[14]

Las mejoras arquitectónicas de la arquitectura GP104 incluyen lo siguiente:[5]

  • Capacidad de cómputo CUDA 6.1.
  • GDDR5X: nuevo estándar de memoria compatible con velocidades de datos de 10 Gbit/s, controlador de memoria actualizado.[15]
  • Multiproyección simultánea: generación de múltiples proyecciones de un solo flujo de geometría, a medida que ingresa al motor SMP desde las etapas de sombreado ascendentes.[16]
  • DisplayPort 1.4, HDMI 2.0b.
  • Compresión de color Delta de cuarta generación.
  • Interfaz SLI mejorada: interfaz SLI con mayor ancho de banda en comparación con las versiones anteriores.
  • PureVideo Feature Set H decodificación de video de hardware HEVC Main10 (10 bits), Main12 (12 bits) y decodificación de hardware VP9.
  • Compatibilidad con HDCP 2.2 para reproducción y transmisión de contenido 4K protegido por DRM (Maxwell GM200 y GM204 carecen de compatibilidad con HDCP 2.2, GM206 admite HDCP 2.2).[17]
  • Codificación de hardware NVENC HEVC Main10 de 10 bits.
  • Impulso de GPU 3.0.
  • Preferencia a nivel de instrucción.[14]​ En las tareas de gráficos, el controlador restringe la prioridad al nivel de píxel, porque las tareas de píxeles generalmente finalizan rápidamente y los costos generales de hacer la prioridad a nivel de píxel son más bajos que la prioridad a nivel de instrucción (que es costosa).[14]​ Las tareas de cómputo obtienen prioridad a nivel de subproceso o nivel de instrucción,[14]​ porque pueden tardar más tiempo en finalizar y no hay garantías sobre cuándo finaliza una tarea de cómputo. Por lo tanto, el controlador permite la costosa prioridad de nivel de instrucción para estas tareas.[14]

Descripción general editar

Grupo de procesadores de gráficos editar

Un chip se divide en clústeres de procesadores de gráficos (GPC). Para los chips GP104, un GPC abarca 5 SM.

Streaming Multiprocesador "Pascal" editar

Un "multiprocesador de transmisión" corresponde a la unidad de cómputo de AMD. Un SMP abarca 128 ALU de precisión simple ("núcleos CUDA") en chips GP104 y 64 ALU de precisión simple en chips GP100.

Lo que AMD llama CU (unidad de cómputo) se puede comparar con lo que Nvidia llama SM (multiprocesador de transmisión). Si bien todas las versiones de CU constan de 64 procesadores de sombreado (es decir, 4 unidades vectoriales SIMD (cada una de 16 carriles de ancho) = 64), Nvidia (normalmente llamando a los procesadores de sombreado "núcleos CUDA") experimentó con números muy diferentes:

  • En Tesla 1 SM combina 8 procesadores shader de precisión simple (FP32)
  • En Fermi 1 SM combina 32 procesadores de sombreado de precisión simple (FP32)
  • En Kepler 1 SM combina 192 procesadores shader de precisión simple (FP32) y también 64 unidades de doble precisión (FP64) (al menos las GPU GK110)
  • En Maxwell 1 SM combina 128 procesadores de sombreado de precisión simple (FP32)
  • De Pascal depende:
    • En la GP100, 1 SM combina 64 procesadores de sombreado de precisión simple (FP32) y también 32 de precisión doble (FP64), lo que brinda una proporción de 2:1 de rendimiento de precisión simple a doble. El GP100 utiliza núcleos FP32 más flexibles que pueden procesar un número de precisión simple o dos de precisión media en un vector de dos elementos.[18]​ Nvidia tiene la intención de abordar el cálculo de algoritmos relacionados con el aprendizaje profundo con esos.
    • En el GP104, 1 SM combina 128 ALU de precisión simple, 4 ALU de precisión doble que proporcionan una relación de 32:1 y una ALU de precisión media que contiene un vector de dos flotadores de precisión media que pueden ejecutar la misma instrucción en ambos flotadores proporcionando una proporción de 64:1 si se usa la misma instrucción en ambos elementos.

Polymorph-Engine 4.0 editar

El Polymorph Engine versión 4.0 es la unidad responsable de Tessellation . Se corresponde funcionalmente con el procesador geométrico de AMD. Se ha movido del módulo de sombreado al TPC para permitir que un motor Polymorph alimente múltiples SM dentro del TPC.[19]

Chips editar

  • GP100: el acelerador de GPU Nvidia Tesla P100 está dirigido a aplicaciones GPGPU como FP64 de cómputo de doble precisión y capacitación de aprendizaje profundo que utiliza FP16. Utiliza memoria HBM2.[20]​ Quadro GP100 también utiliza la GPU GP100.
  • GP102: esta GPU se utiliza en TITAN Xp,[21]​ Titan X[22]​ y GeForce GTX 1080 Ti. También se utiliza en Quadro P6000[23]​ y Tesla P40.[24]
  • GP104: Esta GPU se utiliza en las GeForce GTX 1070, GTX 1070 Ti y GTX 1080. La GTX 1070 tiene 15/20 y la GTX 1070 Ti tiene habilitados 19/20 de sus SM. Ambos están conectados a la memoria GDDR5, mientras que la GTX 1080 es un chip completo y está conectado a la memoria GDDR5X. También se utiliza en Quadro P5000, Quadro P4000 y Tesla P4.
  • GP106: esta GPU se utiliza en la GeForce GTX 1060 con memoria GDDR5/GDDR5X.[25][26][27]​ También se utiliza en la Quadro P2000.
  • GP107: esta GPU se usa en GeForce GTX 1050 Ti y GeForce GTX 1050. También se utiliza en Quadro P1000, Quadro P600, Quadro P620 y Quadro P400.
  • GP108: esta GPU se utiliza en GeForce GT 1010 y GeForce GT 1030.

En el chip GP104, un SM consta de 128 ALU de precisión simple ("núcleos CUDA"), en el GP100 de 64 ALU de precisión simple. Debido a la diferente organización de los chips, como el número de ALU de doble precisión, el rendimiento teórico de doble precisión de la GP100 es la mitad del rendimiento teórico de precisión simple; la relación es 1/32 para el chip GP104.

Tabla comparativa de algunos chips Kepler, Maxwell y Pascal
GK104 GK110 GM204 (GTX 970) GM204 (GTX 980) GM200 GP104 GP100
Caché de textura dedicado por SM 48 KiB N/A N/A N/A N/A N/A N/A
Caché de textura (gráficos o computación) o datos de solo lectura (solo computación) por SM N/A 48 KiB[28] N/A N/A N/A N/A N/A
Memoria compartida seleccionable por el programador/particiones L1 por SM 48 KiB de memoria compartida + 16 KiB de caché L1 (predeterminado)[29] 48 KiB de memoria compartida + 16 KiB de caché L1 (predeterminado)[29] N/A N/A N/A N/A N/A
Memoria compartida de 32 KiB + caché L1 de 32 KiB[29] Memoria compartida de 32 KiB + caché L1 de 32 KiB[29]
16 KiB de memoria compartida + 48 KiB de caché L1[29] 16 KiB de memoria compartida + 48 KiB de caché L1[29]
Caché L1 unificado/caché de textura por SM N/A N/A 48 KiB[30] 48 KiB[30] 48 KiB[30] 48 KiB[30] 24 kilobytes[30]
Memoria compartida dedicada por SM N/A N/A 96 KiB[30] 96 KiB[30] 96 KiB[30] 96 KiB[30] 64 KiB[30]
Caché L2 por chip 512 KiB[30] 1536 KiB[30] 1792 KiB[31] 2048 KiB[31] 3072 KiB[30] 2048 KiB[30] 4096 KiB[30]

Rendimiento editar

La potencia de procesamiento de precisión simple teórica de una GPU Pascal en GFLOPS se calcula como 2 X (operaciones por instrucción FMA por núcleo CUDA por ciclo) × número de núcleos CUDA × velocidad de reloj del núcleo (en GHz).

La potencia teórica de procesamiento de doble precisión de una GPU Pascal es la mitad del rendimiento de precisión simple en Nvidia GP100 y 1/32 de Nvidia GP102, GP104, GP106, GP107 y GP108.

La potencia de procesamiento de precisión media teórica de una GPU Pascal es 2 veces mayor que el rendimiento de precisión simple en GP100[12]​ y 1/64 en GP104, GP106, GP107 y GP108.[18]

Sucesor editar

La arquitectura Pascal fue sucedida en 2017 por Volta en los mercados de HPC, computación en la nube y automóviles autónomos, y en 2018 por Turing en el mercado de consumo y empresarial.[32]

Véase también editar

Referencias editar

  1. «NVIDIA 7nm Next-Gen-GPUs To Be Built By TSMC». Wccftech. 24 de junio de 2018. Consultado el 6 de julio de 2019. 
  2. «Samsung to Optical-Shrink NVIDIA "Pascal" to 14 nm». Consultado el 13 de agosto de 2016. 
  3. «Accelerating The Real-Time Ray Tracing Ecosystem: DXR For GeForce RTX and GeForce GTX». NVIDIA. 
  4. «Ray Tracing Comes to Nvidia GTX GPUs: Here's How to Enable It». 11 de abril de 2019. 
  5. a b «NVIDIA GeForce GTX 1080». International.download.nvidia.com. Consultado el 15 de septiembre de 2016. 
  6. Gupta, Sumit (21 de marzo de 2014). «NVIDIA Updates GPU Roadmap; Announces Pascal». Blogs.nvidia.com. Consultado el 25 de marzo de 2014. 
  7. «Parallel Forall». NVIDIA Developer Zone. Devblogs.nvidia.com. Archivado desde el original el 26 de marzo de 2014. Consultado el 25 de marzo de 2014. 
  8. «NVIDIA Tesla P100». International.download.nvidia.com. Consultado el 15 de septiembre de 2016. 
  9. «Inside Pascal: NVIDIA's Newest Computing Platform». 5 de abril de 2016. 
  10. Denis Foley (25 de marzo de 2014). «NVLink, Pascal and Stacked Memory: Feeding the Appetite for Big Data». nvidia.com. Consultado el 7 de julio de 2014. 
  11. «NVIDIA's Next-Gen Pascal GPU Architecture to Provide 10X Speedup for Deep Learning Apps». The Official NVIDIA Blog. Consultado el 23 de marzo de 2015. 
  12. a b Smith, Ryan (5 de abril de 2015). «NVIDIA Announces Tesla P100 Accelerator - Pascal GP100 Power for HPC». AnandTech. Consultado el 27 de mayo de 2016. «Cada uno de esos SM también contiene 32 núcleos FP64 CUDA, lo que nos da la mitad de la tasa para FP64, y la nueva arquitectura Pascal es la capacidad de empaquetar 2 operaciones FP16 dentro de un solo núcleo FP32 CUDA en las circunstancias adecuadas.» 
  13. a b c Smith, Ryan (20 de julio de 2016). «The NVIDIA GeForce GTX 1080 & GTX 1070 Founders Editions Review: Kicking Off the FinFET Generation». AnandTech. p. 9. Consultado el 21 de julio de 2016. 
  14. a b c d e Smith, Ryan (20 de julio de 2016). «The NVIDIA GeForce GTX 1080 & GTX 1070 Founders Editions Review: Kicking Off the FinFET Generation». AnandTech. p. 10. Consultado el 21 de julio de 2016. 
  15. «GTX 1080 Graphics Card». GeForce. Consultado el 15 de septiembre de 2016. 
  16. Carbotte, Kevin (17 de mayo de 2016). «Nvidia GeForce GTX 1080 Simultaneous Multi-Projection & Async Compute». Tomshardware.com. Consultado el 15 de septiembre de 2016. 
  17. «Nvidia Pascal HDCP 2.2». Nvidia Hardware Page. Consultado el 8 de mayo de 2016. 
  18. a b Smith, Ryan (20 de julio de 2016). «The NVIDIA GeForce GTX 1080 & GTX 1070 Founders Editions Review: Kicking Off the FinFET Generation». AnandTech. p. 5. Consultado el 21 de julio de 2016. 
  19. Smith, Ryan (20 de julio de 2016). «The NVIDIA GeForce GTX 1080 & GTX 1070 Founders Editions Review: Kicking Off the FinFET Generation». AnandTech. p. 4. Consultado el 21 de julio de 2016. 
  20. Harris, Mark (5 de abril de 2016). «Inside Pascal: NVIDIA's Newest Computing Platform». Parallel Forall. Nvidia. Consultado el 3 de junio de 2016. 
  21. «NVIDIA TITAN Xp Graphics Card with Pascal Architecture». NVIDIA. 
  22. «NVIDIA TITAN X Graphics Card with Pascal». GeForce. Consultado el 15 de septiembre de 2016. 
  23. «New Quadro Graphics Built on Pascal Architecture». NVIDIA. Consultado el 15 de septiembre de 2016. 
  24. «Accelerating Data Center Workloads with GPUs». NVIDIA. Consultado el 15 de septiembre de 2016. 
  25. «NVIDIA GeForce 10 Series Graphics Cards». NVIDIA. 
  26. «NVIDIA GeForce GTX 1060 to be released on July 7th». VideoCardz.com. 29 de junio de 2016. Consultado el 15 de septiembre de 2016. 
  27. «GTX 1060 Graphics Cards». GeForce. Consultado el 15 de septiembre de 2016. 
  28. Smith, Ryan (12 de noviembre de 2012). «NVIDIA Launches Tesla K20 & K20X: GK110 Arrives At Last». AnandTech. p. 3. Consultado el 24 de julio de 2016. 
  29. a b c d e f Nvidia (1 de septiembre de 2015). «CUDA C Programming Guide». Consultado el 24 de julio de 2016. 
  30. a b c d e f g h i j k l m n ñ Triolet, Damien (24 de mayo de 2016). «Nvidia GeForce GTX 1080, le premier GPU 16nm en test !». Hardware.fr (en francés). p. 2. Consultado el 24 de julio de 2016. 
  31. a b Smith, Ryan (26 de enero de 2015). «GeForce GTX 970: Correcting The Specs & Exploring Memory Allocation». AnandTech. p. 1. Consultado el 24 de julio de 2016. 
  32. «NVIDIA Turing Release Date». Techradar. 2 de febrero de 2021.