IT系メモ

興味のあったことや、勉強したことなどをメモしていきます。

GPUアクセラレータでSimを10倍高速化

LSI設計でverilogなどの論理Simulationは欠かせないわけですが、一回シミュレーションをするのに数時間単位かかってしまう。OSなんてSimulation上でなんて到底動かせないわけで、なんとか早くならないかと思うわけです。


FPGAを使う方法もあるのですが、論理合成にこれまた時間がかかる。そして回路規模が大きくて全部入るFPGAを買おうとすると数十万単位なわけでなかなか手が出ないのです。


CPUがダメならGPUを使えばいいじゃないというのはGPGPUが流行ってるので思うわけですが、製品としてあるのか探したらありました。


ROCKETICK社のRocketSimという製品です。
f:id:qpci32siekqd:20111226034935j:image:w360


なんでもGPUをアクセラレータとして利用することでSimが10倍高速になるそうです。VerilogVHDL、SystemVerilogなどが使えるのと、PLIに対応しているのでC言語などとリンクもできそうですね。


f:id:qpci32siekqd:20111226034934j:image:w360

VCDとFSDBが波形として使えるそうですが、こういったアクセラレータを使わなければならないような回路規模では、回路情報を書いたヘッダ部分だけで数GB単位になってしまい現実的ではありません。ということで通常はFSDBを使い、他のツールとやり取りで選択肢がないときだけVCDを使うって感じになるのでしょうか。


サイトのデモを見ると、元のデザインをなにかしらのアルゴリズムを使ってGPUで並列処理できるようにしているようです。ソフトウェアと違い、回路は並列処理が前提ですが、ある信号をトリガーとして動作を開始するので、グラフィックのように全く他を気にしないでパイプラインに投入することはできないのでしょう。


GPUはCPUに比べてパイプラインが長いので、分岐などが起こらないようにしないと性能が出ません。そこらへんをどう解決するかが、この技術のキモなんでしょうね。


なんにせよLSI設計においてCPU処理能力が足りていないので、高速化するならありがたいです。