2016年4月5日火曜日

ハイスペックPCやWS構成のサイジングについて

はじめに

今回の話題はいつもに増して難易度が高めです。
前回の記事を読んでいることを前提に進めます。

要点

システム各部の負荷の比率を読み解かないと

無駄が多い環境になる。


①計算種別の基本

CPUGPU等の計算機は、
直列的に計算を実行するスカラ演算
並列的に計算を実行するベクトル演算
の2つが存在します。

スカラ演算は、CPUが得意
(並列度が高い)ベクトル演算は、GPUが得意[GPGPU/CUDA/OpenCL]
(並列度が低い)ベクトル演算は、CPUが得意[MMX/SSE/AVX]

そして、GPUのプログラミングは難易度が高く、普及しているソフトウェアは
ゲームばメインで他のソフトウェア対応は発展途上です。


②実環境で計算時間とI/O待ち時間の比率を読み解く

最初に必要な情報収集は、
どのプログラムが
どのファイルにアクセスしていて
具体的にどの位のリソースを消費しているか

 ということです。

簡易的に確認するには、リソースモニターで確認できます。

同じWindowsバンドルツールのタスクマネージャーより詳細に確認する
ことが出来ます。


GPUのリソース状況はNVIDIA系なら”ELSA System Graph”あたりが良いでしょう。



リソースモニターより詳細に情報を確認する場合は、SystemExplorer
が良いです。


③計算の複雑性、並列度、I/O待ち時間の比率を分析する

ここまでで、

CPUでは、『少コアで高負荷なのか』、『多コアで高負荷なのか』が判別出来
 ているはずです。

また、

GPUでも、『周波数の動き』や、『メモリの使用量』、『GPU全体の使用率』を
比較することが出来ているはずです。

全ての情報が揃うと、

『 CPUコア数 × CPU周波数 ≒ 処理速度 』

という理想値に近い値を出すために必要なハードウェア構成が予測できます。




④最後の落とし穴 メインメモリのI/O

SSDやメモリの搭載量が重要であることは当然なので省略します。

上記が満たされているにもかかわらず、多コア構成では想定通りの性能が
出ないことがあります。

それが、メインメモリのI/O上限です。

例えば、データベースの用途でメモリに128GBキャッシュが必要だけど、
計算でよく使うのは32GB程度。
という状況であれば、メインメモリのI/Oに気を配る必要がなく、
コア数の多いCPUが有利です。

一方、動画編集用途ではキャッシュしているデータは全てCPUで消費して、
計算が終わり次第、次のシーンのデータを読み込む。
という事はよくあります。

これが、多コアのCPUでソフトウェアも並列性が高いにもかかわらず想定した
性能が出ない現象に陥りやすいものなのです。


一般的なPC(i3~i7)で使われているメモリの帯域は
DDR3の場合、25.6GB/s
DDR4の場合、34.0GB/s
となっています。

i7 の場合、4つの物理コアで論理的に8つ論理コアを実装しているため、
完全に並列化された処理では1論理コアあたり 4GB/s 前後の帯域が見込めます。

i7 Extreme 5960x の場合、DDR4 クアッドチャネル対応でメモリの帯域は
68.0GB/s あります。

そして、8つの物理コアで16の論理コアを実装しているため、
1論理コアあたりの帯域は 4.25 GB/s の帯域が見込めます。

では、Xeonで更に上位のモデルはどうでしょう。

Intel® Core™ i7-5960X Processor Extreme Edition (6コア 20M Cache, 3.00 GHz)
Intel® Xeon® Processor E5-2667 v4 (8コア, 25M Cache, 3.20 GHz)
Intel® Xeon® Processor E5-2687W v4 (12コア, 30M Cache, 3.00 GHz)

E5-2667の場合、4.25GB/s
 E5-2687の場合、2.83GB/s

 Xeonは、処理能力に加えて信頼性と、高いメモリ上限あるため価格差も大きいです。
i7 5960xが12万円程度であるのに対し、Xeon上位モデルは20万円を超える金額に
 なるので金額を超えるメリットが望めるかをよく検討して購入しましょう。

2016年3月30日水曜日

XeonとCore i7の違い

はじめに


 筆者はサーバエンジニアなのでXeonをよく扱っています。
 
 今回取り上げるのは、
 一般的なハイスペックPCで使用するCore i7
 ワークステーションやサーバで使用するXeon
 
 具体的に何が違うの?
 
 という観点で話をします。
 
 ※注意
  一般的なノートPC用のi7はデスクトップ用のi5と大して変わりません。
  今回はデスクトップPC用のi7ついての話題です。




Core i7 の特徴

 Core i7 はヘビーなゲーム用途で最もコストパフォマンスの高いCPUです。
 
 
 これは、大きく5つ要因があります。
 
 ①予算30万円未満のPCがメインターゲットであること。
 ②メモリの搭載量は、一般的なゲームなら32GB以内で十分であること。
 ③大半の重いゲームでも、CPU利用率が4コアを超えて専有するようなゲームが
  ないこと。
 ④ゲームで最も計算量が多いはグラフィック処理であり、高解像度・高FPSを
  目指すならGPU への追加投資が効果的であること。 
  標準的なゲームPC構成では、
  CPUとGPUの合計予算が5万円程度の場合(2:3)の比率
  CPUとGPUの合計予算が10万円程度の場合(3:7)の比率
  が一般的です。
  
  これに、ゲームタイトルの推奨環境(CPU/GPU)を参考に構成を考えましょう。

 ⑤Core i7でゲームの読み込みを高速化することや、普通のPC操作を快適に
  するには、CPUに掛ける予算の7割~9割程度の金額を目安に良いSSD
  を導入しましょう。
  ※2016年3月現在、Samsung sm951-NVMe が最もコストパフォーマンスの良い
   SSDです。




Xeon の特徴

Xeon は、高信頼性/大容量メモリ/大容量キャッシュ/高バス幅などが求められる
場合に初めて効果を発揮します。

1.高信頼性

 一般的にメモリが大容量になると、それだけデータの破損する確率が高まります。
 万一データが壊れた場合、Core i7 では一切修復することが出来ません。
 
 一方、 Xeon ではメモリエラーを検出し訂正することが出来る機能があり、
 ECC や registered と呼ばれる機能を備えたメモリと組み合わせることで
 信頼性を向上しています。


2.大容量メモリ

 Core i7 と Xeon の最大メモリ容量を比較します。
 最大メモリ容量はCPU1個あたりのものです。
 デュアルCPUでは、2倍
 クアッドCPUでは、4倍
 システムに搭載し、OSが認識することが出来ます。
 
 Core i7
 2014年リリースのCore i7 4790k は 32GB
 2014年リリースのCore i7 5960x は 64GB
 2015年リリースのCore i7 6700k は 64GB
 
 Xeon E3 (シングルCPU)
 2013年リリースのE3-1200 v3 は 32GB
 2015年リリースのE3-1200 v4 は 32GB
 
 Xeon E5 (デュアルCPU)
 2014年リリースのE5-2600 v2 は 384 GB
 2014年リリースのE5-2600 v3 は 768 GB
 
 Xeon E7 (クアッドCPU)
 2014年リリースのE7-8000 v2 は 1536 GB
 
 最新のi7では64GBまで搭載できますが、
 パーツの相性問題や信頼性問題の懸念が
 出てきます。
 
 メモリの使用量が32GBを超える場合は、
 Xeon E5 の購入を検討しましょう。



3.大容量キャッシュ

 Core iシリーズのCPUにはGPUが内蔵されています。
 Xeon には GPU がありません。
 
 GPU を使用しない分、CPUコア、またはCPUキャッシュを配置することで
 CPU性能を高めています。
 CPUキャッシュが大容量であるほど、メモリにアクセスする確率が低減し、
 結果的に処理速度が高まります。
 
 Core i7 と Xeon の最大キャッシュ容量を比較します。
 Core i7 は最大 8MB
 Core i7 Extremeは最大 20MB
 Xeon は最大 45MB

4.高バス幅

 Core i シリーズとXeonの処理速度に直結する最大の違いはバス幅の違いです。
 最新のCore i7 / Core i7 Extreme/ Xeon
 以下の3つのブロック図で比較してみましょう。
 
 
 Core i7対応チップセット z170
 http://images.anandtech.com/doci/9483/Z170%20Platform.jpg
 
 Core i7 Extreme対応チップセット x99
 http://www.intel.co.jp/content/dam/www/public/us/en/images/diagrams/x99-chipset-block-diagram.jpg
 
 XeonデュアルCPU対応チップセット C612
 http://www.intel.co.jp/content/dam/www/public/us/en/images/embedded/RWD/grantley-diagram-16x9.png
 
 メモリの同時アクセス速度は
 z170の場合、34GB/sec
 x99の場合、68GB/sec
 C612の場合、136GB/sec
 
 GPUやSATAより高速なSSDで使用するPCI-Expressスロットの帯域を比較すると
 z170を使用する場合、CPU直結で接続できるPCI-Express x16のデバイスは1個まで
 x99を使用する場合、CPU直結で接続できるPCI-Express x16のデバイスは2個まで
 C612を使用する場合、CPU直結で接続できるPCI-Express x16のデバイスは4個まで
 
 となっています。
  

Xeon が必要になるパターン


 1.長時間の高負荷でも信頼性が求められるマシンが必要。
 2.処理対象となるデータの絶対量が非常に多く、64GB以上のメモリが必要。
 3.処理対象となるデータの絶対量が非常に多く、ディスク I/O 要求が厳し過ぎて
   PCI-Express 接続 SSD が複数必要。
 4.GPU処理(特にVRAM使用量とメインメモリアクセス)が多く、GPUが3個以上必要。

 いずれかのパターンに1つ以上当てはまる場合は、Xeonが効果的です。

2015年1月1日木曜日

FPSゲーマーはどんな訓練をしているのか

はじめに

どんなゲームにも、基礎・基本となる訓練方法があります。
今回は、プロFPSゲーマーがどのような訓練を取り入れているか書きます。

毎日練習すると、体調の良し悪しやメンタルのブレも相応にスコアとして出ます。
ゲーム全般で上手くなりたい人は毎日練習しましょう。

今回取り上げるのは、反射神経動体視力周辺視野の3点です。
他人より遅い人はとにかく鍛えましょう。

 

Reaction Time Trainer

過去の記事で取り上げたものです。リンク
反射神経のみのテストです。

特徴は、訓練しなくても速い人は最初からある程度速くできます。
その一方、メンタルや体調の良し悪しが最も表面化しやすいものです。

豆知識:
①雑念があると、0.015秒(約1フレーム)遅れます。
②疲れがあると、0.020秒(約1.2フレーム)遅れます。
③余計な力が腕や指に入っていると、0.010秒遅れます。
④(最大値-最小値)が0.020を超えた場合、集中力の均一性に問題があります。

 

Shoot

反射神経動体視力がアップします。リンク
国内上位は180オーバーです。

 

おおきく振りかぶって2号

反射神経周辺視野力がアップします。リンク
国内上位は6秒未満です。

2014年12月3日水曜日

いい感じのゲーム配信環境の作り方

はじめに

いつも通り、一切の妥協を許さない中級者以上向けです。

使用するソフト

Dxtory (日本製) 3,800円
青森県の会社で作られている画質とカスタマイズ性が非常に良い録画ソフト。
今回はカメラデバイスとして使用します。

FFML(日本製) フリーソフト
ニコニコ発祥の高画質配信ソフト。x264とFDKAACで配信可能。

似た機能があるソフト

有名所のアプリで言うと
カメラアプリは、 アマレココ系/Bamdicam/SCFH DSF
配信アプリは、FME/NLE/NME/OBS

そして、一番有名所の統合アプリではXSplit
などがあります。


DxtoryとFFMLの組み合わせの特徴
画質面で競合のソフトと比較するとトップ。
エンコード設定のカスタマイズ性もトップ。
ニコ生、Ustream、twitch等、RTMP対応サイトに同時配信可能
同時配信するサイト毎に画質の調整が可能。
ffmpegやx264のエンコードオプションの知識があると使いまわせる。
配信しながら無圧縮AVIを同時録画。更にソフトウェアでRAID0的な分散出力も可能。
配信画質でそのまま保存することも可能。
自動枠取り対応。IRC対応。
ビットレート自動最適化対応。(ニコ生切断回避用)

そして連携機能として
棒読み連携対応。
コメビュ連携対応。
外部アプリ実行対応。

などなど、基本性能の高さと多機能さを揃えることが出来ます。



導入方法

1.ffmpeg.exeを作る

最初に、FFMpegを作ります。
作るためのツールはここでDL

オレ流 FFMpegビルドツール
http://www.sakura-zaka.net/ffmpeg/

細かい作り方はオレ流の公式情報を参照すること。
ffmpeg.exeが出来たら次に移る。


Dxtoryダウンロードと設定


DxtoryはコンビニでVプリカ(Visaのプリペイドカード)で買えます。
改めて書きますがシェアウェアです。

Dxtory
http://exkode.com/dxtory-features-ja.html

↓インストール後は大体こんな感じでOK


録画する場合のディスクを選択


DirectShow出力にチェック
録画する場合はファイル出力を選択





Dxtoryはミキサー機能も持って入るので必要な時は使いましょう。



録画可能状態になってると左上が緑










F12を押すと、録画(DirectShow出力)開始
オレンジ色になります。









これで、FFMLに映像が渡せる状態になります。
オレンジ色のまま、次の作業に移ります。

3.FFMLとテスト配信(まだ低画質)
或ル人ノ棲息地 【ニコニコ実験場】
http://com.nicovideo.jp/community/co1197025
直リンク
http://goo.gl/0nCdBZ



↓ざっくりこんな感じでOK
ffmpeg.exeの場所と、ブラウザのクッキーの場所を登録



配信時のRTSPのアドレスをコピー


出力(配信先)の画面を出して


RTSP URLを登録


枠取りを登録して



枠の内容を入力して枠取り開始



あとは配信開始




できあがり





今回はここまで。
超絶高画質編はそのうち作るかも。