Cokolwiek zrobisz, obliczenie następnego stanu dla automatu komórkowego wymaga tyle obliczeń, ile jest komórek w automacie. Zatem, aby uzyskać stały czas, potrzebujesz tyle rdzeni obliczeniowych, ile jest komórek.
Ich liczba w GPU wynosi obecnie najwyżej kilka tysięcy, podczas gdy obliczenie następnego stanu jest tak proste, że spodziewam się, że wynik będzie związany z IO, tj. Możesz uzyskać bardzo dobre przybliżenie czasu potrzebnego po prostu biorąc pod uwagę potrzebny jest ruch danych (a jeśli nie jest to dobre przybliżenie, albo implementacja jest nieefektywna, albo architektura nie jest odpowiednia, ale byłoby to bardzo zaskakujące).
W przypadku FPGA pytanie jest trudniejsze i prawdopodobnie będzie zależeć od dostępnej kombinacji pamięci i jednostek obliczeniowych. Jeśli nie jestem zbyt daleko, nie będziesz mieć wystarczającej ilości pamięci, aby wszystkie jednostki były zajęte, a jeśli polegasz na pamięci zewnętrznej, jesteś na tym samym miejscu co GPU, przepustowość pamięci będzie czynnikiem ograniczającym, a ja nie zdziw się, jeśli wniosek będzie taki, że nie ma przewagi nad GPU. (Pamiętaj, że chociaż pracowałem z FPGA, to było lata temu, teraz mogą istnieć modele FPGA z odpowiednim miksem).
ASIC oferuje większą elastyczność. Możesz łatwo mieć implementację skurczową (ale przy dwukierunkowym przepływie danych, niektóre skurczowe są zwykle ograniczone do jednokierunkowego przepływu danych), każda fizyczna komórka jest jedna logiczna: bit pamięci i logika potrzebna do obliczenia jej następnego stanu i jest ułożona tak że to fizyczny sąsiad jest logiczny. Jesteście oczywiście w stałym świecie. W zależności od tego, jakie masz twarde makra, lepiej być nieco mniej oczywistym i mieć fizyczne komórki, które przegrupowują kilka logicznych. Celem jest maksymalizacja tego, co dzieje się w jednym układzie, innymi słowy, aby zminimalizować komunikację z zewnętrznym układem, gdy tylko potrzeby w zakresie komunikacji będą proporcjonalne do liczby komórek, nastąpi ograniczenie przepustowości. Tak, oznacza to, że jeśli musisz spojrzeć na wszystkie komórki dla każdego kroku, prawdopodobnie nie jesteś dużo lepszy niż z GPU. (Pełne niestandardowe zapewniałoby tylko lepszą integrację, tj. Więcej komórek na chip).
Podsumowanie: - jeśli chcesz spojrzeć na wszystkie stany pośrednie, GPU jest najbardziej skutecznym podejściem - jeśli nie, potrzebujesz głośności, aby uzasadnić, że ASIC ma coś lepszego, FPGA prawdopodobnie nie zapewni wystarczającej przewagi, jeśli masz jakieś.