TOPICS

トピックス

VarisciteのNXP i.MX8シリーズSOM で使用されているグラフィック アクセラレータを比較しましたのでご紹介します。

1.iMX8の概要

Varisciteの i.MX8ファミリのシステム オン モジュール(SoM)は、NXP SoCの i.MX 8、i.MX 8X、i.MX 8Mファミリ間で
ピン互換スケーラビリティを提供します。各 SoMは、グラフィカル アプリケーションと計算アプリケーションの
両ハードウェアアクセラレーションを可能にするGPUを備えています。
この記事は、Varisciteのお客様にGPUを紹介し、正しいSoMを選択するため下記した実践的な手順を提供することを
目的としています。

  • Varisciteの i.MX8ファミリーの各SoMのGPUの比較
  • グラフィカルおよび計算タスクを高速化するために利用できるソフトウェアAPIの紹介
  • GPUアクセラレーションを使用したOpenGL ESベンチマークの結果
  • CPUとGPUを使った各種計算のベンチマーク結果
  • 最良の結果を得るための役立つヒントとガイドライン
  • アプリケーションに適したSoMを選択するための次のステップ

1.1 CPUとGPU

始める前に、中央処理装置(CPU)とグラフィックスプロセッシングユニット(GPU)の違いと、グラフィカルアプリケーションの開発に
GPUが非常に重要である理由について言及することが不可欠です。CPUは幅広いタスクを迅速に処理するように設計されていますが、
同時に実行できるタスクの数によって制限されます。一方、GPUはマルチタスクを念頭に置いて設計されており、
一般的に、高解像度の画像やビデオのレンダリングなど、グラフィックス処理に関連するタイプのワークロードをサポートしています。
CPUとGPUは全体的なアーキテクチャが異なります。CPUが「狭くて深い」のに対して、GPUは「浅くて広い」です。
一般に、CPUには大規模なメモリキャッシュがあり、分岐予測を行い、GPUよりもはるかに高いクロック速度を備えています。
GPUには複数の計算ユニットが含まれており、通常のCPUよりもはるかに単純ですが、単一の命令を複数のデータに対して並列に実行できます。GPUは分岐予測を行いません。

たとえば、多くの分岐と「if-else」ステートメントなどの条件を含むコードは、その分岐予測機能によりCPU上でより効率的に実行されます。 また、Single Instruction Multiple Data (SIMD:単一命令複数データ ) 操作は、並列処理機能により、GPUでより効率的に実行されます。

2. i.MX8アプリケーション プロセッサ上のGPU

NXP i.MX 8アプリケーションプロセッサファミリには、Vivante (VeriSilicon)のGPUが組み込まれています。
これらのGPUは、さまざまなユーザーレベルのアプリケーションプログラミング インターフェイス(API)を高速化します。
プロセッサの概要と現在のサポートについては、次の表を参照してください。

リストされているAPI は、「3Dグラフィックス、拡張現実と仮想現実、並列プログラミング、ビジョンアクセラレーション、機械学習のための高度でロイヤリティフリーの相互運用性標準を作成している」業界をリードする160社を超える企業からなるオープンで非営利メンバー主導のコンソーシアムであるKhronos Groupによって定義されています。

  • OpenCL: 最新プロセッサのクロスプラットフォーム並列プログラミングに使用されます。
    https://www.khronos.org/opencl/
  • OpenGL ES (組み込みシステム向けOpenGL): 組み込みシステムで高度な2Dおよび3Dグラフィックスを
    レンダリングするために使用されます。
    https://www.khronos.org/opengles/
  • OpenVG: 高度なユーザーインターフェイスやSVGなどのベクターグラフィックス ライブラリに使用されます。
    https://www.khronos.org/openvg/
  • OpenVX: パフォーマンスと消費電力を最適化したコンピューター ビジョン処理を可能にします。
    これは、顔、体、ジェスチャの追跡、インテリジェントなビデオ監視などの組み込みおよびリアルタイムの
    ユースケースで重要です。
    https://www.khronos.org/openvx/
  • Vulkan: 開発者は、同じグラフィックスAPI を使用して幅広いデバイスをターゲットにすることができます。
    https://www.vulkan.org/
クロック速度、シェーダー数、GFLOPSなどの詳細については、次を参照してください。

3. 2D/3Dグラフィックスの高速化

VarisciteのBoard Support Package(BSP)には、OpenCL、OpenVG、OpenGL などの最も一般的APIの例がいくつか付属しています。
これらの例は、最近のYoctoリリースの/optフォルダーにあります。たとえば、Bloom OpenGL ESデモを実行するには、
次を実行します。

VarisciteのBoard Support Package(BSP)には、OpenCL、OpenVG、OpenGL などの最も一般的APIの例がいくつか付属しています。
これらの例は、最近のYoctoリリースの/optフォルダーにあります。たとえば、Bloom OpenGL ESデモを実行するには、
次を実行します。

# cd /opt/imx-gpu-sdk/GLES3/Bloom

# ./GLES3.Bloom_Wayland

アプリケーションがグラフィカルユーザーインターフェイス(GUI)を必要とする場合、ユーザーは、コンピューターグラフィックスの2Dおよび3Dレンダリング用OpenGL API のサブセットであるOpenGL ES(別名 GLES)を使用する必要があることに注意してください。GLESは、グラフィックス アクセラレーションを直接、または抽象化された高レベル フレームワークを使用して行います。ハードウェア アクセラレーション グラフィックスを使用してアプリケーションを作成するには、基本的に次の 2つのオプションがあります。

  • OpenGL ES: ネイティブ フレームワークを使用してアプリケーションを作成します。これにより、ユーザーはより多くの制御を行うことができます。ただし、これは期待される結果を達成するための最も困難な方法です。
  • ライブラリ/フレームワーク: OpenGL ES グラフィック アクセラレーションを既にサポートしているフレームワーク (Qt など) を使用します。

3.1 glmark2 ベンチマークでのテスト

GPUの推定パフォーマンスを取得するために、CPUスケーリング ガバナーをパフォーマンスに設定し、SOCにヒートシンクを使用して、glmark2ベンチマーク ツールを使用して次のテストを行いました。

glmark2 でテストを実行する

テストは次のコマンドで実行されました。

# glmark2-es2-wayland -s 640×480

tasksetコマンドを使用して、特定のCPUコアでベンチマークを実行できます。たとえば、4x A53コアと2x A72コアを備えた i.MX 8ファミリを搭載したシステムオンモジュールでは、次のコマンドでコア番号を指定することで、同じタイプ(A53 または A72)のコアセットを選択できます:

# taskset -c 0-3 glmark2-es2-wayland -s 640×480

# taskset -c 4,5 glmark2-es2-wayland -s 640×480

注: 上記の例では同じコア タイプ(A53 または A72)セットを使用していますが、コアの任意の組み合わせを使用できます。

4. 終わりに

ここまでで、GPUで高速化されたグラフィカルおよび計算タスクから期待できるパフォーマンスに影響を与える可能性のある多くの変数があることを認識したことでしょう。各SoCには、さまざまなパフォーマンスと機能を備えた独自のCPU、GPU、およびメモリ構成があります。CPU作業をコプロセッサーにオフロードすることは、計算を高速化するだけでなく、CPUの負荷を軽減して別のことを行うためにも役立ちます。 シングルスレッド タスクの場合は、A72などのより高性能なCPUコアに割り当てることで、より良い結果を得ることができます。

各アプリケーションには固有の要件があります。仕様と数値ベンチマークは正しい方向を示すのに役立ちますが、ターゲット ハードウェアでアプリケーションをベンチマークすることをお勧めします。 Varisciteは、EVKとピン互換のSoMを使用してアプリケーションを評価し、実際の結果を使用して、アプリケーションに適したSoMを特定することをお勧めします。

詳細と例については、GitHubのvar-demosリポジトリのOpenCL例ディレクトリにアクセスしてください。

RECRUIT

一緒に働ける仲間を募集中!

半導体流通市場も大きく広がっていき、さらに成長を続けています。
自分の能力を存分に発揮したいという方、
エレクトロニクス分野で活躍したい方 企業家・事業化精神に
あふれた方、想いにお応えできるフィールドがあります。

CONTACT US

製品に関するお問合せ

製品の他にも、サービスに関する事、PRに関するご質問等、
承っております。みなさまからのお問合せについては、
以下の窓口よりお受けしております。
お気軽にご連絡ください。

EMAIL NEWS

Eメールニュース購読者募集中!

新規取扱い製品や新製品など、アロー・エレクトロニクス・ジャパン株式会社の最新情報をお届け!

pageTop

© 2024 Arrow Electronics Japan KK. All Rights Reserved