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コーデック



ホームページ
カテゴリ
最新コメント
カレンダー
10 | 2017/11 | 12
- - - 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 ニコニコ動画 レゴ 組み換え LEGO 解説動画 4K 可変再生速度 遅延 XL2420T GV-USB2 倍速液晶 120Hz アマステ 液晶モニター デインターレース Pro ベンチマーク Intensity PS4 MonsterX3A AMV2MT 32ZP2 31024 Shadow Play RGBキャプチャ AVX RDT233WX-Z GV-USB RYZEN Alternate designs 31006 SD-USB2CAP4 XCAPTURE-1 ffmpeg VideoKeeper2 キャプチャーツール プレビュー Livetube DirectShowFilter IntensityPro AtomでHDキャプチャ イベント 擬似NTSCキャプチャ シンクライアント SD-USB2CUP4 REGZA ハイパースレッディングテクノロジー HT 31021 MPC インストール QSV NVEnc OBS フィギュア 音ズレ SSE SKnet GV-USB3 Kabelake XCapture-1 録画 オーバーレイ HDMI HDCP 32ZP32 額縁遅延 キャプチャカード 液晶テレビ 倍速駆動 リプレイ機能 モノステ ZP3 倍速補完処理 MP3 Haswell 電源オプション LameACM 音遅延 ゲームスムーズモード MonsterXU3.0R DC-HD1 

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