vivado 合成,implementation 高速化
標準の設定
get_param general.maxThreads 2
となっており、2スレッドしか使わない。これはもったいない。
使用スレッド数の変更
AR# 50345 - Vivado インプリメンテーション - Vivado でのマルチスレッドのサポートに書いてある。
例えば4スレッド使いたい場合
set_param general.maxThreads 4
計測
core i7-3740QM 16GBマシンで測ってみた
デザインはac701ボードのpcie example_design
vivado guiよりtclコマンドを実行
time synth_design
maxThreads 2の結果
synth_design: Time (s): cpu = 00:00:48 ; elapsed = 00:00:36 . Memory (MB): peak = 2969.520 ; gain = 393.723 36330496 microseconds per iteration
maxThreads 4の結果
synth_design: Time (s): cpu = 00:00:45 ; elapsed = 00:00:37 . Memory (MB): peak = 3097.875 ; gain = 128.355 36638386 microseconds per iteration
あんま変わらない・・・。guiだと表示で時間が取られる?
maxThreads 8の結果
synth_design: Time (s): cpu = 00:00:44 ; elapsed = 00:00:36 . Memory (MB): peak = 3209.328 ; gain = 111.453 36353779 microseconds per iteration
変わらん.maxスレッドだから使用スレッド数が変わってるかも。
とりあえず、合成からbitストリームまでのtclスクリプト作って今度測ってみることにするか。
ちなみに、16コアあるPCで試そうとしたら、
set_param general.maxThreads 16 ERROR: [Common 17-154] Value should be >= 1 and <= 8
となる。最大でも8個が限界らしい。