Fondamentalmente, ho bisogno di un pool di memoria per l'assegnazione rapida di piccoli oggetti. Idealmente, mi piacerebbe sostituire le allocazioni sia sull'host che sulla memoria allocata su GPU con cudaMalloc. Posso scrivere il mio, e lo farò se devo, ma non mi dispiacerebbe scambiare in una delle solide implementazioni open source.Esiste un modello di progettazione di allocatore di memoria personalizzato che non memorizzi i metadati nelle sue allocazioni?
L'unico problema è che, con cudaMalloc, il pool di memoria non può toccare la memoria allocata. La mia comprensione è che molti (tutti?) Degli allocatori di memoria comuni, come quelli nel titolo, memorizzano una piccola quantità di metadati nei dati allocati. Quindi non avrebbero funzionato.
Qualcuno sa di un allocatore di memoria per il quale questo non è il caso?
Penso che sia chiaro l'interno di malloc, quindi puoi scrivere il tuo in base alle informazioni fornite http://stackoverflow.com/questions/3479330/how-is-malloc-implemented-internally – SGrebenkin
Bene tu è necessario archiviare i metadati * da qualche parte * - se si prevede di mantenere i metadati sull'host e solo i dati allocati sulla GPU CUDA, le cose potrebbero diventare piuttosto brutte e inefficienti. –
Non c'è bisogno di essere metadati con una soluzione di tempo di compilazione –