Chapter 12.4 : Lancement des programmes



Commençons par créer un fichier HDF5 avec 15398×2048=31535104 valeurs aléatoires, et évaluons le temps de calcul avec time :

time ./src/create_hdf5_normal_distribution test 31535104
initialisationSignalWithRandomNormal : initlialise the CUDA random generator
initialisationSignalWithRandomNormal : generate random numbers
Done

real 0m2,145s user 0m0,032s sys 0m1,673s


On constate que c'est toujours très rapide.

Maintenant, calculons un transformée de Fourier de ces valeurs, et évaluons le temps de calcul avec time :

time ./src/compute_cufft_on_hdf5 fft_test_31535104.h5 test_31535104.h5 15398
processInputFile : loading file 'test_31535104.h5'
computeFFT : Initialised vectors, nbEvent = 31535104, nbBatch = 15398, batchSize = 2048
computeFFT : Initialisation plan of FFT
computeFFT : Execution of the FFT
computeFFT : End of computation
processInputFile : savind file 'fft_test_31535104.h5'
Done

real 0m2,237s user 0m0,068s sys 0m1,731s


C'est extrèmement rapide, et comme toujours, le point qui ralenti tout est HDF5, qui est très rapide certes, mais le GPU est si performant que le temps de chargement des données est plus lent que le temps de calcul.