¿Cómo determinar el rendimiento de cálculo de un FPGA a partir de la hoja de datos?

-2

Si tiene un procesador, puede ver la cantidad de GFLOPS para saber algo sobre las operaciones por segundo de punto de flotación, pero ¿cómo puede decir algo sobre el rendimiento de un FPGA, cuando tiene la hoja de datos? Por ejemplo, el DE1 SoC FPGA tiene estas especificaciones:

Cyclone II 2C20 FPGA
• 18,752 LEs
• 52 M4K RAM blocks
• 240K total RAM bits
• 26 embedded multipliers
• 4 PLLs
• 315 user I/O pins
• FineLine BGA 484-pin package 


 Altera Cyclone® V SE 5CSEMA5F31C6N device
 Altera serial configuration device – EPCQ256
 USB-Blaster II onboard for programming; JTAG Mode
 64MB SDRAM (16-bit data bus)
 4 push-buttons
 10 slide switches
 10 red user LEDs
 Six 7-segment displays
 Four 50MHz clock sources from the clock generator
 24-bit CD-quality audio CODEC with line-in, line-out, and microphone-in jacks
 VGA DAC (8-bit high-speed triple DACs) with VGA-out connector
 TV decoder (NTSC/PAL/SECAM) and TV-in connector
 PS/2 mouse/keyboard connector
 IR receiver and IR emitter
 Two 40-pin expansion header with diode protection
 A/D converter, 4-pin SPI interface with FPGA

Fuente: enlace ¿Cómo puede decir algo acerca de la rapidez con que puede realizar operaciones aritméticas, como multiplicar, desplazar y sumar, y cuántas operaciones aritméticas se pueden ejecutar en paralelo?

    
pregunta Wale

2 respuestas

1

Un FPGA es muy flexible y puede adaptarse a muchos casos de uso. Por lo tanto, depende del caso de uso, cuyo "indicador de rendimiento" es el indicador principal.

Para las CPU, la frecuencia fue el indicador principal durante mucho tiempo. Pero cambió a número de núcleos, número de canales de memoria, tamaño de caché, conjunto de instrucciones, .... y de frecuencia de causa. La mejor manera de encontrar una CPU adecuada es usar puntos de referencia para ver si una determinada CPU o sistema cumple todos los requisitos.

Es lo mismo para los FPGA, tienen muchos indicadores de rendimiento. El peso de uno de ellos depende del campo de aplicación.

Los FPGA se pueden medir en:

  • área:
    • LUTs, LEs, CLB, equivalentes de puerta
    • Registros, desplazadores
    • Multiplicadores, sumadores, bloques DSP
    • SRAM incrustada (por ejemplo, BlockRAM)
  • velocidad:
    • \ $ F_ {max} \ $ de la lógica
    • \ $ F_ {max} \ $ de pines de E / S
    • \ $ F_ {max} \ $ de transceptores en serie
  • Rendimiento:
    • Rendimiento de E / S sin formato: TBit / s
    • operaciones DSP (por ejemplo, Giga Multiplicar Acumular por segundo - GMAC / s)
  • macros duras:
    • Controladores DRAM integrados
    • CPUs integradas (PowerPC, ARM, ...)
    • Núcleos IP Ethernet, Interlaken o PCI Express integrados
  • ...

Por ejemplo, si desea diseñar un algoritmo DSP grande, el rendimiento de DSP es un buen punto de partida.

    
respondido por el Paebbels
0

Como comentó Brian, debe saber cuáles son sus necesidades de cálculo.

En realidad, también tiene ese problema con un procesador: puede tener un número máximo teórico de GFLOPS, pero si su uso particular del mismo no permite que las operaciones sean paralelas, o rebote en toda la memoria, entonces las cachés no No trabaje de manera muy eficiente, no se acercará a ese máximo.

Ahora, los FPGA Cyclone V no son adecuados para las matemáticas de punto flotante: pueden hacerlo pero usted quema una gran parte de su capacidad lógica al hacerlo.

Entonces, si:

  • puede mantener sus números para que se ajusten a los multiplicadores de punto fijo natural (y extraño para los ingenieros de software - ¡no con una potencia de 2!)
  • y usa todas las unidades DSP todo el tiempo,
  • y tenga las chuletas de FPGA para poder escribir código que los ejecute a su velocidad máxima de reloj,
  • y puede obtener todos los datos dentro y fuera a la velocidad adecuada,

veamos lo que podrías lograr:

  • Ese dispositivo tiene 300 multiplicadores, y 150 pre-sumadores y acumuladores. Hasta 600 operaciones por ciclo
  • Es posible que tengan una velocidad de reloj de hasta 200 MHz por completo (no puedo poner mis manos rápidamente en el número correcto)

Entonces, si puede usar esos multiplicadores y sumadores en todo su potencial, podría obtener 600x200M = 120G operaciones / seg, solo de los bloques DSP. Entonces hay un montón de lógica en la que puedes poner tus funciones de control, o usarlas para más aritmética.

Lo mejor de los FPGA (y también un gran problema) es su flexibilidad. ¡Hay tantas opciones, incluso dentro de un dispositivo!

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas