J'alloue des matrices flottantes (assez grandes, soit 9 000 000 éléments) sur le GPU en utilisant cudaMalloc((void**)&(storage->data), size * sizeof(float))
. À la fin de mon programme, je libère cette mémoire en utilisant cudaFree(storage->data);
.Libérer la mémoire CUDA lentement lente
Le problème est que la première désallocation est vraiment lente, environ 10 secondes, alors que les autres sont quasi instantanées.
Ma question est la suivante: qu'est-ce qui pourrait causer cette différence? La mémoire de désallocation sur un GPU est-elle généralement lente?
Oui, c'était le problème. J'ai demandé à la fois sur les forums SO et nVidia de s'assurer que quelqu'un de compétent répondra, et j'ai envie de vouloir sur les deux;)! Des types impressionnants ! Merci ! – Wookai