Apa pun yang Anda lakukan, menghitung status berikutnya untuk otomat seluler meminta sebanyak mungkin perhitungan daripada jumlah sel dalam otomat. Jadi untuk mendapatkan waktu yang konstan, Anda membutuhkan inti komputasi sebanyak sel.
Jumlah ini dalam GPU saat ini paling banyak beberapa ribu, sedangkan perhitungan negara berikutnya sangat sederhana sehingga saya berharap hasilnya terikat IO, yaitu Anda bisa mendapatkan perkiraan yang sangat baik dari waktu yang dibutuhkan dengan hanya mempertimbangkan perpindahan data diperlukan (dan jika itu bukan perkiraan yang baik, baik implementasinya memiliki inefisiensi atau arsitektur tidak cocok, tetapi itu akan sangat mengejutkan).
Untuk FPGA, pertanyaannya lebih sulit dan mungkin akan tergantung pada campuran memori dan unit komputasi yang tersedia. Jika saya tidak terlalu jauh, Anda tidak akan memiliki cukup memori untuk membuat semua unit sibuk dan jika Anda mengandalkan memori eksternal, Anda berada di kursi yang sama dengan GPU, bandwidth memori akan menjadi faktor pembatas dan saya tidak akan kaget jika kesimpulannya adalah bahwa tidak ada kelebihan dibandingkan GPU. (Perhatikan bahwa sementara saya bekerja dengan FPGA, itu bertahun-tahun yang lalu, sekarang mungkin ada model FPGA dengan campuran yang tepat).
ASIC menawarkan lebih banyak fleksibilitas. Anda dapat dengan mudah memiliki implementasi seperti sistolik (tetapi dengan aliran data dua arah, beberapa sistolik biasanya terbatas pada aliran data searah), masing-masing sel fisik adalah satu yang logis: sedikit memori dan logika yang diperlukan untuk menghitung keadaan berikutnya dan ditata jadi tetangga fisiknya itu logis. Anda jelas berada di ranah waktu yang konstan. Bergantung pada makro keras yang Anda miliki, Anda mungkin lebih baik menjadi sedikit kurang jelas dan memiliki sel fisik yang menyusun kembali beberapa yang logis. Tujuannya adalah untuk memaksimalkan apa yang dilakukan dalam satu chip, dengan kata lain untuk meminimalkan komunikasi dengan bagian luar chip segera setelah kebutuhan komunikasi Anda sebanding dengan jumlah sel, Anda akan memiliki bandwidth terbatas. Ya, itu berarti bahwa jika Anda perlu melihat semua sel untuk setiap langkah, Anda mungkin tidak jauh lebih baik daripada dengan GPU. (Kustom penuh hanya akan memberikan integrasi yang lebih baik, yaitu lebih banyak sel per chip).
Rangkuman: - jika Anda ingin melihat semua kondisi perantara, GPU adalah pendekatan yang paling efektif - jika Anda tidak, Anda perlu volume untuk membenarkan ASIC untuk memiliki sesuatu yang lebih baik, FPGA mungkin tidak akan menawarkan keuntungan yang cukup jika mereka Punya beberapa.