Nous venons de lancer le service. Le site et le service sont encore en cours de finition : nous vous prions d’excuser d’avance d’éventuelles imprécisions ou maladresses. Vous avez repéré une erreur ou quelque chose ne fonctionne pas comme prévu ? Écrivez-nous, nous corrigerons rapidement.

FR
Se connecter Estimation gratuite
Backtests · entraînement de modèles · balayages de paramètres

Calculs répétés plus rapides, même résultat

Envoyez le cœur de calcul d’un backtest, simulateur ou modèle. Les crates Rust passent par notre tableau de bord ; C, C++ et Python commencent par une évaluation technique individuelle. Vous pouvez vérifier les versions publiées. Le gain et les critères de réception sont convenus pour votre tâche et votre plateforme.

1 h → 11 minbalayage d’indicateurs aux 5,7× mesurés, niveau 2 face au niveau 0 gratuit
1 h → 4 minbalayage d’entraînement d’un réseau à impulsions aux 14,2× mesurés, niveau 2 face au niveau 0 gratuit
0 bitd’écart avec le code d’origine
Comment ça marche première évaluation gratuite
  1. Envoyez le code chaud

    Seulement le cœur de calcul, sans logique métier. Pas encore prêt à partager du code ? Commencez par un paquet de mesures de notre harness gratuit.

  2. Convenir de la vérification

    Pour Rust, les réglages de compilation et l’optimisation automatique sont mesurés avant l’achat. Le travail individuel de niveau 2 fait l’objet d’un périmètre, d’un minimum mesurable et d’une procédure de réception convenus.

  3. Choisir le travail payant

    Le niveau 1 n’est pas facturé en dessous de 10 % d’accélération mesurée. Le prix, tout acompte et la réception du niveau 2 sont convenus dans une commande distincte. L’équivalence de la sortie est vérifiée sur la plateforme convenue.

Juste en dessous, des cas mesurés à télécharger et à exécuter ↓
Déjà mesuré

Des benchmarks standard, une sortie identique à l’original au bit près

Du code public et des jeux de données largement utilisés : le corpus de compression Silesia, les clips vidéo Xiph, les jeux de prévision de séries temporelles ETT, des indicateurs d’analyse technique. Chaque mesure est une exécution séquentielle réelle de l’ensemble complet face à l’original non modifié, et toutes les sorties sont comparées octet par octet. Les preuves de correction des codecs ont été validées par une revue indépendante.

Les trois niveaux · binaires publiés

Indicateurs ADX, ATR et PSAR de la bibliothèque Python ta

Un portage en Rust de la bibliothèque ta 0.11, identique à Python bit à bit. Un balayage de paramètres sur un million de barres : ATR, ADX et ±DI pour cinq fenêtres, et Parabolic SAR en quatre configurations. Chaque niveau est compilé, mesuré sur le banc et publié ; la sortie de tous les niveaux est identique à l’octet près, y compris sur les entrées où le programme panique.

5,7×niveau 2 face au niveau 0 gratuit, durée de l’exécution complète
18×face à Numba sur le calcul
< 48 hde travail d’ingénieur sur le niveau 2

Le même algorithme sous Numba (lui aussi bit à bit) : 335 ms de calcul et 201 ms de pandas.read_csv. Niveau 2 : 18 ms de calcul et 20 ms de parsing du CSV, 81 ms pour l’ensemble du programme. Python ta : 20,5 s pour 100 000 barres.

Référence, cycles par exécution (M1, médiane) 1 376,9 M 503 ms
Niveau 0LTO, codegen-units, target-cpu · gratuit 1 248,6 M463 ms · référence
Niveau 1optimisation automatique prouvée 791,4 M342 ms · 1,58× cycles · 1,35× temps
Niveau 2un ingénieur : un nouveau schéma de calcul 143,3 M81 ms · 8,7× cycles · 5,7× temps
Mesuré sur le banc : Zen 3, cycles vPMU, 9 tours entrelacés ; le temps est celui du programme entier, lecture des données comprise. Les niveaux 1 et 2 sont comparés au niveau 0 gratuit. Ce sont exactement les fichiers publiés qui ont été mesurés. Dans ce cas, l’optimisation automatique seule apporte 1,58× en cycles ; le gain le plus important vient du niveau 2.
Téléchargement · MIT · Linux x86-64 archive complète1 Mo : programmes de tous les niveaux, source de la référence, générateur de données, mesures référence niveau 0 niveau 1 niveau 2 comment vérifier SHA256SUMS
Les trois niveaux · binaires publiés

Balayage d’entraînement d’un réseau de neurones impulsionnels (un modèle BindsNET)

Un réservoir de 128 neurones leaky integrate-and-fire à connexions récurrentes ; les poids d’entrée sont entraînés en ligne par STDP (PostPre de BindsNET). Le balayage entraîne 24 réseaux sur le seuil, la constante de temps membranaire et le taux d’apprentissage, sur un flux synthétique de type marché de 5 000 pas. Le programme Rust affiche exactement ce qu’affiche le script BindsNET, au bit près, sur l’entrée principale et sur 54 jeux générés.

15,8×niveau 2 face au niveau 0 gratuit, cycles (14,2× en temps)
395×face au même balayage dans BindsNET, un cœur
0 bitd’écart avec BindsNET

BindsNET 0.3.3 sur PyTorch (CPU, un thread, le même cœur) : 24,0 s pour le balayage, surtout du surcoût Python et de répartition à chaque pas. Niveau 2 : 60,9 ms sur ce cœur. Ici, le seul réglage de la compilation est 6 % plus lent que la compilation ordinaire ; l’optimisation automatique apporte 3,89× sur le niveau 0 en cycles, et le niveau 2, 15,8×.

Référence, cycles par exécution (M1, médiane) 3 525,0 M 805 ms
Niveau 0LTO, codegen-units, target-cpu · gratuit 3 742,6 M865 ms · référence
Niveau 1optimisation automatique prouvée 962,4 M222 ms · 3,89× cycles · 3,90× temps
Niveau 2un ingénieur : un nouveau schéma de calcul 237,0 M60,7 ms · 15,8× cycles · 14,2× temps
Mesuré sur le banc : Zen 3, cycles vPMU dans une VM isolée, 9 tours entrelacés ; le CCX était réservé à la mesure (2 de ses 16 CPU logiques échappaient à notre contrôle). Les niveaux 1 et 2 sont comparés au niveau 0 gratuit. Ce sont exactement les fichiers publiés qui ont été mesurés.
Téléchargement · MIT · Linux x86-64 archive complète0,8 Mo : programmes de tous les niveaux, source de la version de référence, script BindsNET, générateur de données, mesures référence niveau 0 niveau 1 niveau 2 comment vérifier SHA256SUMS
16–20×face à un portage natif compétent
≈12 000×face à l’optimiseur de vn.py lui-même
Optimisation de stratégies · vn.py · binaires publiés

Optimisation des paramètres dans vn.py : le même top 10, un ordre de grandeur plus vite

L’optimiseur par force brute de vn.py sur 600 jeux de paramètres de sa stratégie de moyennes mobiles fournie. Notre programme affiche les mêmes dix meilleurs jeux avec les mêmes ratios de Sharpe, rendements, drawdowns et nombres de transactions, au bit près sur les machines AVX2. Il est 16–20× plus rapide qu’un portage natif compétent qui calcule chaque moyenne mobile une seule fois, et environ 12 000× plus rapide que vn.py lui-même, surtout grâce à la sortie de Python. Mesuré sur AMD Zen 3 et Zen 4.

Téléchargement · MIT · Linux x86-64 archive complète60 Ko : notre programme, les deux portages natifs, le pilote vn.py, le générateur de données, les mesures sur deux plateformes ce qui a été mesuré
2,3–7,4×sept indicateurs, C
2,0–6,0×depuis Python, inchangé
Bibliothèque C · remplacement direct · binaires publiés

Indicateurs techniques TA-Lib : une bibliothèque de remplacement plus rapide

Un remplacement de la bibliothèque C TA-Lib 0.8.1 avec la même ABI : les programmes C et le wrapper Python de TA-Lib l’utilisent sans modification, et chaque sortie est identique au bit près à celle de la bibliothèque officielle (4,59 millions d’appels vérifiés). Sur un balayage de paramètres d’un million de barres, sept indicateurs (CCI, SAR, DX, ADX, EMA, STOCH, RSI) sont 2,3–7,4× plus rapides que la plus rapide des compilations officielle et -march=native, mesuré sur AMD Zen 3 et Zen 4. Via le wrapper Python inchangé, le même balayage est 2,0–6,0× plus rapide.

Téléchargement · BSD-3 · Linux x86-64 archive complète3,2 Mo : la bibliothèque, les programmes de mesure, l’outil de vérification au bit près, les mesures sur deux plateformes ce qui a été mesuré
5,6–5,9×face au Rust d’origine
2,3–3,6×face à PyTorch + Inductor sur tous les cœurs

Prévision de séries temporelles en Rust

DLinear avec les poids entraînés officiels sur les quatre jeux ETT, chaque fenêtre du jeu de test, face à l’implémentation Rust d’origine. Sur tous les cœurs, c’est 2,3–3,6× plus rapide que PyTorch avec le compilateur Inductor. PatchTST : 2,2–2,5×.

1,29–1,36×

rav1e 0.8 : encodage AV1

Cinq clips Xiph tirés au sort avant la mesure : Elephants Dream, Park Joy, Johnny, Bus, Stefan. Le cycle d’encodage complet aux vitesses 6 et 10. Chaque clip est plus rapide, et les flux binaires sont identiques octet par octet.

Téléchargement · BSD-2 · Linux x86-64 archive complète référence TAKT comment vérifier SHA256SUMS
3,4×face au Rust d’origine
4,0×face à libbz2 en C

Décompression bzip2

La crate bzip2-rs en Rust pur, les 12 fichiers du corpus Silesia, 212 Mo. Chaque fichier est plus rapide, de 2,8× à 4,2×. Sur 400 000 flux de test, dont 360 000 corrompus, les données comme les messages d’erreur sont identiques.

Téléchargement · MIT · Linux x86-64 archive complète référence TAKT comment vérifier SHA256SUMS

Banc : AMD Threadripper PRO 5975WX (Zen 3, AVX2). Rapport des médianes d’exécutions réelles sur l’ensemble complet : sept tours pour les codecs, cinq répétitions pour les modèles. En monothread, PyTorch reste plus rapide sur ces modèles : il réordonne les additions, alors que nous gardons une sortie identique bit à bit à celle du code d’origine. Ce sont des résultats sur un code précis, pas une promesse pour le vôtre : pour votre crate, nous donnons des chiffres après mesure.

Tarifs

Payez une accélération que vous avez déjà constatée

Le prix du niveau 1 dépend de la taille du code chaud et de l’accélération obtenue. Vous voyez le résultat avant de payer : vous ne payez que ce que vous obtenez.

Niveau 0
$0
  • Profils de compilation : LTO, codegen-units, target-cpu, PGO
  • Un jeu d’options de compilation à appliquer vous-même
  • Code chaud jusqu’à 2 000 lignes
  • Prêt en quelques minutes

Le chiffre est mesuré sur le banc, ce n’est pas une prévision.

Niveau 2 · ingénieur
sur devis 30 % d’acompte
  • Avant tout un changement de paradigme de calcul, puis la disposition des données, le SIMD et tout le reste
  • De quelques heures à quelques jours
  • Le solde après recette sur les métriques

Minimum garanti non atteint : la somme est recréditée sur votre solde selon le barème du contrat.

Tarifs du Niveau 1

Accélération par rapport au niveau 0jusqu’à 1 000 lignes1 000–3 000 lignes3 000–10 000 lignesplus de 10 000 lignes
10–25 %$290$490$890sur demande
25–100 %$790$1 190$2 390sur demande
100–200 %$1 190$1 790$3 590sur demande
plus de 200 %$1 990$2 990$5 990sur demande

L’accélération indique combien de fois le nouveau build est plus rapide que le niveau 0, moins un : 100 % signifie deux fois plus rapide, 200 % trois fois ; en cycles, cela correspond à −20 % pour 25 %, −50 % pour 100 % et −67 % pour 200 %. Le niveau 0 gratuit couvre le code chaud jusqu’à 2 000 lignes ; au-delà, il est inclus dans le niveau 1. Plateforme supplémentaire : +30 %. Les lignes sont comptées avec llvm-cov : uniquement le code exécuté par le benchmark du passeport (détails dans la question « Comment les lignes sont-elles comptées ? »).

Ce que cela vous fait gagner

Indiquez la durée actuelle d’une exécution et sa fréquence. Prenez l’accélération de votre estimation gratuite ; 5,7× est le cas ta mesuré.

Attente économisée par mois—
Calcul économisé par mois—

Simple arithmétique sur vos données : temps gagné = exécutions × durée × (1 − 1/accélération). L’accélération de votre code est mesurée avant que vous ne payiez.

Abonnement CI : l’accélération se maintient à chaque nouvelle version

FormulePar mois, facturé à l’annéeInclus
Crate$149Code chaud jusqu’à 2 000 lignes, jusqu’à 4 versions par mois, une plateforme
Équipe$399Jusqu’à 10 000 lignes, jusqu’à 20 versions par mois, deux plateformes
Enterpriseà partir de $1 500Plusieurs crates, SLA, recette sur votre matériel

L’abonnement est souscrit pour un an ; le montant annuel ($1 788, $4 788 ou à partir de $18 000) est débité de votre solde à la souscription. Chaque nouvelle version est de nouveau optimisée, et son équivalence vérifiée. Si une version n’a pas pu être amenée au niveau contractuel, vous recevez la part du mois que représentent ces versions, sous la forme de votre choix : cette part de la mensualité créditée sur votre solde, ou l’abonnement prolongé de cette part du mois. Si, sur quatre versions dans le mois, une a échoué : un quart de la mensualité, ou un quart de mois.

Tous les paiements passent par le solde de votre espace client. Rechargez-le par carte via Stripe (cartes, Apple Pay, Google Pay et moyens de paiement locaux), par virement bancaire ou avec un code promo ; chaque service est débité au moment de la commande. Les fonds versés non utilisés sont restitués sur demande ; les fonds bonus issus des codes promo et des bonus servent à payer les services.

Pour qui

Là où l’accélération est la plus forte

Aujourd’hui, nous travaillons sur x86-64 (AMD Zen 3, AVX2). Les plus forts gains viennent des calculs itératifs denses avec rétroaction, où chaque pas dépend du précédent : indicateurs récurrents, simulation de stratégie le long d’un historique, entraînement de réseaux impulsionnels et d’autres modèles récurrents, balayages sur de nombreux jeux de paramètres. Le code qui attend longtemps la mémoire ou analyse les données bit par bit y gagne aussi beaucoup.

Backtesting et simulation de stratégies

Moteurs de trading, rejeu de données de marché, recherche et évolution de paramètres. Un cas client confidentiel : 2,5–10,5× en automatique, jusqu’à 33,7× avec un ingénieur. Un cas public : les indicateurs ta, 5,7× en durée d’exécution complète face au niveau 0 gratuit.

Entraînement de modèles et recherche de paramètres

Des modèles à forte rétroaction, comme les réseaux impulsionnels (dans le style de BindsNET) et d’autres modèles récurrents, à l’entraînement et lors de balayages sur de nombreux jeux de paramètres. Au niveau 2, nous portons un modèle Python en Rust au bit près. Cas public : un balayage d’entraînement STDP d’un modèle BindsNET, 15,8× face au niveau 0 gratuit et 395× face à BindsNET lui-même, avec une sortie identique.

Archives et pipelines de données

Décompression d’archives, dumps Wikipédia et OpenStreetMap, données scientifiques et génomiques, stockage de logs. bzip2 : 3,4× face au Rust d’origine et 4,0× face au C.

Vidéo et AV1

Plateformes vidéo et transcodage cloud avec rav1e. 1,29–1,36× sur l’encodage complet : sur un cluster, cela représente environ un quart des serveurs.

Inférence ML sur CPU

Modèles de séries temporelles en Rust, sans Python : prévision de charge, de demande et d’énergie. 5,6–5,9× face au Rust d’origine, plus rapide que PyTorch sur tous les cœurs.

Classe de codeAccélération mesuréeMesuré sur
Simulations à état, recherche de candidats sur un même historique2,5–34×moteur de trading
Réseaux impulsionnels : entraînement STDP, balayages de paramètres3,9–15,8×BindsNET: LIF + STDP
Indicateurs d’analyse technique, balayages de paramètres1,6–8,7×ta: ADX, ATR, PSAR
Optimiseurs de stratégies : recherche en grille de paramètres16–20×vn.py: DoubleMaStrategy
Bibliothèques d’indicateurs en C, appelées depuis C ou Python2,0–7,4×TA-Lib 0.8.1
Décodeurs avec parcours de tables et analyse au niveau du bit2,5–4×bzip2, Silesia
Inférence de petits modèles sur tous les cœurs2,2–5,9×DLinear, PatchTST, ETT
Encodeurs avec recherche de modes1,3–1,4×rav1e, Xiph
Primitives cryptographiques, codecs avec SIMD écrit à la main, formats disposant d’une bibliothèque C performanteaucuneSHA-256, ChaCha20, x264, LZ4

Pour ta et le réseau à impulsions : face au niveau 0 gratuit, en cycles. Autres lignes : face au programme d’origine ou, quand le cas l’indique, à la bibliothèque C de référence.

Fonctionnement

De la première mesure au build signé

Mesurez vous-même

Le harness gratuit relève les cycles, les instructions, les défauts de cache, les erreurs de prédiction de branchement et le temps réel. Vous pouvez nous envoyer le paquet de mesures sans le code source, et nous vous donnons une fourchette préliminaire.

Envoyez la partie chaude

Une vraie mesure, contrairement à une estimation, nécessite le code source. Nous vous aidons à n’en extraire que le cœur de calcul, sans logique métier, et nous établissons sa mesure de base sur le banc de référence.

Nous fixons le passeport

La plateforme, la charge de travail, les versions des outils et le protocole sont consignés avant le début des travaux. Le résultat est calculé à partir de ces chiffres.

Découvrez trois chiffres

Les niveaux 0 et 1 sont mesurés à l’avance sur le banc. Le niveau 2 est donné sous forme de fourchette, avec un délai et un minimum garanti.

Recevez le build

Après paiement : une bibliothèque signée, un en-tête, un SBOM, un rapport sur les mesures et la vérification d’équivalence.

Pour les ingénieurs

Les preuves

Ce que nous signons, comment nous mesurons et ce que vous pouvez vérifier vous-même : le passeport de mesure, le harness ouvert, l’isolation de votre code et une comparaison avec les options habituelles.

Garantie

Nous promettons des chiffres précis sur un matériel précis

Avant le début des travaux, nous fixons le passeport de mesure : le modèle et la fréquence du CPU, la charge de travail avec les empreintes des données d’entrée, les versions de rustc et des outils, le protocole de mesure. Le contrat ne porte que sur ces métriques.

M1Cycles sur un vrai CPULe compteur PMU du banc de référence à fréquence fixe, en alternant la référence et la nouvelle version. C’est l’objet de la promesse.
M2Cycles et instructions déterministesSimulation d’une version figée. Le même chiffre chez nous et chez vous, pour les vérifications croisées et la CI.
M3Temps p50 / p99Pour les charges sensibles à la latence, la promesse peut porter sur le p99.
M4Pic de mémoireContrainte : ne pas dépasser la référence de plus d’un pourcentage convenu.
M5ExactitudeTests différentiels et fuzzing, y compris sur des entrées cachées que l’optimiseur n’a jamais vues.
Formulation au contrat

« Sur la plateforme P, selon le protocole du passeport de mesure, la médiane de M1 diminuera d’au moins X % par rapport à la référence, à condition que M4 et M5 soient respectées. »

Pourquoi des cycles sur un vrai CPU. Un simulateur donne un chiffre reproductible, mais pas toujours juste : il ne voit ni la baisse de fréquence sous SIMD large, ni le préchargement matériel, ni le multithreading. Le contrat s’appuie donc sur du matériel réel, et la simulation sert aux vérifications croisées.

Entrées cachées. Une partie de vos données est retenue jusqu’à la recette, afin que l’accélération ne puisse pas être ajustée au benchmark. Vous nous transmettez ces données chiffrées et fournissez la clé une fois le binaire prêt.

Harness

Mesurez vous-même

Un outil en ligne de commande gratuit et open source (MIT) relève le même type de mesures que notre banc : cycles et instructions en mode utilisateur, lus sur les compteurs matériels. Envoyez-nous les mesures sans le code et faites la recette vous-même.

run

Cycles, instructions, défauts de cache et erreurs de prédiction de branchement, temps réel et mémoire. Médiane, dispersion, intervalle de confiance à 95 % et une note de qualité.

:::

Plusieurs builds en tours alternés : les dérives de température et de charge les touchent tous de la même façon.

compare

Avant et après : le facteur d’accélération avec son intervalle, selon la définition de nos Conditions générales, et la vérification que les sorties sont identiques. Le code de sortie peut bloquer un job de CI.

show

Relisez le paquet avant de l’envoyer : ni code, ni sortie, ni contenu de fichiers, seulement des empreintes et des informations sur la machine. --redact hache aussi les chemins et les arguments.

$ TAKT_INPUTS=data taskset -c 44 takt-harness run --input data \
    -- bin/ta-bench-base ::: bin/ta-bench-level2
machine   AMD Ryzen Threadripper PRO 5975WX 32-Cores · x86-64-v3
checks    pinned to CPU 44 · governor performance · SMT on
protocol  9 rounds after 1 warm-up · CI: percentile bootstrap

metric          baseline       new   factor   95% CI of factor
cycles:u         1.370 G   141.3 M   9.695×   9.582 – 9.927
instructions:u   3.156 G   391.7 M   8.057×   8.057 – 8.057
wall time      484.7 ms  66.90 ms   7.245×   6.983 – 7.346
stdout    match · sha256 ada682c61e5e… · 973 B
quality   good · 9 runs, typical deviation 0.06% / 0.73% (MAD)

verdict   outputs identical · cycles:u speed-up factor 9.695×
bundle    readings.json  # peut être envoyé sans code source

Sortie réelle abrégée sur notre vitrine ta-indicators (1 million de barres) : le build d’origine face au build de niveau 2. Le paquet de mesures contient les informations sur la machine, les empreintes des programmes, des entrées et de la sortie, ainsi que les métriques avec leur dispersion et une note de qualité.

Code source et binaire Linux prêt à l’emploi : github.com/rdmitry0911/takt-harness (MIT).

Sécurité

Votre code ne s’exécute que dans un périmètre isolé, sans réseau

Isolation

Chaque build s’exécute dans une microVM jetable sans accès réseau. Un nœud de benchmark ne sert qu’un seul client à la fois.

Chiffrement et suppression

Une clé distincte par projet. Au bout de 30 jours, ou d’un simple clic, la clé est détruite avec les données.

Votre code reste le vôtre

Le code et les données ne sont pas communiqués à des tiers, ne servent pas aux travaux pour d’autres clients et sont supprimés dans les délais prévus. Les méthodes mathématiques générales que nous découvrons en accélérant votre algorithme enrichissent notre bibliothèque sans votre code, vos données ni vos noms. Ce sont des clauses du contrat et du NDA signé avant tout envoi.

Paquet signé

SHA-256 de chaque fichier, signés avec notre clé publiée ; le SBOM des composants ; le rapport de mesure et la chaîne d’outils utilisée pour le build.

Une propreté vérifiable

Le build n’accède pas au réseau, ne lance aucun autre programme et n’écrit aucun fichier. Un script du paquet le montre sur vos propres données : exécution sans aucun réseau, plus strace.

Seulement le module chaud

Vous pouvez n’envoyer que le cœur de calcul, sans logique métier. La documentation explique comment l’extraire.

Nous livrons un binaire optimisé et des preuves de mesure et d’équivalence ; la méthode reste notre savoir-faire. Le séquestre du code source se demande par écrit avant paiement, via une boîte propre à la commande selon l’avenant escrow. La plateforme et la procédure de préparation et de transfert doivent être qualifiées et consignées dans la commande. Le mode shadow exige un état isolé reproductible ; les contrôles de sécurité par vous ou un prestataire sont autorisés.

Comment se passe la livraison et ce que vous pouvez vérifier vous-même

Comparaison

Ce qui nous distingue des options habituelles

Un agent IA en interneServices de benchmarking en CIUn consultantTAKT
Accélère le codeouinon, détecte les régressionsouioui
Résultat connu avant paiementnon—nonoui, niveaux 0–1
Garantie inscrite au contratnonnongénéralement pasoui, sur M1
Protection contre l’ajustement au benchmarkà votre charge—dépend de la personneentrées cachées
Preuve de correction pour chaque modificationnon, seulement vos tests—rarementoui, avec revue indépendante
Méthodes d’optimisation propresles connaissances générales du modèle—l’expérience d’une personneune bibliothèque de méthodes prouvées qui s’enrichit à chaque projet
Un refus honnête quand il n’y a rien à accélérerun agent change toujours quelque chose—pas toujoursoui, avant paiement
Matériel de référencele vôtreouile vôtreoui
Modèle de tarificationaux tokenspar utilisateurà l’heureau résultat
FAQ

Les questions les plus fréquentes

Pourquoi livrez-vous un build et non le code source ?

La méthode d’optimisation est notre savoir-faire : nous livrons donc une bibliothèque statique ou dynamique avec un en-tête C et une fine surcouche Rust. L’intégration tient en une ligne dans Cargo.toml. L’exactitude est confirmée par les tests d’équivalence, l’origine par la signature et la provenance.

Que se passe-t-il si je modifie mon code ?

L’intégration Rust et le retour à l’original sont convenus pour la bibliothèque. Un cœur modifié demande une nouvelle version et une mesure ; CI exige une commande distincte acceptée. Le séquestre peut être demandé avant paiement via une boîte qualifiée selon l’avenant.

Dois-je vous envoyer ma stratégie ?

Pas pour une fourchette préliminaire : le harness gratuit produit un paquet de mesures sans code source. Pour le build, il nous faut le code qui s’exécute dans la boucle chaude, et lui seul : en général le simulateur, les indicateurs et l’état du portefeuille. Il est couvert par le NDA, ne sert pas aux travaux pour d’autres clients et est supprimé dans les délais prévus. Une partie de vos données peut rester chez vous jusqu’à la recette : les entrées cachées sont envoyées chiffrées, et vous fournissez la clé une fois le build prêt.

Pourquoi ne pas simplement ajouter des cœurs ?

Faites les deux. Les exécutions indépendantes d’un balayage se répartissent bien sur les cœurs, et notre build accélère chacune d’elles sur chaque cœur ajouté. Plus de cœurs n’aident pas une simulation unique le long d’un historique, où chaque pas dépend du précédent, et c’est précisément ce code que nous accélérons. Moins d’heures-cœur pour le même balayage, c’est aussi une facture cloud plus petite.

Et si l’accélération promise n’est pas au rendez-vous ?

Au niveau 1, vous payez un résultat déjà mesuré : ce cas ne peut donc pas se produire. Au niveau 2, nous annonçons un minimum garanti ; s’il n’est pas atteint, la somme est recréditée sur votre solde selon le barème du contrat, et les fonds versés présents sur le solde sont restitués sur demande.

Comment les lignes sont-elles comptées ?

Nous compilons votre code avec -C instrument-coverage dans le même profil et pour la même plateforme que dans le passeport, puis nous exécutons le benchmark du passeport sur les entrées ouvertes. Nous comptons les lignes Rust exécutées au moins une fois selon llvm-cov. Ne sont pas comptés : les lignes vides et les commentaires, le code jamais exécuté, les tests et l’outillage du benchmark, les dépendances tierces hors du périmètre des travaux, ainsi que l’assembleur ; une fonction générique compte une seule fois. Ce nombre est inscrit dans le passeport avant paiement. Les données ne comptent pas, seulement votre code. À titre indicatif : la décompression du corpus Silesia avec bzip2-rs exécute 598 lignes de son code, et l’encodage de cinq clips Xiph avec rav1e exécute 12 809 lignes sur 55 419.

Quelles plateformes sont prises en charge ?

Les démos publiques ciblent Linux x86-64 avec AVX2/FMA. TA-Lib et vn.py ont été mesurés sur AMD Zen 3 et Zen 4. Fonctions CPU, OS, ABI et matériel d’acceptation sont fixés par commande ; Intel, ARM et autres environnements nécessitent une évaluation propre.

Quel code s’accélère mal ?

Les décodeurs de formats qui disposent déjà de bibliothèques C optimisées de longue date (LZ4, zstd, deflate) : nous ne les avons pas encore battues. Les codecs matures avec SIMD et assembleur écrits à la main (x264, x265), les primitives cryptographiques comme SHA-256 et ChaCha20, le traitement de données aléatoires incompressibles et les appels très courts, où tout le temps part en surcoût d’appel. Dans ces cas, l’estimation gratuite montre honnêtement un gain faible, et vous n’aurez rien à payer.

Mes comptes de cycles diffèrent des vôtres. Pourquoi ?

Les cycles dépendent du modèle de CPU, de la fréquence, du turbo, de la mémoire et des données d’entrée. Les chiffres contractuels sont relevés sur le banc selon le passeport de mesure. Le harness lit les mêmes compteurs : avec le même modèle de CPU et les mêmes réglages, vos chiffres devraient être proches des nôtres. Le nombre d’instructions dépend bien moins de la machine : comparez-le en premier.

Et les calculs en virgule flottante ?

Par défaut, les sorties correspondent au bit près, avec une exception limitée pour les payloads de NaN produits par l’arithmétique en virgule flottante lorsque Rust autorise des payloads différents. Les encodages de NaN explicitement préservés et les autres sorties restent exacts, sauf accord contraire dans le passeport. Le passeport peut aussi exiger des payloads de NaN exacts. Tout autre écart convenu est défini dans le passeport et vérifié par des tests.

Le build va-t-il planter sur un vieux serveur ?

Vérifiez les exigences CPU de chaque paquet. Les binaires publics peuvent exiger AVX2/FMA et ne pas fonctionner sur un ancien CPU. Fonctions et éventuel repli d’un binaire payé sont convenus dans sa fiche ; le repli n’est pas acquis pour chaque binaire.

Cela réduira-t-il la latence de mon trading en direct ?

Seulement si le profilage montre que le calcul est le goulet d’étranglement. Pour un chemin en direct, nous mesurons tout le trajet de l’événement de marché à l’ordre, par exemple son p99 sur votre serveur, et non une seule fonction : le plus souvent, l’essentiel du temps part dans le réseau et la bourse. Nos meilleurs résultats concernent les calculs par lots : backtests, entraînement et balayages de paramètres.

Travaillez-vous avec C, C++ et Python ?

Oui, en commandes individuelles. Pour C et C++, nous livrons une bibliothèque de remplacement avec la même ABI : vos programmes, et le code Python qui appelle la bibliothèque, fonctionnent sans modification (voir le cas TA-Lib). Pour du code Python, nous livrons un programme ou un module natif avec la même sortie (voir le cas vn.py). C’est un travail d’ingénierie de niveau 2, au prix individuel ; le libre-service du tableau de bord accepte pour l’instant des crates Rust.

Au-delà de TAKT

Nos autres projets

Du logiciel système conçu par la même équipe : déverrouillage d’une racine ZFS chiffrée au démarrage, remodelage de RAIDZ sur place, console navigateur pour Proxmox VE et branchement à chaud Thunderbolt dans QEMU. Chaque carte ouvre une courte description ; le code est sur GitHub. Nous proposons aussi un dépôt conditionnel de secrets dans une machine virtuelle avec TPM.

escrow-box

Prototype de dépôt conditionnel de secrets dans une machine virtuelle avec TPM. Le code source peut être vérifié par recompilation avant sa remise.

  • TPM 2.0
  • UKI
  • Clevis

zbm-openwrt-clevis

Un environnement de démarrage OpenWrt mesuré qui déverrouille une racine ZFS chiffrée avec Clevis et le TPM, puis démarre le système via ZFSBootMenu.

  • OpenWrt
  • ZFS
  • TPM 2.0
  • Clevis

zfs

Un fork d’OpenZFS avec un prototype de remodelage de RAIDZ sur place : changer la parité entre raidz1, raidz2 et raidz3 sans exporter le pool.

  • OpenZFS
  • RAIDZ
  • C

qsm-rd

QSM Direct : une console graphique WebRTC pour les machines virtuelles et les conteneurs LXC de Proxmox VE, avec encodage matériel lorsque le nœud dispose d’un encodeur.

  • Proxmox VE
  • WebRTC
  • LXC

qemu-thunderbolt

Une couche de branchement à chaud PCIe de type Thunderbolt pour QEMU : ajouter et retirer des périphériques dans des invités comme macOS qui ne peuvent pas les brancher à chaud directement.

  • QEMU
  • Thunderbolt
  • PCIe
  • macOS
Démarrer

Évaluer une tâche

Une crate Rust ? Ouvrez le tableau de bord maintenant. Pour C, C++ ou Python, décrivez ci-dessous une exécution lente : durée, fréquence et plateforme. Aucun code ni installation du harness n’est requis à ce stade.

Aucun code n’est nécessaire à cette étape. En envoyant la demande, vous acceptez le traitement de vos coordonnées.