CoreMLの実験(dGPU無い勢)

今年はNPUが半導体界隈でのキーワードでしょう。

岡山のAI勉強会でもUSB接続などのNPUを持ち込んで見せてくださる方などが居て雰囲気はありましたが、インテルAMDがCPU内包の実機を出せば話は早いですね。

 

bleu48.hatenablog.com

 

他にも以前書いた「APUでDirectML」のページへのアクセス数が急増しておりdGPU無し勢にも何やら雰囲気が出てきました。

bleu48.hatenablog.com

 

スマホ界隈の方が動きが早くてNPUはAndroidでもiOSでも標準化されています。この影響でAppleの方がARMに乗り換えてからNPU搭載でも先行した形になっていました。

将棋界隈でも既に実装された例があります。

 

select766.hatenablog.com

 

世界選手権でもiPhoneで参加されるなど色物扱いですが、棋力はもちろん実装力を見せつける形になっていると個人的に注目しています。独創賞受賞されたはずです。

 

インテルAMDの実機を触る前にすこし遊んでみようということでうちの方でも下記の例を試してみました。

onnxruntime-silicon · PyPI

GitHub - cansik/onnxruntime-silicon: ONNX Runtime prebuilt wheels for Apple Silicon (M1 / M2 / M3 / ARM64)

 

手持ちには一番安いM1 MacBookがあります。これもNPU搭載実機です。

パフォーマンス的には以前計測した感じではGTX1050TiやGTX1060と争う程度です。

ねね将棋とは違いますが,手持ちの二番絞りモデルを簡単に実装したモデルで動かしてみました。

 

探索ノード数が少ないので、floodagteで勝った一局でも相手が即詰みで負けを読み切っているに手数かかって勝つ場合や互いによく分からず頓死するなど以前のAIとは相当異なる挙動を示していて面白い。

ns_m1 vs. nshogi-tE-mL-nps8000 (2024-01-28 10:30)

AobaZero_w4361_kld_avg_3200p vs. ns_m1 (2024-01-28 11:30)

探索深さで優る相手に勝つにはこういう勝ち方になることもある。 

Suisho5_750_473stb_1000k vs. ns_m1 (2024-01-28 15:30)

 

省電力で落ちたりWiFiが切れたりでレートが安定しないながらも3700は超えてきて実用にはなりそうな感じです。

NPU搭載機はハードウェア的にもう一皮剥けたらdGPU無しでもそこそこ面白いことになるかもしれません。

 

とりあえず,次の目標はRyzen 7 8700Gの入手でしょうか。

---

 

追記(02/11):

CoreMLでのonnxruntimeの使い方をまとめて頂いたのでリンクしておきます。

これでpython-dlshogi2なども動きます。

README.md · GitHub

---

 

追記2(03/07):

上記のPyPIのonnxruntimeですが更新が止まっています。

理由は明白で本家がCoreMLにデフォルト対応したそうです。普通にonnxruntime入れるとCoreML Execution Providerが使えます。

Please release 1.17.0 · Issue #16 · cansik/onnxruntime-silicon · GitHub