Pregunta de viabilidad: aceleración gráfica en CPLD / FPGA ... ¿DSP?

1

Soy un programador nuevo en electrónica. Quería tener una perspectiva de si la lógica programable es factible para permitir que se acelere un algoritmo matemático básico.

Queriendo resolver un algoritmo de intersección de rayos (algunas multiplicaciones y restas) sobre una cuadrícula de números de 800x600 (480000). [Entiendo que los enteros serían ideales, y que la lógica de control está mal vista - estas restricciones las puedo solucionar]

Todo lo que he investigado hasta ahora dice que puedo descargar este procesamiento de un procesador a un FPGA que podría programarse para calcular el espacio del problema de una manera muy eficiente.

algunas preguntas:

Estoy pensando en usar un CPLD, tal vez literalmente un Altera MAX® 10, ¿proporciona esto el dispositivo de escala correcto para completar este tipo de problema?

Si quisiera calcular el conjunto de problemas en 100 / s, ¿sería posible?

(suponiendo que el rendimiento es un problema) ¿El problema se puede dividir fácilmente entre diferentes chips - donde cada chip escribió su solución para una región diferente de RAM?

¿Es posible adjuntar este tipo de proyecto a un slot lightning bold / usb3 / sata o pci express en una PC? - ¿Qué tipo de inversión se necesita para crear una placa tan sofisticada (en el tiempo)?

¿Se podría hacer esto con los chips DSP? (Me resulta difícil entender dónde ya no se pueden usar los DSP; entiendo que hay un uso típico en los filtros, etc ... pero cuánto más aplicable ¿Pueden ser? ¿Pueden realizar operaciones matemáticas de enteros simples?)

¿Se podría hacer esto con chips lógicos discretos? : estaba viendo un proyecto de este EE enlace ... que describía todo tipo de chips de ALU y multiplicadores, ¿podrían simplemente unirse para expresar este algoritmo de manera eficiente?

¿Cómo cambiarían mis necesidades si tuviera que resolver una cuadrícula de 4000 x 2000?

Gracias por tu tiempo

    
pregunta triple

1 respuesta

2

Esto es, presumiblemente, para la aceleración de trazado de rayos?

Vea también ¿Puede FPGA realizar una PC multi-core?

  

Un colega mío lo comparó y llegó a la conclusión de que   Los FPGAs superarán a una PC una vez que tengas más de 100   Tareas enteras independientes que encajarían en el FPGA. Para flotar   tareas puntuales GPGPU venció a FPGA en todo. Para multihilo estrecho o   La operación SIMD entonces las CPU están extremadamente optimizadas y se ejecutan a una mayor   velocidad de reloj que los FPGA suelen lograr.

El MAX10 es una gama de FPGA de diferentes tamaños. Sin duda, son capaces de multiplicarse: hasta 144 cálculos diferentes de 18x18 por ciclo. Debe tener cuidado con los diseños de FPGA para no quedar limitado por la velocidad de su DRAM. También es un proyecto bastante importante para aprender a programar uno desde cero y las herramientas son algo frustrantes.

¿Se puede dividir fácilmente el problema entre diferentes chips? bueno, probablemente, este tipo de solución basada en mosaicos no es inusual. La partición es para que usted trabaje o una pregunta de software. Recuerde que la coordinación entre dispositivos es mucho más lenta que dentro de los dispositivos.

PCIe: participé en un proyecto que construyó algunas placas ADC rápidas multicanal con FPGA montadas en tarjetas PCIe. Teníamos media docena soldada a mano por expertos, lo que resultó en un costo de alrededor de $ 1000 cada uno. El diseño tomó algunas semanas; fue realizado por un estudiante graduado con un ingeniero experimentado que mira sobre su hombro con regularidad.

Los DSP están diseñados para hacer matemáticas de números enteros, especialmente la acumulación múltiple (a = b * c + d). Consulte ¿Cuál es la diferencia entre un DSP? ¿Y un microcontrolador estándar? En general, ofrecen una funcionalidad similar a las instrucciones SIMD; Intel ofrece una acumulación múltiple desde Haswell.

¿Se podría hacer esto con chips lógicos discretos?

El documento que vinculó se parece al proyecto de tesis de alguien sobre cómo hacer un diseño de silicio real: sacar eso del simulador y construir un chip a partir de él es, nuevamente, una operación de varios miles de dólares, y muy rara vez vale la pena.

El otro enfoque de ensamblar chips de diferentes funciones en una PCB no ha sido sensiblemente rápido desde principios de los 80.

    
respondido por el pjc50

Lea otras preguntas en las etiquetas