我正在研究是否可以将GPGPU用于加速硬件仿真。
我的理由是:由于硬件本质上是非常并行的,为什么还要在高度顺序的CPU上进行仿真?
如果不是因为限制性的编程风格,GPU将对此非常有用:您正在运行单个内核,等等。
我对GPGPU编程的经验很少,但是可以在OpenCL/CUDA中使用事件或队列吗?
编辑:硬件仿真不是仿真,而是位精确的行为仿真(如VHDL行为仿真)。
最佳答案
我不知道有关在GPU上进行VHDL仿真的任何方法(或用于映射离散事件仿真的通用方案),但是在某些应用领域中通常会应用离散事件仿真,并且可以在GPU上对其进行有效地仿真(例如,运输)网络(如this paper或this one),或化学系统的随机模拟(如this paper)。
是否有可能以使离散时间步长模拟器可行的方式重新构造问题?在这种情况下,在GPU上进行的仿真应该简单得多(即使看起来很浪费,但仍要更快,因为时间步长必须足够小-例如,参见基于GPU的细胞自动机仿真中的this paper)。
但是请注意,这仍然很可能是(非平凡的(研究)问题),并且还没有通用的方案(尚未)的原因是您已经假设的:在GPU上实现事件队列很困难,并且由于巧妙的内存布局以及针对特定应用的优化和问题修改,大多数GPU上的仿真方法都可以提高速度。
关于cuda - GPU加速的硬件仿真?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7364909/