Windows11のHyper-Vで作成したWindows10クライアント上でGPUを動かす

概要

Windows11のゲストOS上でGPUパススルー出来ればいいなと思ったのでメモ。

方法

ググるとここなどにやり方を書いているのですが、どうもうまくいかない。
結局ここのやり方でうまくいきました。

ゲストOS

設定は次の通り。

  • 世代は2で作成
  • チェックポイント無効
  • メモリは固定
  • セキュアブート有効

ファイルコピー

  • ホストOSのC:\Windows\System32\DriverStore\FileRepository\以下にあるnv_dispi.inf_amd64で始まるフォルダをゲストOSのC:\Windows\System32\HostDriverStore\FileRepository\ 以下にコピー
  • ホストOSのC:\Windows\System32\以下にある nvで始まるファイルをゲストOSのC:\Windows\System32\にコピー

ホスト側からの設定

ここでいったんゲストOSを停止して、管理者モードで起動したPowerShellコマンドプロンプトから以下を打ち込む

$vm = "ENTER YOUR VM NAME HERE"
Remove-VMGpuPartitionAdapter -VMName $vm
Add-VMGpuPartitionAdapter -VMName $vm
Set-VM -GuestControlledCacheTypes $true -VMName $vm
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm

確認

ゲストOSを再度起動する。デバイスマネージャーからGPUが有効になっていることを確認。
タスクマネージャーではGPUが見られないので、Terminalなどで半透明にしたものが、透けて見えることで確認

ベンチマーク

FinalFantasy XV のベンチマークやってみました。

ホストOS

  • Windows 11 Pro
  • RTX 2060
  • memory 32G
  • Core i7 12700

ゲストOS

  • Windows 10 Pro
  • RTX 2060
  • memory 16G
  • Core i7 12700 CPU 10コア

ベンチマークパラメタ

  • 高画質 2560×1440 ウインドウ
  • ホストOS: 5025
  • ゲストOS: 3960

若干ゲストOS側が悪くなりましたが、まあ使えるレベルですね

cygwin+python+mecab+PyCharmで開発環境を作る

概要

MacからWindwosに乗り換えて一番困るのが開発環境。Pycharmを使ってのpythonの開発はMac以上に面倒です。
WindowsはWindows用のコンパイルされたpythonやmecabを使うのが一般的ですが、モジュールの追加など結構面倒なので、Cygwinを使っている人も多いと思います。
今回、Cygwin上にPythonとMecabをインストールし、それをPycharmから使う環境を作成したのでメモを残します。

環境

* windows 10
* cygwin x86_64
* pycharm 2017.1

cygwinのインストール

ここからsetup-x86_64.exeをダウンロードしインストールします。特別なことは何もしません。通常にインストールします。
余裕があればapt-cygを入れておくと便利です。

pythonのインストール

cygwin上にpythonを入れておきます。自分の場合には2.7系を入れます。

teratermのインストール

cygwinのターミナルは使いにくいのでteratermを入れておきます。teratermにはcygwin用のTerminalもついているのでそちらを起動してCygwinにログインします。

mecabのインストール

Mecabのインストールはソースコードからインストールします。Mecabのバージョンは0.996を使いますがそのままではコンパイルできないので、こちらのパッチを用いてインストールします。

$ tar zxvf mecab-0.996.tar.gz
$ patch -p1 -d ./mecab-0.996/ < ./mecab-0.996.patch
$ cd ./mecab-0.996
$ ./configure --with-charset=utf-8; make; make install

nkfのインストール

nkfをソースからインストールします。
こちらからダウンロードしインストールします

$ ./configure
$ make
$ make install

ipadic

こちらからipadicをダウンロードします。ソースコードになります。これをコンパイルするのですがそのままだとどうも文字化けしてしまいます。ので、UTF-8に変換しておきます

$ tar zxvfp mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ for f in *;do nkf --overwrite -w $f ;done
$ ./configure --with-charset=utf-8

環境変数

windowsの環境変数を設定します。システムの詳細設定から、システムのプロパティを開き、詳細設定タブの環境変数からpathに以下を追加しておきます。これでWindows側からもCygwinのコマンドが呼び出せます。

c:\cygwin64\bin
c:\cygwin64\usr\bin
c:\cygwin64\usr\local\bin

python-mecab

pipでインストールするとエラーになります。ソースコードからインストールします。ここからmecab-python-0.996.tar.gzをダウンロードしコンパイルします

$ tar zxvfp mecab-python-0.996.tar.gz
$ cd mecab-python-0.996
$ python setup.py build
$ python setup.py install

pycharm

ここからダウンロードしインストールします。
インストールしたのちにfileメニューのdefault settingsからproject interpreterを選択し、c:\cygwin64\bin\python2.7.exeを設定します

これでPycharmからCygwinのPythonを利用できます。

Windows7 HomePremiumでRemoteDeskTopServer

Windows7 HomePremiumでRDTを使おうとした際のメモ

  • サーバ側

Windows7 Home Premium SP1

  • クライアント側

iMac OS 10.9

まず、Windows7側にパッチを当てます。この辺りを参考にConcurrent_RDP_Patcher.zipをダウンロードし、パッチを当てるだけ。チェックボックスは2つとも外してももんだありません。

http://blog.livedoor.jp/rappazubon/archives/51943235.html

http://orebibou.com/2014/05/windows-7-home-premium%E3%81%A7%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E3%82%92%E6%9C%89%E5%8A%B9%E5%8C%96%E3%81%99%E3%82%8B/

次にはまったのがMac側。最初↓のMicrosoftRemoteDesktopを使用し接続しようとしてもエラー。

https://itunes.apple.com/jp/app/microsoft-remote-desktop/id715768417?mt=12

mac側からnmapでWindowsのポートを調べても特に問題なく3389ポートは開いている。

実はこのMac側のクライアントが悪かったようです。こちら↓のRemoteDesktopConnectionを使用すると問題なくつながります。

http://www.microsoft.com/ja-jp/download/details.aspx?id=18140

参考まで