こんにちは。シトリックスのコンサルティングサービス部の佐藤です。

働き方改革、テレワークといったキーワードが流行り言葉に留まらずすっかり定着した昨今、仮想デスクトップや仮想アプリケーションで実現できる業務の幅も、日増しに拡大しています。

数年前までは、CADのようなグラフィックデザインアプリケーションは、仮想化には向いていないというのが定説でした。リソース負荷が高いために集約効率が見込めないことと、画面転送に伴う描画品質やレスポンスなどの操作性低下がその主な理由として挙げられていました。しかしそれは過去の話。現在では、それらを補完する技術の発達により、仮想環境でのCADアプリケーションのパフォーマンスは大きく改善し、実業務への展開も進んでいます。

CADは製造業をはじめとする多くの業種で設計用途に利用されているため、扱うデータは極めてセンシティブなものとなります。仮想化を実現することで、設計データが外部に流出するリスクを低減するメリットも期待できます。今回の記事では、CADアプリケーションを仮想環境で最大限活用いただくために、抑えておくべき技術要素とポイントをご紹介していきたいと思います。

◆GPU
直列処理が基本であるCPUと異なり、並列処理が可能でグラフィック処理やディープラーニング処理のパフォーマンスを大きく向上させるチップセットがGPUです。GPUはCADを業務利用する場合の必須リソースと言えます。しかしCAD仮想化の黎明期には、GPUを論理的に分割することができず、仮想マシン1台に物理GPU1枚を割り当てる方式、すなわちパススルーしか選択肢がありませんでした。これが集約率を大きく低下させる要因でした。

その後、GPUの主要メーカーであるNVIDIA社を皮切りとして、各メーカーがGPUを論理分割する技術をリリースしました。Citrix Hypervisorを含む各ハイパーバイザー、およびCitrix Virtual Apps and Desktop (以下CVAD)もGPU論理分割に最適化するよう追従した結果、現在では仮想環境で高い集約率を実現することが可能となっています。

また、NVIDIA社のGPU論理分割機能(GRID vGPU)では、Equal Share SchedulerとBest Effort Schedulerという2つのモードが選択できるようになっています(※1)。Equal Share SchedulerはGPUの論理分割数に応じて能力を完全等分するモードです。例えばGPUを4分割した場合、各仮想マシンに25%の能力が占有で割り当てられます。そのため、各仮想マシンの性能は保証される一方で、物理GPUとして能力を使い切れない可能性もあります。Best Effort Schedulerは、物理GPUとして余力があれば、等分された能力値を超えて利用することができるモードです。どちらを選択するかはケースバイケースですが、一般的にはGPUの論理分割数が多い場合ほど(目安としては4分割以上)、Best Effort Schedulerの方がGPUの利用効率は上がると言えます。このような論理分割にあたってのオプション機能も、集約率向上に寄与しています。

◆HDX 3D Pro
論理分割されたGPUを仮想デスクトップ環境で最大限活用するため、Citrixが実装した最適化機能がHDX 3D Proです。NVENC、無損失圧縮などの機能から構成されています。

HDX 3D Proは仮想デスクトップを提供するリソース、すなわちVDA(Virtual Delivery Agent)に対して適用されるモードです。なお、CVAD 7.15 LTSR以前のバージョンでは、VDAをインストールする際にHDX 3D Proモードを有効にするオプションがありましたが、CVAD 7.16 CR以降では、この指定はなくなりました(CVAD 7 1912 LTSR含む)。これはHDX 3D Pro自体が廃止されたわけではなく、VDAインストール時に仮想マシンにGPUが搭載されているかを判別し、GPUを認識した場合はHDX 3D Proモードが自動で有効になる挙動となったためです。そのため、ユーザーが明示的に指定せずとも、最適化機能が利用できるようになっています。

以下に、このモードで利用できる機能についてご紹介します。

-NVENC:HDX(ICA)転送を行う際の圧縮処理を、CPUではなくGPUにオフロードする機能です。前述の通り、CPUよりもGPUの方がグラフィック処理に向いているため、転送効率の向上が見込まれます。設定はCitrixポリシーで設定でき、「ビデオコーデックにハードウェアエンコーディングを使用します」という項目を「有効」と指定することで有効にできます。

-無損失圧縮:HDX 3D Proモードで選択可能な圧縮方式です。現在のHDXでは、圧縮にはデフォルトではH.264が利用されます。これは動画を圧縮する際のオープンな規格で、転送フレームの予測機能を用いることで、転送量を抑えながらある程度の品質を確保できる転送方式です。しかし一部の画素が欠損するため、厳密には元と同じ画質に解凍することができず、結果画面の滲みなどが発生します。一方、無損失圧縮は可逆圧縮とも言われ、圧縮前と同じフレームに復元することが可能な転送方式です。このモードを利用することで、画面の滲みやチラつきは回避されますが、圧縮率は低いため転送量が増加するという面も持ちます。設定はCitrixポリシーで設定でき、「表示品質」という項目を「常に無損失」と指定することで有効にできます。

-視覚的無損失圧縮:無損失圧縮に限りなく近いですが、人間の目にはほとんど差分を認識できないデータを切り落として転送する方式となります。無損失圧縮よりもやや転送量は低下します。画質の低下はほとんどわからないレベルとされていますが、高輝度のモニターで業務をしている場合は差に気づくケースもあります。設定はCitrixポリシーで設定でき、前述の、「表示品質」という項目を「常に無損失」としたうえで、「視覚的無損失の圧縮を使用する」という項目を「有効」と指定することで有効にできます。

なお、無損失圧縮、および視覚的無損失圧縮のモードともに、「表示品質」を「操作時は低品質」と指定することもできます。この場合、画面内で静止しているエリアは無損失圧縮となり、動作が発生している箇所は表示品質を落とした高い圧縮率とするモードとなります。なお、この際の低品質モードとは、H.264よりもさらに圧縮率の高いJPEG圧縮となります。

   

◆フレームレート
HDX 3D Proモードに限定された設定ではありませんが、フレーム数(HDX画面転送のコマ数)を変更することでユーザーの操作感を向上することができます。これもCitrixポリシーで設定でき、「ターゲットフレーム数」という項目で秒間ごとに転送できるフレーム数の上限を指定しています。デフォルトは30で、最大60まで指定することが可能です。ただし、値を大きくしすぎると転送量の増加につながる点に注意が必要です。 なお、前述のNVIDIA GRID vGPUにおけるBest Effort Schedulerでは、vGPU側で生成できるフレーム数がFRL(Frame Rate Limiter)という機能で秒間60フレームにキャップされています。コマンドでFRLを解除することも可能ですが、HDX転送での上限も秒間60フレームであるため、CVAD環境で利用する際には、解除してもメリットはないと言えます。

◆描画品質とネットワーク転送量の実際
ここまでの内容を踏まえ、実際に検証環境で各種設定の動作を確認し、転送量を調査した結果をまとめました(※2)。転送量はVDA側でモニターを開始し情報を取得しています。すなわち、送信量の欄がHDX転送によって発生したネットワーク転送となります。

No. モード 総送信量(GB) 平均送信速度(Mbps) 総受信量(MB) 平均受信速度(Mbps)
1 無損失圧縮

+ 常に無損失

2.17 8.864 29.76 0.119
2 視覚的無損失圧縮

+ 操作時は低品質

1.292 4.699 19.884 0.071
3 H.264 – 中品質

(デフォルト)

1.522 6.317 24.602 0.1

結果としては、「無損失圧縮+常に無損失」が最も転送量が多くなりました。また、「視覚的無損失+操作時は低品質」はデフォルトのH.264よりも転送量が少なくなっています。これは意外に思われるかもしれませんが、前述のように、「操作時は低品質」を指定すると、動作が発生している箇所はH.264よりも更に圧縮率の高いJPEG圧縮となることが理由と考えられます。

また、いずれの転送モードにおいても、数Mbpsの帯域幅が消費されている点にご注目ください。利用の度合いにもよりますが、CADアプリケーションを快適に利用するためには、相応のネットワーク帯域が必要となります。

なお、各転送モードで意図的にネットワーク帯域幅を絞って検証すると、操作感には顕著な違いが確認できます。無損失モードの場合は、各フレームのサイズは落とせないため、結果フレーム自体が欠損することになります。これはユーザーからは「カクつき」として認識されます。一方、H.264は自動調整の機能が働くため、各フレームの品質を落として転送することになります。これはユーザーからは「滲み」「チラつき」として認識されます。

現実には、業務で使われる図面データやユーザーの操作内容、求めるレベルに依存するため、一択でこれが最良というパラメータを提示することはできません。また、操作感というものは定量的に評価することが困難です。そのため、CADの仮想化をご検討いただくにあたっては、ここまでのポイントを抑えたうえで、早い段階で概念検証(PoC)を実施し、業務利用するユーザーの意見を聞きながらチューニングをしていくことが最も重要なステップとなります。

以上、長くなってしまいましたが、CAD仮想化のポイントについて説明させていただきました。本記事の内容が、CAD仮想化検討の一助になれば幸いです。
それではまた、次の記事でお会いしましょう。

※1 クラウド事業者向けのFIXED SHARE SCHEDULERもありますが、本稿では割愛いたします。
※2 図面データの表示や拡大・縮小、回転などをバッチ実行するソフトウェアにて計測しました。vGPUはすべて同等、ターゲットフレーム数上限は60で統一しています。また、転送モードの組み合わせは他にも多数ありますが、主要なものを抽出しています。この結果は、あくまで一例としてご理解ください。