Pregunta ¿Las tarjetas gráficas tienen conjuntos de instrucciones propios?


¿Las tarjetas gráficas tienen conjuntos de instrucciones propios? Supongo que sí, pero me he estado preguntando si es propietario o si hay algún tipo de estándar abierto.

¿Cada instrucción de GPU está precedida por una instrucción de CPU o es transparente? Es decir, OpenGL o DirectX invocan la capa del controlador a través de la CPU, que luego envía una instrucción GPU al bus o es más elaborada.


32
2017-11-08 20:32


origen


Respuestas:


Ellos si. AMD incluso proporciona la especificación de la serie HD4000 en este momento.

Eche un vistazo aquí: http://developer.amd.com/wordpress/media/2012/10/R700-Family_Instruction_Set_Architecture.pdf

También hay un proyecto de código abierto llamado Nouveau que realiza ingeniería inversa de los conjuntos de instrucciones NV.

Tenga en cuenta que NVIDIA tiene una arquitectura ligeramente diferente que AMD, ya que no usan VLIW sino la ejecución escalar (aunque varios subprocesos también se agrupan en lo que se denomina Warp o Wavefront).

Además, no todas las llamadas de OpenGL / Direct3D se asignan a una "instrucción GPU". Por ejemplo, al vincular una textura, el controlador solo configurará los registros de hardware apropiados que indiquen a la GPU qué memoria de textura usar para el muestreo.

Los programas reales solo se ejecutan cuando se ejecutan sombreadores o se procesan núcleos de procesamiento en la GPU.


32
2017-11-08 20:46



Actualmente, las tarjetas NVIDIA usan algún tipo de ISA intermedio llamado PTX. Puedes leer sobre esto en este documento:

PTX ISA 1.1

Los programas PTX se traducen en el momento de la instalación al conjunto de instrucciones de hardware de destino.


5
2017-11-09 16:39



Sí, la GPU tiene sus propios conjuntos de instrucciones de propiedad. Las instrucciones de la GPU se ejecutan independientemente de las instrucciones de la CPU.


3
2017-11-08 20:38



Para las tarjetas nvidia es posible que desee echar un vistazo a este documento http://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref


3
2018-04-22 19:42



Ver: Guía de Programación CUDA Versión 3.0

La capacidad de cálculo de un dispositivo está definida por un número de revisión mayor y un menor número de revisión.

Los dispositivos con el mismo número de revisión principal son de la misma arquitectura central. los El número de revisión principal de los dispositivos basados ​​en la arquitectura de Fermi es 2. Dispositivos anteriores son todos de capacidad de cálculo 1.x (Su número de revisión principal es 1).

El número de revisión menor corresponde a una mejora incremental del núcleo arquitectura, posiblemente incluyendo nuevas características.

Apéndice A: listas de todos los dispositivos compatibles con CUDA junto con su capacidad de cálculo. El Apéndice G proporciona las especificaciones técnicas de cada capacidad de cálculo.


2
2018-04-28 07:18



AMD Graphics Core Next (GCN)

https://en.wikipedia.org/wiki/Graphics_Core_Next

La primera generación se llama "Islas del Sur".

La página wiki enlaza con las especificaciones de AMD que documentan el ISA, por ejemplo: http://developer.amd.com/wordpress/media/2012/12/AMD_Southern_Islands_Instruction_Set_Architecture.pdf

Incluso hay una implementación abierta de RTL llamada MIAOW https://github.com/VerticalResearchGroup/miaow, aunque es probable que infrinja algunos IP que AMD simplemente ha decidido tolerar en silencio por ahora (fuente)

SPIR-V 

https://en.wikipedia.org/wiki/Standard_Portable_Intermediate_Representation es un lenguaje intermedio estándar de Krhonos.

Es probable que esté diseñado para ser similar a las actuales ISA de la GPU, de modo que sea más implementable y tenga una mejor adopción, por lo que debería dar una buena idea de las ISA reales de la GPU.

Y si este estándar sí se da cuenta, como parece ser el caso debido a la adopción en Vulkan y OpenCL 2.1, es probable que las implementaciones futuras se diseñen para implementarse para lograr un mejor rendimiento.

Cómo obtener y modificar PTX

¿Cómo crear o manipular el ensamblador de GPU?


2
2017-09-28 18:55