Grundsätzlich brauche ich einen Speicherpool für die schnelle Zuordnung von kleinen Objekten. Idealerweise möchte ich die Zuordnungen sowohl auf dem Host als auch auf Speicher, die auf GPUs zugewiesen sind, durch cudaMalloc ersetzen. Ich kann mein eigenes schreiben, und ich werde es tun, wenn es sein muss, aber ich hätte nichts dagegen, in eine der soliden Open-Source-Implementierungen zu wechseln.Gibt es ein benutzerdefiniertes Speicherzuordnungsentwurfsmuster, das Metadaten in seinen Zuordnungen nicht speichert?
Das einzige Problem ist, dass mit cudaMalloc der Speicherpool den zugewiesenen Speicher nicht berühren kann. Mein Verständnis ist, dass viele (alle?) Der allgemeinen Speicherzuordner, wie die im Titel, eine kleine Menge von Metadaten in den zugewiesenen Daten speichern. Sie würden deshalb nicht arbeiten.
Kennt jemand einen Speicherzuordner, für die das nicht der Fall ist?
Ich denke, hier ist ziemlich klar erklärt, die Interna von malloc, so können Sie Ihre eigenen basierend auf den bereitgestellten Informationen http://stackoverflow.com/questions/3479330/how-ismalloc-implemented-internally – SGrebenkin
Nun Sie Sie müssen Metadaten irgendwo speichern * - wenn Sie die Metadaten auf dem Host und nur die zugeordneten Daten auf der CUDA-GPU speichern möchten, könnten die Dinge ziemlich hässlich und ineffizient werden. –
Es müssen keine Metadaten mit einer Kompilierzeit Lösung sein –