Estoy diseñando una placa FPGA personalizada, para algo de bajo costo como un Xilinx Spartan 6. Quiero realizar una investigación sobre cómo resolver algoritmos de uso intensivo de memoria en un FPGA.
Como todos sabemos, el ancho de banda de la memoria es a menudo un cuello de botella, especialmente en soluciones de bajo costo como Spartan 6. Sin embargo, una GPU de gama media tiene más de 150 GB / s de ancho de banda de memoria.
¿Hay alguna forma de aumentar el ancho de banda en un FPGA de bajo costo a niveles cercanos a la GPU?
Sólo veo algunas maneras:
- Conectar memoria de alto ancho de banda como DDR4 a chip GPU y conectar todo a FPGA (una solución un tanto extraña y no sé si es factible y, si lo es, el ancho de banda entre GPU y FPGA no se convertirá en un cuello de botella ?)
- Uso de múltiples interfaces de memoria amplia y rápida para conectar la memoria fuera del chip a FPGA
- Uso de controladores personalizados, conexiones o algo más, optimizado especialmente para esta tarea para mejorar el ancho de banda
Cuido al menos 100 GB / s. En un FPGA Spartan 6 de bajo costo, este ancho de banda sería un éxito. ¿O es imposible con esta pieza de hardware?