Quantcast
Channel: 平板电脑
Viewing all articles
Browse latest Browse all 500

Intel® IPP - Threading / OpenMP* FAQ

$
0
0

In Intel® IPP 8.2 and later versions, multi-threading (internal threading) libraries are deprecated due to issues with performance and interoperability with other threading models, but made available for legacy applications. Multi-threaded static and dynamic libraries are available as a separate download to support legacy applications. For new applications development, highly recommended to use the single-threaded versions with application-level threading (as  shown in the below picture).

Intel® IPP 8.2 and later versions installation will have single threaded libraries in the following directory Structure

<ipp directory>lib/ia32– Single-threaded Static and Dynamic for IA32 architecture

<ipp directory>lib/intel64 - Single-threaded Static and Dynamic for Intel 64 architecture

Static linking (Both single threaded and Multi-threaded libraries)             

  • Windows* OS: mt suffix in a library name (ipp<domain>mt.lib)
  • Linux* OS and OS X*: no suffix in a library name (libipp<domain>.a)

Dynamic Linking: Default (no suffix)

  • Windows* OS: ipp<domain>.lib
  • Linux* OS: libipp<domain>.a
  • OS X*: libipp<domain>.dylib

Q: Does Intel® IPP supports external multi-threading? Thread safe?

Answer: Yes, Intel® IPP supports external threading as in the below picture. User has option to use different threading models like Intel TBB, Intel Cilk Plus, Windows * threads, OpenMP or PoSIX. All Intel® Integrated Performance Primitives functions are thread-safe.

Q: How to get Intel® IPP threaded libraries?

Answer: While Installing Intel IPP, choose ‘custom’ installation option.  Then you will get option to select threaded libraries for different architecture.

To select right package of threaded libraries, right click and enable ‘Install’ option.

After selecting threaded libraries, selection option will get highlighted with  mark and memory requirement for threaded libraries will get highlighted.

Threading in Intel® IPP 8.1 and earlier versions

Threading, within the deprecated multi-threaded add-on packages of the Intel® IPP library, is accomplished by use of the Intel® OpenMP* library. Intel® IPP 8.0 continues the process of deprecating threading inside Intel IPP functions that was started in version 7.1. Though not installed by default, the threaded libraries can be installed so code written with these libraries will still work as before. However, moving to external threading is recommended.

Q: How can I determine the number of threads the Intel IPP creates?
Answer: You can use the function ippGetNumThreads to find the number of threads created by the Intel IPP.

Q: How do I control the number of threads the Intel IPP creates?
Ans: Call the function ippSetNumThreads to set the number of threads created.

Q: Is it possible to prevent Intel IPP from creating threads?
Ans: Yes, if you are calling the Intel IPP functions from multiple threads, it is recommended to have Intel IPP threading turned off. There are 3 ways to disable multi-threading:

  • Link to the non-threaded static libraries
  • Build and link to a custom DLL using the non-threaded static libraries
  • Call ippSetNumThread(1)

Q: When my application calls Intel IPP functions from a separate thread, the application hangs; how do I resolve this?

Ans: This issue occurs because the threading technology used in your application and in the Intel IPP (which has OpenMP threading) is incompatible. The ippSetNumThreads function has been developed so that threading can be disabled in the dynamic libraries. Please also check the sections above for other ways to prevent Intel IPP functions from creating threads.

Q: Which Intel IPP functions contain OpenMP* code?

Ans: "ThreadedFunctionsList.txt" file under ‘doc’ folder under product installation directory provide detailed list of threaded functions in Intel IPP Library. The list is updated in each release.

 

Please let us know if you have any feedback on deprecations via the feedback URL

 

  • libguide
  • libiomp5md.dll
  • libguide40.dll
  • libiomp5.so
  • OMP_NUM_THREADS
  • threaded static library
  • ThreadedFunctionsList
  • ippSetNumThreads()
  • 开发人员
  • Android*
  • Apple OS X*
  • Linux*
  • Microsoft Windows* (XP, Vista, 7)
  • Microsoft Windows* 10
  • Microsoft Windows* 8.x
  • Tizen*
  • Yocto Project
  • 安卓*
  • 物联网
  • Tizen*
  • .NET*
  • C#
  • C/C++
  • 入门级
  • 中级
  • 英特尔® Composer XE
  • 英特尔® System Studio
  • 英特尔® 集成性能原件
  • Intel® Advanced Vector Extensions
  • 英特尔® SIMD 流指令扩展
  • OpenMP*
  • 开发工具
  • 英特尔® 凌动™ 处理器
  • 英特尔® 酷睿™ 处理器
  • 物联网
  • 优化
  • 并行计算
  • 线程
  • 嵌入式
  • 笔记本电脑
  • 电话
  • 服务器
  • 平板电脑
  • 桌面
  • 提升性能
  • 多线程开发
  • 上次更新时间: 

    星期二, 2015, 四月 7

    Viewing all articles
    Browse latest Browse all 500

    Trending Articles



    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>