Nishiki-Hub

国内外のPC/PCパーツ/スマホ/Appleなどの最新情報を取り上げています

【編集後記】自分や職場のPCにお金をかけて性能を求める時代は終わったのか 〜 ゲームも仕事も演算も「クラウド」上で

ハイスペックなPCを自分で持つことは、作業効率や生産性の向上をもたらす最強の方法の一つです。ただし、スペースや環境、モビリティそして金銭的な問題からハイスペックな環境をすべての人が求めるということはもちろんできません。

そうした課題を打ち砕くためにどんなことができるのでしょうか。

通信の進化

双方向の「Web2.0」や、オンライン動画などの「動的コンテンツ」のような概念の登場、スマートフォンの登場と普及、コロナ禍においてのリモート、そしてそれ以前から存在しているインターネットコンテンツのリッチ化に伴い、通信インフラというのは進化し続けています。現在は、都市圏において10Gbps通信が普通に使えるようになりましたし、一般的な家庭でも1Gbps通信がネイティブになりつつあります。ワイヤレス通信速度では5GやWi-Fi 6がついに実測値として1Gbpsを余裕で超えるようになりました。

通信技術において、リアルタイム性を確保するのに必要なのは帯域だけでなく遅延の少なさも重要です。4Gを転用した5Gにおいてはこの遅延を極限まで抑えることができました。これはすなわち、大容量低遅延というこの上ない素晴らしい通信が実現できたということになります。

話は変わります。コンピュータというのは、いかなるものであっても入力と出力を要します。例えば、パソコンであれば、キーボード・マウスが入力、ディスプレイ・スピーカーが出力です。

そしてPCのローカルな環境では、キーボードの入力から、モニターへの出力まで遅延がほぼありません。数ミリ秒のレベルです。

ただしこれは、コンピュータと入出力が物理的に近いためでもあります。つまり「近いから過程が短く遅延がない」と言い換えれてしまうわけです。操作するPCとユーザーが100mも離れてるなんてことは基本的にありません。せいぜい長くて3mです。

ならば、遠くても遅延が少なければ、近くにないコンピュータを操作できるのではないでしょうか。というのが今回の本題です。

Google Stadia

遠くのコンピュータを操作する。SSHとかリモートデスクトップとかもそのたぐいですが、今回はリモートデスクトップに近い話になります。

前述の通り、遅延が少なければ遠くのコンピュータもローカル(目の前にある)PCのように操作できるのではないか・・・というのをゲーミング用途で実現したサービスがあります。それがGoogleのStadiaというサービスです。このサービス、今はかなり廃れている(というか全盛期もクソもなかったけど)状態ですが画期的かつ面白かったのです。

このサービスのウリ文句は「処理能力が高くないPCでも快適に3DCGゲームを遊べる!」というもの。その仕組は、負荷のかかるゲームの処理と描画は高性能なサーバー側で行って、クライアント(プレイヤー)側で処理するのはと「表示すること」のみ。

仕組み

話はちょっとだけ逸脱する部分もありますが、Stadiaの面白い仕組みを解説。といっても、GeForce NOWとかも似たようなものですが。

興味がなければ飛ばしてください。

一般的なゲームプレイ

一般的なオンラインゲームプレイはこの図の通りの順番に処理されます。

  1. 【クライアント】ユーザーからの操作を受け取る
  2. 【クライアント】操作を処理してサーバーに送る
  3. 【サーバー】クライアントから受け取った操作データをもとにゲームの処理(ex.座標の移動・プレイヤーの干渉・イベントの進行)
  4. 【サーバー】処理後の結果をクライアントに送る
  5. 【クライアント】受け取ったデータをもとにシーンを生成する
  6. 【クライアント】シーンをモニターに表示する

サーバーでの処理のされ方。すべてがこうではありませんが、クライアントからの操作データをもとにした座標の移動の処理、ゲームプレイヤー間の干渉(キルとか)、ゲームイベントの進行などがサーバー側で行われているものと考えられます。

一方でクライアント側では、サーバー側から送信されたデータと、クライアントに保存されたデータ(地形・3Dモデル・UIなど)をもとにシーンを生成します。このとき1秒間にいくつシーンが生成されたのかというのがフレームレート(FPS)というわけです。

これに加えて物理エンジンがどっかで走るので、高性能な性能(とくにグラフィックス)が求められるわけです。

対して、Stadiaというのはクライアントでの処理もサーバーで行おうとする仕組みとなっています。

Stadiaの簡略的な図

Stadiaでは、高性能なサーバーでマルチプレイの処理だけでなく、一番負荷の掛かる部分である描画処理(シーンの生成)まで行います。そして、生成されたシーンをクライアントに送信します。このとき、シーンの送信はYouTubeと同じものを使います。

つまり、PCからしてみれば操作は受け付けて送るものの、受け取るデータはただのYouTube動画であるわけです。これによって、YouTubeが見れる程度の性能とネットワークがあれば高性能なサーバーをゲーミングPCに見立ててゲームをすることができるわけですね。


先述の通信の進化も踏まえてStadiaを大雑把にまとめると「クライアントPCを窓口に遠くにあるPC(サーバー)を操作する」ということになります。

Stadia Controller(出典:GAME Watch

Stadiaは普通のゲームコントローラーでも遊ぶことができますが、このStadia Controllerでも遊ぶことができます。Stadiaの仕組みも面白いですが、このコントローラも面白いのです。

仕組みにて話したとおり、Stadiaではゲームの処理すべての実体がサーバーにあります。クライアントPCはその窓口です。そしてコントローラとPCはローカルでBTとか有線でつながっています。ただ、クライアントPC - サーバー間はインターネットでつながっています。

つまり操作から表示までの順序は以下の図のようになります。

通常のコントローラでStadia

ただ、Stadiaではもっと簡略化することができますよね?

Stadia ControllerではWi-Fiに直接接続します。つまりクライアントPCをパスするのです。先程の図を書き換えます。

Stadia Controllerを使ったデータの道順

これによって、サーバーにいる自分を直接操作することができ、コントローラ - クライアントPC間の遅延をなくすことができます。

そして、これを用いれば入力時にクライアントPCの処理能力を一切使わず、クライアントPCからしてみればただYouTubeライブを視聴してるだけのように見えるわけで、必要な処理能力も、それ視聴するだけのリソースでよいということになります。

このような仕組みをクラウドゲーミングだとかと呼ぶことがあります。

開発用途で

Stadiaはあくまでゲーム用ですが、このようにサーバー側にあるシステムをクライアントから操作する仕組みというのは、ゲーム以外にもあります。エンジニアの方からするとSSHなんかもファイルやシステムを操作するという点でこの一種となります。

それ以外にも自分の環境に用意できない環境をサーバーで借りるという手法で遠隔操作する場合もあります。

極端な例がMacです。AWSMac EC2インスタンスでは、サーバー上のMac miniを遠隔操作することができます。WindowsLinuxのみで環境が構築されていてMacが必要だけどMacが導入できない場合、AWSのこのサービスを利用するばMacが実環境にはありませんが、macOSを使うことができます。これによって、iPhone向けアプリをビルドできたり、Macアプリのデバッグができるようになります。

このように、開発用途ではサーバーに対してリモートでなにかするというのは結構主流です。

普通の仕事では・・

では、一般的な仕事でクラウド上のシステムを扱うメリットを考えていきます。

Microsoftがはじめたサービスとして「Windows 365 Cloud PC」というのがあります。Windows 365はクラウド上にあるWindowsシステム「Cloud PC」をリモートで操作するというサービスです。もっというと、クラウド上に自分のPCを新しく用意するといったほうがいいでしょうか。

Windows 365では、ブラウザからローカルのPCを扱っているかのようにCloud PCを扱うことができます。Stadiaではゲームしかできませんでしたが、Windows 365ではWindowsが扱えます。Windowsアプリが動きます。WSLも動くはずです。

性能についてはStadiaのようにゲーム処理を行うわけではないのでそこまで高くはなく、ビジネス向けのCoreプロセッサレベルといった感じでしょうか。そうすればここで一つの疑問が生じます。

「別に高負荷な作業をするわけでもないし、ローカルなPCだけでもええんとちゃいますの?」

高負荷ではない場合のクラウドPCのメリットというのは、Stadiaとはまた違ったものです。性能が低いPCからでも扱えるというメリットはそこまで大きくなるわけではありません。ではどんなメリットがあるのでしょうか。

まず一つ考えられるのはテレワークへの導入です。テレワークにおいて会社のシステムにアクセスするもの、あるいは会社のPCで作業するというのは非常に重要です。それはセキュリティの問題も含めてです。ノートパソコンを導入している企業ならそれを携帯すればいいわけですが、そうでない企業は新たにノートパソコンを導入する必要に駆られます。

そこで登場するのがクラウドPC。クラウドPCの実体はStadia同様サーバー側にあります。つまり、アクセス権があればどこからでもアクセスできるのです。Windows 365では、CPUコア・メモリとともにストレージも含まれており、それらは自由に扱うことができます。つまり、会社でWindows 365システムに保存したデータというのは、家からWindows 365にアクセスすることで扱うことができます。そして、Windows 365上にはフル機能のWindowsが動作しているので、例えばOfficeで作業したり、メールを送ったりということをWindows 365上で行うことができます。

先程ちらっとお話したとおり、Windows 365はブラウザから操作することができます。つまり、Webブラウザが動作する環境でWindows 365を扱えるわけです。この環境にはChromebookiPadも含まれます。

クライアントPC側もある程度のセキュリティ対策が必要ですが、基本ブラウザでライブストリーミングを受信するのみということもあり、安価なデバイスでも快適に動作するので、テレワーク非対応環境に対応環境を導入する際のランニングコストを抑えられるという利点があります。

2つ目のメリットはスケーラブルであるという点。何度も申し上げます通り、このPCの実体はサーバーです。ただし、サーバー一台がそのまま貸し出されているというわけではありません。

裏話ですが、普通のPCは4~8コアCPUと8~16GB RAM、そして256GB以上のストレージみたいな感じの構成になっていますが、サーバーは100を超えるCPUコアにテラバイトレベルのメモリ、100TBを超えるストレージを備えていることが多いです。なので1台のサーバーで複数のPCシステムを同時に動かすことができます。それぞれのシステムをインスタンスといい、このような方式をマルチインスタンスといいます。

そのため、企業など大量の社員がいる場面では、簡単にPCをセットアップする事ができますし、何らかの事情でいなくなってもすぐに消す事ができます。

こういう点で、非常に優れているといえます。

Hybrid Loop

ここまでは、手元のパソコンからサーバーにあるシステムを操作するというタイプのクラウドPCでしたが、最後は最新情報。

Microsoftは先日開催された同社の開発者向けイベントBuild 2022にて、Hybrid Loopという新しい構想を発表しました。

近年のコンピュータでは、人工知能のようにCPU以外の性能を求めることが増えてきました。ただし、システムのI/Oの都合や、金銭的な事情などで追加のアクセラレータをインストールすることが難しいこともあります。Hybrid Loopでは、Azure上のGPUやNPU、FPGAなどの演算器を用いて演算することができます。

例えば、AIの演算を行うとき、ローカルにGPUやNPUなどの適切な演算器がないとき、Azure上のものを利用することができます。

Azureの演算性能のレンタルといった感じでしょうか。わざわざ自分のローカル環境に高性能かつ高額な演算器を整えることなく、Azure上のものを使えるというのは、ベンチャーや個人研究者の方は嬉しいのではないでしょうか。

ということで、今回はいくつかの例を上げてクラウドコンピューティングについて書きました。

このようにゲームをはじめとしたコンテンツを、進化し続ける通信技術やコンピューティング技術によって、自分のパソコンにお金をかけずに楽しめるようになっています。その代わり、サービス使用料金というのが発生していしまいますが、ランニングコストを抑えたいという方や、環境的にスペースがない場合など、こういったクラウドを使った技術をつかってみるのもいいかもしれませんね。

参考リンク