我正在研究GPGPU是否可用于加速硬件仿真。 我的理由是:由于硬件本质上非常平行,为什么要在高度顺序的CPU上进行模拟?
GPU非常适合这种情况,如果不是因为它们的限制性编程风格:运行单个内核等等。
我对GPGPU编程没什么经验,但是可以在OpenCL / CUDA中使用事件或队列吗?
编辑:通过硬件仿真,我不是指仿真,而是比特精确的行为仿真(如VHDL行为仿真)。
答案 0 :(得分:5)
我不知道有关GPU上的VHDL仿真的任何方法(或映射离散事件仿真的一般方案),但 某些应用领域,其中通常应用离散事件仿真,哪些可以在GPU上高效模拟(例如运输网络,如this paper或this one,或化学系统的随机模拟,如this paper中所做的那样)。
是否有可能以一种使离散时间步进模拟器可行的方式重新制定问题?在这种情况下,GPU上的仿真应该更简单(并且更快,即使它看起来很浪费,因为时间步长必须足够小 - 参见基于GPU的细胞自动机模拟的this paper,例如)。
但是,请注意,这仍然很可能是一个非平凡的(研究)问题,而且之前没有一般方案的原因是你已经假设的:实现一个事件GPU上的队列很难,并且由于智能内存布局和特定于应用程序的优化和问题修改,GPU上的大多数仿真方法都会获得加速。
答案 1 :(得分:3)
这超出了我的专业领域,但似乎虽然下面的论文讨论了门级仿真而不是行为仿真,但它可能包含一些有用的想法:
Debapriya Chatterjee,Andrew Deorio,Valeria Bertacco。 采用GPU计算的门级仿真 http://web.eecs.umich.edu/~valeria/research/publications/TODAES0611.pdf