Les nombres à virgule flottante simple précision occupent la moitié de la mémoire et sur les machines modernes (même sur les GPU, il semble) les opérations peuvent être effectuées avec eux à presque deux fois la vitesse par rapport à la double précision. De nombreux codes FDTD que j'ai trouvés utilisent exclusivement l'arithmétique et le stockage à simple précision. Existe-t-il une règle d'or quand il est acceptable d'utiliser la précision simple pour résoudre des systèmes d'équations clairsemés à grande échelle? Je suppose que cela doit dépendre fortement du numéro de condition de la matrice.
En outre, existe-t-il une technique efficace qui utilise la double précision lorsque cela est nécessaire et unique où la précision du double n'est pas requise. Par exemple, je penserais que pour une multiplication vectorielle matricielle ou un produit vectoriel vectoriel, ce pourrait être une bonne idée d'accumuler les résultats dans une variable à double précision (pour éviter les erreurs d'annulation), mais que les entrées individuelles soient multipliées entre elles peut être multiplié en utilisant une seule précision.
Les FPU modernes permettent-ils la conversion de la simple précision (flottant) à la double précision (double) et vice versa? Ou ces opérations sont-elles coûteuses?