Mais avant de savoir ce qu'il est possible de faire ou de ne pas faire, il faut déjà avoir une idée assez précise de ce que l'on voudrait.
Je ne veut pas être méchant, mais avant de songer à ce genre d'optimisation, qui ont l'inconvénient d'être à la fois extrêmement complexe à implémenter sans faire de conneries et applicable dans très peu de cas, il faudrait peut-être trouver une solution pour des optimisations plus utiles.
La vectorisation du code est généralement beaucoup plus efficace que l'optimisation des caches car la majorité du code accède à la mémoire avec des motifs facilement identifiables par le processeur. À par sur des cas précis comme celui-là, j'ai rarement recours à ce genre de techniques. En plus le code est spécifique à un modèle de processeur car la taille des blocs doit être choisie en fonction de la taille des lignes de cache.
Par contre la vectorisation du code apporte généralement beaucoup plus et surtout s'applique dans bien plus de cas. Et coup de bol, il y a moyen de ce comparer à d'autre compilateurs et il y a même des benchs qui trainent sur le net.
Mais la on tombe sur une limitation de Lisaac, le fait de générer du C89 à l'avantage d'être portable mais empêche tout optimisation de ce côté, vous êtes obligé de croisé les doigts pour que le compilateur C en dessous réussisse à faire ce boulot.
C'est vraiment dommage que ton code soit fermé. Cela aurait fait une bonne référence, pour un bench pour voir l'effet d'optimisation.
On choisit pas toujours ce que l'on peut faire de son code... Mais si ça peut te faire plaisir une version plus simple du code devrait être disponible dans quelques temps, mais pas en Lisaac, juste en C.
[^] # Re: Surprise
Posté par beagf . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.
Je ne veut pas être méchant, mais avant de songer à ce genre d'optimisation, qui ont l'inconvénient d'être à la fois extrêmement complexe à implémenter sans faire de conneries et applicable dans très peu de cas, il faudrait peut-être trouver une solution pour des optimisations plus utiles.
La vectorisation du code est généralement beaucoup plus efficace que l'optimisation des caches car la majorité du code accède à la mémoire avec des motifs facilement identifiables par le processeur. À par sur des cas précis comme celui-là, j'ai rarement recours à ce genre de techniques. En plus le code est spécifique à un modèle de processeur car la taille des blocs doit être choisie en fonction de la taille des lignes de cache.
Par contre la vectorisation du code apporte généralement beaucoup plus et surtout s'applique dans bien plus de cas. Et coup de bol, il y a moyen de ce comparer à d'autre compilateurs et il y a même des benchs qui trainent sur le net.
Mais la on tombe sur une limitation de Lisaac, le fait de générer du C89 à l'avantage d'être portable mais empêche tout optimisation de ce côté, vous êtes obligé de croisé les doigts pour que le compilateur C en dessous réussisse à faire ce boulot.
C'est vraiment dommage que ton code soit fermé. Cela aurait fait une bonne référence, pour un bench pour voir l'effet d'optimisation.
On choisit pas toujours ce que l'on peut faire de son code... Mais si ça peut te faire plaisir une version plus simple du code devrait être disponible dans quelques temps, mais pas en Lisaac, juste en C.