残業代で衝動買いしたMini PCとeGPUで遊ぶ

# 最初に
ゲーム目的ならサイズに余裕のあるデスクトップにしましょう
MiniPC＋eGPUでゲームとか最高にコスパが悪いです、完全に趣味の世界です
・・・でもちょっとだけワクワクしてきませんか？

※YoutubeのMiniPC紹介系動画に影響受けてます、企業案件なのかな？知らんけど、、、と思いつつも、3月の残業代でIYHしてしまったぜ

# 買ったものはこちら
- Minisforum EM780（超ざっくり10万円、メモリ32GB＋SSD 1TBの構成を選択）
CPUに7840Uを採用したいわゆるMiniPC
AMD系だと7840HSや7940HSが主流のようだけど、TDP低めのCPUを採用した恩恵なのかUSB PD給電(65w)で動作が可能(というかUSB PDしか給電方法がない)
iGPUとしてRadeon 780M 搭載
USB4がフロントとリアで2口ある
Minisforumの他モデルは比較的内部パーツにアクセスしやすいが、このモデルは無理だと思っていたほうが無難

プラスチッキーでちょっとチープな感じがする

細かい仕様はこちら
https://store.minisforum.jp/products/minisforum-em680

- GPD G1 2024（超ざっくり10万円）
USB4(thunderbolt3、4)、またはOcuLinkで接続できるeGPU
Radeon RX 7600M XT 搭載
ACはGaNで本体に内蔵、USB4でPC側にPD65W給電が可能←ここ大事

細かい仕様はこちら
https://www.gpd.hk/gpdg1graphics

![IMG_0184.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124801/56892600-d3e0-7d45-4307-e142943b95f9.jpeg)

# 結線
PCは小さくてもACアダプタがごついと萎えますがこの構成だとそれがないです！

電源タップ
↓
↓（電源ケーブル接続、ACアダプタはGPD G1のほうに内蔵）
↓
GPD G1→→→ディスプレイ（Display Port接続）
⇅
⇅（USB4ケーブル接続、↑PCI-Express、↓USB PD 65W）
⇅
EM780

細かいこと言うとDisplayポートはHDMI変換してたり、
無線マウスキーボードのドングルとかUSBスピーカーとかささってます
※USB4が一つ空いているのでGPD G1はもう一つ追加できるかも？しないけど
→電源を冗長化できるって考えればありな気がしてきた

# eGPUの導入
iGPUが同じRadeonなので、AMD Software Adrenalin EditionがOSにプリインされてました
なので特に何かしなくてもeGPUを認識してくてました
※iGPU側にはディスプレイを接続してないのですが、なぜか1980x1080のディスプレイが認識されてましたので、OS側の設定で無効化(切断設定)しました

# OS上から確認
 - タスクマネージャー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124801/2d399950-1e60-857d-ae86-288325e33d05.png)
 - CPU-Z
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124801/752aa721-e037-f6d5-d5fd-8fac991e5dd6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124801/109cbec1-84c8-20cf-9541-cef3c2413469.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124801/c2754a20-0894-b43f-dcb8-2a253c87f5e9.png)
※メモリはオンボードなので交換不可だが、SK Hynixのチップっぽい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124801/b4ab50c6-e485-4fd2-bb9a-c30bac952e0d.png)
※iGPU（UEFI上で専用メモリ8GB割当してます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124801/c54ca067-36f4-1b26-4380-11f3fb40f0f7.png)
※eGPU
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124801/4a8d6e6a-59c9-29ed-16a5-84a6d4bb66a4.png)

# 使用感
負荷をかけてないのに、EM780本体が結構熱を持つのが気になります
ゲーム性能は今のところは、特に不満はないです
（とはいえ今のところ原神と地球防衛軍6ぐらいしかやってないんですが）
※普段使いで気づいたことがあれば追記するかも

# マルチGPU（非対称）環境を有効活用してみよう
SteamのゲームをDiscordで配信しながらだと、
自作のVOICEVOX-TTS-Botの音声合成に遅延が発生してました
なので、使っていないiGPUにTTS変換をやらせてみます
※iGPUのRadeon 780Mは結構パワーがあります

基本的には前回公開した記事とやることは変わりません
https://qiita.com/kmatsumoto630823/items/59841ef95e59358d5ab5

今回はWindows11上でOnnxruntime1.17.1をビルドしたんですが
下記が必要になりました
 - Visual Studio Build Tools 2022
 - Cmake 3.29
 - Git 2.44
 - Python 3.12
※Windows 10 SDKもいるかもしれません

※1.17.3は/Qspectreがデフォルトでオンになるのか、Build Tools側の機能追加が必要そうでまだビルドできてないです

ビルドして出来上がったdllファイルをVOICEVOXデフォルトのものと差し替えます
 - onnxruntime.dll
 - DirectML.dll

環境変数をセットして起動します
※DirectML的には0番目がeGPU、1番目がiGPUでした
```bat
set ONNX_DML_DEVICE=1
"C:\Program Files\VOICEVOX.\run.exe"  --use_gpu
```

VOICEVOXがiGPUを使うようになり、ゲーム中でもTTS-Botの遅延がなくなりました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124801/35b3c794-f7bb-6470-12c7-afc818367345.png)

# Windowsのライセンスについて
中華PCだとWindowsがボリュームライセンスということがあるらしいですね・・・
Home Editionなので問題ないと思うが一応確認します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124801/e7c62ac1-a48b-1c11-dccc-f0e70e39341f.png)

# 残課題
 - Ryzen AI Softwareを少し触ってみる
 （IntelみたいにDirectMLに対応してくれないかな・・・）

# 最後に
ゲーム目的ならサイズに余裕のあるデスクトップにしましょう（大事なことなので以下略）
ちなみに、私はわりと後悔してます(ストン)
似たようなことやるなら、
Asrock Deskmeet x600 + Ryzen 7 8700G + 適当なGPU
でよかったかなぁ・・・と思ってます(と言ってもサイズ感は全然違いますが)