maximale Anzahl von threads pro block
habe ich die folgenden Informationen:
Maximum number of threads per block: 512
Maximum sizes of each dimension of a block: 512 x 512 x 64
bedeutet dies, dass die maximale Anzahl von threads in einem 2d-thread-block ist 512x512 das gibt mir ein 262144 threads in jedem block?
wenn ja, dann ist es eine gute Praxis, um diese Anzahl von threads in einem Kern von mindestens 256 Blöcke?
- Ja, es ist verwirrend, dass Sie verwenden 512x512x64 Terminologie, die besagt zum Beispiel [512,512,64] als maximale Größe wäre viel weniger verwirrend!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, es bedeutet, dass Sie die maximale threads pro block ist 512,
Können Sie entscheiden, wie Laien, die sich über [1 ... 512] x [1 ... 512] x [1 ... 64].
Beispielsweise 16x16 wäre ok in 2D.
Als für die Entscheidung über die Größe des Blocks, viele Dinge in Betracht kommen, wie die Menge des Arbeitsspeichers, den ein block braucht, und wie groß eine half-warp auf die hardware (ich erinnere mich nicht, wenn Ihr immer 16 auf Nvidia-hardware).
Nein, das bedeutet, dass Ihr block kann maximal 512 X/Y-oder 64-Z, aber nicht alle zur gleichen Zeit. In der Tat, deine info bereits sagte, die maximale Blockgröße ist 512 threads.
Nun, es gibt keine optimale block, abhängig von der hardware, die Ihr code ausgeführt wird, und hängt auch von Ihrer spezifischen Algorithmus.