Pregunta

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

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

¿Fue útil?

Solución

Sí lo hacen. AMD siquiera proporciona la especificación hasta la serie HD4000 en el momento.

Tome 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 hace la ingeniería de los conjuntos de instrucciones NV inversa.

Tenga en cuenta, que NVIDIA tiene una arquitectura ligeramente diferente de AMD, porque no utilizar VLIW pero la ejecución escalar (a pesar de múltiples hilos se agrupan, además, en lo que se llama una deformación o un frente de onda).

Además, no todas las llamadas / Direct3D OpenGL hace un mapa a una "instrucción GPU". Por ejemplo cuando se une una textura que el conductor sólo establecerá los registros de hardware apropiados que le dicen a la GPU, que la memoria de texturas a utilizar para el muestreo.

Programas real sólo se ejecutan cuando la ejecución de shaders o flujo de núcleos de procesamiento en la GPU.

Otros consejos

Actualmente, las tarjetas de NVIDIA utilizan algún tipo de ISA intermedio llamado PTX. Usted puede leer sobre él en este documento:

PTX ISA 1.1

Programas de PTX se convierten al momento de la instalación para el conjunto de instrucciones hardware de destino.

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

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 enlaces a las especificaciones de AMD que documentan la ISA, por ejemplo: http://developer.amd.com/wordpress/media/2012/12/AMD_Southern_Islands_Instruction_Set_Architecture.pdf

Hay incluso una aplicación RTL abierto llamado MIAOW https://github.com/VerticalResearchGroup/miaow, aunque es probable que infringe algunos IP que AMD simplemente ha optado por tolerado en silencio por ahora ( fuente).

SPIR-V

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

Es probable diseñado para ser similar a las NIA GPU existentes, por lo que va a ser más aplicables y tener una mejor adopción, por lo que debe dar una buena idea de las NIA GPU reales.

Y si esta norma hace engancharse en, ya que parece ser el caso debido a la adopción de Vulkan y OpenCL 2.1, las implementaciones futuras probabilidades se pueden diseñar para aplicar es de cerca para tener un mejor rendimiento.

Cómo obtener y modificar PTX

Cómo crear o manipular ensamblador de GPU?

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

Ver:Guía de programación CUDA versión 3.0

La capacidad de cómputo de un dispositivo se define por un número de revisión importante y un número de revisión menor.

Los dispositivos con el mismo número de revisión principal tienen la misma arquitectura central.El principal número de revisión de dispositivos basados ​​en la arquitectura de Fermi es 2.Dispositivos anteriores son todos de capacidad de cómputo 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.

El Apéndice A enumera todos los dispositivos habilitados para CUDA junto con su capacidad informática.El Apéndice G proporciona las especificaciones técnicas de cada capacidad informática.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top