前のチュートリアル: Linuxへのインストール
次のチュートリアル: gccとCMakeでOpenCVを使う
| |
| 原著者 | Alessandro de Oliveira Faria |
| 互換性 | OpenCV >= 4.11.0 |
クイックスタート
oneAPI は、Intelのオープンイニシアチブ(現在はUXL Foundationによっても維持されている)であり、単一のコードベースでCPU、GPU、FPGA、NPUをプログラミングするための仕様とツールキット群を組み合わせたものである。中核となるのはSYCL標準(並列処理のためのシングルソースC++)であり、高性能ライブラリ群 — oneTBB(並列処理)、oneMKL(線形代数)、oneDNN(ニューラルネットワーク)、oneVPL(ビデオ)など — がこれを補完する。したがって、oneAPIのDPC++(icpx)コンパイラでコンパイルすると、ソースコードを変更することなく、実行時に最適なベクトル命令や利用可能なデバイスを選択する最適化された実行パスをバイナリが獲得する。
CPUを対象とする際にoneAPIエコシステムでOpenCVをコンパイルする理由:
- 理由は単純で、CMakeオプション -DWITH_SYCL=ON -DWITH_TBB=ON -DWITH_ONEDNN=ON -DWITH_IPP=ON を有効にし、icpxコンパイラを使用すると、OpenCVコアがoneAPIライブラリを直接呼び出すようになるからである。
- oneDNN は cv::dnn レイヤの汎用カーネルを、AVX2、AVX-512、AMX、VNNI を活用した実装に置き換え、最新CPU上で畳み込み・行列積・ネットワーク後処理を最大3〜5倍高速化する。
- oneTBB はスレッドプールを引き受け、cv::resize や cv::GaussianBlur といったフィルタや G-API パイプラインを、ビジーウェイトなしで全コアにわたってスケジューリングする。
- IPP(現在は oneAPI Base Toolkit 経由で配布される)は基本演算(SAD、DFT、メディアン平滑化)向けに最適化されたイントリンシックルーチンを提供し、OpenCV は HAVE_IPP マクロを検出した際にこれらを呼び出す。
- これらはすべて透過的に行われる。cv::Mat を使用するソースコードは変わらないが、リンクされるシンボルはベクトル化されたバージョンを指し、内部のディスパッチャが実行時に適切なベクトル幅を選択する。
CPUプロセッサの要件
以下の Intel® 64 アーキテクチャベースのシステムは、ホストプラットフォームおよびターゲットプラットフォームの両方としてサポートされている。
- Intel® Core™ プロセッサファミリ以上
- Intel® Xeon® プロセッサファミリ
- Intel® Xeon® スケーラブルプロセッサファミリ
アクセラレータの要件
- 統合 GEN9(以上)の GPU。Intel® Graphics Compiler for OpenCL™ のソースを参照。
- FPGA カード: Intel(R) DPC++ Compiler のシステム要件を参照。
ディスク容量の要件
- 標準インストールでディスク容量 3.3 GB(最小)。
- 覚え書き
- : インストール処理中に、インストーラはダウンロードおよび中間インストールファイルを管理するため、最大 6 GB の追加の一時ディスク容量を必要とする場合がある。
メモリ要件
oneAPIのインストール方法
oneAPI のインストール: openSUSE 上で oneAPI エコシステムを素早くセットアップするには、公式ガイド https://www.intel.com/content/www/us/en/developer/articles/guide/installation-guide-for-oneapi-toolkits.html に従えばよい。このガイドでは、ディストリビューション専用のリポジトリ(zypper ar … oneAPI)を有効化し、メタパッケージ(たとえば intel-basekit(DPC++、TBB、oneDNN、IPP コンパイラ)や、HPC やグラフィックスツールが必要な場合はオプションで intel-hpckit または intel-renderkit)をインストールする方法が示されている。また、source /opt/intel/oneapi/setvars.sh で環境を読み込むといったインストール後の調整についても説明されており、これによりバイナリ(icpx、dpcpp)とライブラリが、アクセラレーションされたアプリケーションのコンパイルおよび実行のためにシェル上で直ちに利用可能になる。
ダウンロード、GitHubの手順、ビルドとインストール
- 以下は最新バージョン(本テキストの公開日時点での最新リリース)をダウンロードするためのコマンドである:
git clone https://github.com/opencv/opencv.git
- そして、ブランチ 4.* を使用していることを確認する:
- OpenCV リポジトリに移動し、ビルドフォルダを準備する:
cd opencv
mkdir build
cd build
- Intel oneAPI 環境変数を設定する。デフォルトインストールの場合:
source /opt/intel/oneapi/setvars.sh
- プロジェクトを構成するため、Intel® oneAPI DPC++/C++ Compiler を指定して CMake * を実行する:
cmake -DCMAKE_C_COMPILER=icx \
-DCMAKE_CXX_COMPILER=icpx
-DCMAKE_CXX_FLAGS="-march=native -mavx -mfma -msse -msse2" ..
cmake --build .
- 次に openCV* が Intel® oneAPI DPC++/C++ Compiler でコンパイルされていることを確認し、インストールする:
readelf -p .comment bin/opencv_annotation
String dump of section '.comment':
[ 0] GCC: (SUSE Linux) 13.3.1 20250313 [revision 4ef1d8c84faeebffeb0cc01ee22e891b41e5c4e0]
[ 56] GCC: (SUSE Linux) 12.3.0
[ 6f] Intel(R) oneAPI DPC++/C++ Compiler 2025.1.1 (2025.1.1.20250418)
make install
それでは楽しんで...