Logic Pro/Express:マルチコアのパフォーマンスを最大限に引き出すヒント

Logic Pro および Logic Express 8 以降では、2、4、および 8 コアを搭載した Mac ですべてのコアを活用できます。Logic を使いながらマルチコアシステムのパフォーマンスを最大限に引き出すには、以下のヒントを参考にしてください。

コアのアクティビティについて

Logic はタスクを実行する際、スレッドに分割して各コアに割り当てます。1 つのコアで同時に複数のスレッドを実行することはできますが、1 つのスレッドを複数のコアに分割することはできません。これは、コンピュータ上の複数のコアで負荷が均等に配分されていないことがある原因の 1 つです。プロセッサを過度に使うスレッドがある場合、そのスレッドを実行するコアは、負荷の軽いタスクを実行するコアに比べて多くのアクティビティを実行しているように見えます。これは、システム上にアクティビティがそれほど多くないコアがあるにもかかわらず、「Core Audio オーバーロード」警告メッセージが表示されることがある主な理由です。 

Logic によるシステム上のコアの利用状況を監視するには、「トランスポート」領域の CPU メーターをダブルクリックします。

各コアのメーターを示すウインドウが表示されます。

チャンネルストリップも同じように考えることができます。チャンネルストリップ、さらにそれに含まれているすべてのプラグインは、それぞれ 1 つのコアで処理されます。同じチャンネルストリップにプロセッサを過度に使うプラグインが多数含まれている場合、そのストリップを実行するコアのアクティビティは非常に多くなります。これは、サンプルレートが高い場合 (88.2 kHz 以上) は特に顕著です。 

コアの負荷を再配分する

ある 1 つのコアのアクティビティが非常に多い場合は、以下の方法で負荷を再配分します。

以下の例ではソフトウェア音源のチャンネルストリップが 1 つありますが、それには、Output 1-2 に直接ルーティングされているプラグインが含まれています。Output 1-2 のチャネルストリップには非常に多くのプラグインが含まれています。

この例では、2 つのコアにアクティビティがあります。左側のコアはソフトウェア音源を処理し、次のコアは Output 1-2 チャンネルストリップを処理しています。次の図にあるように、Logic のルーティング機能を使えば、サウンドを変化させることなく、複数のコアに負荷を配分することができます。

この結果得られる信号チェーンは、次の表に示すように Inst 1 > Aux 1 > Aux 2 > Out 1-2 となります。

チャネルストリップ 入力 出力
 Inst 1    Bus 1
 Aux 1  Bus 1  Bus 2
 Aux 2  Bus 2  Out 1-2

また、最初の 4 つのプラグインは Output 1-2 から Aux 1 に移動し、残りの 4 つのプラグインは Aux 2 に移動しています。 

それぞれのチャンネルストリップの音量を適切に調整すればまったく同じサウンドが得られますが、負荷は 2 つのコアではなく 4 つのコアに配分されています。この考え方を使えば、オーディオチャンネルストリップ、ソフトウェア音源、Aux、出力 (この例) のプラグインを再配分できます。

先に説明したルーティングを使っていても、上図にあるように 1 つのコアに非常に高い負荷がまだ生じていることがあります。Inst 1 チャンネルストリップが選択されている点に注目してください。「アレンジ」ウインドウでソフトウェア音源トラックが選択されている場合、Logic は「ライブインプットモード」になります。このモードでは、選択しているチャンネルストリップを MIDI コントローラからライブで再生できるように、そのチャンネルストリップの信号パスに含まれるすべてのプラグインがオンになります。これらはすべて 1 つのスレッド、つまり、1 つのコアで処理する必要があります。このため、ソフトウェア音源の再生や録音を頻繁に行わない限り、「アレンジ」ウインドウではオーディオチャンネルストリップを使うトラックを選択したままにしておくとよいでしょう。

公開日: