mirror of
https://github.com/augustin64/projet-tipe
synced 2025-02-02 19:39:39 +01:00
cnn/config: add FREE_ALL_OPT
This commit is contained in:
parent
5d306f39ee
commit
94c14cedba
@ -174,7 +174,7 @@ void free_network_creation(Network* network) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void free_network(Network* network) {
|
void free_network(Network* network) {
|
||||||
#if defined(USE_CUDA) || defined(TEST_MEMORY_MANAGEMENT)
|
#if (defined(USE_CUDA) || defined(TEST_MEMORY_MANAGEMENT)) && defined(FREE_ALL_OPT)
|
||||||
// Supprimer toute la mémoire allouée avec nalloc directement
|
// Supprimer toute la mémoire allouée avec nalloc directement
|
||||||
// Il n'y a alors plus besoin de parcourir tout le réseau,
|
// Il n'y a alors plus besoin de parcourir tout le réseau,
|
||||||
// mais il faut que TOUTE la mémoire du réseau ait été allouée de cette manière
|
// mais il faut que TOUTE la mémoire du réseau ait été allouée de cette manière
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#define DEF_CONFIG_H
|
#define DEF_CONFIG_H
|
||||||
|
|
||||||
|
|
||||||
//* Paramètres d'entraînement
|
//** Paramètres d'entraînement
|
||||||
#define EPOCHS 10 // Nombre d'époques par défaut (itérations sur toutes les images)
|
#define EPOCHS 10 // Nombre d'époques par défaut (itérations sur toutes les images)
|
||||||
#define BATCHES 32 // Nombre d'images à voir avant de mettre le réseau à jour
|
#define BATCHES 32 // Nombre d'images à voir avant de mettre le réseau à jour
|
||||||
#define LEARNING_RATE 3e-4 // Taux d'apprentissage
|
#define LEARNING_RATE 3e-4 // Taux d'apprentissage
|
||||||
@ -25,14 +25,6 @@
|
|||||||
//#define ADAM_CNN_BIAS
|
//#define ADAM_CNN_BIAS
|
||||||
|
|
||||||
|
|
||||||
//* Paramètre d'optimisation pour un dataset Jpeg
|
|
||||||
// keep images in ram e.g re-read and decompress each time
|
|
||||||
// Enabling this will lead to a large amount of ram used while economizing not that
|
|
||||||
// much computing power
|
|
||||||
// Note: 50States10K dataset is 90Go once decompressed, use with caution
|
|
||||||
//#define STORE_IMAGES_TO_RAM
|
|
||||||
|
|
||||||
|
|
||||||
//* Limite du réseau
|
//* Limite du réseau
|
||||||
// Des valeurs trop grandes dans le réseau risqueraient de provoquer des overflows notamment.
|
// Des valeurs trop grandes dans le réseau risqueraient de provoquer des overflows notamment.
|
||||||
// On utilise donc la méthode gradient_clipping,
|
// On utilise donc la méthode gradient_clipping,
|
||||||
@ -40,11 +32,29 @@
|
|||||||
// https://arxiv.org/pdf/1905.11881.pdf
|
// https://arxiv.org/pdf/1905.11881.pdf
|
||||||
#define NETWORK_CLIP_VALUE 300
|
#define NETWORK_CLIP_VALUE 300
|
||||||
|
|
||||||
//* Paramètres CUDA
|
|
||||||
|
//** Paramètres CUDA
|
||||||
// Le produit des 3 dimensions doit être au maximum 1024 (atteignable avec 8*8*16)
|
// Le produit des 3 dimensions doit être au maximum 1024 (atteignable avec 8*8*16)
|
||||||
// Le réduire permet d'éviter des erreurs "Out of memory" ou "too many resources requested" au lancement des Kernel
|
// Le réduire permet d'éviter des erreurs "Out of memory" ou "too many resources requested" au lancement des Kernel
|
||||||
#define BLOCKSIZE_x 8
|
#define BLOCKSIZE_x 8
|
||||||
#define BLOCKSIZE_y 8
|
#define BLOCKSIZE_y 8
|
||||||
#define BLOCKSIZE_z 8
|
#define BLOCKSIZE_z 8
|
||||||
|
|
||||||
|
|
||||||
|
//** Paramètres d'optimisation
|
||||||
|
//* Paramètre d'optimisation pour un dataset Jpeg
|
||||||
|
// keep images in ram e.g re-read and decompress each time
|
||||||
|
// Enabling this will lead to a large amount of ram used while economizing not that
|
||||||
|
// much computing power
|
||||||
|
// Note: 50States10K dataset is 90Go once decompressed, use with caution
|
||||||
|
//#define STORE_IMAGES_TO_RAM
|
||||||
|
|
||||||
|
//* Optimisation de libération de la mémoire pour de larges réseaux
|
||||||
|
// En utilisant CUDA, de larges réseaux créés dans src/common/memory_management.cu
|
||||||
|
// peuvent prendre jusqu'à plusieurs heures pour être libérés
|
||||||
|
// Une optimisation consiste alors à considérer que seul le réseau est dans cet emplacement de mémoire.
|
||||||
|
// La libération d'un réseau entraîne alors la libération de toute la mémoire, ce qui peut poser problème
|
||||||
|
// dans certaines situations.
|
||||||
|
#define FREE_ALL_OPT
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -69,6 +69,7 @@ void free_all_memory() {
|
|||||||
tail = NULL;
|
tail = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
memory = NULL;
|
||||||
pthread_mutex_unlock(&memory_lock);
|
pthread_mutex_unlock(&memory_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,6 +69,7 @@ void free_all_memory() {
|
|||||||
tail = NULL;
|
tail = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
memory = NULL;
|
||||||
pthread_mutex_unlock(&memory_lock);
|
pthread_mutex_unlock(&memory_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user