「Intel Integrated Performance Primitives」の版間の差分
Inuwokaitai (会話 | 投稿記録) バージョン情報の更新 |
|||
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時点における版
開発元 | インテル |
---|---|
最新版 |
2019 Update 5
/ 2019年[1] |
種別 | ライブラリ |
ライセンス | プロプライエタリ |
公式サイト | Intel® Integrated Performance Primitives (Intel® IPP) |
インテル Integrated Performance Primitives (IPP) とは、マルチメディア・画像処理・信号処理のために最適化された基本関数群からなるソフトウェアライブラリである。ライブラリはインテルプロセッサならびに互換プロセッサをサポートしており、Windows、Linux、macOS、Androidオペレーティングシステムの各プラットフォームで利用可能である。
ディスパッチ機能
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として寄贈された。
脚注
- ^ Intel® Integrated Performance Primitives Release Notes and New Features | Intel® Software
- ^ インテル® IPP の使用を開始する前に
- ^ コア関数
- ^ Intel® IPP - Intel® IPP linkage models - quick reference guide | Intel® Developer Zone
- ^ インテル® IPP スレッディングと OpenMP* のサポート
- ^ インテル® IPP の使用を開始する前に
- ^ ippSetNumThreads deprecated - suggested replacement?