西川和久の不定期コラム

Core UltraにせっかくNPUが付いてるのでLLMや画像生成を動かしてみた!ミニPC「UH125 Pro」で

UH125 Pro

 MINISFORUMは、Copilotボタン付きのCore Ultra 5 125H搭載ミニPC「UH125 Pro」を販売中だ。編集部から実機が届いたので試用レポートをお届けしたい。また以前Core UltraでAI系を確認した時はうまくNPUを使えなかったので、今回追加検証も行なってみた。

Copilotボタン付きのCore Ultra 5 125H搭載ミニPC

 5月に同じプロセッサを搭載した「GMKtec NucBox K9」をご紹介し、Stable DiffusionもGPUでの動作になるが動かしてみた。

 今回のUH125 Proは、同じプロセッサであるため(後半のベンチマークテストで検証するが)おそらくパフォーマンス的にはSSDの差程度になるかと思われる。

 それ以外で大きな違いは、5Gigabit Ethernet×2、USB4×2、OCuLink×1、SDカードリーダそしてCopilotボタンの搭載。つまりUH125 Proは特にインターフェイス周りに結構気合いが入っているのが分かる。

 加えてベアボーンも用意され、手持ちのパーツでコストを抑えたい自作派には嬉しい配慮となる。主な仕様は以下の通り。

MINISFORUM「UH125 Pro」の仕様
プロセッサCore Ultra 5 125H(低消費2E+4E+8P/14コア18スレッド、最大クロック4.5GHz/キャッシュ 18MB、ベースパワー 28W/最大ターボパワー 115W、NPU 1.4GHz)
メモリ0/32GB(DDR5-5600×2/SO-DIMM最大各48GBまで)
ストレージM.2 2280 PCIe 4.0 SSD 0/1TB、M.2 2230 PCIe 4.0スロット1つ空き
OSWindows 11 Home(23H2)
グラフィックスIntel Arc Graphics/DisplayPort 2.0、HDMI 2.1、Type-C(USB4)
ネットワーク5Gigabit Ethernet×2、Wi-Fi 6E、Bluetooth 5.3
インターフェイスUSB 4×2、USB 3.1×2、USB 3.0、USB 2.0、3.5mmジャック、OCuLink×1、SDカードリーダー、Copilotボタン
サイズ/重量145×145×54mm、803g(実測)
価格7万5,980円(ベアボーン)、10万7,980円(32GB+1TB)

 プロセッサはCore Ultra 5 125H。低消費電力 Eコア×2+Eコア×4+Pコア×8の合計14コアで18スレッドとなる。最大クロックは4.5GHz、キャッシュ18MB。ベースパワー28W/最大ターボパワー115W。そして1.4GHzで動作するNPUを内蔵する。

 サポートするAIソフトウェア/フレームワークは、OpenVINO、WindowsML、ONNX RT。ただし、Copilot+ PCの要件は40 TOPS以上となっており、このSKUは未対応だ(Intel自体から該当するCPUは未だ出ていない)。

 ストレージはM.2 2280 PCIe 4.0 SSD 1TBと、M.2 2230 PCIe 4.0スロットが1つ空き。ちなみに以前ご紹介した、MINISFORUM「UM780 XTX」は、M.2 2280×2だったもののOCuLinkを使う時は片方にアダプタを接続するため、実質1基しかSSDは内蔵できなかった。しかし本機はOCuLinkは別にあり、このM.2 2230にはSSDを1基増設することが可能。細かいことだが、結構嬉しい対応だったりする。

 メモリはDDR5-5600 SO-DIMM×2。16GB×2の計32GB搭載。最大48GB×2の96GBまで。OSはWindows 11 Home。23H2だったのでこの範囲でWindows Updateを適応し評価した。少し疑問なのが、他社も含めミニPCはクラスに関係無くHomeだったりProだったり。この基準は何なのだろう? できればProにしてほしかった。

 グラフィックスはプロセッサ内蔵Intel Arc Graphics。外部出力用に、DisplayPort 2.0、HDMI 2.1、USB4を備えている。

 ネットワークは5Gigabit Ethernet×2、Wi-Fi 6E、Bluetooth 5.3。この連載で2.5Gigabit Ethernetではなく5Gigabit Ethernetは初めてかと思う。そのほかのインターフェイスは、USB 4×2、USB 3.1×2、USB 3.0、USB 2.0、3.5mmジャック、OCuLink×1、SDカードリーダ、Copilotボタン。USB 4×2と、外部へGPUなどを接続可能なOCuLinkがあるのはポイントが高い。ちなみにCopilotボタンは、これを押すとCopilotが開くものだ。

 サイズは145×145×54mm。重量は実測で803g。執筆時セール中で、ベアボーンで7万5,980円。32GB+1TBで10万7,980円。手持ちのパーツがあれば前者、無ければ後者となるが、構成を考えるとコストパフォーマンスはいいのではないだろうか。

前面。3.5mmジャック、USB4、USB 3.1×2。扉の写真から分かるように、右側面にSDカードリーダ
背面は、OCuLink、Type-C、5Gigabit Ethernet×2、DisplayPort、HDMI、USB 3.0、USB 2.0、電源入力
裏面とiPhone 13 Pro。四隅にゴム足、中央付近にVESAマウンタ用のネジ穴。iPhone 13 Proとほぼ同じ高さと少し大きめ
付属品。ACアダプタ(サイズ約80×80×30mm、重量286g、出力19V/6.32A)、HDMIケーブル、VESAマウンタ、ネジなど
BIOS / Menu。起動時[DEL]キーで表示
BIOS / Setup
重量は実測で803g
いつものキーボード付きモバイルモニターへ接続。USB4があるのでType-Cケーブル1本で接続可能

 筐体は同社いつも通りと言った感じのブラックベースのミニPCだ。ただし、iPhone 13 Proとの比較写真からも分かるように、最近ご紹介した中では一番大きい。重量は実測で803g。ACアダプタが286gなので合わせると珍しく1kgを超える。

 前面に3.5mmジャック、USB4、USB 3.1×2。背面はOCuLink、USB4、5Gigabit Ethernet×2、DisplayPort、HDMI、USB 3.0、USB 2.0、電源入力。右側面は扉の写真から分かるように、SDカードリーダを配置。裏は4隅にゴム足と中央辺りにVESAマウンタ用のネジ穴がある。そしてトップカバーにCopilotボタンと電源ボタン。

 特にCopilotボタンは設置場所が手が届く範囲に限定され、VESAマウントでモニターの裏に設置すると実質使えない。ここにCopilotボタンが必要なのか? は個人的には疑問だ(笑)。

CopilotボタンでON/OFFするCopilotパネル

 付属品は、ACアダプタ(サイズ約80×80×30mm、重量286g、出力19V/6.32A)、HDMIケーブル、VESAマウンタ、ネジなど。

 BIOS起動は[DEL]キー。ただし、いったんメニューが出て、SetupでBIOSに入れる。内部へのアクセスは、裏パネル4隅のゴム足を外すとその下にネジ。また周囲が爪で引っかかっているので、根気強く外す。ここまでは想定通り。この時、USB 3.1×2が本体とケーブルでつながっているので要注意!

 無事裏パネルが外れると、写真からも分かるように、CPUファンなどに覆われ、そのままではM.2スロットやメモリにアクセスできない。本体のヒートシンク側に6本、SSDのヒートシンク側に6本ネジがあり、計12本外すとやっと目当てのM.2 SSDとメモリが現れる。少し面倒だが(ベアボーンもある)、この程度は仕方ないところか。

四隅のゴム足の下にネジがある。外すとCPUファンなどで覆われている
さらに計12本のネジを外すと、SO-DIMM×2、SSD装着済みのM.2 2280と空きのM.2 2230が見える

 写真左手前が装着済みのM.2 2280 SSD、右側がM.2 2230空きスロット。その上にSD-DIMM×2がある。M.2 2230でも2TB容量のものがあるため、増設という意味では問題ないだろう。

 ノイズや発熱は試用した範囲では特に気にならなかった。写真からも分かるように、あれだけしっかり対策しているのが功を奏している感じだ。

Core Ultra 5 125Hで十分なパフォーマンス!

 初期起動時、特にインストールされたアプリなどはなく、Windows 11 Home標準のまま。最新鋭のCore Ultra/32GB/SSDなだけに、何をしてもサクサク動作しストレスは全く感じない。

 M.2 2280 1TB SSDは「KINGSTON OM8PGP41024Q-A0」。以前同社のOCuLink対応「MINISFORUM UM780 XTX」をご紹介したが、同じSSDを搭載している。C:ドライブのみの1パーティションで約952GBが割り当てられ空き900GB。BitLockerで暗号化されている。

 5Gigabit EthernetはRealtek 5Gigabit Ethernet、Wi-FiはIntel Wi-Fi 6E AX210、BluetoothもIntel製となる。またデバイスマネージャーにはNeural processorsの項目があり、タスクマネージャーにもNPUが追加されている。

初期起動時のデスクトップはWindows 11 Home標準
デバイスマネージャー/主要なデバイス。M.2 2280 1TB SSDは「KINGSTON OM8PGP41024Q-A0」。5Gigabit EthernetはRealtek 5Gigabit Ethernet、Wi-FiはIntel Wi-Fi 6E AX210、BluetoothもIntel製
ストレージのパーティションはC:ドライブのみの1パーティションで約952GBが割り当てられている。BitLockerで暗号化
タスクマネージャーにはNPUの項目が現れる

 ベンチマークテストは、PCMark 10、3DMark、Cinebench R23、CrystalDiskMarkを使用した。冒頭に書いた同じプロセッサ搭載の「GMKtec NucBox K9」と比較して、多少凸凹はあるものの、概ね同じ。この辺りのスコアがCore Ultra 5 125Hの実力と思って間違いなさそうだ。

【表】ベンチマーク結果
PCMark 10 v2.2.2701
PCMark 10 Score6,466
Essentials10,089
App Start-up Score13,645
Video Conferencing Score7,915
Web Browsing Score9,511
Productivity8,122
Spreadsheets Score10,290
Writing Score6,411
Digital Content Creation8,953
Photo Editing Score11,909
Rendering and Visualization Score8,476
Video Editting Score7,110
3DMark v2.29.8282
Time Spy3,265
Fire Strike Ultra1,766
Fire Strike Extreme3,453
Fire Strike6,879
Sky Diver25,130
Cloud Gate31,537
Ice Storm Extreme140,801
Ice Storm165,638
Cinebench R23
CPU14,706
CPU(Single Core)1,704
CrystalDiskMark 8.0.5
[Read]
  SEQ    1MiB (Q=  8, T= 1):  4791.854 MB/s [   4569.9 IOPS] <  1747.78 us>
  SEQ    1MiB (Q=  1, T= 1):  2260.255 MB/s [   2155.5 IOPS] <   463.73 us>
  RND    4KiB (Q= 32, T= 1):   523.967 MB/s [ 127921.6 IOPS] <   242.21 us>
  RND    4KiB (Q=  1, T= 1):    65.839 MB/s [  16074.0 IOPS] <    62.07 us>

[Write]
  SEQ    1MiB (Q=  8, T= 1):  3795.278 MB/s [   3619.5 IOPS] <  2201.64 us>
  SEQ    1MiB (Q=  1, T= 1):  3213.269 MB/s [   3064.4 IOPS] <   326.06 us>
  RND    4KiB (Q= 32, T= 1):   458.777 MB/s [ 112006.1 IOPS] <   285.52 us>
  RND    4KiB (Q=  1, T= 1):   160.366 MB/s [  39151.9 IOPS] <    25.45 us>

NPUを明示的に使うにはどうすればいいのか?

 「GMKtec NucBox K9」の時、AUTOMATIC1111を動かしてみたが、結局NPUでは動作せず、OpenVINOにおいてはGPUでの動作となってしまった。その後、いろいろ調べたのだが、当時より少し環境が整っていることが分かった。

 まず手始めにNPUドライバをアップデートする。ここが古いままだと動かないケースが多いようだ。これで準備OK。

 まずLLMから試してみよう。ここにコードがあるので、たとえばtest.pyで適当なフォルダへ保存する。環境は(要Miniconda)、

conda create -n llm python=3.10.6
conda activate llm
pip install torch
pip install intel_npu_acceleration_library

これだけ。あとはpython test.pyで起動する。

TinyLlama/TinyLlama-1.1B-Chat-v1.0がNPUで動作中

 初めはModelをダウンロードするので時間がかかるものの、「TinyLlama/TinyLlama-1.1B-Chat-v1.0」は小型なのでさほどかからない。動き出すと「What is the meaning of life?」を自問自答するループがずっと動いている(笑)。この時、メモリは0.6GB、NPU使用率は40%ちょっと。まだ余裕がある。とはいえ、CPUが100%に張り付いている(笑)。

 Core Ultra 5 125H搭載のNPUはCopilot+ PCの40TOPS未満の性能。従って未だ見ぬCopilot+ PC対応のIntelプロセッサが出てきた時は面白そうだ。

 pip install intel_npu_acceleration_libraryからも分かるように、これはIntelプロセッサのNPU限定のプログラム。AMDや既にCopilot+ PCで販売しているArm系Snapdragon X Plus/Eliteでは動かない。この辺り、各社の動きも含めしばらく追う必要があるだろう。

 前回同様、AUTOMATIC1111のOpenVINO対応版を動かしたところ、「Accelerate with OpenVINO」を選択。「Select a device」でGPU.0(GPU)とGPU.1(NPU)が出てきたので、行けるか? と思ったものの、コンパイル中に落ちてしましった。

 ほかに何かあるのか、と調べるとGIMPの「OpenVINO AI Plugins for GIMP」でNPUを使えるということなので試してみた。手順はここの通りだが、少し面倒なので、ここの記述が分かる人限定と思った方が無難かもしれない。

GIMPのOpenVINO AI Plugins for GIMPを使い画像を生成しているところ。LCMモデルで8 Stepsにすると約5秒!

 インストールが完了してGIMPが起動したら、「Layer」→「OpenVINO-AI-Plugins」→「Stable diffusion」でパネルが開く。「Advanced Settings」をチェックすると、一番上のModel Nameに加え、見慣れたPrompt、Negative Prompt、生成する数、Steps数、CFG、Seedなどが出てくる。一番下のPower Modeは固有の機能で、Power mode / Best Performance / Best Power Efficiencyの3択。項目に応じて、何をCPU/GPU/NPUに振り分けるかとなる。

 今回は「Best Power Efficiency」したところ、Text: NPU、unet: NPU、Vae: GPU.0に振り分けられた。加えてStep数が少なくできるLCMモデルだと8 Stepsで512x512の画像生成が約5秒と、それなりに速い。この状態ではNPU使用率はほぼ100%、メモリは2GB少しを使用。これなら結構実用的に楽しめそうだ。

 ただGIMPだと使いにくいというユーザーも少なくないだろう。できればAUTOMATIC1111やComfyUIなど、生成AI画像アプリとして一般的なものに対応してほしいところだ。

 今回はLLMと画像生成をNPUで動かすことに成功したが、まだ対応環境は出始めたばかり。これからに期待したい。どちらもこの速度で動くなら、筆者のようなマニアック用途(笑)はともかくとして、普通の人ならプロセッサ内蔵NPUだけで済む日が、そう遠く無い時期に来るかもしれない。


 以上のようにMINISFORUM「UH125 Pro」は、Core Ultra 5 125H/32GB/1TBを搭載したミニPCだ。加えて5Gigabit Ethernet×2、USB4×2、そしてOCuLinkにも対応し、拡張性という意味でなかなか魅力的。ベアボーンも用意されコストを抑えられるのもポイントが高い。NPUに関してはこれからに期待だが、その入り口を本機で試すことは可能だ。

 特に気になる部分もなく、Core Ultra 5 125H搭載で、「後からいろいろしてみたいかも!? 」……っと思っているユーザーにお勧めの1台と言えよう。