Nicolas Boulay a écrit 16254 commentaires

  • [^] # Re: Auto-promo

    Posté par  (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 2.

    Cela mériterait un journal à part entière. Il manque une plus longue explication sur le problème à résoudre par ton logiciel, puis ses points forts actuels, voir une comparaison avec d'autres solutions, et quelques captures d'écran pour se faire une idée.

    "La première sécurité est la liberté"

  • [^] # Re: .

    Posté par  (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 4.

    On ne peut pas vraiment torcher un code en ocaml, mais la différence entre un code qui tourne et un produit est faible, contrairement au C par exemple.

    Ma boite l'utilise pour ses générateurs de code qualifié/certifié futur DO330/D0178b/EN50128/IEC1508.

    kcg

    Par rapport à un compilo en C, tu divises la taille du code par 3 (pas de gestion de mémoire).

    "La première sécurité est la liberté"

  • # fraicheur ?

    Posté par  (site web personnel) . En réponse au journal Quelques projets intéressants en OCaml. Évalué à 3.

    Dans la liste, il manque l'état de maturation du code. Inutile de présenter un code béta inutilisable en pratique. Il est aussi intéressant de savoir si le projet est toujours soutenu. Un projet dont le dernier commit à plus de 1 an, est un très mauvais signe.

    "La première sécurité est la liberté"

  • [^] # Re: concrete

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 4.

    "Ben, non, pas vraiment. C'est très simple."

    J'y crois moyen. Par exemple sur core i7, il ont réhabilité les instructions de copy de string, elles étaient déprécié au profit d'instruction SSE, puis le tout est revenu pour offrir de meilleur performance (écrire le code le plus rapide possible de copie mémoire peut vite devenir très complexe).

    "Le FPU c'est hassebine justement… Maintenant, c'est du SSE."

    Ce n'est plus vraiment du x86, mais plus du x86-64. De plus, quand il y a besoin de fonction précise trigonométrique, les instructions x87, sont plus rapides que leur équivalent codé en SSE (surtout sur AMD). Ce n'est pas encore complètement has-been.

    "La première sécurité est la liberté"

  • [^] # Re: LGPL?

    Posté par  (site web personnel) . En réponse au journal L'audio qui s'excite : «under different name». Évalué à 3.

    Il veulent que les samples soit GPL, mais pas la musique créé avec. Comme un compilo libre qui peut compiler du code non libre.

    Il peuvent aussi utiliser la licence de gcc avec exception pour sa lib runtime. Je pense que cela doit fonctionner de la même façon.

    "La première sécurité est la liberté"

  • [^] # Re: concrete

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.

    Quand tu passes à 32 bits, tu augmentes encore la complexité. Ici, on parle d'élément minuscule qui ne consomme rien, et on remplacer les µp 8 bits.

    "La première sécurité est la liberté"

  • [^] # Re: concrete

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.

    Le jeu d'instruction x86 est totalement bordélique et traine un historique très lourd. Il faut une sacré expertise pour trouver un sous-ensemble complet et orthogonal dans la foret des instructions disponibles.

    On peut aussi parler de la fpu à pile, qui est une exception à elle toute seul.

    "La première sécurité est la liberté"

  • [^] # Re: concrete

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.

    Le msp 430 est super clean. J'ai pas franchement l'impression que cela soit le cas des AVR.

    "La première sécurité est la liberté"

  • [^] # Re: Sinon ARM c'est pas si déconnant que ça

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.

    Pour le 2) tu parles bien d'un jeu d'instruction d'un cpu qui n'est pas encore disponible à la vente ?

    "La première sécurité est la liberté"

  • [^] # Re: Prof qui répond

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.

    Il y a encore des gens qui utilisent ça ? Ce n'est même pas portable dans la révision du cpu suivante. De plus, la distance optimal de prefetch soit même changer avec les fréquences du cpu et de la mémoire (trop tôt et la donnée sera viré du cache avant usage, trop tard et elle encombre l'unité de load 2 fois au lieu d'une).Le pentium 4 avait 4 instructions, les core les réduisait à 2 (de mémoire).

    Je croyais que la technique n'était plus vraiment utilisé au profit du preload.

    "La première sécurité est la liberté"

  • [^] # Re: Prof qui répond

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.

    Ou est-ce que tu "vois" le cache au niveau de l'assembleur ?

    "La première sécurité est la liberté"

  • [^] # Re: Dommage

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.

    Merci pour le lien. En fait, les cpu sont toujours en arithmétique en complément à 2, mais les compilateurs jouent sur la norme C, ce qui devient faux, après activation des optimisations !

    "La première sécurité est la liberté"

  • [^] # Re: Dommage

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.

    Oui, je parlais bien des résultats intermédiaires pas du final (a+b < c).

    "La première sécurité est la liberté"

  • [^] # Re: Sinon ARM c'est pas si déconnant que ça

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.

    ARM dispose maintenant d'un grand nombre de mode d'adressage qui l'éloigne du concept RISC.

    Ses derniers évolutions utilisent un jeu d'instruction avec 2 tailles d'instruction : 16 et 32 bits. Cela commence à se complexifier.

    Par ma part, j'ai vu l'assembleur sur hc11 et 68000. Je trouve que l'assembleur du msp430 de TI est extrêmement propre, c'est un microcontroleur 16/32 bits très efficace.

    "La première sécurité est la liberté"

  • [^] # Re: Dommage

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.

    Il est parfaitement défini. Il s'agit de l'arithmétique en complément à 2 qui fonctionne avec les joies des calcul sous modulo ou (a+b)%c = a%c + b%c, si je me rappelle bien. Cela permet d'avoir des débordements intermédiaires sans conséquence sur le résultat finale.

    Tes histoires de boucles infinis ne sont pas lié à des mélanges signed/unsigned ?

    "La première sécurité est la liberté"

  • [^] # Re: MMIX ?

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 1.

    Tu peux simuler le même comportement avec des instructions cmp*.

    Concernant les ref, on s'en était aperçu sur le f-cpu et lu sur de la doc ARM.

    "La première sécurité est la liberté"

  • [^] # Re: Dommage

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 2.

    Sauf en exploitation ou sur un système "temps réel", tu préfères qu'il continue de fonctionner malgré le glitch.

    "La première sécurité est la liberté"

  • [^] # Re: MMIX ?

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.

    Les registres spéciaux contenant les carry et autre résultat de test utilisé comme prédicat sont une vrai plaie pour les pipelines car cela créait une dépendance forte entre 2 instructions (celle qui génère la carry et la suivante, chaque instruction pouvant modifier ces bits). Donc, c'est pas plus mal :)

    "La première sécurité est la liberté"

  • [^] # Re: Dommage

    Posté par  (site web personnel) . En réponse au journal Alpha: une machine bêta avec écran.. Évalué à 3.

    C'est vrai cela permet de passer en auto-teste en cas de débordement d'entier dont tu n'as rien à faire…

    "La première sécurité est la liberté"

  • [^] # Re: Liaison dynamique

    Posté par  (site web personnel) . En réponse au journal Pythran 0.2 : Python peut-il être aussi rapide que du C ?. Évalué à 1.

    Le point 2 parle surtout des problèmes de mantisses quand on additionne 2 nombres de tailles différentes. C'est bien une forme d'accumulation d'erreur. C'est le "fameux" problème d'addition des souris et des éléphants. Ici, la souris passe sous le lsb dans l'addition avec l'éléphant.

    Pour illustrer son point 4, il utilise chop comme fonction d'arrondit. IEEE754 utilise round to even, c'est pas pour rien. En moyenne, cet arrondi annule les effets cumulatifs. Et il parle de problème très particuliers.

    Je suis bien conscient que le cas général ne peut pas être géré facilement, mais les cas particuliers utiles pourraient l'être.

    "La première sécurité est la liberté"

  • [^] # Re: Liaison dynamique

    Posté par  (site web personnel) . En réponse au journal Pythran 0.2 : Python peut-il être aussi rapide que du C ?. Évalué à 2.

    Métier, quand il ne s'agit pas de système, justement :) Un avion, une voiture, un train, une grue, un bateau…

    "La première sécurité est la liberté"

  • [^] # Re: Liaison dynamique

    Posté par  (site web personnel) . En réponse au journal Pythran 0.2 : Python peut-il être aussi rapide que du C ?. Évalué à 1. Dernière modification le 21 février 2013 à 12:33.

    Concernant la stabilité, c'est par exemple la répétition de x= x(-1)*.1 ? A part dans le monde des calculs scientifiques, ce genre de chose est évité dans le traitement du signal, parce ce que les valeurs d'entrés ne sont de toute façon jamais connu de façon précise.

    Je veux dire par là, qu'il existe toute une gamme d'équation non simplifiable du style de celle que tu décris, mais elles ne sont pas tant utilisé tant que ça dans les faits.

    Connaître la précision requise des opérations de base (+,-,*,/) c'est bien beau mais ce qui compte réellement c'est la précision globale de l'algo.

    Oui mais en partant des erreurs connu de "+" (0.5 lsb) tu peux en déduire la propagation d'erreur dans une équation et la borner d'une façon ou d'une autre, dans l'implémentation choisi par le compilo. Genre ((a+b)*c+de)+a pourrait être traduit en (ac+bd)+(de+a) si on peut supporter la perte de 2 ou 3 lsb dans le résultat attendu.

    Mais si tu connais une solution, je suis preneur et la communauté scientifique aussi. Je crois même qu'il est probable que tu recevras une récompense pour ça…

    Sacré motivation :) Je pensais simplement à simplifier des équation mathématique, genre un -fast-math avec résultat contrôlé. En voulant faire ça, je me suis rendu compte que l'on ne pouvait rien faire avec du code C ou C++ utilisant des flottants : il manque trop d'information.

    L'idée ressemble beaucoup au ROM (reduce order modeling) dont j'ai entendu parlé récemment, le compilo travaillerai au niveau equation et non plus au niveau model 3D.
    http://www.bris.ac.uk/aerodynamics-research/roms/

    "La première sécurité est la liberté"

  • [^] # Re: Liaison dynamique

    Posté par  (site web personnel) . En réponse au journal Pythran 0.2 : Python peut-il être aussi rapide que du C ?. Évalué à 1.

    Exactement. Il y a des tas d'optimisation simple à faire pour augmenter la vitesse d'un code numérique qui sont très dure à faire si on ne connait pas les besoins réels du codeur concernant la précision requise.

    On peut même imaginer une implémentation sans code flottant, et sans devoir faire totalement la conversion à la main.

    Le gros hic, c'est la stabilité numérique :/ Et ça, je vois très mal un compilo être capable de l'estimer.

    Tu parles des équations bizarres qui peuvent diverger autour de points spéciaux ? Parce que dans l'embarqué, qui utilise des code rétroactif, il utilise en général des équations qui évitent d'être sensible aux bits de poids faible d'une grandeur, car elles sont physiques et donc soumises elle-même à une erreur de mesure. Les équations instables sont évitées comme la peste : comment prouver que le système ne peut par partir en sucette ? Si il y a des hommes dedans, cela peut être gênant.

    "La première sécurité est la liberté"

  • [^] # Re: Liaison dynamique

    Posté par  (site web personnel) . En réponse au journal Pythran 0.2 : Python peut-il être aussi rapide que du C ?. Évalué à 1.

    C'est le truc à résoudre avant de commencer à coder.

    "La première sécurité est la liberté"

  • [^] # Re: Liaison dynamique

    Posté par  (site web personnel) . En réponse au journal Pythran 0.2 : Python peut-il être aussi rapide que du C ?. Évalué à 1. Dernière modification le 20 février 2013 à 17:28.

    Non, je veux un type de donné qui correspond aux problèmes systèmes, c'est ensuite au compilateur de faire son boulot pour trouver la meilleur représentation machine et de faire des simplications mathématique qui rende le code plus simple. On peut imaginer des factorisations pour réduire le nombre de division et l'inverse pour augmenter le parallélisme du code. On peut encore imaginer aller plus loin avec une linéarisation des équations valides dans le range précisé et la précision voulue.

    Tout cela n'est possible qu'avec range et précision absolu (ou absolu + relatif même si c'est plus chiant) et que l'on considère les équations comme avec des réels et non comme avec des nombres flottants.

    math.acos( math.cos(xmin+step*i)*math.cos( t[k,0] ) pour une précision donnée se réduit à un polynôme ou presque.

    "La première sécurité est la liberté"