Adobeのビデオ製品には

Premiere Pro

AfterEffects

MediaEncoder

Rush

・・・などがあり

 

できることなら

レンダリングなど

やはり、最速で処理をさせたい。

 

その一役を担う機能として

CS5(一部CS4)の頃から

Mercury Playback Engineという

Adobe社とNVIDIA社が共同開発した

64ビット処理の

映像再生処理エンジンが搭載されています。

 

そのなかには

 ソフトウェア処理

 ハードウェア処理

があって

 

ソフトウェア処理

CPUでガリガリ動かすという事ですが

(マルチコアCPUもハードと言えばハードだけど)

 

ハードウェア処理として

GPU等を使って速くさせようということで

 CUDA

 OpenCL

 OpenGL

 Metal

などの処理方法があります。

 

GPUをグラフィックだけではなく

その能力を計算にも使ってしまおうっていう

GPGPUでやろう!・・・ってことなんですね。

 

 

ここで少し備忘録として

キーワードをおさらい。

 

GPGPU(General-purpose computing on graphics processing units)は

GPUの演算資源を

画像処理以外の目的に応用する汎用計算技術で

こうしたレンダリング処理や

HPC(High-Performance Computing)の分野で活躍。

 

 

Metal

Apple社のOS(OSX、iOS)上で

サポートされるもので

OpenGL/CLのような機能を

一つのAPIに統合したもの。

 

iOSはA7チップ搭載以降の機種

OSXはEl Capitan(10.11.x)以降で対応するけれど

 

Metal/Metal2に対応するには

MBP2012Mid以降や

MacProMid2010以降

(Kepler搭載nVIDIA等)

などの制限があり

 

そのGPUが下記に示すような

macOS GPU Familyに

リストアップされていないといけない。

 

さらにAppleは

macOS10.14 Mojaveから

OpenGL/CL・・・などを非推奨として

今後Metalを押してゆくとされました。

 

そうなると、プログラムの開発は大変ですね。

せっかくOpenですすめられていたのに

マルチプラットフォームで作成していたものは

今後Macへ実装するにはMac独自のMetalで

再度コーディングする必要があるのでしょう。

ほ〜んと、たいへん!

 

 

なお、現時点での最新

 

 

macOS10.15 Catalinaでは

WWDC2019で発表されたように

Metalも3.0になっているのです

(macOS GPU family2で対応)。

 

・・・ということは

Metal3.0に対応できるのは

 MacPro2019

 MBP2016以降

 MB2016以降

 iMacPro2017以降

 iMac2015以降

 Mac mini2018

などとなりますね。

 

Metal1/2は

macOS GPU family1で対応とのこと。

 

ちなみに、

macOS GPU familyのチェックは

ユーティリティの中にある

”システム情報”プログラムで

 

ハードウェア項の中の

グラフィックス/ディスプレイの

Metal項で確認できます。

 

 

 

Metalkit.orgの情報によると

Metal3は

OpenGLの100倍の描画
現在約14億のデバイスで稼働

MacPro(2019)のDual Vega2Duoで

最大56 TFLOPSの単精度!

・・・という。

 

ここまで凄い?技術となると

Metalのほうがヤバイくらい高速?

・・・と思えるのですが

 

以前の結果からすると疑問点もあるのです。

 

 >>MacPro2019/MBP2019/MBP2012

 

そして Mojaveとの比較

 >>Catalinaにしたら速度どうよ?

 

詳細はのちほど。

 

 

OpenGL(Open Graphics Library)は

オープンのCGライブラリで

CPUソフトウェア処理と比較して

高精細な3D描画を

高フレームレートで処理できる。

Windows、Mac、Linuxなど

クロスプラットフォームで利用可能なもの。

 

 

OpenCL(Open Computing Language)は

Appleによって提唱された

オープンの並列処理API。

オープンとは言っても

Adobeアプリではmac版で出てきますね。

 

マルチコアCPU、GPU、DSPなどの処理を

活用できる。

Direct3D API相互運用(DirectX 10世代目以上)

などもあるが拡張機能依存もある?

 

 

CUDA(Compute Unified Device Architecture)は

NVIDIA社によるGPU用のGPGPU開発・実行環境

汎用並列コンピューティングプラットフォームで

NVIDIA製のGPUは

OpenCLなどの類似APIコールは

すべてCUDAを経由する。

AMD製やIntel製には無いワケですね。


 

さて、そこで、Premiere Proの

特に2018年10月以降リリースの

GPU/GPUドライバ対応については

いくつかのお作法があるようです。

 

詳しくはこちらのAdobeのサイトにもありますが

 

ウチでもWindows環境で問題となっている

ファイル/プロジェクト設定/一般と移動すると

レンダリングオプションがグレー表示になる問題など

問題があります。

 

・・・それには

macもWindowsも

NVIDIA CUDAを利用するには

CUDA 9.2 ドライバーが必要とのこと。

 

サイトを読むと・・・

”CUDA はAdobeのビデオアプリケーションを

実行するための要件ではありませんが

CUDA グラフィックアクセラレーションを

希望される場合は

Premiere Pro バージョン 13.0 およびそれ以降への

アップグレード前に

ご使用のシステムに

NVIDIA の CUDA 9.2 ドライバーを

インストールしておく必要があります。”

・・・とあります。

 

上述のキーワードのとおり

OpenCLなどの類似APIコールは
すべてCUDAを経由するということなので

CUDA9.2ドライバが必須ってことなんですね。

 

さらにMacOSの項には

”Mac0S 10.14 (Mojave)は

現在 CUDA をサポートしていません。”

・・・とあります。

なんじゃこりゃ??

 

これはnVIDIA GPUを搭載した

macユーザは大変です。

ま、もっぱら現在のmacはIntel/AMD化していますが。

・・・となると、サイトの表記にも矛盾点が???

 

Adobeさんの言うには

”OpenCL グラフィックアクセラレーションを使用して

macOS 10.12 上で Premiere Pro を

実行することは可能ですが

Metal の方がレンダリングの速度が 15~20% 速いため

最適なパフォーマンスを得るには Metal を推奨します”

とあります。

 

・・・ホントか?

 

また、Intel製GPUの場合は

”Premiere Pro 2019 年版

 (バージョン 13.0 およびそれ以降)では

 最新バージョンの 

 Intel グラフィックドライバーが必要です。

 

 安定性とパフォーマンスの問題を回避するため、

 Adobe Premiere Pro では、

 Intel ドライバーバージョン 100.6286 を

 ベースラインとしています。

 

 Intel ドライバーをベースライン以上のドライバーに

 アップグレードすることをおすすめします。”

 

”100.6286 は、Intel ドライバーの

 バージョン番号の最後の 2 つの部分になります。

 完全なバージョン番号は 

 24.20.100.6286 のようになります。”

とあります。

 

しかしながら、ここで注意があって

”ドライバーが 100.6286 より古く、

 ご使用の PC の製造元が互換性のあるバージョンを

 提供していない場合は、

 Intel のサイトから100.6286 より新しいバージョンを

 インストールしないことをおすすめします。 

 

  ドライバーバージョン 100.6444 は

  Windows DCH ドライバーで、

  古いドライバーに上書きできません。”

 

良く読まなければいけませんね。

 

 

そして、デュアルGPU環境の場合は

1.OpenCL を使用する Premiere Pro

  Premiere Pro は最初に

   Intel/AMD ドライバーがあるか確認します。

 

2.CUDA を使用する Premiere Pro

  Premiere Pro は最初に

  NVIDIA ドライバーがあるか確認します。

とあります。

 

 

はい、nVIDIAのドライバも最新だし

BIOSもOSも他のドライバも全部最新だし

設定ファイルにGPUの名称もしっかり入れたし

リモートデスクトップのOpenGLの有効化も

Developerサイトからダウンロードして

問題無く動いているようだし。

 

さて、あとは何をすればいい?

 

もしや、CUDA9.2ドライバを

明示的に入れればいいのか?

 

・・・次に、やってみようかな。