Mais la plupart des calculs scientifiques font des opérations mathématiques en parallèle sur des grilles en N dimensions, ce qui est parfaitement adapté à du calcul sur GPU.
Les GPU sont très utiles dans beaucoup de cas, mais tout dépend du type de données que tu manipules. S'il y a beaucoup d'indirections par exemple, le GPU n'aura sans doute pas l'opportunité de tirer avantage de motifs d'accès à la mémoire qui lui seront favorables (en gros : si l'accès à la mémoire GPU est « unitaire » alors le GPU a du matériel qui permet l'accélération des accès; sinon, l'accès se fera mais beaucoup plus lentement).
Il y a aussi le problème des tests. Certes, dans un code scientifique on a tendance à limiter les branchements autant que possible, mais certains types de calculs requièrent l'utilisation fréquente de branchements difficile à prédire en général (par exemple : les codes de compression, qui sont souvent utilisés avant de transmettre les données via le réseau ou pour les stocker sur disque).
Enfin, il y a tout un tas d'applications qui manipulent un volume de données important (sans pour autant être du type « big data »), mais les objets qui sont manipulés et transformés sont parfois très petits individuellement, c'est-à-dire qu'il y a de gros tableaux n-dimensionnels, mais aussi de petites matrices (genre ×ばつ20, ×ばつ30, etc.), qu'il est difficile à agréger. Du coup, s'il est possible de changer le code pour accommoder le GPU, ça requiert un effort significatif, qui peut être jugé comme trop important (car après il faut passer tous les tests de régression, etc.).
[^] # Re: Bizarre le cadeau d'EDF...
Posté par lasher . En réponse à la dépêche Le Top 500 des supercalculateurs de juin 2016. Évalué à 10.
Les GPU sont très utiles dans beaucoup de cas, mais tout dépend du type de données que tu manipules. S'il y a beaucoup d'indirections par exemple, le GPU n'aura sans doute pas l'opportunité de tirer avantage de motifs d'accès à la mémoire qui lui seront favorables (en gros : si l'accès à la mémoire GPU est « unitaire » alors le GPU a du matériel qui permet l'accélération des accès; sinon, l'accès se fera mais beaucoup plus lentement).
Il y a aussi le problème des tests. Certes, dans un code scientifique on a tendance à limiter les branchements autant que possible, mais certains types de calculs requièrent l'utilisation fréquente de branchements difficile à prédire en général (par exemple : les codes de compression, qui sont souvent utilisés avant de transmettre les données via le réseau ou pour les stocker sur disque).
Enfin, il y a tout un tas d'applications qui manipulent un volume de données important (sans pour autant être du type « big data »), mais les objets qui sont manipulés et transformés sont parfois très petits individuellement, c'est-à-dire qu'il y a de gros tableaux n-dimensionnels, mais aussi de petites matrices (genre ×ばつ20, ×ばつ30, etc.), qu'il est difficile à agréger. Du coup, s'il est possible de changer le code pour accommoder le GPU, ça requiert un effort significatif, qui peut être jugé comme trop important (car après il faut passer tous les tests de régression, etc.).