mirror of
https://github.com/augustin64/projet-tipe
synced 2025-01-23 15:16:26 +01:00
Compare commits
3 Commits
b72227496e
...
4e1cf3e627
Author | SHA1 | Date | |
---|---|---|---|
4e1cf3e627 | |||
446aa2c734 | |||
84759caf0b |
@ -42,13 +42,6 @@
|
||||
|
||||
|
||||
//** 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
|
||||
|
@ -3,7 +3,6 @@
|
||||
|
||||
// Génère un flottant entre 0 et 1
|
||||
#define RAND_FLT() ((float)rand())/((float)RAND_MAX)
|
||||
#define TWOPI 6.2831853071795864769252867665
|
||||
|
||||
#define ZERO 0
|
||||
#define GLOROT 1
|
||||
|
@ -24,7 +24,7 @@ typedef struct jpegDataset {
|
||||
unsigned int height; // Hauteur des images
|
||||
|
||||
unsigned int* labels; // Labels
|
||||
unsigned char** images; // Images en cache, vaut NULL si STORE_IMAGES_TO_RAM n'est pas défini
|
||||
unsigned char** images; // Images en cache
|
||||
char** fileNames; // Noms de fichiers
|
||||
} jpegDataset;
|
||||
|
||||
|
@ -15,7 +15,7 @@ float randn() {
|
||||
while (f1 == 0) {
|
||||
f1 = RAND_FLT();
|
||||
}
|
||||
return sqrt(-2.0*log(f1))*cos(TWOPI*RAND_FLT());
|
||||
return sqrt(-2.0*log(f1))*cos(2*M_PI*RAND_FLT());
|
||||
}
|
||||
|
||||
void initialisation_1d_matrix(int initialisation, float* matrix, int dim, int n_in, int n_out) {
|
||||
|
@ -157,19 +157,7 @@ jpegDataset* loadJpegDataset(char* folderPath) {
|
||||
dataset->images = (unsigned char**)malloc(sizeof(unsigned char*)*dataset->numImages);
|
||||
for (int i=0; i < (int)dataset->numImages; i++) {
|
||||
dataset->images[i] = NULL;
|
||||
#ifdef STORE_IMAGES_TO_RAM
|
||||
if (i%1000 == 0) {
|
||||
printf("[%d/%d] Chargement des images\r\n", i, dataset->numImages);
|
||||
fflush(stdout);
|
||||
}
|
||||
image = loadJpegImageFile(dataset->fileNames[i]);
|
||||
dataset->images[i] = image->lpData;
|
||||
free(image);
|
||||
#endif
|
||||
}
|
||||
#ifdef STORE_IMAGES_TO_RAM
|
||||
printf("Chargement des images terminé \n");
|
||||
#endif
|
||||
|
||||
// Lecture des caractéristiques des images
|
||||
image = loadJpegImageFile(dataset->fileNames[0]);
|
||||
@ -245,9 +233,6 @@ void addFilenamesToArray(char* path, char** array, int* index) {
|
||||
void free_dataset(jpegDataset* dataset) {
|
||||
for (int i=0; i < (int)dataset->numImages; i++) {
|
||||
free(dataset->fileNames[i]);
|
||||
#ifdef STORE_IMAGES_TO_RAM
|
||||
free(dataset->images[i]);
|
||||
#endif
|
||||
}
|
||||
free(dataset->fileNames);
|
||||
free(dataset->labels);
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
#ifdef __CUDACC__
|
||||
__global__ void matrix_mul_kernel(float** M, float** N, float** P, int n, int p, int q) {
|
||||
// Ce fil calcule toutes les multiplications utilisant l'élément N[idx][idy]
|
||||
// Ce fil effectue toutes les multiplications utilisant l'élément N[idx][idy]
|
||||
int idx = (blockIdx.x*blockDim.x) + threadIdx.x; // Indice de colonne
|
||||
int idy = (blockIdx.y*blockDim.y) + threadIdx.y; // Indice de ligne
|
||||
|
||||
|
@ -19,12 +19,6 @@ int main(int argc, char* argv[]) {
|
||||
printf("Nombre de catégories: %d\n", dataset->numCategories);
|
||||
printf("Nombre d'images: %d\n", dataset->numImages);
|
||||
printf("Taille des images: %dx%d\n", dataset->width, dataset->height);
|
||||
#ifdef STORE_IMAGES_TO_RAM
|
||||
if (!dataset->images) {
|
||||
printf_error("Aucune image n'a été chargée\n");
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Calcul du temps de chargement des images une à une
|
||||
double start_time, end_time;
|
||||
@ -47,15 +41,6 @@ int main(int argc, char* argv[]) {
|
||||
printf("%d\n", i);
|
||||
return 1;
|
||||
}
|
||||
#ifdef STORE_IMAGES_TO_RAM
|
||||
if (!dataset->images[i]) {
|
||||
printf_error("Image non chargée à l'index ");
|
||||
printf("%d\n", i);
|
||||
printf_error("Nom du fichier: ");
|
||||
printf("%s\n", dataset->fileNames[i]);
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
free_dataset(dataset);
|
||||
|
Loading…
Reference in New Issue
Block a user