En gros, ceux qui font cela sont par exemple les gens sous Gentoo, ou bien des fous de l'optimisation. J'imagine aussi que dans le monde des jeux vidéos ultra-performants
Là je suis plus dans une autre catégorie, le calcul scientifique (astronomique en l'occurence). En gros je fais quelques dizaines de milliers de fois l'opération X += A * cos(B * T + C).
Je ne vais pas répondre point par point mais tu as tout à fait raison quand tu dis qu'OpenMP et OpenCL vont faire ça automatiquement à l'éxécution, je n'avais pas les idées très claires là-dessus, ça va mieux donc merci !
Là l'idée est d'utiliser les extensions vectorielles de gcc (donc avec une bonne abstraction matérielle), et donc de compiler automatiquement le bon code assembleur, que ce soit avec des instructions NEON, SSE, AVX, etc. par contre il faut qu'à la compilation, je lui dise que pour tel environnement (ex : windows sur smartphone) il prenne les instructions NEON, pour d'autres (windows sur pc), il prenne les SSE, etc. quand Je n'ai pas les idées très claires là-dessus mais c'est l'idée... Le top serait de pouvoir faire :
OpenCL pour que ça tourne sur le GPU
OpenMP qui va diviser en plusieurs parties :
autant de parties qu'il y a de FPU, ça tourne en parallèle sur toutes
plus autant de parties qu'il y a de coeurs, avec les instructions SSE, avec en bonus la vectorisation qui double les performances
On passerait de la minute actuelle à moins de 20s à mon avis... mais il faut arriver à le faire de façon portable... (et je n'ai pas bien cherché mais je n'ai pas trouvé d'exemple de code faisant tourner en parallèle du FPU et du SSE sans passer par l'assembleur...) mais je dis peut-être des bêtises... Et ça commence à être hors-sujet !
[^] # Re: Cross compiler vers du matériel différent ?
Posté par chonyi . En réponse à la dépêche À la Croisée des Chemins: crossroad, environnement de cross-compilation. Évalué à 0.
Là je suis plus dans une autre catégorie, le calcul scientifique (astronomique en l'occurence). En gros je fais quelques dizaines de milliers de fois l'opération
X += A * cos(B * T + C).Je ne vais pas répondre point par point mais tu as tout à fait raison quand tu dis qu'OpenMP et OpenCL vont faire ça automatiquement à l'éxécution, je n'avais pas les idées très claires là-dessus, ça va mieux donc merci !
Là l'idée est d'utiliser les extensions vectorielles de gcc (donc avec une bonne abstraction matérielle), et donc de compiler automatiquement le bon code assembleur, que ce soit avec des instructions NEON, SSE, AVX, etc. par contre il faut qu'à la compilation, je lui dise que pour tel environnement (ex : windows sur smartphone) il prenne les instructions NEON, pour d'autres (windows sur pc), il prenne les SSE, etc. quand Je n'ai pas les idées très claires là-dessus mais c'est l'idée... Le top serait de pouvoir faire :
On passerait de la minute actuelle à moins de 20s à mon avis... mais il faut arriver à le faire de façon portable... (et je n'ai pas bien cherché mais je n'ai pas trouvé d'exemple de code faisant tourner en parallèle du FPU et du SSE sans passer par l'assembleur...) mais je dis peut-être des bêtises... Et ça commence à être hors-sujet !