What is external streaming in the Intel IPP library?

I am reading about the Intel Integrated Performance Primitives library for C and C ++. They mentioned external threading as one of the new features.

The new APIs for external threading are more efficient than internal threads. a source

What is external streaming and how does it relate to std::thread in C ++?

+5
source share
2 answers

In IPP:
Internal thread - inside the primitive
External thread - application level

Intel IPP 8.2 continues to depreciate internal streaming, which began in version 7.1. Streaming static libraries will be available as a separate download, and code developed using these libraries will continue to work. The ThreadedFunctionsList.txt file in ... \ Documentation \ en_US \ ipp \ lists the functions that are available in internal thread format. However, multi-threaded libraries are outdated, and switching to an external library is recommended for the following reasons:

The internal thread (within the primitive) is much less efficient than the external thread (at the application level).

a source

An external thread is not associated with std::thread .

+1
source

“Ready for external streaming” in IPP basically means that for almost all (except for functions that are not suitable for streaming according to the algorithm) functionality (functional groups) the argument list of the function contains a sufficient number of input / output arguments to organize the external thread. Thus, some API functions have been changed for external streaming.

These can be addresses, offsets, service buffers, etc., to perform a function in several threads for processing 1D vectors with pieces or 2D images using fragments or fragments. This will be useful, especially when vectors / images are growing now (more megapixels to process :)).

0
source

All Articles