2015-08-27 3 views
5

Ich lese über Intels Integrated Performance Primitives Bibliothek für C und C++. Sie erwähnten externe Threading als eines der neuen Features.Was ist externes Threading in Intels IPP-Bibliothek?

Neue APIs für externe Threading sind effektiver als interne Threading. source

Was Außengewinde ist und wie funktioniert es std::thread in C++ bezieht?

Antwort

1

In IPP:
Innengewinde - in einem primitiven
Außengewinde - auf der Anwendungsebene

Intel IPP 8.2 setzt deprecation von Innengewinde, die in Version 7.1 gestartet war. Die statischen Threadbibliotheken stehen als separater Download zur Verfügung. Der mit diesen -Bibliotheken entwickelte Code funktioniert weiterhin wie zuvor. Die Datei ThreadedFunctionsList.txt in ... \ Documentation \ en_US \ ipp \ listet Funktionen auf, die in einem Format mit internem Gewinde verfügbar sind. Allerdings Multi-Threaded Bibliotheken sind veraltet und Außengewinde bewegt, ist aus den folgenden Gründen empfohlen:

intern (innerhalb einer primitiven) Einfädeln wesentlich weniger wirksamer als externe (auf der Anwendungsebene) Threading.

source

Mit std::thread Außengewinde ist in keinem Zusammenhang.

0

"Ready for external threading" im IPP bedeutet grundsätzlich, dass für alle (fast alle außer Funktionen, die per Algorithmus nicht zum Threading geeignet sind) Funktionalitäten (Funktionsgruppen) die Liste der Funktionsargumente genügend Input/Output-Argumente enthält um das externe Threading zu organisieren. Daher wurden einige Funktions-APIs für das externe Threading geändert.

Es können Adressen, Offsets, Servicepuffer usw. sein, um eine Funktion in mehreren Threads für die Verarbeitung von 1D-Vektoren nach Blöcken oder 2D-Bildern nach Segmenten oder Kacheln auszuführen. Es wird hilfreich sein, besonders wenn Vektoren/Bilder jetzt wachsen (mehr Megapixel zum verarbeiten :)).