Ich habe ein Array auf Gerät von großer Länge und für einige Bedingungsprüfung möchte ich (On Host/CPU) nur ein Element aus der Mitte (sagen Nth Element). Was könnte der optimierte Weg dafür sein?Was ist die am besten optimierte Möglichkeit, ein einzelnes Element aus einem Geräte-Array in cuda
Muss ich einen Kernel schreiben, der den N-ten Ort im Array mit einem einzelnen Element aus dem src-Array schreibt und dann ein einzelnes Element-Array in den Host kopiert?
Bedeutet dies nicht, dass N dem Host bereits bekannt ist? Was passiert, wenn es nicht ist? – talonmies
Wenn das N irgendwie auf dem Gerät berechnet wird, würde es eine globale __device__ Variable geben. Zuerst würden Sie cudaMemcpyFromSymbol() verwenden, um den Wert von N aus der globalen Variable __device__ zu kopieren und dann das N-the-Element wie oben beschrieben zu kopieren. – pSoLT