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.