QSVについていろいろ

1. QSVのdGPU共存機能
2. QSVEncC + VapourSynth
とかについて。

1. Win8のQSVとdGPUの共存機能

結論から言うと、なんかうまくいかない。(追記)→QSVEnc 1.07でdGPUと共存できるようになりました。

まず、なんの話かというと、Win8だとQSVと単体GPUの同時利用ができるらしい…という話がある。
4.gamers - 「QSVと単体GPUの同時利用」をWin8環境でサポートしたIvy Bridge向けグラフィックスドライバ「15.31.3.3071」が登場

この記事では、Win8において、dGPUが搭載され、そちらがプライマリGPUとなっている場合であっても、QSVを利用できるようになった、とされている。

問題は、
現在,手元に条件を満たすノートPCがないので,「単体GPUがプライマリグラフィックスアダプタになっている環境でも,Intel HD Graphicsを無効化することなくセカンダリGPUとして利用する」ことが今回のドライバでできるようになっているのか確認は取れていないが
と書かれていて、失礼ながら「ほんとにできるんかいな…」と思ってしまうということ。

というわけで実際試してみた。

Win8 x64
Core i7 3770K, 4C/8T, 4GHz
DDR3-2133, 2ch, 8GB
AMD Radeon HD7770 as dGPU (with Catalyst 13.4)
Intel HDG4000 as iGPU (with Intel Driver 3220)

BIOSのiGPU マルチモニターをEnabledに設定。

ディスプレイへの接続は、dGPUからHDMIで出力、iGPUからは出力せず。

ここでiGPUからも出力するならQSVEncでいうところの「2nd GPU」としてきちんと動作することはわかっているので、テストはiGPUからは出力しない状態で行った。

この状態、Virtuだかを入れるといいのだけど、Win8だとVirtuなしで普通にいけるかというと…うまくいかない。認識されず、QSV無効となってしまった。

Win8_QSV_with_dGPU

iGPUから出力すれば問題なく「hw: v1.7」と表示されるのだけど。

なにがいかんのか。なにか設定とか必要なのかな? まあ素直にiGPUからも繋げばいいのだけど…。

(追記)→頂いたコメントを参考にし、QSVEnc 1.07でdGPUと共存できるようになりました。



2. QSVEncC + VapourSynth

VapourSynth r19でVSScriptなる機能(?)が追加されるらしく、vpyを直接読み込むことができるようになるみたい。

直接読み込みにするとメモリコピーを一回減らすことができ、QSVEncCで高速化が期待できる。

Avisynthで直接APIを叩くと、ヘッダをインクルードした時点でGPLにする必要がでてしまい(※2.5.8向けなら例外としてOKなのだそうです、ご指摘ありがとうございます)、Intelのライセンスとの関わりなどいろいろ面倒なので実装できない。しかしVapourSynthの場合はLGPLなので、ライブラリへのアクセス機構としてヘッダを利用する際の例外から、こちら(QSVEncC)をLGPLにする必要なないのでいけそう…。

というわけでvsscript.dll(なんかインストーラを展開しないと出てこないけど)をLoadLibraryしてひたすらGetProcAddresssして頑張るといけるみたい。5%ぐらい速くなった。

問題のVapourSynth r19はまだベータ版(?)で、謎の問題(vspipe.exeが終了時にコケる)とかあるのでr19が正式版になってからまた調整してみたい。


スポンサーサイト

コメントの投稿

非公開コメント

マルチGPUについて

Intel Media SDK 2012から2013になったときに、DirectX 11の初期化手順等について追記されてましたのでこれが必要なのかもしれません。
http://download-software.intel.com/sites/default/files/article/265550/intel-media-sdk-2013-r2-developers-guide.pdf
「4.18.1 Muti-GPU and “headless” configurations in the Intel Media SDK 2013」

Avisynth

Avisynthを利用するソフトウェアのライセンスですが、http://avisynth.org/mediawiki/Filter_SDK/SDK_necessaries にある2.5.8向けのヘッダファイルを使用する分には、例外があるのでGPLにしなくても良いようです。2.6.0向けは、Alpha版の間は例外がないのでGPLになるようです。

No title

>マルチGPUについて
なるほど、ありがとうございます。この辺り、もう一度見なおしてみます。

>Avisynth
ご指摘感謝です、AvisynthはGPLだ~というのしか頭になかったのですが例外があるのですね(2.5.8用のavisynth.hに書いてありますね…)。

No title

別にLoadLibraryせんでもVSScript.lib使えばいいのでは?
あれもr19以降はもれなくついてきますよ。

No title

AviSynth 2.6.0のAlpha版のヘッダには例外がありませんが、個人が例外のある2.5.8のヘッダを弄って、2.6.0の機能を使えるようにすることそのものには何の問題もありません。

GPLは著作権の及ぶものを対象にするので、2.6.0のこの機能を使いたいからこのAPIが必要だわー、ということで、その誰がやってもそうなるであろう必要なコードを2.5.8のヘッダに追加しても例外はなくなりません。

割りきった高速化

高速化ということだけで言うと、AviSynth経由ではなくLSMASHSource.dllを直に呼び出すと早くなりそうな気がしますね。編集はできなくなっちゃいますが、QSVだと編集しない人も多そうですし。

No title

>Chikuzen様
あ、たしかにImportLibrary使ったほうが簡単ですね。

>muken様
ありがとうございます。どうしても2.6.0の機能を使いたくなったら、2.5.8のヘッダに「誰がやってもそうなるであろう」ように追記すれば…と。むー、なるほど。

>LSMASHSource.dllを直に
どうなんでしょう。確かに速くなるかもですが、さすがにやり過ぎな感も…。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: まじぽか太郎様

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (ミラー使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR