• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. カスタムIC/ミックスシグナル
  3. Spectre Tech Tips: Spectre Xの分散シミュレーションを使用したパフォーマンスと容量の…
Custom IC Japan
Custom IC Japan

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
multithreaded simulation
ppn
Multi-Core
japanese blog
XDP
spectre x
Spectre X distributed simulation
multithreaded

Spectre Tech Tips: Spectre Xの分散シミュレーションを使用したパフォーマンスと容量の向上

14 Jan 2021 • Less than one minute read

 マルチスレッド/マルチコアシミュレーションのサポートは、長年にわたってSpectreで利用でき、ユーザーは、複数のコアを備えたひとつのマシンで、TRANやHBなどの単体の解析を実行できます。ただし、先端プロセスノードを使用したデザインをシミュレートすると、特にポストレイアウトの寄生容量が含まれている場合に、パフォーマンスと容量の問題が発生する可能性があります。

Spectre Xでは、マルチスレッドシミュレーションの拡張として、異なるマシンのコアを使用した分散シミュレーションが導入されました。分散シミュレーションに於いて多くのコアへのアクセスが可能になることで、パフォーマンスと容量が向上し、大規模なデザインに対してより多くの価値を提供します。

上記の「単体の解析」の分散シミュレーションは、複数の解析が異なるマシンで実行される分散パラメトリックスイープまたはモンテカルロシミュレーションとは異なります。

なぜ?そしていつ?

Spectre X分散シミュレーションを実行する理由は、パフォーマンスと容量の2つです。分散シミュレーションを使用すると、異なるマシンから複数のコアを追加することでパフォーマンスを向上させ、各マシンからメモリを統合することで容量を増やすことができます。

過渡解析の分散シミュレーションは、回路が非常に大きく、ポストレイアウトのタイプの場合に適しています。同じ数のコアを使用している場合は、マルチホストを使用して分散シミュレーションを実行する場合と比較して、単一ホストで非分散シミュレーションを実行する方が常に高速です。たとえば、単一のホストで32コア(+mt=32)シミュレーションを実行すると、通常、同じ状況で分散2ホスト x 16コアシミュレーションよりも高速になります。

回路が小さく、過渡解析を実行している場合、この種のシミュレーションに必要なオーバーヘッドのせいで、分散シミュレーションの速度が低下する可能性があります。

また、ハーモニックバランスの場合、回路サイズではなく、分散シミュレーションが有益かどうかを決定するのは、高調波の数です。

ユースモデル

分散シミュレーションには、ローカルとファームの2つのユースモデルがあります。

ローカル分散シミュレーション

マシンネットワークがファーム上にない場合は、Spectreコマンドラインでマシンリソースを直接指定することにより、ローカルネットワーク上で分散シミュレーションを実行できます:

spectre +xdp=rsh|ssh +hosts “host1:proc1 host2:proc2 ...” +mt=#T

ここで、host1と host2は、シミュレーションを実行するネットワーク上のマシンのホスト名です。ホストはいくつでも追加できますが、ホストが8つを超えると、最高のパフォーマンスが得られません。proc1とproc2は各ホストで実行されるspectreプロセスの数です。各マシンで1またはNUMA (Non-Uniform Memory Access)ノードの数(通常はソケットの数)を指定する必要があります。それ以外の値では、最適なパフォーマンスは得られません。#Tは、要求された各プロセスのスレッド数です。

ファーム分散シミュレーション

ファームで分散シミュレーションを実行するのがより一般的であり、このためのコマンドラインオプションは単純です:

spectre +xdp

ファームジョブ送信コマンドbsubがすべてのリソース要求を行い、ファームが+xdpオプションのためにこの情報を読み取り、Spectre Xにマシン、プロセス、およびスレッドの情報を提供するため、単純です。

以下は、LSFファームの4台のマシンで合計128コアを要求する例です:

bsub -q <queue> -n 128 -R “span[ptile=32]” spectre +xdp

上記のコマンドは、それぞれ32スレッドの合計4つのSpectreプロセスを実行します。4台のマシンのそれぞれで単一のプロセスが実行され、4 * 1 * 32 = 128コアになります。

LSFファームで分散ハーモニックバランスシミュレーションを実行すると、NUMAノード(またはソケット)ごとに1つのプロセスを実行できるというメリットがあります。この利点は共有メモリの使用率からもたらされ、Spectreコマンドラインで+ppnを追加することで有効になります。

bsub -q <queue> -n 128 -R “span[ptile=32]” spectre +xdp +ppn

上記のコマンドは、それぞれ16スレッドの合計8つのSpectreプロセスを実行します。この場合、ファームによって提供されるマシンにはそれぞれ2つのNUMAノード(ソケット)があるため、4つのマシンのそれぞれで2つのプロセスが実行されます。これにより、解析用に4 * 2 * 16 = 128コアになります。

精度

Spectre X分散シミュレーションは、パフォーマンスと容量を向上させながら、Spectre Xの最高の精度を維持します。

パフォーマンス

Spectre X分散シミュレーションは、他の回路シミュレータと比較して、並外れたパフォーマンスと容量の向上を提供します。

下のグラフは、大規模なポストレイアウトデザイン(500k M、30M C、3M R)の過渡シミュレーション結果を示しています。8T、16T、および32Tを比較するとわかるように、Spectre Xでは、Spectre APSよりもパフォーマンスとスケーリングが向上しています。2ホストおよび4ホストで32コアを使用して実行した結果を追加すると、シミュレーションは8Tと比較してほぼ5倍にスケールアップします。このケースは、シングルスレッドと比較すると30倍を超えるパフォーマンスの向上を示しています。場合によっては、128コアを使用して最大60倍のパフォーマンス向上を実現できます。

図:8T に対するパフォーマンス向上:

次のグラフは、分散ハーモニックバランス解析を実行した場合の同様のパフォーマンスの向上を示しています。これで、多数の高調波を追加でき、パフォーマンスを向上させ、精度を維持することができます。

図:分散HBのパフォーマンス

Spectre X分散シミュレーションのもう1つの利点は、シミュレーションに使用される各ホストの容量とメモリ必要量の削減です。分散ハーモニックバランス解析を使用することにより、メモリ削減は基本的に最大4ホストまで線形で、4倍のメモリを使用してシミュレートする機能を提供します。

図:ホスト毎のメモリ対ホスト数

推奨の設定

Spectre Xのパフォーマンスを向上させるために、いくつかのファームとマシンの設定が最適であることがわかっています:

  • ハイパースレッディングを無効にします。
  • ハイパースレッディングを無効にできない場合は、マシンに過負荷をかけないことが重要です。ファームのスケジューラーは、マシン上の物理コアの数のみをスケジュールする必要があり、論理(ハイパー)コアは含めないでください。
  • 省電力モードを無効にします。
  • コア/CPUは、一定の最大周波数で実行する必要があり、スロットルしないでください。
  • アフィニティを設定します。
  • アフィニティ(CPU割り当て)を使用する場合は、CPUを同じNUMAノードに指定するか、ハイパースレッディングが有効になっている場合は少なくとも物理コアのみを指定してください。
  • RedHat 7.Xまたは同等のものを使用してください。
  • RedHat 7.Xのカーネルには、マルチソケット/マルチNUMAマシンで最適なパフォーマンスを実現するための修正が含まれています。Spectreは、16T+などのHCC (High Core Count)シミュレーションを実行する場合、このOSバージョンではるかに優れたパフォーマンスを発揮します。

関連リソース

Spectre Xの詳細については、以下を参照してください:

  • Spectre Classic Simulator, Spectre APS, Spectre X, and Spectre XPS User Guide 
  • Introducing Spectre X (英語版/日本語版)
  • MMSIM日本語資料

Translator: Yuko Yoneda

Spectre Tech Tipsについて

Spectre Tech Tipsは、Spectre®の機能と可能性を探求することを目的としたブログシリーズです。このシリーズでは、Spectreの便利な機能と拡張機能に関する知見を提供することに加えて、Spectreに関連するあらゆることについての知識と経験を共有する、様々なブロガーや専門家の声を掲載します。Spectre Tech Tipsの投稿に関する通知を受け取るには、Subscribeをクリックしてページ上部にあるSubscriptionsボックスにアクセスし、Emailアドレスを入力してSUBSCRIBE NOWをクリックしてください。Subscription 設定手順の詳細は、Article (20493886) Title: 日本語ブログ「カスタムIC/ミックスシグナル Blogs」 Subscription 設定手順 をご参照ください。