Nicolas Boulay a écrit 16042 commentaires

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 2.

    volatile est un mot clef pour dire que la donnée mémoire déclarée ensuite, à le contenu qui bouge tout seul. C'est la base pour accéder à des registres hardware.

    Dans le cas contraire, un compilo considère que seul le programme C en cours de compilation peut y toucher, d'où la génération possible de boucle infinie, de lecture unique puis un usage de registre.

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

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 2.

    La mémoire de PC est cohérente de partout normalement. Une fois une données écrite quelques part, elle est visible par tous de la même façon. Il y a logiquement un mécanisme de synchronisation qui détecte ce genre de cas.

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

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 8.

    Et une fois tu as expliqué clairement un problème, tu trouves la solution. J'adore aller ennuyer un collègue avec un problème, je fais mon monologue, puis je trouve la solution tout seul :)

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

  • [^] # Re: C'est trop limité ;)

    Posté par  (site web personnel) . En réponse au journal Galeries de shaders GLSL et fond d'écran animé pour Android. Évalué à 2. Dernière modification le 15 mai 2013 à 17:13.

    "Pas que je sache, mais en même temps, vu que la variable est globale et constante, quel serait l'intérêt de la limiter à une fonction ?"

    Faire des calculs genre lui faire calculer 1/ srqt(5) une fois pour toutes sans avoir à faire confiance au compilo du drivers opengl.

    "a" pour faire de la transparence, dans une fenêtre web ?

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

  • [^] # Re: Linux perf

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 3.

    :)

    Les téchniques disponibles par processeurs, ne sont pas pléthoriques. Je ne connais pas ton équipe, mais toutes les universitaires que j'ai vu bosser dans le domaine des compilateurs avaient une vision très vague de la façon de fonctionner d'un cpu.

    Genre cela peut les défriser quand on leur dit :
    - que plus d'instructions peut permettre d'aller plus vite que moins
    - que l'instruction la plus lente est souvent un load
    - que le temps d'accès à la mémoire, n'est absolument pas uniforme, avec un rapport environ de 100 entre le plus lent et le plus rapide.
    - qu'une multiplication est une instruction très rapide de nos jours, mais pas du tout une division

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

  • # La suite pour ocaml ?

    Posté par  (site web personnel) . En réponse à la dépêche Présentation OCaml le 21 mai 2013 à Paris. Évalué à 3.

    Est-ce que quelqu'un sait ce qui est prévu pour la prochaine version d'ocaml ?

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

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 2.

    tu peux t'en sortir, si il s'agit d'un pointeur dans B et des données dans A.

    Le pointeur B peut être invalide (en dehors du fichier tel que vu actuellement), ou B pointe vers une vielle donné : si le nom est présent, on peut détecter l'erreur.

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

  • [^] # Re: y'a trop peu d'infos pour t'aider.

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 4.

    C'est un "free running counter" par cpu. Cela veut dire que si on change de cpu, il peut y a voir un shift. Intel pour les crétins qu'il l'utilise comme horloge fixe l'a sorti du domaine de fréquence variable, pour le coller à une horloge fixe : donc cela ne correspond plus vraiment à un nombre de cycle et plus à du temps à l'échelle de l'instruction.

    Dans le cas de mesure courte, il y a peu de chance que l'os foute le bordel dans la mesure. C'est 2 instructions super légères.

    En général, je colle des résultats dans un tableau, que je print ensuite pour faire une jolie courbe dans un tableur. C'est facile de voir les valeurs "à la con", les pattern, les extrêmes. Faire une boucle pour atteindre un pas de temps mesurable pour les autres fonctions te donnes une sorte de borne supérieurs du code, car les caches sont "archi chauds". Cela te donne peu d'info sur la vitesse réelle dans ton code, ni la vitesse minimum.

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

  • # utilisable en production ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Tuleap 6.0. Évalué à 1.

    Et le logiciel est dans quel état ?

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

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 5.

    C'est totalement vrai, mais il y a aussi une bonne dose de mauvaise communication de sa part.

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

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 3.

    Je ne sais pas trop comment tu gères les données "à effacer", qui est le problème des structures en softupdate. Tu as une sorte de garbage collector ?

    J'imagine qu'en écriture, tu alloues de la mémoire dans ton fichier pour y mettre ton triplet, puis l'écrit, puis tu modifies un pointeur de l'ancienne vers la nouvelle valeur ? Comment tu récupères la mémoire du triplet précédent, sur une liste de blocs libres ?

    Il doit exister un paquet de littérature sur la manière la plus efficace d'implémenter une sparse-matrix (matrice à trous).

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

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 7.

    roooh, te rappelles-tu comment tu étais à son age ? (ce que tu pensais des plus vieux sur les forums :)

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

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 5.

    J'ai du mal à suivre. Est-ce une vrai base de donné avec sauvegarde sur disque des écritures de façon protégé ? Parce que niveau perf, il y a une différence énorme entre une grosse structure de donné en mémoire, et des données sauvé sur disque. Il y a aussi une grosse différence de performance si chaque écriture doit être pris en compte immédiatement ou non.

    Ton bench de qq Ko n'a strictement aucun sens, la base tient dans le cache L1 d'un processeur ! Les perfs peuvent tomber drastiquement si la base ne tient pas en cache L2 ou L3, voir ne tient pas dans la RAM.

    "32 octets par triplet (objet, clé, valeur)"

    C'est quoi cet objet ? Tu ne parles que d'une matrice[i][j]-> k, i,j,k étant entier.

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

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 2.

    ta base de donnée, c'est 2 chiffres de 32 bits qui pointent vers un seul chiffre de 32 bits ou est-ce n chiffres de 32 bits vers un seul de 32 bits ?

    Quelle est sa taille ? Genre 100 mo ? 10 Go ? 1 To ?

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

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 4.

    En général, le "make it work" implique le bon algorithme et la bonne architecture. Le "make it fast" sous-entend une transformation du code source uniquement pour aller plus vite, il reste peu de marge, et cela rend le code source difficile à lire.

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

  • [^] # Re: Linux perf

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 2.

    Il y a un peu plus de 30 personnes qui font des cpu dans le monde :)

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

  • [^] # Re: y'a trop peu d'infos pour t'aider.

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 3.

    Il ne faut pas faire des boucles pour augmenter les chiffres. Sur tout les benchs que j'ai fait, j'ai observé un ramp-up des performances, entre la 1er, la deuxième et la 3ième exécution d'un même code. La meilleur façon de faire de mon point de vue est de tracer des courbes, tu imprimes le temps d’exécution de chaque itération, ainsi tu peux comparer en repérant les anomalies et les patterns (très amusant à faire sur un malloc par exemple, ou on repère facilement 3 branches de code).

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

  • [^] # Re: C'est trop limité ;)

    Posté par  (site web personnel) . En réponse au journal Galeries de shaders GLSL et fond d'écran animé pour Android. Évalué à 2.

    Est-ce qu tu peux déclarer une variable uniforme dans une fonction du shader ?

    Quel est l’intérêt du "a" dans rgba quand on est plus dans un espace 3d ?

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

  • # y'a trop peu d'infos pour t'aider.

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 10.

    Il faudrait tes fameux 314 SLOC pour te répondre. De mon coté, j'aurais fait un arbre 256-aire avec un read-modify-write sur le noeud écrit pour être sans lock.

    Concernant le mesure du temps, il vaut mieux utiliser l'instruction rdtsc qui rend un nombre de cycles d'horloge (bidouillé pour que cela ne voit pas trop en cas de changement de vitesse de proc car des andouilles partaient du principe que la fréquence est fixe). https://fr.wikipedia.org/wiki/RDTSC attention pour le printf, c'est un nombre 64 bits.

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

  • [^] # Re: C'est trop limité ;)

    Posté par  (site web personnel) . En réponse au journal Galeries de shaders GLSL et fond d'écran animé pour Android. Évalué à 2.

    D'ailleurs, c'est quoi les interfaces des shader présentés plus haut ? Que sont les données 3d d'entrée ?

    gl_FragCoord est utilisé en entré et l_FragColor en sortie. J'ai bien compris que la sortie était la couleur d'un pixel. Mais pour le fragCoord, j'ai rien compris, j'ai cru penser que c'était chaque pixel de l'image, mais on dirait que non.

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

  • # Cela a l'air génial

    Posté par  (site web personnel) . En réponse à la dépêche Synfig Studio 0.64.0. Évalué à 10.

    Mais il serait sympa de présenter l'outil pour ceux qui ne connaisse pas : ses points forts, ses points faibles, ses cas d'usages (film d'animation uniquement, ou aussi vidéo de présentation qui pourrait remplacer les powerpoints animés lors des mariages :).

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

  • # mise à jour runtime ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de GNU Guix 0.2. Évalué à 5.

    Est-ce qu'il existe une fonctionnalité qui permet la mise à jour à la manière de celle de firefox sous windows ? Genre transparente, sans se prendre la tête avec des diff avec la version installé ou des dépendances externes ?

    VLC propose une mise à jour, mais elle provoque une désinstallation et une réinstallation, de plus le téléchargement n'est pas fait en background, cela empêche d'utiliser l'outil pendant quelques minutes, au lieu de nécessité un simple redémarage.

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

  • [^] # Re: Oui

    Posté par  (site web personnel) . En réponse au journal Un debugger est-il indispensable ?. Évalué à 2.

    En général, cela te donne une bonne idée du bug en question : un mix unsigned/signed, un décalage de bit mal fait, un integer overflow, etc…

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

  • [^] # Re: Super workflow

    Posté par  (site web personnel) . En réponse au journal Un debugger est-il indispensable ?. Évalué à 2.

    Oui.

    Cela permet d'éviter des tests multiple à travers toutes les api. Tu découpes ton code en vérif, puis ensuite, tu considères tes entrées comme valide. Ton filet de sécurité est ton assert(), qui ne coute rien dans un code de production.

    Cela permet aussi de faire un paquet de test, sans avoir "d'oracle" qui produit les données attendus. Ce qui peut être très chiant, tellement chiant que beaucoup de personne génèrent les fichiers une fois, et les utilisent comme référence. Cela ne teste rien du tout. Cela ne peut servir que de test anti regression.

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

  • [^] # Re: Super workflow

    Posté par  (site web personnel) . En réponse au journal Un debugger est-il indispensable ?. Évalué à 2.

    Ma seul certitude, pour l'instant, c'est que coder avec des assert() est priceless, quand c'est possible (et léger), mais la manipulation de fichier est un peu trop complexe pour cela.

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