什么是英特尔 IPP 库中的外线程?

What is external threading in Intel's IPP library?

我正在阅读英特尔的 Integrated Performance Primitives C 和 C++ 库。他们提到 外部线程 作为新功能之一。

New API’s for external threading is more effective than internal threading. source

什么是 外线程 以及它与 C++ 中的 std::thread 有什么关系?

在 IPP 中:
内部线程 - 在基元内部
外螺纹 - 在应用程序级别

Intel IPP 8.2 continues deprecation of internal threading that was started in version 7.1. The threaded static libraries will be available as a separate download, and code developed with these libraries will still work as before. The ThreadedFunctionsList.txt file in ...\Documentation\en_US\ipp\ lists functions that are available in an internally threaded format. However, multi-threaded libraries are deprecated and moving to external threading is recommended for the following reasons:

Internal (inside a primitive) threading is significantly less effective than external (at the application level) threading.

source

std::thread外螺纹无关。

IPP 中的

"Ready for external threading" 基本上意味着,对于所有(几乎所有,除了函数,算法不适合线程)功能(功能组)函数参数列表包含足够的 input/output 组织外线程的参数。因此,一些函数 API 被修改为外线程。

可以是地址、偏移量、服务缓冲区等,在多线程中执行一个功能,用于按块处理一维矢量,或按切片或瓦片处理二维图像。这将很有帮助,尤其是随着 vectors/images 现在的增长(更多百万像素需要处理:))。