今回NVIDIA H100 GPUを触らせていただける機会があったのでそれを記事にします。
事前準備
OS: Windows Server 2022
CPU: Xeon
GPU: H100
普通にWindows Server 2022を入れて、ドライバーを一通りいれます。H100のドライバはData Center Driver For Windowsというやつです。
それからHyper-Vを追加して、VMがネットワークに繋がるように設定すれば準備完了です。
VMのスペックは8コア8GBくらい用意しておけば大丈夫です。
構築
今回パススルーなのは、H100のパワーを使うという意味もありますが、そもそもGPUを分割割り当て出来るGPU-PVは対応してませんでした。認識しないものもあるのだと思います。
パススルーでGPUスコアを回しても数値は上昇するもののH100と表示されなかったので、あくまで機械学習用ですね。。
ではさっそくパススルーをしていきましょう。Hyper-VではDDAというパススルー技術があります。
パススルーは簡単で、このドキュメントにあるスクリプトをちょっと変えて実行してあげるだけです。
#Configure the VM for a Discrete Device Assignment $vm = "ddatest1" #Set automatic stop action to TurnOff Set-VM -Name $vm -AutomaticStopAction TurnOff #Enable Write-Combining on the CPU Set-VM -GuestControlledCacheTypes $true -VMName $vm #Configure 32 bit MMIO space Set-VM -LowMemoryMappedIoSpace 3Gb -VMName $vm #Configure Greater than 32 bit MMIO space #H100だとデフォルトのHighMMIOではリソースが足りないとエラーが出るのでかなり多く設定します。 Set-VM -HighMemoryMappedIoSpace 1024GB -VMName $vm #ここは手動でデバイスマネージャでGPU無効化にするだけでもOK #Find the Location Path and disable the Device #Enumerate all PNP Devices on the system $pnpdevs = Get-PnpDevice -presentOnly #Select only those devices that are Display devices manufactured by NVIDIA $gpudevs = $pnpdevs |where-object {$_.Class -like "Display" -and $_.Manufacturer -like "NVIDIA"} #Select the location path of the first device that's available to be dismounted by the host. $locationPath = ($gpudevs | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths).data[0] #Disable the PNP Device Disable-PnpDevice -InstanceId $gpudevs[0].InstanceId #locationPathはデバイスマネージャからGPUのプロパティ→詳細→場所のパスに書いてある #Dismount the Device from the Host Dismount-VMHostAssignableDevice -force -LocationPath $locationPath #Assign the device to the guest VM. Add-VMAssignableDevice -LocationPath $locationPath -VMName $vm
これでH100が割り当てられたので次はVMにホストと同じのData Center Driver For Windowsドライバをインストールします。
H100がデバイスマネージャーに現れたら成功です。
検証
stable diffusionも導入して動かしてみました。H100だと3秒くらいで出てきて流石って感じです。
今回は以上です。H100はとんでもない性能ですね。一個欲しいな~と思いました。車買える金額なんでしょうが、、、またAI系の記事が書く機会があれば書きたいですね。。。