---
title: デュアル GPU セットアップガイド
---

import ImageComponent from '~/components/image-component.astro';

## ハイブリッドグラフィックスとは

ハイブリッドグラフィックスとは、2つのグラフィックボードが連携して動作するハードウェア構成です。主に CPU の統合グラフィックボード (iGPU) と専用グラフィックス (dGPU) が搭載されているノートパソコンで見られる構成です。

この構成の主な利点は、統合グラフィックスをインターネット閲覧や動画視聴などの軽い処理に使用し、ゲームや動画編集、3D モデリングなどの高負荷な処理には専用グラフィックスを使用できることです。

2つの GPU が重い処理と軽い処理を分担することで、軽い処理しか実行していないときは dGPU を無効化 (スリープ状態に) して消費電力を大幅に削減できます。dGPU が再び必要になった (dGPU を使うアプリケーションを起動した) ときは、起動して動作を開始することができます。

## PRIME オフロードとは

PRIME は Linux において NVIDIA Optimus や AMD Dynamic Switchable Graphics などのさまざまなハイブリッドグラフィックスを統一的に扱うための技術です。PRIME オフロードは Linux においてレンダリングの実行を一方の GPU からもう一方の GPU に移す仕組みの実装です。

クローズドソースの NVIDIA ドライバでの PRIME サポートは 435.17 ドライバから始まりました。廃止された 390xx や 340xx ドライバブランチでは PRIME オフロードは動作しません。また nvidia-xrun や Bumblebee などの古いハイブリッドグラフィックス対応方法の使用は避けることを強くおすすめします。これらは廃止されてサポートもなく (Bumblebee は8年以上更新されていません)、ハック頼みでパフォーマンスも低いです。一方、Nouveau ドライバは PRIME オフロードをサポートしており、古い dGPU の代替になります。

CachyOS では **PRIME オフロードを動作させるために設定は一切不要です**。nvidia-utils パッケージと cachyos-settings があれば PRIME オフロードを使うために必要なものはすべてそろっています。

また optimus-manager などのツールの使用は避けてください。一見便利ですが、多くの問題を引き起こす可能性があります。dGPU が PRIME オフロードとダイナミック電力管理に対応していれば、これらのツールはまったく必要ありません。

### PRIME オフロードの使い方

統合グラフィックスの代わりに専用グラフィックスを使うよう PRIME を設定するには、プログラムを実行する前にいくつかの環境変数を指定する必要があります。

```bash
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia <program>
```

この変数の組み合わせは長くて覚えにくいため、`nvidia-prime` パッケージ (`sudo pacman -S nvidia-prime`) をインストールすることをおすすめします。これらの変数すべてのエイリアスとなるスクリプトが含まれており、以下のようにシンプルにすることができます。

```bash
prime-run <program>
```

`<program>` はアプリケーションを起動するコマンドに置き換えてください。

:::note
一部の DX12 ゲームは `prime-run` を使っても dGPU を正しく選択しないことがあります。
回避策として、`prime-run` ラッパースクリプトの前に環境変数 `VK_DRIVER_FILES=/usr/share/vulkan/icd.d/nvidia_icd.json` を追加してください。
:::

両方のグラフィックボードがオープンソースの Mesa ドライバで管理されている場合 (AMD+AMD, AMD+Intel, または Nouveau ドライバで管理される NVIDIA の dGPU を持つ Intel+NVIDIA など)、特別な設定は不要です。専用グラフィックカードを使うには NVIDIA 向けに説明した変数と同じように、アプリケーションやゲームの起動前に `DRI_PRIME=1` 環境変数を指定するだけです。以下で説明するグラフィカルな方法も利用できます。

## グラフィカルな方法

ターミナルから `prime-run` を使ってすべてのアプリケーションを起動するのが面倒な場合があります。幸い、一部のアプリケーションやデスクトップ環境では特定のアプリケーションに使用する GPU を制御するツールが提供されています。

### Lutris

Lutris でゲームを専用グラフィックスで実行するよう設定するには、設定 (ウィンドウ右下の三本線と「設定」ボタン) に移動してください。次に *"Global Options"* → *"Display"* に移動します。ここでゲームを実行する GPU をえらべます。

<br />
<ImageComponent imgsrc={import('~/assets/images/lutris-prime.png')} />

### Steam

Steam にはゲームを強制的に専用グラフィックスで実行する専用の設定はありません。ただしゲームを起動する前に歯車アイコンをクリックしてゲームのプロパティにアクセスし、「起動オプション」欄に prime-run コマンドや環境変数を追加できます。
以下は起動オプションの一例です。

```bash
prime-run %command%
```

忘れずに `prime-run` の後に `%command%` を付けてください。ゲームのオプションはプレースホルダーの後に、システムの環境変数やコマンドはその前に追加してください。

統合グラフィックスを使用してゲームを実行するには、以下のような起動オプションを指定してください。この例では Radeon 統合グラフィックスを使用しています。これにより、負荷が軽いゲームを実行するときに、バッテリー残量を節約したりファンのノイズを抑えられることがあります。

```bash
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:/usr/share/vulkan/icd.d/radeon_icd.i686.json %command%
```

<br />
<ImageComponent imgsrc={import('~/assets/images/steam-prime.png')} />

### KDE Plasma

Plasma にはアプリケーションを専用グラフィックスで起動する便利な方法があります。ただしこの方法は switcheroo-control パッケージとその対応サービスがシステムにインストールされている場合のみ動作します。

CachyOS では、このパッケージとサービスは chwd によってデフォルトで有効になっています。

```bash
sudo pacman -S switcheroo-control
sudo systemctl enable --now switcheroo-control
```

両方のコマンドを実行後、デスクトップまたはアプリケーションメニューの対象エントリを右クリックして *"プロパティ"* → *"アプリケーション"* → *"詳細オプション"* に移動してください。

*"グラフィックボードを使用して実行する"* のチェックボックスにチェックが入っているはずです。

<br />
<ImageComponent imgsrc={import('~/assets/images/plasma-prime.jpg')} />

:::note
switcheroo-control を使うと、NVIDIA の dGPU がない AMD-APU+AMD 専用など、すべての PRIME 構成でこれらのチェックボックスが機能するようになります。
:::

### GNOME

GNOME でも上記と同じく switcheroo-control をインストールし、アプリケーションアイコンを右クリックして *"専用グラフィックスで実行"* をクリックしてください。ただし GNOME はこの設定を保存しないため、次回アイコンからアプリケーションを起動しても専用グラフィックスではなく統合グラフィックスで実行されます。

### Cinnamon

Plasma と同じく、Cinnamon でも特定のアプリケーションに使用する GPU を指定できます。アプリケーションのデスクトップエントリを右クリックして「プロパティ」に移動し、該当オプションを有効にしてください。

<br />
<ImageComponent imgsrc={import('~/assets/images/cinnamon-prime.png')} />

利用できない場合は `switcheroo-control` がインストールされてサービスが有効になっているか確認してください。すべてのデスクトップ環境がこの機能において switcheroo-control に依存しています。

## トラブルシューティング

### 「PRIME 使用時に専用モニターの表示がとても遅い」

これは既知の NVIDIA ドライバの問題です。最新の NVIDIA ドライバをインストールし、Explicit Sync をサポートするコンポジタを使用する Wayland 上で実行してください。GNOME ではバージョン 46.2 で修正されました。Plasma 6 では 6.1 で修正される予定ですが、6.0 でもすでに通常のパフォーマンスが出ているというユーザーもいます。ほかの環境/ウィンドウマネージャーではまだこの問題があるため、修正するには GNOME や Plasma の最新バージョンに移行する必要があります。
