AMV4はハイパースレッディングテクノロジーに対応しているの?

AMV4ビデオコーデックがIntelのハイパースレッディングテクノロジー(Hyper-Threading Technology、以下HTT)に対応しているか?とのことですが。対応していません。
ただしHTTについては対応しているかどうかではなく内容を理解する必要があるように思います。


1.HTTに対応するとはどういうことか
そもそもこれが良くわかりません。個人的には複数のスレッドを使って動作するソフトウエアは結果的にHTTの恩恵を受ける可能性があるようなので、 マルチスレッドで動作するソフトウエアはHTT対応を謳って良いのかなと考えます。

AMV4はシングルスレッド版しか作っていないのでこの考え方からHTT非対応となります。

ただ、この考え方だと、AMV2MTはマルチスレッドで動作するためHTT対応を謳ってもいいのか?と言う疑問がでてきます。
AMV2MTの開発にあたってはHTTを意識していなかったため、HTTに対応しているかと訊かれれば「AMV2MTはHTTに非対応」と回答してきましたが、先日行ったベンチマークの結果「ビデオコーデック・ベンチマーク2014夏」ではHTTの恩恵が得られているように見えます。 そこでAMV2MTとHTTについて追試してみました。


2.AMV2MTとHTTに関するベンチマークテスト
テスト方法や使うPCは先日のベンチマーク「ビデオコーデック・ベンチマーク2014夏」と同じです。
ベンチマークソフトのオプションにCPUマスクを指定して、CPUの割り当てを変更した場合にパフォーマンスがどう変わるかを観察します。


2.1.テスト条件
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)read=25.4GB/s write=14.8GB/s
Software Video Codec Test 2.0.0
AMV2MT Ver2.20i
備考 CPUは4コア、8スレッド、HTT対応、AVX2対応。動作クロックを3.4GHz(定格)で固定し、省電力設定およびTurbo BoostはBIOSで無効化、動作クロックがテスト中に変動しないようにしています。

※ メモリーのread,writeはCrystalMark 0.9.114によるものです。

サンプル動画1 Nature Movie YUY2:動きの激しい比較的低画質な実写映像
 タイトル Mystery of the Nile
 情報 1280*720、2082frames、1分26秒、3,837,598,360Byte
sample1_nature.png
 備考  AviUtlを使ってYUY2未圧縮に変換。
 動きが激しくて、画質も悪いため圧縮しにくい不利な条件のそろった動画によるテスト。
 いつものベンチマークで使っている動画と同じものです。


2.2.テスト結果
AMV2MT Y2可逆とHTTのベンチマーク
スレッド
CPU
マスク
エンコード
fps
デコード
fps
圧縮
効果
内容タスク
マネージャ
(1)40xFF165018502.104スレッドで処理
CPUへの割り当てをしない
amv2mt(4)_0xFF.png
(2)40x0F162712572.102コア4スレッドで処理
(HTTを使った処理)
amv2mt(4)_0x0F.png
(3)40x55223518272.104コア4スレッドで処理
(HTTを使わない)
amv2mt(4)_0x55.png
(4)40xFF226918312.10HTTをBIOSで無効
(3)と同じ
amv2mt(4)_0xFF_HTT-off.png
(5)80xFF222822262.108スレッドで処理
CPUへの割り当てをしない
amv2mt(8)_0xFF.png
※ CPUマスク:”vctest-x86.exe -a 0xFF [ファイル名]”のようにしてテストしています


(1)は4つのスレッドをどのCPUを使って処理するか明示しない場合で、通常の利用シーンではこの結果が適用されます。
4つのスレッドをどのCPUへ割り当てるかはOSがその時のPCの状況に合わせてうまくやってくれることになっています。が、デコード処理は良いけどエンコード処理はパフォーマンスが低下していてうまく割り当てられていないように見えます。また、タスクマネージャを見るとまんべんなく割り当てられているのが解ります。

(2)は4つのスレッドを2つのCPUコアへ割り当ててHTTにより処理した結果です。もっとも低いパフォーマンスとなっています。

(3)は4つのスレッドを4つのCPUコアへ割り当てて処理しています。この条件ではHTTは使われないはずですが、心配なので念のためBIOSからHTTを無効にした(4)のテストも行いました。
(3)と(4)の結果がほぼ一致することからHTTを使わない場合のパフォーマンスとみてよさそうです。

(5)は4コア8スレッドのテストです。CPUリソースを最大限に利用するはずなので最もいい結果が期待できます。
しかし、エンコード速度は(3)の4コア4スレッドとほぼ変わらないためHTTの恩恵は得られないと言えます。
デコード速度は(3)より21%向上しているためHTTの恩恵を少しだけ受けられると言えそうです。


以上からAMV2MTはHTTに対応していると言っても差支えないけど、デコード速度が少し早くなるだけで
HTTに対応しているかどうかはそんなに重要ではない。と言ったところでしょうか。


3.エンコーダーでHTTの恩恵がなく、デコーダーで恩恵があるのは何で?
推察になりますが、条件分岐処理の影響が要因の一つと思います。
AMV2MTのエンコード処理には条件分岐が含まれていないのに対し、AMV2MTのデコード処理の中心部では条件分岐を使っています。
参考「AVX2対応デコーダーはなぜ3倍も高速化できたのか
 
条件分岐の分岐予測が外れると、しばらくの間、演算器を使わない状態になるので、その間にもう一方のスレッドが動作して全体のパフォーマンスが向上していると思われます。

また、上記のAMV2MTのデコード処理はHTTの恩恵を受けられますが、後に公開したAVX2対応 AMVデコーダー デモ版では条件分岐処理を廃止することで大幅にパフォーマンスを向上させています。
マルチスレッドに対応していないので確認はできませんが、おそらく条件分岐処理がないためHTTの恩恵は受けられないと思われますが、HTTの恩恵以上のパフォーマンスを発揮しています。

HTTによるパフォーマンス向上より、条件分岐処理を行わないなどの最適化の方がよりパフォーマンス向上が見込めるのでこの点からも、HTTに対応しているかどうかと言うのはあまり重要ではないように思います。


4.HTTについてのカン違い
いままで私がHTTを語る際に使っていた整数スレッド、実数スレッドのような概念は関係なかったようです。
Haswellを例にとると1つのコアに4つのALUが実装されているので整数スレッド2つでもHTTの恩恵を受けられる可能性があります。SSE命令やAVX命令も1コアあたり最大3つ使えるようです。

また、前述の条件分岐のようにスレッドが一時的に止まっている間、もう一方のスレッドが動作するので、整数処理しか行わないプログラムであってもHTTの恩恵は受けられます。


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

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

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



ホームページ
カテゴリ
最新コメント
カレンダー
03 | 2018/04 | 05
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 - - - - -
最新記事
最新トラックバック
ブログ内タグ

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

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