Ryzen マルチスレッド処理

8コア16スレッドのRyzenでマルチスレッド処理に対応したプログラムをテストします。


■Ryzen(マルチスレッド)の概要
task_cpu.png 

Ryzenには1つのCPUコアで2つのスレッドを動作させるSMT(Simultaneous MultiThreading)と言う仕組みがあります。
また、4つのCPUコアを一つのパッケージとしたCCX(Core Compulex)という構成になっています。
このCCXを2つ搭載することでRyzen 1800Xは8コア16スレッドとして動作します。

【参考記事 PC Watch】 
AMD「Ryzen 7」の半導体チップの姿


用語
論理プロセッサ  タスクマネージャ上のCPU0とかCPU1のこと。
コア    CPUコアとか物理プロセッサと呼ばれる部分。SMTの場合、一つのコアに2つの論理プロセッサがあります。
CCX  4コアを一つのパッケージとしたもの。



■テスト方法
AMV2 MT ビデオコーデックを4スレッドでエンコード、およびデコードするように設定し、処理時間(FPS)をCPU(論理プロセッサ)の割り当てを変えながら計測していきます。
論理プロセッサの割り当てについてはCPUマスクと表記し16進数で示します。

CPUマスク
CPU
マスク
タスクマネージャ説明
0x000F task_0x000F.png CPU0からCPU3を使い2コア4スレッドを使って処理します。
SMTにより1コアのリソースを2つのスレッドで分け合います。
0x0055   task_0x0055.png CPU0,2,4,6を使い4コア4スレッドで処理します。
各スレッドは1コア分のリソースをほぼ独占できます。
0x00FF task_0x00FF.png CPU0からCPU7までの8つの論理プロセッサのうち空いているリソースをOSが判断して自動で割り当てて処理します。
0x0303 task_0x0303.png CCX0の1コア2スレッドとCCX1の1コア2スレッドで処理します。
2つのCCXをまたがる場合にどうなるか見ます。
0x0505 task_0x0505.png CCX0の2コア2スレッドとCCX1の2コア2スレッドで処理します。
すべてのスレッドが1コア分のリソースをほぼ独占できますがCCXをまたがります。
0xFFFF task_0xFFFF.png CPU0からCPU15までの16の論理プロセッサのうち空いているリソースをOSが判断して自動で割り当てて処理します。
これが既定の動作(特別な設定をしない場合の動作)です。


■結果
Ryzen 1800X 3.6GHz  Windows10 Home  HD画質 AMV2 MT Y2 SSE2 4Threads
CPU
マスク
Encode
FPS
 Decode
FPS
0x000F1402 1497 
0x00551880  1866 
0x00FF1898 1861 
0x03031230 1456 
0x05051597 1849 
0xFFFF1611 1847 


■考察
最もいい結果となったのは0x0055と0x00FFです。0x0055については4スレッド分の処理を行う場合の理想的な割り当てなので、納得です。
また、0x00FFでもほぼ同等の性能を発揮したのでこのテストにおいてはOSによる自動割り当ても十分優秀と言えます。
一方0x000Fは2コア分のリソースしか使えないところに4スレッド分の処理を詰め込むためパフォーマンスが低下しています。0x0055と比べエンコードで約25%減、デコードで約20%減。

そして、Ryzenを使う上で気になるのが後半の3パターンです。
CCXをまたがって処理すると(CCXをまたがらない場合に比べ)エンコードで約15%減、デコード処理では著しいパフォーマンスの低下は見られませんでした。
0x0303はCCXをまたがり且つ2コア分のリソースしか使えないため最悪の結果となり、0x0055と比べエンコード処理は約35%減となっています。

以上より、CCXをまたがってマルチスレッド処理を行う場合、パフォーマンスが低下するプログラムと、CCXをまたがっても低下しないプログラムがあることが解ります。
0xFFFFは既定の動作なのでRyzenを普通に使っているとマルチスレッドで処理するプログラムの場合にCCXをまたがって10%程度パフォーマンスが低下する場合があるかもしれません。

【参考記事 PC Watch】 Windows 10はAMD Ryzenの論理コアを正しく認識できず、性能が下がる?



テーマ : PCパーツ     ジャンル : コンピュータ
tag : RYZEN

Ryzen 1800X 、 Core-i7 7700K 可逆圧縮ベンチマーク

3月3日に発売された、いま話題のAMD社製CPUであるRyzen 7 1800Xと今年初めに発売された最新のIntel社製CPU Core i7-7700K(Kaby Lake)で可逆圧縮コーデッを使ったベンチマークテストを行いました。
シングルスレッド処理における各CPUの性能やSSE命令およびAVX2命令の挙動を見ていきます。


■テスト方法
動画ファイル Mystery of the Nile (こちらのサンプル動画1)を1280 x 720、YUY2の未圧縮に変換。
その動画ファイルをAMV4ビデオコーデックのDY3設定でエンコード、デコードした際の処理時間(FPS:一秒間に何フレーム処理できるか)を計測します。
両CPU共、動作クロックはRyzenの定格である3.6GHzになるよう設定。
メモリの動作クロックも両方とも2133MHzに設定し、なるべく同じ条件でテストします。


■テスト環境
PC1 Ryzen 1800X
OS  Microsoft Windows 10 Home 64-bit
CPU    AMD Ryzen 7 1800X 3.6GHz (100MHz x 36)
MB  MSI B350 TOMAHAWK
Memory  DDR4 16GB (8GB x 2 Dual channel) 2133MHz
備考  CPUは8コア、16スレッド、AVX2対応。動作クロックをBIOSにて全コア3.6GHz(定格)に設定しましたが
 アイドル状態になると3.1GHzまで低下します。テスト中はほぼ3.6GHzで動作しますが完全にクロックを固定できていません。


PC2 Kabylake 7700K
OS  Microsoft Windows 10 Home 64-bit
CPU  Intel(R) Core(TM) i7-7700K
 定格4.20GHz テスト時は3.6GHz (100MHz x 36)
MB  ASUS PRIME Z270-K
Memory  DDR4 16GB (8GB x 2 Dual channel) 2133MHz
備考  CPUは4コア、8スレッド、AVX2対応。動作クロックをRyzenと同じ全コア3.6GHzで固定し、省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。


Software
 AMV4 Video Codec Ver4.02
 CodecBench64.exe Ver1.01 自作のベンチマークソフト(非公開)



■結果
Ryzen 1800X 3.6GHz  HD画質 シングルスレッド処理
CodecMode ModuleEncode
FPS
 Decode
FPS
AMV4DY3AVX2.0643 704 
AMV4DY3SSE4.1643 880 


Kabylake Core i7 7700K 3.6GHz  HD画質 シングルスレッド処理
CodecMode ModuleEncode
FPS
 Decode
FPS
AMV4DY3AVX2.01106 1169 
AMV4DY3SSE4.1747 646 



■考察
AVX2を使ったKabylakeが突出した性能を発揮していることが解ります。ちなみにこのFPSが540を超えると 理論上4K動画を秒間60フレーム以上処理する能力があります。
一方、RyzenはAVX2とSSE4どちらでもエンコード処理はほぼ同じ性能となっています。AVX2命令を使っても性能が向上しないためこのテストではKabylakeと比べると少し見劣りする結果となりました。

PC Watchのこちらの記事によると

Ryzenの場合256bitのAVX命令は128bitのマイクロオペレーションコード2つに分解して処理するためAVX命令、SSE命令どちらを使っても単位時間あたりに処理できるデータ数(Byte数)に違いが出ないようです。

また、Ryzenのデコード処理に注目するとAVX2版よりSSE4版の方が2割以上良い結果が出ています。
さらに言えば、KabylakeのSSE4版よりもRyzenの方がいい結果となっています。

これは単にAVX命令とSSE命令による違いではなく、プログラムの実装方法による違いが影響していると思われます。
まだ調べていないので予想となりますが、AMV4ビデオコーデックは条件分岐処理を排除することで処理速度の向上を図っているけど、SSE4版のデコード処理だけは条件分岐処理を使って処理するようになっているので、そのことがRyzenでは良い結果につながっているのかもしれません。


・RyzenはAVX命令を使ってもSSE命令を使ってもパフォーマンスは変わらない(プログラムによっては、AVXを使うとパフォーマンスが低下する場合がある)
・Ryzenは分岐処理を使っても高いパフォーマンスを維持できるかもしれない(未検証)
・KabylakeのAVX命令は額面通りの圧倒的な性能を発揮する(ただしAVX命令を活かせるプログラムは皆無に近い)
・AVX命令を活かせないプログラムの場合にどちらが有利かはプログラム次第、IPCは互角と言って良いのではないでしょうか。ただし、空冷で簡単に5GHzを達成するので動作クロックを考慮するとやはり1コアあたりの性能はKabylakeに軍配が上がることが多いと思います。


最後に、RyzenでAMV4ビデオコーデックを使う場合はSSE4を使うように設定した方が良いです(自動設定だとAVX2を使ってしまいます)。AMV4ビデオコーデック以外でもAVX命令を使うかどうか設定できるプログラムの場合にAVXを使わないように設定することで性能が向上する場合があるようなので、Ryzenにおける豆知識かもしれません。

AMV4setting.png


テーマ : PCパーツ     ジャンル : コンピュータ

スーパーアマレココ 不具合と雑記

無事公開までこぎつけたスーパーアマレココですが窓の杜に紹介記事が掲載されたこともあり、たくさんのコメントがツイッターに寄せられていて嬉しい限りです。不具合などのコメントもありましたので一部記載します。


■不具合
ツイッターで不具合を書いてくれている人がいたので確認したところ、
マルチモニター環境で、録画対象のモニター以外のモニター上で
モノクロのマウスカーソル(メモ帳などのカーソル)を動かすと映像に黒帯が入ってしまう。

ある程度不具合報告が溜まったら修正します。
それまでは、マルチモニターの場合は気を付けて使うか、ビデオ設定の「マウスカーソルを録画する」をOFFに
してください。


■スーパーアマレコTVではありません
今回はアマレココのスーパー版ですが、今回の内容はアマレコTV4へフィードバックしていきますので
アマレコTVが良いんだって方は今後のアマレコTV4をお待ちください。

・スーパーアマレココはデスクトップキャプチャに特化した、初心者向けのアプリ。
・アマレコTV4はデスクトップキャプチャ機能やオーディオミキサーを含む、多機能な上級者向けのアプリとしていきます。


■「スーパー」って・・・
1月にアマレコTV4の紹介の中で「スーパーアマレココ」とネタっぽく書きましたが、
その時点でアマレコTV4と比べ半分くらいまでCPU負荷を軽減できるかもしれない手応えがありました。
アマレコTV4のデスクトップキャプチャ機能自体、優秀な部類に入ることを自負していたので、
そこからさらに半減となればこれはもうスーパーと言いたくなります。
で、実際はCPU負荷に加えてGPU負荷まで軽減できたことからネタではなく「スーパーアマレココ」を名乗ることにしました。


アマレココ4 その12 スーパーアマレココ 公開

ホームページでスーパーアマレココ 正式版 Ver4.11 を公開しました。

1.スーパーアマレココ Ver4.11 特徴
1) デスクトップを録画することに特化 簡易性を追求
2) 簡単でありながら 極まったパフォーマンスを達成
3) Desktop Duplication APIによる安定したデスクトップキャプチャ処理
4) Windows8.1 / Windows10 64bit 専用


■簡易性
デスクトップの録画に特化したスーパーアマレココは初心者向け、
オーディオミキサーなど多機能なアマレコTVは上級者向けと言った位置づけになります。
オンラインヘルプ:アマレコ シリーズ一覧

■パフォーマンス
Desktop Duplication APIによるデスクトップキャプチャ処理とAMV4ビデオコーデックによる
エンコード処理により録画中のGPU負荷とCPU負荷の両方を極めて低く抑えます。
そのため、ウインドウモードで実行しているPCゲームの動作をほとんど妨げることなく録画できます。
ブログ記事:アマレココ4 その11 vs ShadowPlay

■安定性
Desktop Duplication APIはOSにより完全にサポートされた機能ですので、
安定したデスクトップキャプチャ機能を提供します。
また、フレームの取りこぼしを極めて低く抑えることができます。
数分程度ならHDMI出力の映像をビデオキャプチャしたものとスーパーアマレココの録画が完全に一致します。
ブログ記事:アマレココ4 その6 ストIV ベンチによるキャプチャテスト



2.スーパーアマレココ Ver4.10 ベータ版からの変更点
1) 設定画面が画面の外に出て操作出来なくなるのを修正。
2) 録画範囲が対象となるウインドウと上手く重なっていないとカクカクした動画になってしまうのを修正。
横長のゲーム画面と縦長の録画範囲だった場合に、十字のような位置関係だと
録画範囲が重なっていないと判定してしまって上手くキャプチャできませんでした。
  +-----+
  |     |
+---------+
|         |
|   GAME  |
|         |
+---------+
  | REC |
  +-----+


3.ダウンロード
ホームページでダウンロードしてください。


アマレココ4 その11 vs ShadowPlay

キャプチャソフトのなかで現状最も性能が良いと思われるShadowPlay(現在はシェア機能となっていますが、ここではShadowPlayと表記します)とスーパー アマレココ(以下アマレココ)をFF14ベンチを使って比較しました。

ff14benchi.jpg

1.ShadowPlay
ShadowPlayを使うためのGeForce Experience。シェアの項目をONにすると録画関連の機能を使えるようになります。
ShadowPlayのテストをするときはシェア機能をON、アマレココのテストをするときはシェア機能をOFFとしています。
sp_experience.jpg


デスクトップ全体を録画する場合はシェア機能の基本設定のプライバシー管理で「はい」を選択します。
この記事ではこれを「ShadowPlayデスクトップキャプチャ」と表記します。
また、「いいえ」とした場合はゲーム画面だけを録画でき、この記事では「ShadowPlayゲームキャプチャ」と表記します。
sp_privacy2.jpg   


録画設定で解像度とフレームレート、ビットレートを設定できます。フレームレートを60FPSとしても、モニターのリフレッシュレートが59.94Hzであれば59.94FPSの動画ファイルとなるようです。
sp_custom.jpg


59.94HzのモニターでShadowPlayを使って録画したビデオファイルをAviUtl + L-SMASH Works File Readerで読み込んだ際のプロパティ。
今回のテストは59.94Hzのモニターなのでこれでちゃんと録画できていると思います。
sp_59fps.jpg


今回のテストではインスタントリプレイを無効にし、ShadowPlayの録画は全てホットキーによる手動操作で行っています。
sp_replay.jpg 


2.テスト方法、テスト環境
デスクトップ(1920x1080)にFF14ベンチをウインドウモード、HDサイズ(1280x720)、DirectX11、高品質(ノートPC)で実行して録画していない場合と、各キャプチャソフトで録画した場合のベンチマークスコアで評価します。
録画はデスクトップ全体(1920x720 59.94fps)とゲーム画面だけ(1280x720 59.94fps)の2種類で行います。

また、今回のベンチマークスコアには最大で5%程度の開きが観られたため、複数回テストを行い平均値で評価します。
同様のテストをされる場合は一発テストだとたまたま高いスコアだったり、たまたま低いスコアとなった場合、今回のように微差だと優劣が変わってきてしまう可能性があるので注意した方が良いかもしれません。

テスト環境
OS Windows8.1 x64 Professional
CPU Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz Haswell
MB ASRock H87 Performance (Intel H87)
Memory DDR3 1600 16GB(8GBx2 Dual Cannel)
Video NVIDIA GeForce GTX 1080 8GB
 NVIDIA GeForce GTX 650 1GB
Monitor 1920x1080 94.94 HDMI
録画HDD WD30EZRX 3TB
Software AmaRecCo Ver4.10 ベータ2
 ShadowPlay GeForce Experience Ver3.1.0.52  Driver 375.63
 ファイナルファンタジーXIV: 蒼天のイシュガルド ベンチマーク
 くるくるベンチDX11 Ver1.00
備考 CPUは4コア、8スレッド、HTT対応、AVX2対応。動作クロックを3.4GHz(定格)で固定し、省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。



3.テスト結果

 録画
画像サイズ
ベンチスコア
(平均値)
スコア低下率
 録画なし-18612-0.0%
 ShadowPlay デスクトップキャプチャ1920x1080 59.94fps17925-3.6%
 ShadowPlay ゲームキャプチャ1280x720 59.94fps17589-5.4%
 アマレココ デスクトップ全体1920x1080 59.94fps17744-4.6%
 アマレココ ゲームウインドウを範囲指定1280x720 59.94fps17953-3.5%


 

ベンチマークスコア 内訳
 スクリーンショット1回目2回目3回目4回目5回目平均値
 録画なし gtx1080_norec.jpg18737185341871318467-18612
 ShadowPlay
  デスクトップキャプチャ
 
gtx1080_sp_FHD.jpg1768218169(17194)--17925
 ShadowPlay
 ゲームキャプチャ
gtx1080_sp_HD.jpg175811744318030174381745517589
 アマレココ
 デスクトップ全体
gtx1080_amarec_FHD.jpg17791177291764917808-17744
 アマレココ
 ゲームウインドウを範囲指定
gtx1080_amarec_HD.jpg179521820717484178071831717953

※ ShadowPlayのデスクトップキャプチャの3回目で17194を記録しましたが、明らかに低い数値なので平均値の算出から除外しました。これを平均値に加味するとアマレココより平均スコアが悪くなってしまいます。



デスクトップ全体(1920x1080)を録画する場合はShadowPlayが有利。
ゲーム画面だけ(1280x720)を録画する場合は意外にもアマレココが有利な結果となりました。
これは、アマレココは画像サイズに比例してスコアが上下するのに対し、ShadowPlayの場合はキャプチャ方式(プライバシー管理の「はい」、「いいえ」)によりスコアが変わってくるようで、デスクトップ全体を録画するよりゲーム画面だけを録画する方がスコアが低下しています。
これにより、基本的にはShadowPlayの方が有利(※)ですが、デスクトップ上のゲーム画面だけを録画するような使い方だと逆転しています。

推測になりますが、アマレココ、およびShadowPlayのデスクトップキャプチャモードはDWM(Desktop Window Manager)がレンダリングする秒間60フレームだけを処理するのに対し、ShadowPlayのゲームキャプチャモードはゲームプログラムが秒間100フレームレンダリングしたら100フレーム、ゲーム側が200フレームレンダリングしたら200フレーム分 ShadowPlayが何かしらのGPU処理を行っていて、その分スコアが低下しているのではないかと思われます。
(ShadowPlayのゲームキャプチャモードはゲーム側のFPSが高くなるとスコア面で不利になってくるかもしれない)。

※ ShadowPlayのデスクトップキャプチャに録画範囲を指定する機能があればアマレココより有利にゲーム画面だけを録画できるはずです。


4.GPUの性能が低い場合(GTX650)について
GPUの性能が低いとFF14ベンチを実行しただけでGPUクロックが最大になりGPU使用率も99%となるため、スコアは、ほぼキャプチャソフトのGPU使用率で決まってきます。

ビデオコーデックなどCPUでどんなに重たい処理をしたとしても、GPUをできるだけ使わないように設計されたキャプチャソフトが有利で、逆に、ShadowPlayの様にCPUでほとんど処理をせず、GPUで大半の処理を行うタイプはあからさまに不利となるようです。

GTX650でくるくるベンチを録画した場合のGPU使用率
 GPUクロックGPU使用率スクリーンショット
 ShadowPlay デスクトップキャプチャ1058 MHz24%gtx650 krkr sp rec
 アマレココ デスクトップ全体540 MHz35%gtx650 krkr amarec rec


ベンチマークスコア
 録画
画像サイズ
ベンチ
スコア
スコア
低下率
スクリーンショット
 録画無し-6311-0.0%gtx650_norec.jpg
 ShadowPlay デスクトップキャプチャ1920x1080 59.94fps5135-18.6%gtx650_sp_FHD.jpg
 アマレココ デスクトップ全体1920x1080 59.94fps5955-5.6%gtx650_amarec_FHD.jpg

GTX650だとShadowPlayの性能面での優位性は見て取れませんでした。
アマレココというより、有名どころのキャプチャソフトであればShadowPlayより明らかに高いスコアとなるのではないでしょうか。



5.まとめ
・ShadowPlayのデスクトップキャプチャモードのスコアは同条件(同じ画像サイズ)であればアマレココより有利。
・ShadowPlayのゲームキャプチャモードはゲームのfpsが60fpsより高くなると、スコア面でアマレココより不利になる可能性がある。
・アマレココのスコアは録画範囲(画像サイズ)に比例する。画像サイズが小さくなるとShadowPlayでデスクトップ全体を録画したり、ShadowPlayのゲームキャプチャモードで録画するよりアマレココのほうが有利。
・GPUの性能が悪く(例GTX650)ゲーム処理のボトルネックがGPUとなる場合、ShadowPlayの性能面での優位性は皆無となる。
・GPUの性能が悪い場合は、アマレココに限らず大抵のキャプチャソフトがShadowPlayより良いスコアになると思われる。



アマレココ4 その10 スーパー ベータ2 公開

GPU処理の最適化を行ったベータ版です。GeForce GTX650 で約5%、GeForce GTX1080 で約1% ゲームのベンチマークスコアが向上します。また、正式名称を「スーパー アマレココ」とすることにしました。

1.主な変更点
1) GPU処理を最適化
2) 正式名称を「スーパー アマレココ」に変更
3) 録画詳細設定のダミーピクセルに「自動」を追加、デフォルト設定を「自動」に変更
4) スクリーンショットを撮った際にエラー落ちするかもしれないのを修正
5) スクリーンショットのホットキーを押しっぱなしにしたときにつく連番を修正
6) 録画詳細設定のテクスチャ数の設定を廃止

テクスチャ数の設定は私のカン違いでした。ビデオメモリをシステムメモリへ転送するテクスチャがビデオメモリとシステムメモリの
両方を消費すると思っていましたが、ビデオメモリは使わずに、システムメモリだけのようなのでビデオメモリを節約する効果はありません。設定を廃止し、転送用のテクスチャ数は6に固定しました。

ダミーピクセルを「自動」とすると、状況に合わせて自動的にダミーピクセルをONにしたり、OFFにします(録画中にON/OFFが切り替わります)。
多くのケースで「常にON」よりベンチマークのスコアが伸び、かつ、多くのケースで「常にOFF」よりフレームの取りこぼしを軽減します。
逆にいうと、「常にON」よりフレームを取りこぼす可能性があり、「常にOFF」よりスコアが低下する可能性があります。


2.ダウンロード
・スーパー アマレココ Ver4.10 ベータ版


不具合などありましたら、この記事のコメント欄に書き込んでいただけると助かります。
特に問題がなければ、このバージョンを正式版として来週ホームページで公開する予定です。


アマレココ4 その9 GPU処理の最適化

アマレココ4の優位性はAMV4ビデオコーデックをはじめとしたCPU処理(※)にあります。
しかし、前回の記事で紹介したように「GPUの性能が低く、CPUの性能が高いPC」の場合はゲームのベンチマークスコアの面でアマレココ4の優位性が全く得られず、スコアが伸びません。(タスクマネージャでCPU使用率を見ればアマレココ4の優位性ははっきりわかるけど、それがゲームのベンチマークスコアに全く反映されない)
そこで、GPU処理についても最適化を行うことにしました。

※ アマレコTV4とアマレココ4を比較した場合のアマレココ4の優位性はRGB・YUV変換やプレビュー処理をGPUで処理することにあります。これによりCPU使用率を大幅に下げることができています。


今回はGTX650 + Haswell i7(4770)にてFHD 60fpsで録画した際のGPU負荷について簡単にテストし、GPU処理の最適化によりどの程度の効果が得られるか見ます。


1.テスト方法
FHD(1920x1080)のデスクトップにくるくるベンチをHD(1280x720)で表示して、
・キャプチャソフト起動前
・キャプチャソフトを起動してプレビューしている状態(非録画)
・デスクトップ全体を録画(1920x1080 60fps)している状態(プレビューなし)
の3つの状態をモニターソフトで観察します。

なお、ベータ1は 公開中のアマレココ4 Ver4.00。
ベータ2は 開発中のバージョンとなります。


2.結果

 CPU使用率GPUクロック GPU使用率ビデオメモリスクショ
起動前1 %324 MHz24 %132 MBkidoumae_20161102202452c0c.jpg
ベータ1:プレビュー2 %540 MHz34 %199 MBb1_preview.jpg
ベータ1:録画中5 %540 MHz45 %203 MBb1_rec.jpg
ベータ2:プレビュー2 %324 MHz48 %173 MBb2_preview.jpg
ベータ2:録画中5 %540 MHz34 %178 MBb1_rec.jpg


CPUの使用率はプレビュー、録画中ともに変わっていないことがわかります。

プレビュー中は、ベータ1はGPUクロックが高く、GPU使用率が低い結果となりました。
ベータ2では逆にGPUクロックが低く、GPU使用率が高い結果となっています。
クロックが一致しないので最適化の効果があるのかどうか何とも言えません。
一応、クロックと使用率を掛けた値ではベータ2の方が低いので、最適化の効果が得られているのかなと思います。

録画中はGPUの動作クロックがともに540 MHzとなり、GPU使用率が45%から34%に下がっているので、最適化の効果がはっきりわかります。


なお、GTX1080で同様のテストを行いましたがGPUクロックがそろわず、明確な差は見て取れませんでした。
クロックと使用率を掛けた値でもほとんど同じ値でしたので、GTX1080レベルになると微差なのかもしれません。




3.ノートPCでは・・・
amarecco4beta2_notepc.jpg

こちらはノートPCで同様のテストをした時の様子です(GPUに関するモニターはありません)。
タスクマネージャのグラフの左半分がベータ1で録画していた部分、右半分がベータ2で録画しているところです。

CPU処理に関してはほとんど変更を行っていないので変化が無いはずです(先のテストでもCPUの使用率に違いは見て取れない)。
しかし、このノートPCでは録画中のCPU使用率が約48%から約38%へと大幅に低下しています。
憶測になりますが、ビデオカードを搭載していない(専用のビデオメモリを持たずシステムメモリの一部をビデオメモリとして使う)PCではGPU処理の一部をCPUが肩代わりしていると言ったところでしょうか。
GPU処理の最適化によりそういった部分がそぎ落とされたのでCPU使用率が下がったものと思われます。
ただし、同じオンボードグラフィックでもIvy BridgeのデスクトップPCではCPU使用率に差が見て取れなかったので、何がこういった差になるのか本当のところは不明です。


4.ゲームのベンチマークスコアで言うと
ベータ1と比べてベータ2はGTX650で5%程度のスコア向上、GTX1080で1%程度のスコア向上が見込めるかなと思います。


アマレココ4 ベータ2はもう少しテストして今週末ブログで公開予定です。


アマレココ4 その8 一般公開延期と課題

今週末にオンラインヘルプを作って一般公開する予定でしたが、もう少し頑張ろうと思う部分が出てきたので2週間程延期することにしました。それまではベータ版をお試し頂ければと思います。また、不具合などありましたらご報告いただけると助かります。

今のところ不具合も見つかっていないですし、不具合報告もゼロなので、このままベータ版を正式版として一般公開するつもりでいました。
ところが、ファイナルファンタジー14(FF14ベンチ)やストリートファイター4(SF4ベンチ)などのベンチマークソフトを使って他のキャプチャソフトと比較していたところ、アマレココ4が1番(ShadowPlayを除く)と言える条件がある一方で、トップスコアのキャプチャソフトから10%程度離されてしまう条件もありました。
そこで、全ての環境で一番は無理にしても、不利な条件でも僅差と言えるレベルまで持っていけないか延長戦に突入します。


以下、テストで見えてきたことを紹介します

■ビデオカード(GPU)の性能が上がるほどアマレココ4のスコアは他のキャプチャソフトに比べ優位になる
おそらくGeForce GTX1070とか1080までいくと、ほぼアマレココ4はトップ(ShadowPlayを除く)かトップクラスのスコアになると思います。
逆にGPUの性能が低くなるとCPUの性能とのバランスでアマレココ4の優位性が変わってきます。
GPUの性能が悪く、且つ、CPUの性能も悪ければ、はやりアマレココ4が優位となりますが、GPUは悪いけど、CPUの性能は良いといった場合(例 GeForce GTX650 + Haswell i7-4770)は、かなり悪いスコアとなる場合がありました。

GPU性能CPU性能アマレココ4の優位性
良い良いちょっとでもCPU処理がスコアに反映される条件ならアマレココ4が優位
良い悪いCPU処理が如実にスコアに反映されるためアマレココ4が圧倒的に有利
悪い悪いちょっとでもCPU処理がスコアに反映される条件ならアマレココ4が優位
悪い良いCPU処理がスコアに反映されなくなるとアマレココ4(AMV4)のスコア面の優位性は皆無


■アマレココ4はFF14ベンチが苦手でSF4ベンチは得意
GPUの性能が良ければどちらもいい結果が出るのですが、先のようにGPUの性能が悪くCPUが良い場合は、FF14ベンチのスコアが他のキャプチャソフトと比べとても悪くなりました。
推測になりますが、ゲーム側の処理が60fpsを維持できなくなると、アマレココ4のスコアが悪くなる印象です。
なお、SF4ベンチの方はこの条件でもゲーム側の処理が60fpsを維持できており、アマレココ4はトップレベルのスコアとなります。

■GPUの性能が悪く、CPUの性能が良い場合のコーデックについて
GeForce GTX650 + Haswell i7-4770のような環境ではコーデックに処理の早いAMV4を使おうが、滅茶苦茶処理の遅いx264を使おうが、FF14ベンチ、SF4ベンチ共にベンチマークのスコアという形で差異は見て取れませんでした。
それぐらいゲーム側の処理がGPUに依存しておりCPUによる処理は完全に無関係な状態でのテストと言えます。
ですので、この条件でアマレココ4やAMV4を使ってもスコア面の優位性はありません。

■DirectXキャプチャとDpuplication API
SF4ベンチではDirectX系のキャプチャソフトが例外なく苦戦しているように見えました(SF4ベンチではDuplication API系が総じて有利と思われます)。
逆にDirectX系のキャプチャソフトがそろって上位を占めたのがGPUの性能が悪くCPUの性能が良い場合のFF14ベンチでした。
同じFF14ベンチでもGPUの性能が良い場合はキャプチャ方式の違いによる傾向は見て取れませんでした。おそらくCPUで処理する分部(主にコーデックの処理)で優劣が決まるものと思われます。

■キャプチャ時のカラーフォーマットによる違い
細かい差異になりますが、ビデオメモリからシステムメモリへ画像を転送する際のカラーフォーマットもベンチマークスコアにかかわってきます。

・RGB 32bit (1920x1080 60fps : 1秒あたり 約474MB )
・RGB 24bit (1920x1080 60fps : 1秒あたり 約355MB )
・YUV 16bit (1920x1080 60fps : 1秒あたり 約237MB )
・YUV 12bit (1920x1080 60fps : 1秒あたり 約177MB )

おもに、この4種類があり、1秒当たりの転送量が少ない方がベンチマークのスコア的に有利となり、多くのキャプチャソフトがYUV 12bitを採用しているようです。動画は最終的にYUV 12bit相当のフォーマットとなりますので妥当な選択です。
しかし、アマレココ4はRGB 32bitまたはYUV 16bitなのでこの点でやや不利となってしまいます。
GPUの性能が悪く、CPUの性能が良い環境ではこの差が絶対に超えられない差となりアマレココ4は僅差ですがどう足掻いてもトップに立てません。

なお、ShadowPlayにおいては圧縮したデータを転送するので、この点において、ShadowPlayと他のキャプチャソフトの間には超えられない壁があると思います。
例えば80Mbpsで録画するように設定した場合の理論上の転送量は10MBとなりますので、他のキャプチャソフトの10分の1以下です。
これに加えCPUを使ってエンコード処理をしなくていいのですから、ベンチマークのスコアで評価する限りShadowPlayを超えるキャプチャソフトというのはあり得ないのではないでしょうか。

■BandicamでNVENCを使うとベンチマークのスコアが低下する場合がある
ゲームをキャプチャする場合はBandicam内臓のMotion JPEGやQSVを使った方がスコア面では有利と思います。
下記の記事でBandicamのスコアが低いのもNVENCを使ってテストしているからではないでしょうか。

ゲームpcバンク「おすすめ!無料のゲーム録画ソフトで軽いのはどれか比較



アマレココ4 その7 ベータ版公開

お待たせいたしました、アマレココ4のベータ版を公開します。
オンラインヘルプはまだなので、少々のことは自力でやりくりできる方が対象となります。

amarecco4_2016102122065250d.png

1.主な仕様
・対応OSはWindows8.1 / Windows10(※) 64bit版専用となります。
・32bit版のOSでは実行できません。
・Windows7以下はDesktop Duplication APIが非対応なので使えません。
・SSE4.1に対応したCPUが必須となります。
・DirectX11に対応したGPUが必須となります。
・シェアウエア(有料)のAMV4ビデオコーデックが必要です。
・AMV4ビデオコーデックのライセンス登録が済んでいない場合は録画時にAMV4のロゴが入ります。


※ Windows10で私は使えていますが、最終的に使えるかどうかはあなた次第です。アマレココ4が原因でうまく動作しないケースは今のところありません。

これはアマレコTV4にも言えることですが、Windows10でアマレコTV4が使えないという人も居るようなので、やはり使えるかどうかはあなた次第です。アマレコTV4がWindows10に対応していないから使えないという認識だと一生使えないかもしれませんよ。

また、Windows10でAVIファイルを再生していると途中でエラーになる人は、Windows10のアップデートをちゃんとやって最新の状態にすれば改善されるかもしれません。
私のところではWindows10でAVIファイルの再生(3時間程度のAVIファイルの再生)も問題なくできるようになりました。
(以前はこの記事「Windows10のWMPでAVIファイルが再生できない」のようにWindows10でAVIファイルを再生していると数分でエラーが出ました。)


2.簡単な使い方
メイン画面
設定画面
起動オプションそのた



3.ダウンロード
アマレココ4 Ver4.00 ベータ版

アマレココ4 その10 スーパー ベータ2 公開

不具合などありましたら、この記事のコメント欄に書き込んでいただけると助かります。


アマレココ4 その6 ストIV ベンチによるキャプチャテスト

>1.テスト方法
カプコンのストリートファイターIV ベンチマークを使ってアマレココ4の性能をテストします。
くるくるベンチと異なりCPU負荷だけでなくゲームプログラムへ与える影響も分かります。

ストIVベンチを1600x900のウインドウモードで実行し、録画していない場合と、アマレココ4+AMV4(YUV:DY3)でデスクトップ全体(1920x1080)を59.94fpsで録画した場合を比較します。

ストIVベンチの設定
st4setting.png


2.PCスペック
PCスペック
OS Windows8.1 x64 Professional
CPU Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz Haswell
MB ASRock H87 Performance (Intel H87)
Memory DDR3 1600 16GB(8GBx2 Dual Cannel)
VGA NVIDIA GeForce GTX 650 1GB
録画HDD WD30EZRX 3TB
Software  AmaRecCo4 開発版
 くるくるベンチDX11 Ver1.00
備考 CPUは4コア、8スレッド、HTT対応、AVX2対応。動作クロックを3.4GHz(定格)で固定し、省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。




3.結果

 録画CPU負荷ベンチスコア
録画なし約 10 ~ 14 %
 cpu_norec.jpg
92.37 fps
norec.png
アマレココ4
AMV4
(YUV:DY3)
1920x1080
59.94fps
約 14 ~ 17 %
cpu_amarecco4.jpg
79.64 fps
rec_amarecco4.png
 


平均FPSが約13フレーム低下となりました。
また、録画中のCPU負荷は一概に言えませんが約3 ~ 4%程度増えています。

続いて、フレームの取りこぼしについても検証してみました。


4.フレーム取りこぼし検証方法

PC1でストIVベンチを実行してアマレココ4でデスクトップ全体を録画。
そのPC1のモニター出力(ビデオカードのHDMI出力)をPC2でビデオキャプチャカード(キャプチャボード)を使って録画。
PC1のアマレココ4で録画したビデオファイルとPC2のビデオキャプチャカードで録画したビデオファイルを比較して検証。
010cmp.png

アマレココ4およびビデオキャプチャカードの双方に取りこぼしがなければ理屈の上では同じフレームが映っているので両映像を引き算したとき、ほぼ真っ黒な映像となるはずです。


5.検証動画の編集
まずAviUtlでPC2のビデオキャプチャカードで録画したファイルを読み込みます。
100aviutl_load.png


次に、PC1のアマレココ4で録画したファイルを拡張編集のLayer1へ読み込みます。
110load_amarecco.png


Y座標を一時的に下にずらして2つの映像を見えるようにします。
120move_down.png


拡張編集の操作で似たシーンになるまで動画の再生位置を(大雑把に)調整します。
130move_time.png


拡張編集の動画ファイルの画面から1フレーム単位の微調整をおこない、完全に同じフレームになるようにします。
シーンチェンジや一瞬光るエフェクトを目印に合わせるといいと思います。
140move_fit.png


最後にY座標をゼロに戻し、合成モードから「減算」を選択して完了です。
150cmp.png


2つの動画の内容がほぼ一致する場合、引き算した値もほぼゼロとなるため真っ黒な映像となります。
取りこぼしなどフレーム単位で映像に食い違いが生じると下図のように異なる部分が一瞬見えます。
160drop.png 


6.検証動画
アマレココ4のフレーム取りこぼしテスト(YouTube)



終始真っ黒となるためこの録画テストの間、アマレココ4とビデオキャプチャカードによる取りこぼしは双方とも無かったと言えます。
ちなみに取りこぼしがある場合は次のようになります。
取りこぼしがある場合の例(YouTube)


■注意事項
ビデオ信号とビデオキャプチャカードの仕様が適合している必要があります。
例えばビデオ信号(モニター出力のリフレッシュレート)が60Hzでキャプチャカードが59.94fpsだと調整が入り一致しなくなります。

ビデオキャプチャカードのビデオキャプチャソフトにアマレコTV4を使い映像のドロップがないことを確認すること。
ステータス欄で(+)や(-)のドロップがカウントされている場合は当然その部分で一致しなくなります。
録画が終わった後ドロップがゼロであることを確認してください。
同様にアマレココ4もドロップステータスを表示してゼロであることが前提となります。
長時間録画すると必ず(+)(-)の調整が入りますのでこの検証ができるはせいぜい数分です。

DirectXタイプのキャプチャソフトの場合は取りこぼしが無くても一致しない可能性があります。
これは、1秒間にモニターに出力する画像枚数と、ゲーム内でレンダリングされる画像枚数に食い違いがあるためです。
例えばゲームのFPSが70fpsで録画FPSが60の場合、70枚の画像を60枚に間引くことになりますが、その間引き方が画面表示と異なる場合があるためです。
Duplication APIの場合はゲームが70fpsでも得られる画像は60枚なので画面表示と一致するようです。

ゲーム側の処理がモニターのリフレッシュレートを下回る場合は一致しない可能性が高いです。
例えばゲームのFPSが50fpsで録画FPSが60fpsの場合、50枚の画像を60枚に水増ししますが、その水増しの仕方が画面表示とキャプチャソフトの処理で異なるためです。
Duplication APIの場合も得られる画像は50枚なので一致しない可能性が高いです。



何事もなければ明日ブログにてアマレココ4 ベータ版を先行公開します。
正式版の公開はホームページで来週を予定しています。



 
 
あまラボへようこそ
このブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。

ファイルのダウンロードはホームページの方でお願い致します。

質問・要望・不具合報告はこちら
アマレコTV
アマミキ!
アマレココ
アマレコ・ライト
ファンタジーリモート
AMVコーデック



ホームページ
カテゴリ
最新コメント
カレンダー
11 | 2017/03 | 03
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
最新記事
最新トラックバック
ブログ内タグ

アマレコTV ビデオキャプチャ AMVコーデック アマレココ アマミキ! コーデック SC500 動画配信 ファンタジーリモート アマレコライト プラグイン AMV4 SC512 デスクトップキャプチャ AVX2 ライブ機能 質問コーナー FAQ リモートソフト HDキャプチャ ニコニコ動画 DirectShow LEGO 解説動画 組み換え 4K レゴ 可変再生速度 遅延 XL2420T 液晶モニター アマステ 120Hz 倍速液晶 GV-USB2 Intensity AMV2MT PS4 Pro デインターレース ベンチマーク RDT233WX-Z ffmpeg SD-USB2CAP4 GV-USB 32ZP2 designs Alternate VideoKeeper2 XCAPTURE-1 31024 AVX RGBキャプチャ 31006 RYZEN AtomでHDキャプチャ インストール HT OBS MPC Livetube DirectShowFilter ハイパースレッディングテクノロジー イベント 録画 Shadow Play Kabelake キャプチャーツール XCapture-1 オーバーレイ フィギュア シンクライアント 音ズレ NVEnc 31021 プレビュー 倍速駆動 ゲームスムーズモード MonsterXU3.0R 音遅延 モノステ 液晶テレビ 32ZP32 ZP3 REGZA 額縁遅延 SSE リプレイ機能 DC-HD1 電源オプション 倍速補完処理 HDCP HDMI Haswell 擬似NTSCキャプチャ IntensityPro LameACM MP3 SD-USB2CUP4 QSV 

ブログ内検索
月別アーカイブ
アマレココに関するリンク
お世話になっているソフトのリンク
RSSリンクの表示
管理画面
  • 管理画面