2012-10-12 6 views
5

Sto tentando di allocare memoria, ma a volte ho l'errore "memoria insufficiente". cudaMemGetInfo dice che è disponibile più memoria di cui ho bisogno. Quindi, problema nella frammentazione della memoria. È possibile risolvere questo problema? È possibile inserire elementi in memoria non uno alla volta e frammentare in pochi pezzi che posso inserire in memoria?È possibile risolvere il problema di frammentazione della memoria CUDA?

risposta

3

Se si ottiene "memoria insufficiente" a causa della frammentazione della memoria, c'è un errore nel modo in cui si lavora con la memoria !! Sei responsabile della frammentazione di quella memoria, considera una riprogettazione del tuo programma e ad esempio utilizza un pool di memoria per evitare troppe novità/cancella per evitare la frammentazione della memoria

+0

Dove posso leggere sull'utilizzo del pool di memoria? – Robotex

+0

È presente una libreria che implementa il pool di memoria in CUDA? – Robotex

+0

Scusate la risposta in ritardo, date un'occhiata a 'libhoard'. Non ricordo il sito ma google "libhoard" ti aiuterà. – BigBoss