コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

「Intel Integrated Performance Primitives」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
バージョン情報の更新
Cewbot (会話 | 投稿記録)
23行目: 23行目:
| website = [http://software.intel.com/en-us/intel-ipp Intel® Integrated Performance Primitives (Intel® IPP)]
| website = [http://software.intel.com/en-us/intel-ipp Intel® Integrated Performance Primitives (Intel® IPP)]
}}
}}
[[インテル]] '''Integrated Performance Primitives''' (IPP) とは、[[マルチメディア]]・[[画像処理]]・[[信号処理]]のために[[最適化 (情報工学)|最適化]]された基本関数群からなるソフトウェア[[ライブラリ]]である。ライブラリはインテル[[プロセッサ]]ならびに互換プロセッサをサポートしており、[[Microsoft Windows|Windows]]、[[Linux]]、[[macOS]]、[[Android]][[オペレーティングシステム]]の各プラットフォームで利用可能である。
[[インテル]] '''Integrated Performance Primitives''' (IPP) とは、[[マルチメディア]]・[[画像処理]]・[[信号処理]]のために[[最適化 (情報工学)|最適化]]された基本関数群からなるソフトウェア[[ライブラリ]]である。ライブラリはインテル[[プロセッサ]]ならびに互換プロセッサをサポートしており、[[Microsoft Windows|Windows]]、[[Linux]]、[[macOS]]、[[Android (オペレーティングシステム)|Android]][[オペレーティングシステム]]の各プラットフォームで利用可能である。


== ディスパッチ機能 ==
== ディスパッチ機能 ==

2020年9月6日 (日) 08:32時点における版

Intel Integrated Performance Primitives
開発元 インテル
最新版
2019 Update 5 / 2019年 (5年前) (2019)[1]
種別 ライブラリ
ライセンス プロプライエタリ
公式サイト Intel® Integrated Performance Primitives (Intel® IPP)
テンプレートを表示

インテル Integrated Performance Primitives (IPP) とは、マルチメディア画像処理信号処理のために最適化された基本関数群からなるソフトウェアライブラリである。ライブラリはインテルプロセッサならびに互換プロセッサをサポートしており、WindowsLinuxmacOSAndroidオペレーティングシステムの各プラットフォームで利用可能である。

ディスパッチ機能

IPPは複数世代のプロセッサごとに実装された複数の最適コードの中から、実行時に環境に応じて最適なものを動的選択するディスパッチ機能をサポートしている[2]。たとえばSSE/SSE2命令までをサポートするプロセッサではSSE/SSE2を利用したコードを、AVX命令までをサポートするプロセッサではAVXを利用したコードを実行する、などである。IPPを動的リンクする場合は、実行時に自動的に最適な共有ライブラリのモジュール(Windows版ではDLL)が選択されるが、スタティックリンクする場合はippInit()関数をあらかじめ明示的に呼び出しておく必要がある[3]。ippInit()を呼び出すタイミングは、通例アプリケーションプログラムのエントリポイント(main関数)だが、動的リンクされるユーザーライブラリの内部でIPPを使用する場合は、ユーザーライブラリのスタートアッププロセス(WindowsではDllMain関数)でのippInit()呼び出しが必要となることがある[4]

マルチスレッド対応

IPPにはマルチスレッドバージョンとシングルスレッドバージョンが存在する。マルチスレッドバージョンは各関数の内部で複数のスレッドを利用して処理を分割することで、マルチコアCPUの性能を引き出すことができる。ただしIPP関数はすべてスレッドセーフである[5]ので、シングルスレッドバージョンを用いてアプリケーションコード側でより粒度の大きいマルチスレッド対応を行なうことも可能である。なお、内部スレッド化すなわちマルチスレッドバージョンはIPP 7.1で廃止されており、シングルスレッドバージョンの利用が推奨されている[6]。またこれに伴い、ippSetNumThreads()などの関数が廃止対象(deprecated)となっている[7]

IPPCV

OpenCV 3.0にて、Intel IPPのサブセットがIPPCVとして寄贈された。

脚注

関連項目