fc2ブログ
 

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



ホームページ
カテゴリ
最新コメント
カレンダー
04 | 2023/05 | 06
- 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 ビデオキャプチャ アマレコVR AMVコーデック Oculus Quest アマレココ アマミキ! コーデック gQuest SC500 動画配信 Pico GO ファンタジーリモート 4K アマレコライト プラグイン G2 AMV4 oculus Unity SC512 ライブ機能 パススルー機能 デスクトップキャプチャ AVX2 Passthrough FAQ リモートソフト 質問コーナー ニコニコ動画 HDキャプチャ DirectShow 120Hz 背景透過 遅延 可変再生速度 レゴ 解説動画 Meta 組み換え VR LEGO XL2420T GV-USB2 2 アセット機能 液晶モニター 倍速液晶 デインターレース PS4 ベンチマーク アマステ AMV2MT Asset Intensity Pico4 MetaQuest Pro VRonVR MonsterX3A designs VideoKeeper2 AVX Alternate XCAPTURE-1 SD-USB2CAP4 GV-USB インストール RDT233WX-Z 32ZP2 31006 ffmpeg WindowsMR Rift 画像処理 31024 T2 60fps RGBキャプチャ UtVideo Shadow Play RYZEN 電源オプション HDCP Haswell HDMI 音遅延 QSV MonsterXU3.0R LameACM MP3 31021 フィギュア 音ズレ 録画 ゲームスムーズモード HT OBS MPC ハイパースレッディングテクノロジー NVEnc 液晶テレビ DirectShowFilter プレビュー 擬似NTSCキャプチャ SD-USB2CUP4 Livetube AtomでHDキャプチャ キャプチャーツール シンクライアント イベント IntensityPro DC-HD1 額縁遅延 REGZA ZP3 32ZP32 オーバーレイ リプレイ機能 モノステ 倍速駆動 倍速補完処理 キャプチャカード Robust Video Matting API APIパススルー機能 60Hz 検証 passthrough python pytorch ハンドジェスチャー パカラーススルー機能 AssetBundle 2.0 Tracking ファイルマネージャプラス SkyBox Hand AMPlayer 新プレイヤー機能 GPU使用率 LAVFilters Preferred 可逆圧縮 GV-USB3 Kabelake SSE SKnet Filter Tweaker Windows 90Hz 新アマレコVR MR VRコントローラー SteamVR VR動画 フレーム間圧縮 XCapture-1 

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