Мы только что запустились. Сайт и сервис ещё дорабатываются — заранее просим прощения за возможные неточности и огрехи. Заметили ошибку или что-то работает не так? Напишите нам — быстро исправим.

RU
Войти Бесплатная оценка
Бэктесты · обучение моделей · перебор параметров

Быстрее повторные вычисления, тот же результат

Пришлите вычислительное ядро бэктеста, симулятора или модели. Rust-крейты принимаются в кабинете; C, C++ и Python начинаются с индивидуальной инженерной оценки. Опубликованные сборки позволяют проверить результаты самостоятельно. Выигрыш и условия приёмки вашего заказа согласуются для вашей задачи и платформы.

1 ч → 11 минперебор параметров индикаторов при измеренных 5,7×, уровень 2 к бесплатному уровню 0
1 ч → 4 минперебор обучения спайковой сети при измеренных 14,2×, уровень 2 к бесплатному уровню 0
0 битрасхождений с исходным кодом
Как это работает первичная оценка бесплатно
  1. Пришлите горячий код

    Только вычислительное ядро, без бизнес-логики. Не готовы делиться кодом? Начните с пакета показаний нашего бесплатного харнесса.

  2. Согласуйте проверку

    Для Rust настройка сборки и автоматическая оптимизация измеряются до покупки. Для индивидуальной работы уровня 2 согласуем объём, измеримый минимум и процедуру приёмки.

  3. Выберите платную работу

    Уровень 1 не оплачивается при измеренном ускорении меньше 10%. Цена уровня 2, возможная предоплата и приёмка согласуются отдельным заказом. Эквивалентность вывода проверяется на согласованной платформе.

Чуть ниже — измеренные кейсы, которые можно скачать и запустить ↓
Что уже измерено

Стандартные тесты, выход совпадает с оригиналом до бита

Публичный код и общепринятые наборы данных: корпус сжатия Silesia, видеоклипы Xiph, наборы ETT для прогноза временных рядов, индикаторы технического анализа. Каждый замер — реальное последовательное исполнение всего набора против неизменённого оригинала, все выходы сравниваются побайтно. Доказательства корректности для кодеков прошли независимую проверку.

Все три уровня · бинарники открыты

Индикаторы ADX, ATR и PSAR из Python ta

Порт библиотеки ta 0.11 на Rust, совпадающий с Python бит в бит. Свип параметров на одном миллионе баров: ATR, ADX и ±DI для пяти окон и Parabolic SAR в четырёх конфигурациях. Каждый уровень собран, замерен на стенде и выложен; вывод всех уровней совпадает до байта, в том числе на входах, где программа падает.

5,7×уровень 2 к бесплатному уровню 0, время всего прогона
18×к Numba на вычислениях
< 48 чработа инженера над уровнем 2

Тот же алгоритм на Numba (тоже бит в бит): 335 мс вычислений и 201 мс pandas.read_csv. Уровень 2: 18 мс вычислений и 20 мс разбора CSV, вся программа — 81 мс. Python ta: 20,5 с на 100 тыс. баров.

База, такты на запуск (M1, медиана) 1 376,9 млн 503 мс
БазовыйLTO, codegen-units, target-cpu · бесплатно 1 248,6 млн463 мс · опорный
Уровень 1автоматическая доказанная оптимизация 791,4 млн342 мс · 1,58× такты · 1,35× время
Уровень 2инженер: смена вычислительной схемы 143,3 млн81 мс · 8,7× такты · 5,7× время
Замер на стенде: Zen 3, такты vPMU, 9 чередующихся раундов; время — вся программа, включая чтение данных. Уровни 1 и 2 сравниваются с бесплатным уровнем 0. Замерены именно опубликованные файлы. В этом кейсе автоматическая оптимизация сама по себе даёт 1,58× по тактам, наибольший выигрыш даёт уровень 2.
Скачать · MIT · Linux x86-64 весь пакет1 МБ: программы всех уровней, исходник базы, генератор данных, замеры база базовый уровень уровень 1 уровень 2 как проверить SHA256SUMS
Все три уровня · бинарники открыты

Перебор обучения спайковой нейросети (модель BindsNET)

Резервуар из 128 нейронов LIF с рекуррентными связями; входные веса обучаются онлайн по STDP (PostPre из BindsNET). Перебор обучает 24 сети по порогу, мембранной постоянной времени и скорости обучения на синтетическом рыночном потоке из 5 000 шагов. Программа на Rust печатает ровно то же, что скрипт BindsNET, бит в бит — на основном входе и на 54 сгенерированных наборах.

15,8×уровень 2 к бесплатному уровню 0, такты (14,2× по времени)
395×против того же перебора в BindsNET, одно ядро
0 битрасхождения с BindsNET

BindsNET 0.3.3 на PyTorch (CPU, один поток, то же ядро): 24,0 с на перебор, в основном накладные расходы Python и диспетчеризации на каждом шаге. Уровень 2: 60,9 мс на том же ядре. Одна настройка сборки здесь на 6% медленнее обычной сборки; автоматическая оптимизация даёт 3,89× к уровню 0 по тактам, уровень 2 — 15,8×.

База, такты на запуск (M1, медиана) 3 525,0 млн 805 мс
БазовыйLTO, codegen-units, target-cpu · бесплатно 3 742,6 млн865 мс · опорный
Уровень 1автоматическая доказанная оптимизация 962,4 млн222 мс · 3,89× такты · 3,90× время
Уровень 2инженер: смена вычислительной схемы 237,0 млн60,7 мс · 15,8× такты · 14,2× время
Замер на стенде: Zen 3, такты vPMU в изолированной ВМ, 9 чередующихся раундов; CCX был зарезервирован под замер (2 из его 16 логических CPU были вне нашего контроля). Уровни 1 и 2 сравниваются с бесплатным уровнем 0. Замерены именно опубликованные файлы.
Скачать · MIT · Linux x86-64 весь пакет0,8 МБ: программы всех уровней, исходник базовой версии, скрипт BindsNET, генератор данных, замеры база базовый уровень уровень 1 уровень 2 как проверить SHA256SUMS
16–20×к грамотному нативному порту
≈12 000×к оптимизатору самого vn.py
Оптимизация стратегий · vn.py · бинари опубликованы

Подбор параметров в vn.py: тот же топ-10 на порядок быстрее

Оптимизатор vn.py перебирает 600 наборов параметров его штатной стратегии на скользящих средних. Наша программа печатает те же десять лучших наборов с теми же коэффициентами Шарпа, доходностями, просадками и числом сделок — бит в бит на машинах с AVX2. Она в 16–20× быстрее грамотного нативного порта, который считает каждую скользящую среднюю один раз, и примерно в 12 000× быстрее самого vn.py; большую часть этого даёт уход из Python. Замер на AMD Zen 3 и Zen 4.

Скачать · MIT · Linux x86-64 весь пакет60 КБ: наша программа, оба нативных порта, драйвер vn.py, генератор данных, замеры на двух платформах что измерено
2,3–7,4×семь индикаторов, C
2,0–6,0×из Python без изменений
Библиотека C · прямая замена · бинари опубликованы

Индикаторы TA-Lib: более быстрая библиотека на замену

Замена C-библиотеки TA-Lib 0.8.1 с тем же ABI: программы на C и Python-обёртка TA-Lib используют её без изменений, а каждый выход совпадает с официальной библиотекой бит в бит (проверено 4,59 млн вызовов). На свипе параметров по миллиону баров семь индикаторов (CCI, SAR, DX, ADX, EMA, STOCH, RSI) в 2,3–7,4× быстрее самой быстрой из официальной сборки и сборки -march=native, замер на AMD Zen 3 и Zen 4. Через неизменённую Python-обёртку тот же свип быстрее в 2,0–6,0×.

Скачать · BSD-3 · Linux x86-64 весь пакет3,2 МБ: библиотека, программы замера, инструмент побитовой сверки, замеры на двух платформах что измерено
5,6–5,9×к исходному Rust
2,3–3,6×к PyTorch + Inductor на всех ядрах

Прогноз временных рядов на Rust

DLinear с весами официального обучения на четырёх наборах ETT, все окна тестовой части, против исходной Rust-реализации. На всех ядрах в 2,3–3,6 раза быстрее PyTorch с компилятором Inductor. PatchTST: 2,2–2,5×.

1,29–1,36×

rav1e 0.8 — кодирование AV1

Пять клипов Xiph, выбранных случайно до замера: Elephants Dream, Park Joy, Johnny, Bus, Stefan. Полный цикл кодирования в режимах speed 6 и 10. Каждый клип быстрее, потоки совпадают побайтно.

Скачать · BSD-2 · Linux x86-64 весь пакет база TAKT как проверить SHA256SUMS
3,4×к исходному Rust
4,0×к libbz2 на C

Распаковка bzip2

Крейт bzip2-rs на чистом Rust, все 12 файлов корпуса Silesia, 212 МБ. Каждый файл быстрее, от 2,8 до 4,2 раза. На 400 000 проверочных потоков, из них 360 000 повреждённых, совпадают и данные, и тексты ошибок.

Стенд: AMD Threadripper PRO 5975WX (Zen 3, AVX2). Отношение медиан реального исполнения всего набора: семь раундов для кодеков, пять повторов для моделей. В одном потоке PyTorch на этих моделях пока быстрее: он меняет порядок сложений, а мы сохраняем побитовое совпадение с исходным кодом. Это результаты на конкретном коде, а не обещание для вашего: для вашего crate мы называем цифры после замера.

Цены

Платите за ускорение, которое уже видели

Цена уровня 1 зависит от размера горячего кода и достигнутого ускорения. Вы видите результат до оплаты, поэтому платите только за то, что получили.

Базовый
$0
  • Профили сборки: LTO, codegen-units, target-cpu, PGO
  • Рецепт флагов, который вы применяете сами
  • Горячий код до 2 тыс. строк
  • Готово за минуты

Цифра измерена на стенде, это не прогноз.

Уровень 2 · инженер
по оценке 30% вперёд
  • Главное — смена вычислительной парадигмы, дальше раскладка данных, SIMD и всё остальное
  • От пары часов до пары дней
  • Остаток — после приёмки по метрикам

Не достигли гарантированного минимума — возвращаем деньги на баланс по таблице из договора.

Цены уровня 1

Ускорение сверх базового уровнядо 1 тыс. строк1–3 тыс. строк3–10 тыс. строкболее 10 тыс. строк
10–25%$290$490$890по запросу
25–100%$790$1 190$2 390по запросу
100–200%$1 190$1 790$3 590по запросу
более 200%$1 990$2 990$5 990по запросу

Ускорение — во сколько раз новая сборка быстрее базового уровня, минус единица: 100% — вдвое быстрее, 200% — втрое; в тактах это −20% при 25%, −50% при 100% и −67% при 200%. Бесплатный базовый уровень — для горячего кода до 2 тыс. строк; для большего объёма он входит в уровень 1. Дополнительная платформа: +30%. Строки считаются по llvm-cov: только код, который выполняется в бенчмарке паспорта (подробнее — в вопросе «Как считаются строки?»).

Сколько это экономит

Укажите, сколько сейчас длится один прогон и как часто вы его запускаете. Ускорение возьмите из бесплатной оценки; 5,7× — измеренный кейс ta.

Сэкономлено ожидания в месяц—
Сэкономлено на вычислениях в месяц—

Простая арифметика на ваших данных: сэкономленное время = прогоны × длительность × (1 − 1/ускорение). Ускорение для вашего кода измеряется до оплаты.

Подписка на CI: ускорение не теряется с новыми релизами

ПланВ месяц при оплате за годЧто входит
Crate$149Горячий код до 2 тыс. строк, до 4 релизов в месяц, одна платформа
Команда$399До 10 тыс. строк, до 20 релизов в месяц, две платформы
Enterpriseот $1 500Несколько crate, SLA, приёмка на вашем железе

Подписка оформляется на год; годовая плата ($1 788, $4 788 или от $18 000) списывается с баланса при оформлении. При каждом новом релизе сборка снова ускоряется и проверяется на эквивалентность. Если релиз не удалось ускорить до уровня договора, вам полагается доля месяца, которую составляют такие релизы, на выбор: эта доля месячной платы на баланс или продление подписки на эту долю месяца. Из четырёх релизов месяца не удался один — четверть месячной платы или четверть месяца.

Все расчёты идут через баланс в кабинете. Пополняйте его картой через Stripe (карты, Apple Pay, Google Pay и местные способы оплаты), банковским переводом или промокодом; каждая услуга списывается при заказе. Неиспользованные оплаченные средства возвращаем по запросу; бонусные средства из промокодов и бонусов оплачивают услуги.

Для кого

Где ускорение больше всего

Сегодня мы работаем на x86-64 (AMD Zen 3, AVX2). Больше всего выигрывают плотные итеративные вычисления с обратной связью, где каждый шаг зависит от предыдущего: рекуррентные индикаторы, симуляция стратегии по истории, обучение спайковых и других рекуррентных моделей, перебор множества наборов параметров. Много дают и код, который подолгу ждёт память, и побитовый разбор данных.

Бэктест и симуляция стратегий

Торговые движки, replay рыночных данных, перебор и эволюция параметров. Закрытый кейс клиента: 2,5–10,5× автоматически, до 33,7× с инженером. Открытый кейс: индикаторы ta, 5,7× по времени всего прогона к бесплатному уровню 0.

Обучение моделей и перебор параметров

Модели с сильной обратной связью — спайковые сети (в духе BindsNET) и другие рекуррентные модели — при обучении и переборе множества наборов параметров. На уровне 2 переносим модель с Python в Rust бит в бит. Открытый кейс: перебор обучения модели BindsNET по STDP, 15,8× к бесплатному уровню 0 и 395× к самому BindsNET при идентичном выводе.

Архивы и конвейеры данных

Распаковка архивов, дампы Википедии и OpenStreetMap, научные и геномные данные, хранилища логов. bzip2: 3,4× к исходному Rust и 4,0× к C.

Видео и AV1

Видеоплатформы и облачное транскодирование на rav1e. 1,29–1,36× на полном кодировании: на кластере это около четверти серверов.

ML-инференс на CPU

Модели временных рядов в Rust без Python: прогноз нагрузки, спроса, энергопотребления. 5,6–5,9× к исходному Rust, на всех ядрах быстрее PyTorch.

Класс кодаИзмеренное ускорениеГде измерено
Симуляции с состоянием, перебор кандидатов по одной истории2,5–34×торговый движок
Спайковые сети: обучение по STDP, перебор параметров3,9–15,8×BindsNET: LIF + STDP
Индикаторы теханализа, свипы параметров1,6–8,7×ta: ADX, ATR, PSAR
Оптимизаторы стратегий: перебор параметров по сетке16–20×vn.py: DoubleMaStrategy
Библиотеки индикаторов на C, вызов из C или Python2,0–7,4×TA-Lib 0.8.1
Декодеры с обходом таблиц и побитовым разбором2,5–4×bzip2, Silesia
Инференс небольших моделей на всех ядрах2,2–5,9×DLinear, PatchTST, ETT
Кодировщики с перебором режимов1,3–1,4×rav1e, Xiph
Криптопримитивы, кодеки на ручном SIMD, форматы с сильной библиотекой на CнетSHA-256, ChaCha20, x264, LZ4

Для ta и спайковой сети — к бесплатному уровню 0, в тактах. Остальные строки — к исходной программе или, где это сказано в кейсе, к эталонной C-библиотеке.

Как это работает

От первого замера до подписанной сборки

Измерьте у себя

Бесплатный харнесс снимает такты, инструкции, промахи кэша и переходов и время. Пакет показаний можно отправить нам без исходников, и мы дадим предварительный диапазон.

Пришлите горячую часть

Для настоящего замера, а не оценки, нужен исходный код. Поможем выделить только вычислительное ядро без бизнес-логики и снимем на нём базу на эталонном стенде.

Зафиксируем паспорт

Платформа, нагрузка, версии инструментов и протокол записываются до начала работы. От этих чисел считается результат.

Увидите три цифры

Базовый уровень и уровень 1 измерены на стенде заранее. Уровень 2 — диапазон, срок и гарантированный минимум.

Получите сборку

После оплаты — подписанная библиотека, заголовок, SBOM, отчёт о замерах и проверке эквивалентности.

Для инженеров

Доказательства

Что мы подписываем, как измеряем и что вы можете проверить сами: паспорт измерений, открытый харнесс, изоляция вашего кода и сравнение с обычными вариантами.

Гарантия

Мы обещаем конкретные числа на конкретном железе

До начала работы фиксируем паспорт измерений: модель CPU и частоту, нагрузку с хэшами входных данных, версии rustc и инструментов, протокол замера. Договор говорит только об этих метриках.

M1Такты на реальном CPUСчётчик PMU на эталонном стенде при фиксированной частоте, база и новая версия чередуются. Это обещание.
M2Детерминированные такты и инструкцииСимуляция фиксированной версии. Одинаковая цифра у нас и у вас, для сверки и CI.
M3Время p50 / p99Для задач, где важна задержка, обещание можно дать по p99.
M4Пиковая памятьОграничение: не хуже базы больше оговорённого процента.
M5КорректностьДифференциальные тесты и фаззинг, в том числе на скрытых входах, которых оптимизатор не видел.
Формулировка в договоре

«На платформе P по протоколу паспорта измерений медиана M1 снизится не менее чем на X% относительно базы при выполнении условий M4 и M5».

Почему такты реального CPU. Симулятор даёт повторяемое число, но не всегда верное: он не видит снижения частоты при широком SIMD, префетчера и многопоточности. Поэтому в договоре — реальное железо, а симуляция служит для сверки.

Скрытые входы. Часть ваших данных откладывается до приёмки, чтобы ускорение не было подгонкой под бенчмарк. Вы присылаете нам эти данные в зашифрованном виде, а ключ даёте после того, как готов бинарь.

Харнесс

Измерьте сами

Бесплатная утилита командной строки с открытым кодом (MIT) снимает те же показания, что и наш стенд: такты и инструкции пользовательского режима по аппаратным счётчикам. Отправьте нам показания без кода и примите работу сами.

run

Такты, инструкции, промахи кэша и предсказателя переходов, время и память. Медиана, разброс, 95-процентный доверительный интервал и оценка качества.

:::

Несколько сборок поочерёдными раундами: дрейф температуры и нагрузки влияет на все одинаково.

compare

До и после: коэффициент ускорения с интервалом по определению из наших Условий и проверка, что вывод совпадает. Код выхода может остановить задачу в CI.

show

Просмотрите пакет перед отправкой: в нём нет кода, вывода и содержимого файлов — только хеши и сведения о машине. --redact хеширует ещё и пути с аргументами.

$ 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  # можно отправить без исходников

Сокращённый реальный вывод на нашей витрине ta-indicators (1 млн баров): исходная сборка против сборки уровня 2. В пакете показаний — сведения о машине, хеши программ, входов и вывода, метрики с разбросом и оценка качества.

Исходный код и готовый бинарь для Linux: github.com/rdmitry0911/takt-harness (MIT).

Безопасность

Ваш код исполняется только в изолированном контуре без сети

Изоляция

Каждая сборка — одноразовая microVM без доступа в сеть. Бенчмарк-узел в каждый момент занят одним клиентом.

Шифрование и удаление

Отдельный ключ на проект. Через 30 дней или по кнопке ключ уничтожается вместе с данными.

Код остаётся вашим

Код и данные не передаются третьим лицам, не используются в работе для других клиентов и удаляются по сроку. Общие математические методы, найденные нами при работе по ускорению вашего алгоритма, пополняют нашу библиотеку без вашего кода, данных и названий. Это пункты договора и NDA до загрузки.

Подписанный пакет

SHA-256 каждого файла, подписанные нашим опубликованным ключом; SBOM компонентов; отчёт об измерениях и тулчейн, которым собрана сборка.

Проверяемая чистота

Сборка не обращается к сети, не запускает другие программы и не пишет файлы. Скрипт в пакете показывает это на ваших входных данных: запуск совсем без сети плюс strace.

Только горячий модуль

Можно прислать только вычислительное ядро без бизнес-логики. В документации есть инструкция, как его выделить.

Вы получаете ускоренный бинарь и подтверждение замеров и эквивалентности; метод остаётся нашим know-how. Escrow исходников доступен по письменному запросу до оплаты: отдельный образ для заказа по escrow rider. Платформа и процедура подготовки и передачи должны пройти квалификацию и быть записаны в заказе. Shadow mode требует воспроизводимого изолированного состояния; безопасность сборки можно проверять самим или с подрядчиком.

Как устроена поставка и что вы можете проверить сами

Сравнение

Чем это отличается от привычных вариантов

ИИ-агент самостоятельноСервисы CI-бенчмаркингаКонсультантTAKT
Ускоряет кодданет, ловит регрессиидада
Результат известен до оплатынет—нетда, уровни 0–1
Гарантия в договоренетнетобычно нетда, по M1
Защита от подгонки под бенчмаркна вас—зависит от человекаскрытые входы
Доказательство корректности каждого изменениянет, только ваши тесты—редкода, с независимой проверкой
Собственные методы оптимизацииобщие знания модели—опыт одного человекабиблиотека доказанных методов, растёт с каждым проектом
Честный отказ, если ускорять нечегоагент всегда что-то меняет—не всегдада, до оплаты
Эталонное железовашедавашеда
Модель оплатытокеныза пользователяза часза результат
Вопросы

Что обычно спрашивают

Почему вы отдаёте сборку, а не исходники?

Метод оптимизации — наше ноу-хау, поэтому мы поставляем статическую или динамическую библиотеку с C-заголовком и тонкой Rust-обёрткой. Подключение — одна строка в Cargo.toml. Корректность подтверждается тестами эквивалентности, происхождение — подписью и provenance.

Что будет, когда я изменю код?

Интеграция Rust-библиотеки и возврат к оригиналу согласуются при выдаче. Если ускоренное ядро изменилось, нужна новая версия и замер; CI предоставляется по отдельному принятому заказу. Для непрерывности бизнеса escrow исходников можно запросить до оплаты через квалифицированный escrow box по rider.

Придётся ли отдать вам стратегию?

Для предварительного диапазона — нет: бесплатный харнесс даёт пакет показаний без исходников. Для сборки нужен код, который работает в горячем цикле, и только он: обычно симулятор, индикаторы и состояние портфеля. Он под NDA, не используется в работе для других клиентов и удаляется по сроку. Часть данных может оставаться у вас до приёмки: скрытые входы присылаются зашифрованными, а ключ вы даёте, когда сборка готова.

Почему не просто добавить ядер?

Делайте и то, и другое. Независимые прогоны перебора хорошо раскладываются по ядрам, а наша сборка ускоряет каждый из них на каждом добавленном ядре. Ядра не помогают одной симуляции вдоль истории, где каждый шаг зависит от предыдущего, а именно такой код мы и ускоряем. Меньше ядро-часов на тот же перебор — это ещё и меньший счёт за облако.

Что, если обещанное ускорение не получится?

На уровне 1 вы платите за уже измеренный результат, поэтому такого не бывает. На уровне 2 мы называем гарантированный минимум; если он не достигнут, деньги возвращаются на баланс по таблице из договора, а оплаченные средства с баланса возвращаем по запросу.

Как считаются строки?

Собираем ваш код с флагом -C instrument-coverage в том же профиле и для той же платформы, что в паспорте, и прогоняем бенчмарк паспорта на открытых входах. Считаются строки Rust, которые выполнились хотя бы раз по данным llvm-cov. Не считаются пустые строки и комментарии, невыполненный код, тесты и обвязка бенчмарка, сторонние зависимости вне объёма работы и ассемблер; обобщённая функция считается один раз. Это число записывается в паспорт до оплаты. Данные в подсчёт не входят, только ваш код. Для ориентира: при распаковке корпуса Silesia в bzip2-rs выполняется 598 строк его кода, при кодировании пяти клипов Xiph в rav1e — 12 809 строк из 55 419.

Какие платформы поддерживаются?

Публичные демо рассчитаны на Linux x86-64 с AVX2/FMA. TA-Lib и vn.py измерены на AMD Zen 3 и Zen 4. Для оплаченной сборки функции CPU, ОС, ABI и машина приёмки фиксируются в заказе; Intel, ARM и другие среды требуют отдельной оценки.

Какой код ускоряется плохо?

Декодеры форматов, для которых уже есть давно оптимизированные библиотеки на C (LZ4, zstd, deflate): против них мы пока не получили выигрыша. Зрелые кодеки на ручном SIMD и ассемблере (x264, x265), криптографические примитивы вроде SHA-256 и ChaCha20, обработка случайных несжимаемых данных и очень короткие вызовы, где всё время уходит на накладные расходы. В таких случаях бесплатная оценка честно покажет небольшой выигрыш, и платить не придётся.

Мои такты отличаются от ваших. Почему?

Такты зависят от модели CPU, частоты, turbo, памяти и входных данных. Договорные цифры снимаются на стенде по паспорту измерений. Харнесс читает те же счётчики, поэтому на той же модели CPU и с теми же настройками ваши цифры должны быть близки к нашим. Число инструкций гораздо меньше зависит от машины — сравнивайте сначала его.

Что с плавающей точкой?

По умолчанию вывод совпадает бит в бит, с ограниченным исключением для payload у NaN, полученных в арифметике с плавающей точкой, там, где Rust допускает разные payload. Явно сохранённые кодировки NaN и весь остальной вывод остаются точными, если в паспорте не согласовано иное. Паспорт может требовать и точного совпадения payload у NaN. Любое другое согласованное отклонение фиксируется в паспорте и проверяется тестами.

Сборка упадёт на старом сервере?

Проверьте требования конкретного пакета к CPU. Публичные бинарники могут требовать AVX2/FMA и не запустятся на старом CPU. Поддерживаемые функции и возможный fallback оплаченной сборки согласуются в паспорте; fallback не предполагается у каждого бинаря.

Снизит ли это задержку моей live-торговли?

Только если профиль показывает, что узкое место — вычисления. Для live-пути мы меряем весь путь от рыночного события до ордера, например его p99 на вашем сервере, а не одну функцию: часто основное время уходит на сеть и биржу. Самые сильные наши результаты — пакетные вычисления: бэктесты, обучение и перебор параметров.

Вы работаете с C, C++ и Python?

Да, по индивидуальным заказам. Для C и C++ мы поставляем библиотеку на замену с тем же ABI: ваши программы и Python-код, который её вызывает, работают без изменений (см. кейс TA-Lib). Для Python-кода поставляем нативную программу или модуль с тем же выводом (см. кейс vn.py). Это инженерная работа уровня 2 по индивидуальной цене; самообслуживание в кабинете пока принимает Rust-крейты.

Не только TAKT

Другие наши проекты

Системное ПО той же команды: разблокировка зашифрованного корня ZFS при загрузке, перестройка RAIDZ на месте, браузерная консоль для Proxmox VE и горячее подключение Thunderbolt в QEMU. Каждая карточка открывает краткое описание; код — на GitHub. Ещё один проект — условное хранение секретов в виртуальной машине с TPM.

escrow-box

Прототип условного хранения секретов в виртуальной машине с TPM. Исходники можно проверить пересборкой до их раскрытия.

  • TPM 2.0
  • UKI
  • Clevis

zbm-openwrt-clevis

Измеряемая загрузочная среда на OpenWrt: разблокирует зашифрованный корень ZFS с помощью Clevis и TPM, затем загружает систему через ZFSBootMenu.

  • OpenWrt
  • ZFS
  • TPM 2.0
  • Clevis

zfs

Форк OpenZFS с прототипом перестройки RAIDZ на месте: смена чётности между raidz1, raidz2 и raidz3 без экспорта пула.

  • OpenZFS
  • RAIDZ
  • C

qsm-rd

QSM Direct: графическая консоль на WebRTC для виртуальных машин и LXC-контейнеров Proxmox VE, с аппаратным кодированием, если на узле есть кодер.

  • Proxmox VE
  • WebRTC
  • LXC

qemu-thunderbolt

Слой горячего подключения PCIe в стиле Thunderbolt для QEMU: добавление и удаление устройств в гостях вроде macOS, которые не умеют подключать их напрямую.

  • QEMU
  • Thunderbolt
  • PCIe
  • macOS
Начать

Оценить одну задачу

Rust-крейт? Откройте кабинет прямо сейчас. Для C, C++ или Python опишите один медленный прогон ниже. Начните с длительности, частоты и платформы; на этом шаге не нужны ни код, ни установка харнесса.

Компания и технические детали (необязательно)
Код на этом шаге не нужен. Отправляя заявку, вы соглашаетесь на обработку контактных данных.