NVIDIA CUDA DLL einbinden
Das habe ich schon ausprobiert. Und es funktioniert besser als meine Lösung. Hast "LabVIEW GPU Computing" erstellt?
Ich benutze zum Datenkopieren die memcopy() funktion die NVDIA in einer DLL bereitstellt. Auf die DLL greife ich mit einem Knoten zu. Die Funktiondeklaration sieht wie folgt aus:
cudaError_t cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind);
Dies bedeutet die Funktion will einmal die Adresse vom Ziel (void *dst) und zum anderen die Adresse von der Quelle (void *src) haben. Der 3. Parameter ist die Anzahl an Bytes die übertragen werden sollen. Der 4. Parameter (Kind) ist die Richtung.
die Parameter für den DLL-Knoten gebe ich in LabVIEW wie folgendermaßen an:
void *dst = array einen Hacken bei Konstante, vorzeichenloser 32 Bit-Integer, Dimension =1, Array Datenzeiger
const void *src = Numerisches Element vorzeichenloser 32 Bit-Integer.
Die Adresse für die Daten erhalte ich über die funktion cudaError_t cudaMalloc(void **devPtr, size_t size); Durch diese Funktion erhalte ich die Adresse wo die Daten auf der Grafikkarte gespeichert werden.
Mache ich etwas falsch?
|