いま、ここにあるエッジAI
エッジAIの性能はCPUで数十倍も変わる。ベンチマークで確認【その1】
2020年12月1日 06:50
「いま、ここにあるエッジAI」の連載では、マシンラーニング(機械学習)やディープラーニング(深層学習)の推論(インファレンス)をCPUやGPU、NPUなどのローカルプロセッサを利用して行なうAI処理(エッジAIと呼ぶ)に対応した新しいアプリケーションを紹介してきた。Adobe Photoshop、Topaz LabsのGigapixel AI、NeroのAI Photo Taggerなどだ。今回はそうした過去に紹介したエッジAIのアプリケーションのうち、性能を計測できるものを取り上げ、異なる世代のIntel CPUで、どれほど性能に変化が出るかを見ていく。
今回はAdobe Photoshopの「被写体を選択」、Topaz LabsのGigapixel AIの画像のスケーリングアップ、Nero AI Photo Taggerでの写真のタグ付けを行なってみる。利用したのは、最新世代となる第11世代Core(Tiger Lake)、昨年の第10世代Core(Ice Lake)、2年前の第8世代Core(Whiskey Lake)、そして5年前の第5世代Core(Broadwell-U)の4モデルとなる。
最新CPUにはGNA、DL Boost、DP4AなどのエッジAI推論向けのハードウェアや新命令セットが搭載
本連載を最初からお読みいただいている読者には繰り返しとなるが、もう一度エッジAIとは何なのかに関して解説しておきたい。エッジAIという言葉の「エッジ」は、「エッジコンピューティング」という文脈で使われる言葉で、端末側に近いところで演算処理が行なわれるという意味になる。
エッジデバイスとはパソコンやスマートフォンといった、ユーザーに近いところにあり、CPUやGPUなどの強力なプロセッサを搭載しているデバイスという意味でもある。そのエッジデバイス上で行なわれるAI処理であるので、エッジAIという表現がされる。クラウド、つまりはインターネット上にあるサーバー側で処理されるAIと区別するため、この呼ばれ方がされている。
近年はパソコンでも、スマートフォンでもエッジAIが注目を集めはじめており、スマートフォン向けSoCにも専用のNPU(Neural Processing Unit)の搭載が進んでおり、ソフトウェアベンダーもその活用に力を注ぎつつある状況だ。
パソコン向けのSoCでは、Intelの第10世代CoreにGNA(Gaussian & Neural Accelerator)と呼ばれるアクセラレータが搭載され、音声認識AIなどに使われはじめている。また、第10世代Coreでは、新命令セットとなる「VNNI」を実装し、従来はFP32(単精度浮動小数点)の精度で行なわれていたAIの推論処理を、INT8(8bitの整数)に置き換えて処理するIntel DL Boostに対応。ソフトウェアが対応することで、エッジAI処理時の性能を大きく引き上げられる。
第11世代Core | 第10世代Core | 第8世代以前 | |
---|---|---|---|
GNA | ○(第2世代) | ○ | ー |
Intel DL Boost(CPU) | ○ | ○ | ー |
DP4A(GPU) | ○ | ー | ー |
9月上旬に発表され、すでに搭載ノートパソコンの販売もはじまっている第11世代Coreでは、GNAが性能を引き上げた第2世代へと進化。また、DL Boostに加え、GPUでもFP32をINT8に置き換えて推論処理を行なう「DP4A」にも対応した。
こうしたハードウェア側の進化をサポートするのが、ソフトウェア開発者などにIntelが無償配布しているソフトウェア開発ツールキットとなる「OpenVINOツールキット」だ。OpenVINOを利用すると、前述のGNA、DL BoostやDP4Aを利用して効率よくAI推論を行なうことが可能になり、未対応の場合に比べて高い処理能力を実現することが可能になる。
じっさいのAI対応ソフトで検証
こうした新しいハードウェアや新しい命令セットの効果を調べるため、エッジAIに対応したソフトウェアを利用して、処理にかかった時間などを計測することでその効果を見て行きたい。いずれも数字が小さいほうが短い時間で処理が終わっており、処理が速いことを意味している。
最新の第11世代Core i7-1185G7、昨年発表された第10世代CoreプロセッサのCore i7-1065G7、2年前に発表された第8世代CoreプロセッサのCore i7-8665U、そして5年前の2015年に発表された第5世代CoreプロセッサのCore i7-5557Uという5つのCPUで比較してみた。前者2つはDL Boostなどの最新のAI機能に対応したプロセッサで、後者2つはそうしたDL Boostなどには対応していないプロセッサということになる。
Adobe Photoshop 2021(バージョン22.0.1)
Photoshopには、Adobe Senseiと呼ばれるAI機能が多数搭載されている。そうしたAI機能のなかでも注目を集めているのが「被写体を選択」機能だ。被写体を選択とは、写真のなかから一番重要だと思われる被写体を選択し、切り抜くことができるように範囲指定を自動で行なってくれる機能だ。
「被写体を選択」の機能ができるまでは、とく被写体が女性の時などは髪の毛の細かな部分を、ユーザーが時間をかけて細かく選択していたのだが、「被写体を選択」では、CPUがそれを代わりにやってくれる。この「被写体を選択」機能は、Intelが提供しているOpenVINOを利用してIntel CPUへの最適化が図られており、Intel CPUで実行すると速く処理できるのだ。
ベンチ結果では、最新世代となるCore i7-1185G7が5年前のパソコンに搭載されていたに比べて半分以下の時間で被写体を選択の処理を終えた。1枚だとわずかな差になるが、枚数があればその枚数分だけ余計に時間がかかることになる。
Topaz Labs Gigapixel AI
Topaz LabsのGigapixel AIは、AIの機能を利用して低解像度の画像を高解像度化できるソフトウェアだ。言うまでもなく低解像度の画像を引き伸ばすと、どうしてもギザギザが目立つ画像になったりしてしまう。Gigapixel AIは、AIがそれを補正しながら、高品質な引き延ばしを可能にする。
このTopaz LabsもIntelのOpenVINOを利用してIntel GPUへの最適化を行なっている。ただし、現状では複数の画像は順次処理していくかたちとなっており、CPUとGPUを同時に使おうとすると、CPUのみで処理したほうが速かったりする。このため、キャリブレーション機能が用意されており、CPUだけで処理したほうがいいか、OpenVINOによるCPUの最適化を行なったほうがいいか、GPUを使ったほうがいいかを、あらかじめベンチマークを行なって調べる機能が用意されている。
最新版のv5.3.1では、第11世代Coreへの最適化オプションが用意されており、第11世代Coreでだけ有効にできるようになっている。今回は第11世代Coreでは「GPUオフ、OpenVINO オン/最適化」、「GPUオフ、OpenVINOオン」、「GPUオン、OpenVINOオン/最適化」、「GPUオン、OpenVINOオフ」、「GPUオフ、OpenVINOオフ」という5つの設定を試した。それ以外の3つのCPUではキャリブレーションで設定された「GPUオフ、OpenVINO オン」の設定でテストしている。テストは4つの画像(1,536×1,024ドットが3枚、2,592×1,944ドットが1枚)を4倍に引き延ばすのにかかった時間を計測している。
Core i7-1185G7のテストで見ると、GPUをオンすると、むしろ遅くなっている。OpenVINOの最適化を利用してCPUで処理するのがいまの時点ではもっとも高速なことがわかる。一番最速の設定はTiger Lakeへの最適化を有効にしたOpenVINOでのCPUによる演算で、61秒と、5年前のCPUになるCore i7-5557Uと比較して67倍速くなっている。
Nero AI Photo Tagger
NeroのAI Photo Taggerは、エッジAIの推論機能を利用して写真にタグをつけるソフトウェア。AIが写真を自動で判別して人が写っていれば人、魚が写っていれば魚などとタグを自動でつけていく。こうしたタグづけを手動でやるとたいへんな手間がかかるだけにこうした機能はありがたい。
上記のレポートを書いた段階ではNeroのサイトから無償ダウンロードできたのだが、現在は同社のスイート(Nero Platinum Suite)などを購入したユーザーが、ソフトウェアのなかから導入できるように仕様変更されており、単体ではダウンロードできないようになっているのでご注意いただきたい。今回は1,000枚の写真にタグをつけるのにかかった時間を計測した。
OpenVINOで最適化されていることもあり、第11世代Core(Core i7-1185G7)と第10世代Core(Core i7-1065G7)が速く、Core i7-1185G7は、5年前のCore i7-5557Uと比較すると6.5倍高速という結果になった。
新しいアプリケーションを使うなら、最新世代のCPUを選んだほうがいいという結果に
もちろん、新しい世代のCPUが高速なのはあたり前だし、それ自体になにも驚きはないという読者も少なくないとは思うが、最新のCPUは新しい命令セット(たとえばAVX-512やVNNIことDL Boostなど)に対応しており、それらを利用して演算するソフトウェアの場合には、6.5倍や、67倍といったCPUコアの性能向上を遙かに上回る向上ぶりを見せる。
すべてのアプリケーションでこうした結果が出るわけではないが、ソフトウェアのエッジ対応はますます進んでおり、ビジネス、クリエイティブ、ゲームなど、あらゆるジャンルで最新アプリケーションを活用するなら、最新のCPUを使ったほうが効率を上げられることを知っていただきたい。
[制作協力:インテル]