J'ai remarqué que je peux utiliser des blocs de mémoire pour des matrices allouées en utilisant la fonction cudamalloc() ou cublasalloc() pour appeler les fonctions cublas. Les taux de transfert matriciels et de calcul sont plus lents pour les tableaux alloués en utilisant cudamalloc() plutôt que cublasalloc(), bien qu'il y ait d'autres avantages à utiliser des tableaux en utilisant cudamalloc(). Pourquoi est-ce le cas? Ce serait bien d'entendre quelques commentaires.Gestion de mémoire CUDA vs. CuBlas
2
A
Répondre
5
cublasAlloc
est essentiellement une enveloppe autour de cudaMalloc()
donc il ne devrait y avoir aucune différence, y a-t-il autre chose qui change dans votre code?
Questions connexes
- 1. CUBLAS d'erreur d'allocation de mémoire
- 2. CUDA - Meilleure occupation vs moins d'accès mémoire mondial?
- 3. mémoire CUDA trouble
- 4. mémoire CUDA constante de symbole invalide
- 5. Gestion de la mémoire
- 6. Libérer la mémoire CUDA lentement lente
- 7. Problèmes de gestion de mémoire
- 8. CGMutablePathRef Gestion de la mémoire
- 9. iPhone gestion de la mémoire
- 10. Gestion de la mémoire + conteneurs
- 11. gestion de la mémoire pour
- 12. Gestion de la mémoire AS3
- 13. gestion de la mémoire java
- 14. Gestion de la mémoire Cocoa
- 15. Gestion de la mémoire UITabViewController
- 16. NSMutableDictionary Gestion de la mémoire
- 17. NSArray gestion de la mémoire
- 18. Gestion de la mémoire NetBeans
- 19. Gestion de la mémoire Vala
- 20. gestion de la mémoire iphone
- 21. Gestion de la mémoire PHP
- 22. Gestion de la mémoire IPhone
- 23. CUDA problèmes mondiaux de désallocation de mémoire dans .NET
- 24. Utilisation de CUDA dans un projet MFC existant
- 25. Allocation dynamique de la mémoire constante dans CUDA
- 26. Impossible de compiler l'application CUDA dans VS 2008
- 27. CUDA - Erreur de bus
- 28. Gestion de la mémoire et gestion des exceptions
- 29. Problème de gestion de mémoire Objective-C
- 30. iPhone - Question de gestion de la mémoire?
Voyez-vous cela lorsque vous travaillez avec des flotteurs, des doubles ou les deux? Cela pourrait être un problème d'alignement ('cudaAlloc()' prend un argument 'elemSize', mais' cudaMalloc() 'ne l'est pas). – Gabriel
Je travaillais avec des flotteurs dans les deux cas. Je n'ai pas vu cela en double car je n'ai pas besoin de travailler avec des doubles dans mon application. Je vais vérifier avec cudaAlloc en même temps. – stanigator
Btw, Gabriel, voulez-vous dire '' cublasAlloc() '' plutôt que '' cudaAlloc() ''? – stanigator