Bonjour
Je cherche à optimiser une opération que je répète un très grand nombre de fois, et qui correspond à une convolution (c'est en fait ici une dérivée seconde centrée discrétisée).
D'une manière simple, le code est le suivant :
Tous les tableaux sont des réels double précision.
DF est de taille 512*512 (1 à 512, 1 à 512).
F est de taille 514*514 (0 à 513, 0 à 513).
Le tableau M des coefficients est de taille 512*512*5 (1 à 512, 1 à 512, 1 à 5).
Il est possible que je me soit trompé dans l'ordre des boucles (i avant j, ou l'inverse, pour optimiser le cache). En principe, je code en Fortran, donc je ne connais pas les optimisations du C++.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
Ici, je cherche plutôt à utiliser la bibliothèque BLAS qui devrait me permettre de gagner un bon facteur 2 ou 3 sur cette opération. Cependant, après avoir lus la doc, je ne sais pas trop quel routine utiliser... Il doit falloir dérouler les boucles pour clarifier la chose.
Quelqu'un as-t-il déjà utilisé BLAS sur ce genre d'opérations ?
En vous remerciant d'avance
Moomba

 

 
		
		 
        

 
			
			

 
			 
   


 Optimisation d'une convolution, utilisation de BLAS
 Optimisation d'une convolution, utilisation de BLAS
				

 Répondre avec citation
  Répondre avec citation
Partager