Category: Développement

Comment les meilleurs programmeurs utilisent les LLMs pour booster leur productivité

2025-07-21

Le programmeur chevronné antirez partage son expérience de 18 mois utilisant des grands modèles de langage comme Gemini 2.5 PRO et Claude Opus pour coder. Il affirme que les LLMs actuels sont mieux utilisés comme assistants puissants, et non comme des outils pour réaliser des projets de manière autonome. En décrivant clairement les problèmes et en itérant efficacement, les LLMs peuvent aider à éliminer les bogues, explorer les idées plus rapidement, participer à la conception en binôme, et même apprendre des technologies en dehors de sa propre expertise. Cependant, antirez souligne l'importance de fournir un contexte suffisant, de choisir le bon modèle, et de garder le contrôle du code, en évitant la dépendance aux agents automatisés. Seule cette approche permet de garantir la qualité du code et de maximiser l'efficacité.

Développement

Mise à jour majeure d'OpenBSD : la structure de l'objet FILE devient opaque

2025-07-21

OpenBSD a récemment subi une mise à jour système importante rendant la structure interne de l'objet FILE de sa bibliothèque d'entrée/sortie standard opaque. Cela signifie que les programmes ne peuvent plus accéder directement à la structure interne de l'objet FILE. Ce changement a une portée importante, affectant libc et de nombreuses bibliothèques qui en dépendent, notamment libcrypto, libtls et libssl. Pour faciliter la transition, certains symboles auxiliaires sont temporairement conservés, mais seront supprimés ultérieurement. Il est fortement recommandé aux développeurs d'utiliser une mise à niveau par snapshot pour éviter les problèmes potentiels.

Développement mise à jour système

Simuler l'effet d'« ébullition » dessiné à la main avec des filtres SVG

2025-07-21
Simuler l'effet d'« ébullition » dessiné à la main avec des filtres SVG

Cet article décrit une méthode pour simuler l'effet d'« ébullition », un style visuel courant dans les animations dessinées à la main, à l'aide de filtres SVG. Cet effet crée l'illusion d'un mouvement subtil en appliquant de légères distorsions aux bords de l'image. L'auteur explique comment utiliser les filtres feTurbulence et feDisplacementMap pour générer une texture de bruit et l'appliquer à une image, et comment animer les paramètres du filtre avec JavaScript pour créer l'effet d'« ébullition ». Des démonstrations interactives permettent aux utilisateurs d'ajuster les paramètres et d'observer les changements de l'effet. L'auteur a réussi à utiliser des filtres SVG simples et JavaScript pour simuler un effet d'animation dessiné à la main réaliste sur le web.

Développement

XMLUI : Le développement web pour tous

2025-07-21
XMLUI : Le développement web pour tous

XMLUI apporte la simplicité du modèle de composants de Visual Basic au développement web moderne. En utilisant un simple balisage XML, les développeurs peuvent créer des applications web réactives et thématiques sans avoir besoin d'une expertise approfondie en React ou CSS. Des composants pré-construits et une liaison de données déclarative simplifient le processus. L'intégration avec les LLM simplifie encore plus le développement, permettant une création collaborative et une maintenance plus facile. XMLUI vise à autonomiser les créateurs de solutions, leur permettant de créer des interfaces utilisateur sans avoir besoin d'experts front-end.

Développement

La journalisation basée sur le temps est meilleure que la journalisation basée sur le nombre

2025-07-21

La stratégie de journalisation est cruciale en génie logiciel. Cet article soutient que la journalisation basée sur le temps (par exemple, journaliser toutes les X secondes) est supérieure à la journalisation basée sur le nombre (par exemple, journaliser tous les X messages) lors du traitement d'un grand nombre d'événements. La journalisation basée sur le nombre entraîne des fréquences de journalisation très variables sous différentes charges, pouvant conduire à un nombre insuffisant ou excessif de journaux. La journalisation basée sur le temps maintient un taux de journalisation constant, évitant la dégradation des performances due à des journaux excessifs ou des problèmes d'observabilité dus à des journaux insuffisants. L'auteur utilise des exemples de pseudo-code et une analyse coût-avantage pour étayer son argument, offrant une nouvelle perspective sur les stratégies de journalisation efficaces.

Développement génie logiciel

connmap : Visualisez vos connexions réseau sur une carte du monde

2025-07-21
connmap : Visualisez vos connexions réseau sur une carte du monde

connmap est un widget de bureau X11 qui affiche l'emplacement géographique de vos pairs réseau actuels sur une carte du monde. Il fonctionne également sous Wayland ! L'installation est simple : clonez le dépôt, installez les dépendances (listées dans le README) et exécutez l'exécutable. Personnalisez la taille de la carte, la position et l'intervalle de mise à jour. Actuellement, il ne prend en charge que l'IPv4 et a été principalement testé avec i3wm.

Programmation dynamique : ce n’est pas ce que vous pensez

2025-07-21

Le terme « programmation dynamique » dans les études d’algorithmes est souvent source de confusion. « Dynamique » ne fait pas référence à sa variabilité, mais plutôt à l’aspect planification de la « programmation », provenant des années 1950, lorsque les ingénieurs planifiaient les projets de construction comme des « planifications de processus ». En informatique, la programmation dynamique signifie planifier l’ordre des sous-étapes nécessaires pour résoudre un problème. Par exemple, pour calculer la suite de Fibonacci, le « programme » est la séquence d’étapes pour calculer fib(2) à fib(10) dans l’ordre des dépendances. Cela peut être planifié de haut en bas ou de bas en haut ; le plan final est le même, et les deux sont considérés comme de la programmation dynamique. Richard Bellman a inventé ce terme pour éviter l’aversion d’un secrétaire à la Défense pour la « recherche mathématique », choisissant habilement « programmation dynamique » parce que l’adjectif « dynamique » ne peut pas être utilisé de manière péjorative.

Développement

Limitations de l'application des suggestions de code sur GitHub

2025-07-20
Limitations de l'application des suggestions de code sur GitHub

L'application en masse des suggestions de code sur GitHub présente plusieurs limitations. Les suggestions nécessitent des modifications de code, ne peuvent pas être appliquées aux pull requests fermés, aux sous-ensembles de modifications, aux lignes uniques avec plusieurs suggestions, aux suggestions déjà appliquées ou résolues, aux révisions en attente, aux commentaires multilignes ou aux pull requests en file d'attente pour la fusion. De plus, certaines suggestions peuvent être temporairement indisponibles.

Développement

Limitations de l'application des suggestions de code GitHub : contraintes de commit unique

2025-07-20
Limitations de l'application des suggestions de code GitHub : contraintes de commit unique

L'application en masse des suggestions de code sur GitHub présente plusieurs limitations : les suggestions ne peuvent pas être appliquées s'il n'y a pas eu de modifications de code, si la demande de tirage est fermée, lors de la visualisation d'un sous-ensemble de modifications, s'il y a plus d'une suggestion par ligne, aux lignes supprimées, si la suggestion a été appliquée ou marquée comme résolue, à partir de révisions en attente, sur des commentaires multilignes ou si la demande de tirage est en file d'attente pour la fusion. De plus, il existe des cas d'erreur indiquant « Vous ne pouvez pas effectuer cette action pour le moment. » pour des raisons inconnues.

Développement Demande de tirage

D'Arch Linux à macOS : configuration « paresseuse » d'un doctorant

2025-07-20

Un doctorant en recherche en neuro-IA et ingénieur informatique, après neuf ans d'utilisation d'Arch Linux, est passé à un nouveau MacBook Pro. L'article explique comment il a configuré sa nouvelle machine en une seule journée pour reprendre son flux de travail. Il a utilisé Nix comme gestionnaire de paquets, le gestionnaire de fenêtres AeroSpace et le lanceur Raycast, tout en conservant des outils familiers tels que le shell zsh et l'éditeur Zed. Bien que la gestion des paquets de macOS ne soit pas aussi pratique qu'avec Arch Linux, il a fait des compromis pour obtenir une meilleure stabilité matérielle et une meilleure expérience utilisateur.

Débit de base de données multiplié par 10 avec io_uring et un WAL double

2025-07-20
Débit de base de données multiplié par 10 avec io_uring et un WAL double

Lors de la construction d'une base de données complexe, l'auteur a expérimenté io_uring et une conception WAL double pour améliorer les performances. Les approches WAL traditionnelles (écrire puis appliquer) créent des goulots d'étranglement. En séparant « l'intention d'écriture » et « l'achèvement de l'écriture » en deux WAL, et en tirant parti des E/S asynchrones d'io_uring, une amélioration du débit de 10 fois a été obtenue. Cette conception écrit l'intention de manière asynchrone, puis les enregistrements d'achèvement ; la récupération applique uniquement les opérations ayant à la fois l'intention et l'achèvement, garantissant la cohérence des données. L'auteur a utilisé Zig et le projet Poro (une base de données clé-valeur expérimentale) pour valider cette approche, soulignant l'importance du parallélisme matériel, du traitement par lots et des modèles de cohérence flexibles.

Développement

Exploitation des coprocesseurs pour une exploitation déterministe du noyau sur les appareils A9/A11

2025-07-20

Une version mise à jour de l'exploit de noyau Trigon a été publiée, étendant la prise en charge aux appareils A9(X) et A11. Cet article de blog détaille les techniques complexes utilisées pour surmonter les limitations de KTRR et trouver l'adresse de base du noyau sur différents appareils. La nouvelle approche exploite le registre IORVBAR et les coprocesseurs (en particulier le processeur Always-On), manipulant le firmware du coprocesseur pour obtenir une lecture/écriture arbitraire du noyau, contournant ainsi les protections du noyau pour une exploitation réussie sur les appareils A9 et A11.

Développement coprocesseur

Enquête sur une fuite de mémoire Go 1.24 : une découverte inattendue et la surprise des tables suisses

2025-07-20
Enquête sur une fuite de mémoire Go 1.24 : une découverte inattendue et la surprise des tables suisses

Après la sortie de Go 1.24, une augmentation inattendue de l'utilisation de la mémoire a été observée dans un service de traitement de données. L'enquête a révélé qu'une refactorisation d'une fonction d'allocation de mémoire dans le runtime Go avait supprimé par inadvertance une optimisation, entraînant un effacement inutile de la mémoire lors de l'allocation d'objets volumineux, augmentant ainsi la taille du jeu résident (RSS). Bien que les métriques internes du runtime Go n'aient pas changé, les métriques de niveau système ont révélé une augmentation significative de l'utilisation de la mémoire. La collaboration avec la communauté Go a permis d'identifier et de résoudre le problème. De manière surprenante, la nouvelle fonctionnalité « tables suisses » de Go 1.24 a réduit de manière significative l'utilisation de la mémoire dans les environnements à fort trafic, compensant la régression précédente et générant même des économies de mémoire supplémentaires.

Développement

Le vérificateur d'emprunts de Rust : plus une malédiction qu'une bénédiction ?

2025-07-20

Rust, loué pour sa combinaison de vitesse et de sécurité grâce à son vérificateur d'emprunts, fait l'objet de critiques dans cet article. L'auteur soutient que le vérificateur d'emprunts crée des problèmes ergonomiques importants, rejetant du code parfaitement valide en raison de règles excessivement conservatrices. Plusieurs exemples montrent la refactoring inutile nécessaire. L'article remet en question le rôle surestimé du vérificateur d'emprunts dans la sécurité de Rust, en le comparant à des langages avec ramasse-miettes, tels que Python et Julia. Tout en reconnaissant les avantages du vérificateur d'emprunts dans la programmation concurrente, l'auteur affirme que sa surcharge dans les contextes monothreadés dépasse les avantages. Les points forts de Rust, tels que son système de types fort et sa riche bibliothèque standard, sont mis en avant comme les vraies raisons de son succès.

Développement

Contourner la spécialisation en Rust : une utilisation astucieuse des pointeurs de fonction

2025-07-20
Contourner la spécialisation en Rust : une utilisation astucieuse des pointeurs de fonction

Lors du développement d'un pilote FAT en Rust, l'auteur a rencontré un obstacle : la spécialisation, actuellement indisponible dans la version stable de Rust. Après des tentatives infructueuses utilisant des macros et des énumérations génériques, une solution intelligente a émergé : l'utilisation de pointeurs de fonction pour émuler la spécialisation. Bien que cette approche introduise une certaine surcharge de performance et de mémoire, elle offre une solution viable pour des scénarios spécifiques, évitant ainsi la dépendance à des fonctionnalités instables. L'auteur conclut en plaidant pour la stabilisation de la spécialisation, car elle promet une solution plus efficace et plus propre.

Amélioration des interfaces en ligne de commande et des API pour les agents LLM

2025-07-20
Amélioration des interfaces en ligne de commande et des API pour les agents LLM

L'auteur a rencontré des limitations dans les outils de ligne de commande et les API existants lors de l'utilisation d'agents de modèles linguistiques de grande taille (LLM) pour l'automatisation de l'ingénierie inverse, en particulier avec les petites fenêtres de contexte des modèles locaux. Les API doivent trouver un équilibre entre la fourniture d'informations suffisantes pour réduire les appels d'outils et éviter le dépassement de la fenêtre de contexte. Les solutions explorées incluent des docstrings améliorées, des fonctions auxiliaires et des hooks de pré-commit. Des améliorations supplémentaires sont suggérées, notamment des wrappers qui mettent en cache la sortie, la structurent et indiquent le nombre de lignes restantes, ainsi que des hooks de shell fournissant des informations sur le répertoire. L'auteur conclut que les CLI existantes doivent être améliorées pour les LLM ; peut-être même un ensemble complet d'outils CLI améliorés pour les LLM ou un shell LLM personnalisé est-il nécessaire pour améliorer l'expérience utilisateur des agents LLM.

Développement Outils CLI

BorgBackup : Archivage dédupliquant efficace et sécurisé

2025-07-20

BorgBackup (Borg) est un archiveur dédupliquant open source combinant compression et chiffrement authentifié pour un stockage efficace et une sécurité robuste. Il prend en charge divers algorithmes de compression (lz4, zstd, zlib, lzma) et s'installe facilement sur plusieurs plateformes (Linux, macOS, BSD, etc.). Soutenu par une communauté importante et active, Borg fournit des sauvegardes montables pour un accès pratique et, surtout, n'oubliez pas de toujours vérifier vos sauvegardes !

Développement

Sauvegarde : au-delà d’une simple copie

2025-07-20
Sauvegarde : au-delà d’une simple copie

L’importance de la sauvegarde des données est souvent sous-estimée. Cet article, basé sur les expériences de l’auteur, relate différents scénarios de perte de données, soulignant que la sauvegarde est plus qu’une simple copie ; elle nécessite un plan et une stratégie globaux. Il explore les avantages et les inconvénients des sauvegardes de disque complet par rapport aux sauvegardes de fichiers individuels et le rôle crucial des instantanés pour garantir la cohérence des données. L’auteur partage également sa préférence pour une architecture de serveur de sauvegarde centralisée et les principes directeurs d’un système de sauvegarde efficace, et annonce des articles ultérieurs qui détailleront sa configuration de serveur de sauvegarde sous FreeBSD.

Développement

Réalisation du polymorphisme avec envoi dynamique dans Zig

2025-07-19

Contrairement à de nombreux langages, Zig n'a pas d'interfaces intégrées. Cependant, cela n'empêche pas le polymorphisme. Cet article détaille une méthode pour réaliser le polymorphisme d'envoi dynamique dans Zig en utilisant des interfaces vtable. Cette approche sépare clairement les interfaces des implémentations, sans nécessiter de modifications des types d'implémentation, tout en permettant l'envoi dynamique. Elle utilise des pointeurs de fonction pour construire une vtable et utilise une fonction `implBy` pour connecter les implémentations à l'interface, imitant efficacement la fonctionnalité des interfaces dans les langages orientés objet. Cela permet de stocker différentes implémentations dans des tableaux ou des maps. Bien qu'il y ait du code boilerplate impliqué, les avantages sont une approche propre, flexible et réutilisable avec un impact minimal sur les types d'implémentation.

Développement Polymorphisme

Développement de logiciels avec l'IA : un système à quatre documents et le débutant éternel

2025-07-19
Développement de logiciels avec l'IA : un système à quatre documents et le débutant éternel

L'auteur a créé Protocollie en quatre jours à l'aide du programmeur en binôme IA Claude, non pas grâce à des compétences de programmation expertes, mais au moyen de quatre documents : Vue d'ensemble de l'architecture, Considérations techniques, Processus de workflow et Décomposition de l'histoire. Ce processus, comparé à « lancer des spaghettis contre un mur », met en avant l'expérimentation plutôt que la planification, montrant l'évolution du paysage de la programmation assistée par IA. Il révèle un changement de rôle du programmeur et embrasse l'incertitude de cette nouvelle ère, où le progrès technologique rapide dépasse l'accumulation d'expertise.

Développement développement efficace

Secure Boot de Linux face à l'expiration d'une clé : une course contre la montre

2025-07-19

Les systèmes Linux Secure Boot dépendent d'une clé Microsoft qui expirera en septembre. Cette clé signe le shim, le chargeur de démarrage UEFI de première étape utilisé pour démarrer le noyau Linux. Bien qu'une clé de remplacement soit disponible depuis 2023, de nombreux systèmes pourraient en être dépourvus, nécessitant potentiellement des mises à jour du micrologiciel du fournisseur de matériel. Cela représente un travail supplémentaire pour les distributions Linux et les utilisateurs. La mise à jour du micrologiciel via LVFS et fwupd pourrait être nécessaire, mais son succès n'est pas garanti ; les systèmes BIOS plus anciens pourraient rencontrer des problèmes d'espace, nécessitant même une réinitialisation du BIOS. Les mises à jour du fournisseur peuvent également être problématiques, certains fabricants ayant perdu l'accès à leurs clés de plateforme. En fin de compte, la désactivation de Secure Boot pourrait être la seule option dans certains cas.

Ingénieur logiciel : Construire l'avenir des données neuronales

2025-07-19
Ingénieur logiciel : Construire l'avenir des données neuronales

Piramidal recherche un ingénieur logiciel pour construire et maintenir l'infrastructure back-end de sa plateforme révolutionnaire de données neuronales. Ce rôle implique une collaboration étroite avec les ingénieurs ML pour déployer des modèles de pointe et travailler directement avec les équipes produit et internes pour résoudre des problèmes critiques. Le candidat idéal possède 5+ années d'expérience dans une entreprise axée sur les produits, une maîtrise de Python et d'autres langages back-end, une expertise en conteneurisation (Kubernetes), en bases de données relationnelles (Postgres/MySQL) et en technologies web (JavaScript, React). Piramidal s'engage à utiliser la technologie pour améliorer le potentiel humain et soutient la liberté cognitive.

Développement Données neuronales

Pourquoi je refuse d'utiliser l'IA pour écrire

2025-07-19
Pourquoi je refuse d'utiliser l'IA pour écrire

Un auteur explique pourquoi il refuse d'utiliser les grands modèles de langage (LLM) pour écrire. Il soutient que la dépendance excessive aux LLM réduit l'originalité, affaiblit la pensée indépendante et prive l'écriture de réflexions profondes et d'associations personnalisées. Il cite des études du MIT et du Royaume-Uni qui confirment l'idée que les LLM peuvent conduire à la paresse cognitive et à une baisse de la motivation d'apprentissage. De plus, l'auteur estime que le texte généré par les LLM manque de personnalité et d'émotion, ne parvenant pas à capturer les associations et les idées uniques qui émergent pendant la lecture. Cela entre en conflit avec sa quête d'une expérience de lecture profonde. Il choisit finalement de rester fidèle à l'écriture indépendante, pensant que c'est la seule façon de préserver l'authenticité et l'originalité.

Arrêter la traduction automatique de YouTube : une extension Firefox

2025-07-19
Arrêter la traduction automatique de YouTube : une extension Firefox

Cette extension de bureau Firefox open source empêche la traduction automatique de YouTube. Elle conserve les titres des vidéos, les pistes audio et les descriptions dans leurs langues originales et n'affiche que les sous-titres réels dans la langue sélectionnée (en ignorant ceux générés automatiquement). L'extension est gratuite, mais vous pouvez soutenir son développement via Ko-fi. Également disponible sur le Chrome Web Store.

Comparaison des abonnements Ilograph Team et Team+

2025-07-19
Comparaison des abonnements Ilograph Team et Team+

Ilograph propose deux abonnements pour la collaboration sur les diagrammes d'équipe : Team et Team+. L'abonnement Team prend en charge jusqu'à 5 éditeurs et 20 visualisateurs, offrant des diagrammes d'équipe illimités, l'historique des diagrammes et des icônes personnalisées. L'abonnement Team+ prend en charge 6 éditeurs ou plus, un nombre illimité de visualisateurs et ajoute des fonctionnalités premium telles que l'authentification unique, l'exportation de diagrammes, l'accès à l'API et les liens partageables. Le meilleur abonnement dépend de la taille de votre équipe et de vos besoins en fonctionnalités avancées.

Développement diagramme collaboratif

Microtricangles : Le véritable tueur des performances de rendu, et non le nombre de polygones

2025-07-19
Microtricangles : Le véritable tueur des performances de rendu, et non le nombre de polygones

La vieille idée selon laquelle le nombre de polygones détermine les performances de rendu est dépassée. Le rendu moderne est considérablement affecté par les micro-triangles. Cet article soutient que les petits triangles (moins de 10x10 pixels) deviennent exponentiellement plus coûteux à rendre car les GPU calculent un bloc complet de 2x2 pixels, même si le triangle ne couvre qu'un seul pixel. L'auteur suggère de se concentrer sur la "densité de la vue filaire", en passant à des niveaux de détail inférieurs lorsque la vue devient presque pleine, ou en utilisant un seul niveau de détail avec des imposteurs pour les objets éloignés. La technologie Nanite d'Epic résout ce problème en utilisant des shaders de calcul et des shaders d'espace écran pour minimiser le coût de rendu des micro-triangles.

Développement optimisation LOD

La règle des 14 Ko : pourquoi la taille du site Web est plus importante que vous ne le pensez

2025-07-19

Pourquoi une page Web de 14 Ko est-elle significativement plus rapide qu'une page de 15 Ko ? La réponse réside dans le démarrage lent TCP, un algorithme qui régule la manière dont les serveurs envoient initialement les données. Cet article explique comment TCP assure la transmission fiable des données et comment le démarrage lent optimise l'utilisation de la bande passante. Les réseaux à forte latence, comme l'internet par satellite, illustrent de manière dramatique l'impact : chaque aller-retour ajoute un retard significatif. L'article préconise de minimiser la taille du site Web à moins de 14 Ko ou, à tout le moins, de s'assurer que le contenu critique se trouve dans les 14 Ko initiaux pour une expérience utilisateur optimale. Bien que HTTP/2 et HTTP/3 soient mentionnés, ils n'invalident pas l'importance de ce principe.

Développement

Exploit Boot1 de la Wii U : La récupération de données mène à « Paid the Beak »

2025-07-19

Cet article détaille comment une équipe, en récupérant des données de cartes SD de test d’usine Nintendo Wii U détruites, a découvert et exploité une vulnérabilité Boot1. WiiCurious a rassemblé de nombreuses cartes SD endommagées, et DeadlyFoez a utilisé des compétences de soudure expertes pour réparer et lire les données. L’ingénieur inverse Rairii a trouvé une vulnérabilité Boot1 dans ces données et a développé un exploit appelé « Paid the Beak », capable de réparer la plupart des briques logicielles de la Wii U. De plus, l’équipe a développé des méthodes utilisant un Raspberry Pi Pico et un PICAXE 08M2 pour imiter l’outil spécifique à l’usine nécessaire pour déclencher la vulnérabilité. Cet exploit offre un moyen plus accessible de réparer les briques de la Wii U, évitant ainsi le démontage et la soudure de la console.

Développement

Impressions de Guix : Le point de vue d'un utilisateur de Nix

2025-07-19

Un utilisateur expérimenté de Nix partage son expérience en essayant le système Guix. Guix, étant un système GNU, privilégie la liberté logicielle, nécessitant l'utilisation de nonguix pour le support du matériel moderne. L'article se concentre sur les différences architecturales entre Guix et Nix : Nix utilise une conception modulaire permettant des combinaisons flexibles de versions de paquets, tandis que Guix intègre tous les paquets dans un profil fixe, nécessitant une reconstruction pour les mises à jour. La documentation, les performances et les systèmes init sont comparés, révélant la documentation supérieure de Guix, mais des performances plus lentes ; il utilise Shepherd au lieu de systemd. Globalement, Guix est une alternative intéressante, mais avec une courbe d'apprentissage plus raide, nécessitant des connaissances en Scheme.

Développement

Au-delà de cuBLAS et CUTLASS : Un nouveau moteur de noyaux de multiplication matricielle

2025-07-19
Au-delà de cuBLAS et CUTLASS : Un nouveau moteur de noyaux de multiplication matricielle

La multiplication matricielle est au cœur du calcul moderne, notamment en IA où sa vitesse impacte directement les capacités du modèle. Si les accélérateurs matériels comme les Tensor Cores de NVIDIA sont efficaces, ils manquent de flexibilité. Cet article présente CubeCL, un nouveau moteur générant des noyaux de multiplication matricielle optimisés pour plusieurs plates-formes. CubeCL utilise une abstraction hiérarchique (Tile, Stage, Global, Batch Matmul) et divers algorithmes (Simple, Double Buffering, Ordered, etc.) pour y parvenir. Il exploite intelligemment les caractéristiques architecturales des GPU, comme l'exécution synchrone des plans et l'accès mémoire coalescé, utilisant des techniques comme le double buffering pour masquer la latence mémoire. Les benchmarks montrent des améliorations significatives des performances sur divers GPU (NVIDIA, AMD et Apple Silicon), surpassant même cuBLAS et CUTLASS dans certains cas.

Développement
1 2 38 39 40 42 44 45 46 214 215