2016-08-01 12 views
0

Gibt es ein Problem bei der Verwendung von MKL mit zugewiesenen Benutzerdaten (nicht 64 Bit)?Kann ich MKL-Funktionen mit vom Benutzer zugewiesenen Daten verwenden?

Ich versuche MKL Funktion

vcMulByConj(...) 

mit weiterhin Speicher verwenden zugewiesen mit OpenCV Matte-Objekt. (mit ich glaube, es ist mit "neuen" C++ - Operation implementiert)

Ich erhalte häufig eine Zugriffsverletzung Ausnahme.

Ich bin mir bewusst, dass MKL würde

void* datta = MKL_malloc(n*n*sizeof(double),64); 

Ich bin mir bewusst, die Leistung Verwundbarkeit mit 64 Bit ausgerichtet Zuordnung arbeiten, wenn auch, kann ich meine eigenen unaligned Speicher verwenden, um MKL-Funktionen zu verwenden?

Gibt es ein Problem mit meinem Speichermodell?

würde ich die gleiche Frage für IPP-Funktionen


Update:

Sowohl MKL und IPP 64-Bit-ausgerichtet sind, kann ich die gleiche Speicherzuweisung mechanisieren sowohl für MKL und IPP-Bibliothek verwenden Anrufe ?

(Lets mit ippiMalloc sagen() für beide Bibliotheken)

Beste

Antwort

1

Ja, Sie können.

Verwenden von Aligned Memory ist eine Empfehlung, die die Leistung verbessern kann, aber es ist keine Voraussetzung. MKL-Funktionen funktionieren im Allgemeinen ordnungsgemäß sowohl für ausgerichtete als auch für nicht ausgerichtete Daten.

https://software.intel.com/en-us/node/528558

Für IPP, das ist auch wahr. Siehe den letzten Q & A im folgenden Link.

https://software.intel.com/en-us/articles/performance-tools-for-software-developers-memory-function-faq

+0

Danke, sind beide MKL und IPP 64-Bit ausgerichtet ist, kann ich die gleiche Speicherzuweisung verwenden sowohl für MKL und IPP mechanisieren (ippiMalloc() für beide Bibliotheken)? Ich habe meine Frage aktualisiert – TripleS

+0

Natürlich können Sie. – kangshiyin