我正在阅读英特尔的C 和 C++集成性能基元库。他们提到外螺纹是新功能之一。
用于外螺纹的新 API 比内螺纹更有效。来源
什么是外部线程,它与std::thread
C++ 有什么关系?
在 IPP 中:
内螺纹 - 在原始
外螺纹内 - 在应用程序级别
英特尔 IPP 8.2 继续弃用从 7.1 版开始的内部线程。线程静态库将作为单独的下载提供,使用这些库开发的代码仍然可以像以前一样工作。...\Documentation\en_US\ipp\ 中的 ThreadedFunctionsList.txt 文件列出了以内部线程格式提供的函数。但是,不推荐使用多线程库,建议使用外部线程,原因如下:
内部(基元内部)线程的效率明显低于外部(在应用程序级别)线程。
与std::thread
外螺纹无关。
IPP 中的“准备外螺纹”基本上意味着,对于所有(几乎所有,除了通过算法不适合线程的函数)功能(功能组),函数参数列表包含足够的输入/输出参数来组织外线程. 因此,针对外部线程修改了一些函数 API。
它可以是地址、偏移量、服务缓冲区等,在多个线程中执行一个函数,以块为单位处理一维向量,或以切片或瓦片为单位处理二维图像。这将很有帮助,尤其是随着矢量/图像现在的增长(需要处理更多的百万像素:))。