Vivadoツールでのマルチスレッドの話

  • Mar 24, 2023
post-thumb

内容について

2023.03.24時点の内容です.

公式ドキュメントに書いてあったので,メモしただけ.

Vivado Design Suite ユーザー ガイド: インプリメンテーション (UG904):Vivado ツールでのマルチスレッド

このサイトを以下では公式ドキュメントと呼称しますわね.

書いてあった内容

最大8スレッド

公式ドキュメントから引用するとこんな感じ.

マルチプロセッサ システムでは、Vivado ツールで DRC レポート、スタティック タイミング解析、配置、配線などのプロセスを高速化するためマルチスレッドが使用されます。同時に使用される最大スレッド数は、プロセッサの数、タスクによって異なります。タスクによって使用される最大スレッド数は、次のとおりです。

  • DRC レポート: 8
  • スタティック タイミング解析: 8
  • 配置: 8
  • 配線: 8
  • 物理最適化: 8

つまり,10コア20スレッドのプロセッサ使っても8が限界ってことかあ.

ちなみに

1
set_param general.maxThreads 8
最大値を決められる.これやらないと怒られる時なんてそうそうないけどね.

Windowsは2スレッドが限界

公式ドキュメントには以下のように書いてある.

同時に実行可能なスレッドのデフォルト最大数は、OS によって異なります。Windows システムでは 2 で、Linux システムではデフォルトは 8 です。

マジ???という気持ち. うーん,FPGAの開発環境を整えるときはLinuxがいいわね. てかmacOSの対応してほしい

だけど,重要なのは公式ドキュメントの以下の文.

同時に使用可能なスレッド数は、次の最小の値になります。

  • プロセッサの最大数
  • タスクの制限スレッド数
  • 一般制限スレッド数

ということは,windows環境でgeneral.maxThreads8にしても,使われるスレッドは2つってことだね.

まとめ

とりあえず8スレッドって宣言しときゃあ,勝手に最大値に設定してくれるってことだな!ヨシ!

以上.