TOPICS
トピックス
1.iMX8の概要
Varisciteの i.MX8ファミリのシステム オン モジュール(SoM)は、NXP SoCの i.MX 8、i.MX 8X、i.MX 8Mファミリ間で
ピン互換スケーラビリティを提供します。各 SoMは、グラフィカル アプリケーションと計算アプリケーションの
両ハードウェアアクセラレーションを可能にするGPUを備えています。
この記事は、Varisciteのお客様に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によって定義されています。
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つのオプションがあります。
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例ディレクトリにアクセスしてください。
半導体流通市場も大きく広がっていき、さらに成長を続けています。
自分の能力を存分に発揮したいという方、
エレクトロニクス分野で活躍したい方 企業家・事業化精神に
あふれた方、想いにお応えできるフィールドがあります。
製品の他にも、サービスに関する事、PRに関するご質問等、
承っております。みなさまからのお問合せについては、
以下の窓口よりお受けしております。
お気軽にご連絡ください。
© 2024 Arrow Electronics Japan KK. All Rights Reserved