Suche senden
Hochladen
今時のLinuxにおけるGPUエンコード事情2018
•
2 gefällt mir
•
8,700 views
Z
zgock
Folgen
東海道らぐ名古屋2018/12のLTで使用した発表スライドです
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 21
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
監視 Overview
監視 Overview
IIJ
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
whywaita
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
Protocol Buffers 入門
Protocol Buffers 入門
Yuichi Ito
Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編
NAKAOKU Takahiro
Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業
kazuhiro harada
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
Unity Technologies Japan K.K.
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
Empfohlen
監視 Overview
監視 Overview
IIJ
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
whywaita
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
Protocol Buffers 入門
Protocol Buffers 入門
Yuichi Ito
Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編
NAKAOKU Takahiro
Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業
kazuhiro harada
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
Unity Technologies Japan K.K.
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
shimadah
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
zgock
HTTPを理解する
HTTPを理解する
IIJ
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
GoBGP活用によるSD-WANプラクティス
GoBGP活用によるSD-WANプラクティス
Toshiki Tsuboi
async/await のしくみ
async/await のしくみ
信之 岩永
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動
Kohei Tokunaga
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Yahoo!デベロッパーネットワーク
目grep入門 +解説
目grep入門 +解説
murachue
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
深層学習向け計算機クラスター MN-3
深層学習向け計算機クラスター MN-3
Preferred Networks
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
whywaita
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築
Tomocha Potter
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
HTTP/2 入門
HTTP/2 入門
Yahoo!デベロッパーネットワーク
分散システムの限界について知ろう
分散システムの限界について知ろう
Shingo Omura
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
Ryuichi Sakamoto
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
Takeshi HASEGAWA
今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情
zgock
NetBSD/Zynq
NetBSD/Zynq
Kaz Nakamura
Weitere ähnliche Inhalte
Was ist angesagt?
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
shimadah
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
zgock
HTTPを理解する
HTTPを理解する
IIJ
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
GoBGP活用によるSD-WANプラクティス
GoBGP活用によるSD-WANプラクティス
Toshiki Tsuboi
async/await のしくみ
async/await のしくみ
信之 岩永
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動
Kohei Tokunaga
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Yahoo!デベロッパーネットワーク
目grep入門 +解説
目grep入門 +解説
murachue
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
深層学習向け計算機クラスター MN-3
深層学習向け計算機クラスター MN-3
Preferred Networks
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
whywaita
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築
Tomocha Potter
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
HTTP/2 入門
HTTP/2 入門
Yahoo!デベロッパーネットワーク
分散システムの限界について知ろう
分散システムの限界について知ろう
Shingo Omura
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
Ryuichi Sakamoto
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
Takeshi HASEGAWA
Was ist angesagt?
(20)
Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
HTTPを理解する
HTTPを理解する
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
GoBGP活用によるSD-WANプラクティス
GoBGP活用によるSD-WANプラクティス
async/await のしくみ
async/await のしくみ
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
目grep入門 +解説
目grep入門 +解説
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
深層学習向け計算機クラスター MN-3
深層学習向け計算機クラスター MN-3
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
さくらのVPS で IPv4 over IPv6ルータの構築
さくらのVPS で IPv4 over IPv6ルータの構築
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
HTTP/2 入門
HTTP/2 入門
分散システムの限界について知ろう
分散システムの限界について知ろう
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
Ähnlich wie 今時のLinuxにおけるGPUエンコード事情2018
今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情
zgock
NetBSD/Zynq
NetBSD/Zynq
Kaz Nakamura
15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)
hiro345
FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)
Kunihiko HAYASHI
Riscv+fpga200606
Riscv+fpga200606
たけおか しょうぞう
XNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところ
IGDA Japan
DVB recording command on gstreamer.
DVB recording command on gstreamer.
裕士 常田
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう 2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう 2017年度京都版 #osckyoto
Netwalker lab kapper
探索アルゴリズム + 深層学習により新化合物を発見する
探索アルゴリズム + 深層学習により新化合物を発見する
Kazuki Yoshizoe
Dpdk環境の話
Dpdk環境の話
Masaru Oki
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
zgock
Debian tokyo-20150224-01
Debian tokyo-20150224-01
Yuji IMAI
Ähnlich wie 今時のLinuxにおけるGPUエンコード事情2018
(12)
今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情
NetBSD/Zynq
NetBSD/Zynq
15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)
FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)
Riscv+fpga200606
Riscv+fpga200606
XNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところ
DVB recording command on gstreamer.
DVB recording command on gstreamer.
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう 2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう 2017年度京都版 #osckyoto
探索アルゴリズム + 深層学習により新化合物を発見する
探索アルゴリズム + 深層学習により新化合物を発見する
Dpdk環境の話
Dpdk環境の話
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
Debian tokyo-20150224-01
Debian tokyo-20150224-01
今時のLinuxにおけるGPUエンコード事情2018
1.
今時のLinuxにおける GPUエンコーディング事情 2018年末版 安藤 達也(zgock) 東海道らぐ openSUSEユーザ会
2.
zgock?お前誰よ? 安藤と申します 愛知県の隅っこで流しのエンジニアやってます openSUSE使いです ただの家庭内rootです 以前東海道らぐのLT用に起こしたXenのスライ ドがSlideShareで40000ビュー超えてて吹い たw 「Xenとzfsで作る家庭内VDIサーバ」 最近「仮想化ヲタ」というより 「VGAヲタ」であると気づきました 世間の人はVGA二桁枚も常備してないね、うん
3.
録画データ、溜まってませんか? はい、うちは溜まってます 家庭内録画環境は円熟期に PT2/PT3等の録画カードの普及 優秀な録画用アプライアンスの登場 EPGStation Chinanchu ts2形式で保存すると1時間の地デジ/BS番組 で数GBのサイズに 真田丸全50話録画して 一話6GB*50=300GB
4.
エンコード、重いですよね Linuxではソフトウェアエンコーディングが 主流 x264等が下位レイヤ 各種変換ツールが上位レイヤ ffmpeg HandBrake CPUにもよるけど、実時間等速変換ぐらいが精 一杯 1時間の番組を変換するのに1時間 CPU100%使うので他のことが出来ない GPUがあるじゃない
5.
GPUエンコーディングおさらい 過去何回も紹介してるのでまとめとして AMD VCE(Video Coding
Engine) NVIDIA NVENC(NVidia ENCoder) Intel QSV(Quick Sync Video)
6.
Linuxで扱うには(過去形) Intel QSV Intel Media
SDKが必要 カーネル決め打ち&brob driverで制約が多い 現行iGPUのみ対応で過去製品はガンガン切り捨てる AMD VCE amdgpuドライバの登場前はwindowsのみ amdgpuドライバ登場後にgstreamerが対応 NVIDIA NVENC NVIDIA SDKで対応 ffmpegが対応しているが配布ライセンスの都合上 自前ビルドが必要
7.
2018年現在、事情が変わってきました VA-API Linux上での汎用デコード/エンコードAPI Intel/AMDのGPUデコーダ/エンコーダに対応 標準IntelドライバでSandyBridge以降対応 ffmpeg等でハンドリング可能 iGPUの機能をフル活用するわけではないので、 Media SDKと比較して速度・画質等落ちる Broadwell以降対応のIntel製OSSドライバがある MediaSDKと同等のフル機能が扱える openSUSE Tumbleweedであれば標準パッケにある zypper
in intel-media-driver
8.
ffmpegでVA-APIを使う ffmpeg 4.0 VA-API周辺に大幅な最適化が入った 適切なドライバを使えば3.x比で1.5倍速に openSUSE Tumbleweedでは標準パッケに zypper
in ffmpeg-4 Leap 15.1(2月リリース予定)でLeapにも入るとい いなあ
9.
ffmpegでVA-API 前準備(1) ドライバの確認 ls /usr/lib64/dri ほにゃらら_drv_video.soがVA-APIドライバ i965_drv_video.so libva標準のIntelドライバ(SandyBridge以降) iGPUのフル機能は使ってないので性能はMedia SDKよりやや落ちる iHD_drv_video.so Intel拡張VA-APIドライバ(Broadwell以降専 用) Media SDKとほぼ同等の性能 radeonsi_drv_video.so 標準のAMDドライバ
10.
ffmpegでVA-API 前準備(2) ドライバの詳細確認 zypper in libva-utils VA-API確認ツール「vainfo」のインストール export
LIBVA_DRIVER_NAME=iHD 確認したドライバの1st wordを指定 vainfo 対応しているフォーマットを確認できる 「VAEntrypointEncSlice」エンコード対応 「VAEntrypointVLD」デコード対応 iHDドライバはh264、HEVC(h265)のエンコードに 対応 i965ドライバはVP8にも対応 ただしフルハードエンコードではないので遅い
11.
ffmpegでVA-API エンコード ffmpeg –vaapi_device /dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format
vaapi -i input.ts ←入力ファイル -vf ‘format=nv12| vaapi,hwupload,deinterlace_vaapi’ -c:v h264_vaapi -c:a ac3 -qp 20 output.mp4
12.
ffmpegでVA-API オプション解説 –vaapi_device /dev/dri/renderD128 VA-APIで使うデバイスを指定 マザー実装やプライマリ/セカンダリで使えるデバイ スが異なる場合がある 大概は/dev/dri/renderDほにゃららで良いが /dev/dri/cardほにゃららでないとダメな場合がある ls /dev/driで使えるデバイス一覧を見て 指定してエラーにならないデバイスを探す(雑)
13.
ffmpegでVA-API オプション解説 -hwaccel vaapi デコーダにVA-APIを使用する -hwaccel_output_format vaapi エンコーダにVA-APIを使用する -i
input.ts 入力ファイルを指定 VA-APIの詳細オプションを渡す前に指定する 必要があるため、必ず以降のオプションより前 に指定しなければならない
14.
ffmpegでVA-API オプション解説 -vf ‘format=nv12| vaapi,hwupload,deinterlace_vaapi,scale_vaapi =1280x800’ VA-APIの詳細オプション format=nv12|vaapi デコードフォーマット、intelの場合これで固定 hwupload ハードウェアデコーダからエンコーダに直接スト リームを送る deinterlace_vaapi ハードウェアフィルタによるインターレース解除 scale_vaapi=1280x800 ハードウェアフィルタによるスケーリング
15.
ffmpegでVA-API オプション解説 -c:v h264_vaapi ビデオエンコーディングフォーマットを指定す る -c:v hevc_vaapiでh265エンコード -c:a
ac3 オーディオエンコーディングフォーマットを指 定する エンコード不要(-c:a copy)でも良いが、TV放送の aacはmp4コンテナに本来収められない形式なので bitstream errorが出る -fflags +discardcorrupt と –bsf:a aac_adtstoascを付けることで回避はできる オーディオエンコード分の負荷は誤差
16.
ffmpegでVA-API オプション解説 -qp 20 エンコード品質(ビットレート)の設定 一番のキモ -qp 1で最も高画質大容量、-qp
99で最も低画 質小容量になる -cbr、-vbr等でビットレート指定可能ではあ るが、intel qsvでは-qp指定が一番良好な結果 が出る 実用的には –qp 15~18でほぼ無劣化、-qp 30 あたりがほぼ限界画質(このへんは主観)
17.
実機テスト Fujitsu FUTRO MS936 富士通のビジネスシンクライアント Celeron
3955U (Skylake) 楽天で中古が9980円だった 32GB SSDを500GBに交換してTumbleweed
18.
実機テスト テストソース 地上デジタル録画 30分のア ニメ ガンダムビルドファイターズ第五話(約3.2GB) iHD(速度)
iHD(サイズ) i965(速度) i965(サイズ) -qp 18 h264 x6.5 1.7GB x4.1 1.8GB -qp 20 x6.5 1.2GB x4.2 1.3GB -qp 25 x6.5 632MB x4.1 721MB -qp 30 x6.5 334MB x4.1 392MB -qp 35 x6.5 208MB x4.0 262MB -qp 20 hevc x2.2 1.2GB x1.6 1.3GB
19.
サンプル再生タイム これよりただのアニメ鑑賞会になります
20.
まとめ 最近のCeleronあなどれん なぁ
21.
ありがとうございました!
Jetzt herunterladen