見出し画像

VRChatやるならRTX3070よりも3080がおススメな理由 ー GDDR6"X"とはなにか?容量以外に見るVRAMの違い

VRCをはじめたは良いがなんだか全体的に重いぞ!RTX3000シリーズってのがすごいらしい!RTX3080や3090は高いから、お手頃価格だしRTX3070かな?と考えている方がクリックしていると思います。
この記事では、VRAM依存度の高いVRCプレイヤーなら知っていても損はない、RTX3080/3070間に存在するVRAM技術の違いをご紹介します!

はじめに(おまじない)

本稿はVRC怪文書の一環であり、著者の主観や解説が含まれます。簡素な表現を優先したり、説明を省略したりしています。
技術情報は米Micron社および米Nvidia社により公開されている製品・技術資料を基に執筆していますので、気になる方はそちらを直接ご参照ください。
また、VRChat環境にてVRAM通信方式(NRZ/PAM4)の差異によるRTX3070に対するRTX3080の優位性は検証されておらず、また本記事をもってそれを保証するものでもありません。グラフィックボードその他機材の選定・購入は自己判断・自己責任で行ってください。

1. VRAMってなに??

さて、VRChatではVRAM*がたくさん必要!とよく騒がれています。
なぜでしょうか。
(*VRAM=ビデオメモリ、グラフィックボード上についているGPUのためのメモリです)

答えはみんなのKawaiiアバターが原因といわれています。みんなが主人公のVRChatでは、みんなが一般的なゲームの主人公キャラよりも大容量なキャラクターになっています。それらを演算するためにはデータをVRAMへ入れなくてはいけません。結果、GPUの演算はもちろんですが、GPUメーカーが想定している一般的なゲーム以上にVRAMを使ってしまい、GPUの性能限界よりも先にVRAMがいっぱいになってしまいます。

VRAMだけを増設できれば良いのですが、VRAMはGPUとセットでグラフィックボードとして売られているため、それだけを増やすことができません
より大容量なVRAMを手に入れるためには、より高性能なGPUが必要になり、VRChatterはやたらめったら高いハイエンドグラフィックボードを買ってしまうのです。RTX3090とかね。

2. RTX3080/3070の違い

これを読んでいる人はある程度調べてここへ辿りついているとは思いますが、RTX3080とRTX3070ではGPUも、VRAMも別物です。もちろんRTX3080の方が良いGPUチップを使っています。
しかし、1. に書いた通り、ぼくらがほしいのはVRAMです。
NVIDIA公式ページでは、RTX3080はVRAM10GBRTX3070はVRAM8GBであることがわかります。

画像1

画像2

でも… RTX3070は大体7万円くらいあれば買えますが、RTX3080は11万円くらいします。4万円もあればQuest2が買えちゃうじゃないですか!
たった2GBのVRAMのために、4万円も出す必要があるのでしょうか。もちろん3080の方がGPUそのものの性能は高いです。上のCUDA Coreの数が大体性能に直結すると思ってください。
でも、ぼくはフレンドのアバターと綺麗なワールドをぶち込んでもフリーズしない豊富なVRAMがもっともっと欲しいだけなんだ!GPUは別に3070レベルでもいい!

ここでVRCで鍛えられた鋭い眼をお持ちの方は気づくかもしれません。
3080のVRAMの下には、「GDDR6"X"」があり、3070にはその"X"がありません。VRAM2GBの容量差のほかに、ひっそりと書かれたこの違いは一体なんでしょう?

この記事では、ここを追いかけていきます。

[余談] GPUそのものの処理能力について
ちなみにですが、SteamVRの設定ではVRAMとはまた別にGPUの負荷が高くなりFPSが落ちてくると解像度を下げるモードがあります(多分Default)。もしかしたら高FPSヌルヌルで動いているあなたの環境は解像度が削られた結果かもしれません。VRAM問題とは別に良いGPUを使うことで純粋な演算能力の向上が得られ、結果同じHMDでもより良いVR経験が得られる場合もあります。現状のVRの世界ではオーバースペック状態はなかなか起こりません。特に最適化されていないコンテンツが多いVRCの場合は顕著です。
予算が許す範囲で、VRCで語られがちなVRAM(よく言われるのは快適最低ライン8GB)に限らず、GPU演算能力も重視して検討してみてください。

3. GDDR6XとGDDR6の違い

”GDDR”シリーズというのは、VRAMのためのメモリ動作速度の規格です。今の最新版は"GDDR6"といい、実に1秒間に16ギガビットものデータを扱うことができます。俗にいう16Gbpsですね。グラフィックボードの中では、ものすごくはやいスピードでGPUとVRAMの間でデータをやり取りし処理しているのです。

一方、”GDDR6X”というのは、アメリカのMicronというメモリメーカーが開発した独自のメモリ規格です。まだ業界標準ではありません。
なんとこのGDDR6Xは21Gbpsの速度を誇り、1メモリチップごとの帯域は毎秒84GBに達します(1つのメモリチップが21Gbpsのケーブルをたくさん持っているイメージです。たくさん車線のある高速道路みたいな感じですね)。
そしてさらに、グラボ内でのデータ帯域は毎秒1TBを超えるのです。
すごい。

画像3

はてさて、そんなすごいGDDR6X。いったいなんでそんなことができるんでしょうか。だいたいそんだけ速くなるならXとかつけずにGDDR7にしたらいいじゃん。かっこつけてんのか??iPhone気取りか??

違います。実はデータ通信の仕組みにヒミツがあるんです。

マトリックスを見たことある人はコンピュータの中身といえば「0」と「1」がたくさん並んでいるイメージが浮かぶかもしれませんが、本物のCPUやGPUも同じく0と1で計算をしています。
この0と1のデータを「ビット」と言います。いわゆる8ビットなんてのは、8桁の0と1で表現されるデータのことです。「01010101」みたいにね。
VRAMの通信路(GDDR6)も、この0と1をそれぞれ電気のOFF/ONで表して通信しています。

画像10簡単ですね。1回の波で1ビットを伝えています。合計8ビット。

GDDR6Xが特別なのはここからです。
GDDR6Xは、電圧をON/OFFだけでなく、
「全開!」「つよめ」「よわめ」「ゼロ」の4段階に分けて、
それぞれに10/11/01/00を割り当て、1回の波で2ビットを伝えます。
つまり、上の00011110のデータは4回の波で伝えられちゃうのです!

画像10

上の図と比較してみると、1回の波で2ビットを伝えているのがわかります。
同じ合計8ビットですが、使った波の数は半分ですね!
これってなんだかすごくないですか? 


画像4

米Micronの綺麗だけどかわいくはない図で示すとこういうことです。
NRZはいわゆる普通の通信方式。GDDR6が使ってるやつです。
PAM4というのがGDDR6Xが使っている通信方式。
同じデータを送っているのにグラフの長さは半分、
すなわち2倍の速度が出てるのがわかりますね!すごい!

つまりGDDR6の正統後継ではなく、GDDR6の速度で通信規格を改善してスピードアップさせたのがGDDR6Xなのです。だからGDDR7じゃなかったんですね。たぶん。


4. GDDR6XはなんでGDDR6の倍速じゃないの?

みなさまもすっかり騙されてしまっているかもしれません。
GDDR6XはPAM4とかいうすごい技術を使って”倍の速度"でVRAMが通信してくれるんだ!GDDR6とかいう時代遅れのNRZで通信する平凡なメモリチップ使ってるRTX3070なんて貧民のグラフィックボードだ!サイテー!ダッサ!小学生!と思っているかもしれません。

よく見てみましょう。

画像5

GDDR6は16Gbit/s、GDDR6Xは21Gbit/s…?16の倍は32Gbit/sのはずです。
なんで21Gbit/sなのでしょうか。予想してみました。


この項目はちょっと踏み込んだ内容になりますが、折角なのでよければ読んで行ってください。信号のしくみから解説していきます。

みなさん、小学生の理科の授業で電池に豆電球をつける実験はやりましたよね。ぼくは好きでした。イメージでは、電池を繋いだ瞬間に電気は一瞬で流れるように思いますよね。

たとえば1ビットの「1」を送る波ってこうですよね。上にも書きましたが。

画像11

でも、これはいわゆる理想の波形です。現実には、電源をONにするためには時間がかかり、OFFにするためにも時間がかかるので、速度が上がればあがるほど、波の形は歪んでいきます。

画像13

また、高速道路が曲がりくねっていたらスピードが出しにくいように、グラフィックボードの上で信号が走るときにも波の形は歪んでしまいます。これが延々だらだらと続いていくと、やがて最後に波形は山のような形からただの直線になってしまいます。そうすると、いよいよこれが1なのか?0なのか?わからなくなってしまいますね。

ということで、これ以上の電圧だったらONだよ!これ以下ならOFFだよ!という決まりを決めます。これを「閾値=しきい値」と言います。
1の閾値はVH、0の閾値はVLと書きました。デジタル通信では1をHigh、0をLowというためです。
また、いったいいつどのタイミングで判断すればいいのかわからないので、波の真ん中を示す信号を隣に並べました。これを「クロック」といいます。
そうです、CPUとかでよく見る3GHzとかの"クロック"ですね。
そのクロックのタイミングに従って値を決めることをトリガーと言います。

画像13図にまとめるとこういう感じです。黄色のクロックに従い、赤色のトリガーの位置で、青色の波形が、VHより上=1なのか?VLより下=1なのか?を判断しています。その結果が紫の数字です。

しくみとルールはこんなところです。ではでは、このしきい値、クロックと波形といった特性に対して、信号が歪み始めてきたときの関係性を、抽象的な図にまとめられたらいいですよね。実際にはトリガーのもとになるクロックのタイミングもズレるので、左右方向にもある程度余裕を持たせます。
ということで、0→1→0と1→0→1と変化する波形を重ねた図の真ん中に、「ここに波が来るとONかOFFかわかんなくなるよ!」というエリアを決めます。

画像14緑のVH/VLの上下間、クロックのズレる左右間には青色の波形が入ってしまうとON(1)なのかOFF(0)なのかがわからなくなってしまう。そのエリアを紫色の長方形で示した。

で、実際に信号を測ってみて、この入っちゃいけないエリアに信号が入っていないか、また、どれくらい余裕があるかを調べてみます。
この図面は「アイパターン」と言い、開き具合を「アイ開口」といいます。アイはEyeです。理由は眼みたいだからです。

画像6

このとき、設計が通信速度に対して対応しきれていなかったりすると、信号の波が大きく歪んでしまい、信号波形が入ってはいけないエリアに入ってしまったりします。そうすると、「アイが閉じている」「眼が閉じている」と言ったりして、ぼくが残業になったりします。最悪ですね。

画像15このように"アイが閉じている"場合、トリガーで読み取った時の値がVH以上でもVL以下でもないために、コンピュータはその信号が1なのか0なのか判定できなくなってしまう

こういう分野をシグナル・インテグリティ(Signal Integrity/SI、信号品質)といい、お伝えしてきた内容はあなたが電気電子専攻で無ければまあまあ専門的なお話です。覚えておくとかっこいいかもしれません!

話は戻り、それではなぜGDDR6Xは倍速ではないのでしょうか。
おそらくは、GDDR6と同じクロック・スピードではこの「アイ開口」が十分に得られなかったのだと思います。

画像7

この図からもわかる通り、PAM4を使うということは、電圧方向(縦)にも時間方向(横)にも余裕がなくなってしまいます。しかし、電圧を上げると消費電力も増えてしまいます。そこで、実用的なアイ開口を得るために時間方向を横に引き伸ばした(1波形ごとの時間を長く、クロック速度を落とした)結果、単に16Gbpsの2倍ではなく、16Gbps -> 21Gbpsという結果になったのではないでしょうか。上記画像でもアイパターンが横長になった結果、黒い部分(アイ開口=波形間の余裕)が何とか得られているのがわかりますね。


記事の終わりにあまり詰め込みたくはないのですが、GDDR6X=PAM4の優位性は通信速度だけではありません。消費電力においてもPAM4は強いです。

GDDR6=NRZで21Gbpsを得るためには、
およそ1.3倍の速度で通信をする必要があります。
速度を上げるためにはクロックを上げる必要があります。
クロックが上がるということは、消費電力が上がります。
消費電力が上がるということは、発熱が増えます。

このPAM4は、NRZよりも遅いクロック(遅い速度)でありながら、1.3倍のデータ通信速度を実現できます。結果、速度比での消費電力を抑えることができます。

今のところこのGDDR6Xは、Micronが開発し、NVIDIAだけが使っている技術です。あくまでメモリチップ屋さんであるMicronはもちろんAMDにも売りたいでしょうが、NVIDIAはそうではないでしょう。展開如何によってはAMD/Radeonはまた厳しい戦いを強いられることになるのかもしれません。
がんばれNVIDIA!やっちまえ!

5. おわりに

グラボの増設くらいはできるよ~くらいの感覚からすると結構踏み込んだ内容で紹介してきましたが、いかがでしたでしょうか。
普段からうお~~VRAM欲し~~!って言ってたけど、今日はちょっと中身の話っぽいこと知れたぞ!ってなったらこの記事のねらいは成功です。
意外とハードウェアエンジニアってVRC民に少ないのでは?と思い、端くれとして知っている事を書いてみましたが業界の大先輩方にもし見られちゃったらなんかちょっと恥ずかしいですね。

結論として、正直なところぼくにRTX3080(GDDR6X)とRTX3070(GDDR6)のVRAM通信方式による帯域の違いが、VRChatのプレイ上ではっきりとした違いとして現れるかどうかはわかりません。
でもエンジニアとして勧めたいのはRTX3080 - GDDR6Xです。

画像8

だってオタクくんこういうの好きでしょ~


以上です。
NVIDIAさん、いつでもRTX3090の試供品お待ちしています。

6. 出典

Micron - GDDR6X 
https://www.micron.com/products/ultra-bandwidth-solutions/gddr6x
Nvidia - GEFORCE RTX 30 Series Graphics Card Overview
https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/
Nvidia - Introducing GeForce RTX 30 Series GPUs
https://www.nvidia.com/en-us/geforce/news/introducing-rtx-30-series-graphics-cards/

解説に使用した写真の撮影にあたってはMERU様作成のワールド "MERoom"を利用させていただきました。ありがとうございます。

[EOF]

この記事が気に入ったらサポートをしてみませんか?